Jump To:
Leopard Technical Q&As
Carbon is a set of C APIs offering developers an advanced user interface tool kit, event handling, the Quartz 2D graphics library, and multiprocessing support. Developers have access to other C and C++ APIs, including the OpenGL drawing system and the Mach microkernel.

A guided introduction and learning path for developers new to Carbon.   Essential information for developers using procedural C.   C API references organized by framework.
Document Descriptions
On Off
Display

Sorted by
Title
Sort by
Topic
Sort by
Date
The "/.vol" directory and "volfs" (HTML) (日本語 HTML)
QA1113: Describes how the Carbon File Manager interacts with BSD via "volfs" and the "/.vol" directory.
File Management 2002-02-14
68K Open Transport Code on Power Macintoshes (HTML)
Deprecated - NW48: Explains why running Open Transport 68K code on a PowerPC may not always work.
Networking 1997-03-14
Aborting a OTConnect in Progress (HTML)
Deprecated - NW29: Describes the proper way to abort OTConnect, and why after calling OTSndDisconnect you may receive "kOTOutStateErr".
Networking 1996-05-14
Accessing File Control Blocks (HTML) (日本語 HTML)
FL10: Shows how to access file control blocks correctly, reiterating not to access FCBs directly.
File Management 1999-10-05
Accessing HTTPS Proxy Settings (HTML) (日本語 HTML)
QA1234: Describes how to programatically access Secure Web Proxy information.
Networking 2003-02-19
Adding a movie reference to a movie (HTML)
QA1376: Demonstrates how to add a reference for a movie to another movie
QuickTime 2004-09-16
Adding an automated Window menu to your application (HTML)
QA1080: Explains how to add an automated Window menu to your Carbon application.
Design Guidelines, Human Interface Toolbox 2001-10-30
Advertising a Bonjour service on a specific set of networking interfaces. (HTML)
QA1513: Explains how to register a Bonjour service only on a specific set of networking interfaces.
Networking 2007-02-12
AGL Changes for Mac OS X Leopard (v. 10.5) (HTML)
QA1523: This Q&A describes the new and deprecated APIs for Apple OpenGL (AGL)
Games, Graphics & Imaging 2008-01-04
Allocate and Disk Full Error (HTML) (日本語 HTML)
FL12: Discusses a problem with AFP volumes displaying incorrect free space, and returning disk full errors.
File Management, Networking 1999-07-21
Are the root control, the root view, and the content view the same entity? (HTML) (日本語 HTML)
QA1214: Details the differences and similitudes between the root control, the root view, and the content view of windows.
Human Interface Toolbox 2002-11-12
Are there any OSStatus values I can use in my programs? (HTML)
OV02: Describes OSStatus values that generate errors without colliding with reserved Apple system values.
Design Guidelines 1999-11-22
Availability of Quartz Composer Patches in Web Kit (HTML)
QA1505: Details which Quartz Composer patches are available in Web Kit
Internet & Web 2007-03-05
Avoiding Kernel Event Conflicts (HTML)
QA1063: Documents the namespace for the vendor_code field of the kern_event_msg structure.
Process Management 2001-09-14
Avoiding Pauses When Looping Audio files with QuickTime (HTML)
QA1371: Demonstrates how to avoid pauses when looping audio files with QuickTime
Audio 2004-09-08
Avoiding the -42 error with DiscRecording (HTML)
QA1292: Explains how to workaround the -42 error when using the DiscRecording API.
File Management 2004-05-25
Base-Derived async image codecs must implement ImageCodecQueueStarting and ImageCodecQueueStopping (HTML) (日本語 HTML)
QA1157: Describes why base-derived codecs that set canAsync must implement ImageCodecQueueStarting and ImageCodecQueueStopping.
QuickTime 2002-07-09
Bonjour and wake from sleep (HTML)
QA1290: Explains why applications that use Bonjour should stay registered and continue browsing on sleep.
Networking 2003-09-18
Bonjour enforces the service type format in Panther (HTML)
QA1198: Explains why registering a Bonjour service might fail on Panther.
Networking 2004-03-23
Bonjour enforces the TXT record format in Panther (HTML)
QA1306: Explains how mDNSResponder enforces the proper TXT record format in Panther.
Networking 2004-07-14
Bonjour Printer Subtype for HTTP (HTML)
QA1555: Describes how printer vendors can register their bonjour service such that Safari can see them.
Networking 2008-03-25
Bonjour TXT record rate limiting in Panther (HTML)
QA1293: Explains how mDNSResponder implements TXT record rate limiting in Panther.
Networking 2003-10-23
BowelsOfTheMemoryManager (aka YourHeapIsProbablyCorrupt) (HTML) (日本語 HTML)
Deprecated - ME05: What the symbol BowelsoftheMemoryManager means and the most probable cause of this symbol in MacsBug.
Data Management 2001-02-01
CalcCMask and SeedCFill in Carbon (HTML) (日本語 HTML)
QD62: Explains how to use CalcCMask and SeedCFill in Carbon even though Carbon doesn't support OpenPort.
Graphics & Imaging 2000-11-08
Calling AppleScript from an Application (HTML)
QA1026: Describes how to call an AppleScript from an application written in C.
Interapplication Communication 2001-04-10
Calling CloseOpenTransport When Writing an App (HTML) (日本語 HTML)
Deprecated - NW36: Identifies a bug in Open Transport 1.1 which means your application must CloseOpenTransport before quitting.
Networking 1996-07-03
Can I have parameters of type typeHIRect instead of type typeQDRectangle in my kEventControlBoundsChanged message handler? (HTML) (日本語 HTML)
QA1246: Details the automatic coercions between QuickDraw and Quartz types provided by the Carbon Event Parameter accessors.
Human Interface Toolbox 2003-04-03
Capturing Speech Manager Output (HTML) (日本語 HTML)
Deprecated - SND15: Capturing the output from the Speech Synthesis Manager to a file.
Audio 1998-05-18
Carbon Drawer problem in Mac OS X v10.4 and v10.4.1 (HTML)
QA1435: Workaround for a drawer problem present in Mac OS X v10.4 but fixed in v10.4.2
Human Interface Toolbox 2005-06-21
Carbon Full Screen Conundrums (HTML)
QA1068: Describes the available Mac OS X DrawSprocket services.
Games 2001-08-20
CFBundleIdentifier and user application access (HTML)
QA1373: Describes the role of CFBundleIdentifier in limiting a user's application access.
Design Guidelines, Security 2005-02-08
CFXML to CFPropertyListRef (and back!) (HTML) (日本語 HTML)
QA1208: Describes to how save and restore a CFPropertyListRef to and from an XML file.
Data Management 2003-08-29
CGBitmapContextCreate Supported Color Spaces (HTML)
QA1037: Lists the color space and alpha info combinations currently supported by CGBitmapContextCreate.
Games, Graphics & Imaging 2007-07-18
CGContext Bounds (HTML)
QA1048: Explains how to determine the bounds of a CGContext.
Graphics & Imaging, Printing 2001-07-02
CGContext parameter missing in my kEventControlDraw event (HTML) (日本語 HTML)
QA1212: Explains in which case your kEventControlDraw handler wouldn't receive a CGContext parameter.
Human Interface Toolbox 2002-11-12
CGContextAddLineToPoint, CGContextAddCurveToPoint, et. al. (HTML)
QA1049: Explains why the CGContextAddXYZ APIs don't draw anything immediately.
Graphics & Imaging, Printing 2001-07-02
CGContextClosePath (HTML)
QA1046: Explains when you should call CGContextClosePath.
Graphics & Imaging, Printing 2001-10-02
CGImageRef contents are immutable (HTML) (日本語 HTML)
QA1276: Explains that CGImageRef contents are considered immutable once created.
Graphics & Imaging 2003-07-17
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Networking, Performance 1997-03-14
Changing the volume of audio devices (HTML)
QA1016: Demonstrates volume controls for audio devices
Audio 2006-05-02
Clickable Static Text Item (HTML)
QA1380: Explains how to make a static text item respond to clicks
Human Interface Toolbox, User Experience 2004-10-05
Closing the Connection: OpenTransport (HTML) (日本語 HTML)
Deprecated - NW20: Describes an orderly disconnect situation in Open Transport between two nodes.
Networking 1996-03-04
ColorSync Color Matching on Intel-based Macs (HTML)
QA1464: Describes special considerations for byte ordering when performing ColorSync color matching on Intel-based Macs
Graphics & Imaging 2006-03-16
Compression Sessions - Configuring codec quality settings (HTML)
QA1444: Discusses how to set encoding quality for a Compression Sequence
QuickTime 2005-10-17
Compression Sessions - Configuring options using the Standard Compression dialog (HTML)
QA1456: Discusses how to configure Compression Session options using Standard Compression dialog.
QuickTime 2006-01-12
Compression Sessions - Enabling muti-pass encoding (HTML)
QA1450: Describes how to enable multi-pass encoding when using ICM compression sessions.
Graphics & Imaging, QuickTime 2006-01-12
Compression Sessions - Multipass encoding and the pass mode flags (HTML)
QA1457: Discusses how the pass mode flags work when performing multipass compression operations.
QuickTime 2006-10-02
Compression Sessions - Temporal compression options (HTML)
QA1455: Discusses the temporal compression option as it relates to quality and other compression session options.
QuickTime 2006-01-12
Context Sharing Tips (HTML) (日本語 HTML)
QA1248: How to correctly share OpenGL contexts and what the limits on this sharing are.
Games, Graphics & Imaging 2005-02-07
Converting RGB Colors to a Palette Index (HTML)
Deprecated - QD21: Explains how to convert RGB colors into the palette index created by an application.
Graphics & Imaging 1995-09-15
Converting to Precomposed Unicode (HTML) (日本語 HTML)
QA1235: Describes how to convert a string to precomposed Unicode.
Internationalization, Text & Fonts 2003-02-07
CoreAudio Overload Warnings (HTML)
QA1467: Describes CoreAudio overload warnings what they mean and how to avoid them.
Audio 2006-03-29
Crash in ABAddPropertiesAndTypes (HTML)
QA1404: How to correctly add custom Address Book properties using ABAddPropertiesAndTypes
Apple Applications 2005-04-04
Creating Gray Scaled Images > 8 bits (HTML) (日本語 HTML)
Deprecated - QD51: Shows how to create gray-scaled images at resolutions greater than 8 bits for display.
Graphics & Imaging, User Experience 1997-11-17
Creating Sub GWorlds using QTNewGWorldFromPtr (HTML)
QA1014: Using QTNewGWorldFromPtr to create sub GWorlds which reference the pixel data of other GWorlds.
QuickTime 2001-03-20
Current GDevice Dependencies (HTML) (日本語 HTML)
QA1115: Describes potential problems with creating windows or ports when the current GDevice isn't the main device.
Games, Graphics & Imaging, Porting 2002-02-13
Customizing Process Stack Size (HTML)
QA1419: Describes methods for setting the stack size of a process and/or thread.
Process Management, Resource Management 2008-02-20
The Data Browser GetDataBrowserUserState API (HTML) (日本語 HTML)
QA1270: Explains a problematic Data Browser API definition and how to work around it.
Human Interface Toolbox 2003-07-22
Debugging Graphics with QuartzDebug (HTML) (日本語 HTML)
QA1236: Explains how to use QuartzDebug to debug graphics issues.
Graphics & Imaging 2006-01-12
Decompression Sessions - Setting codec accuracy and field mode (HTML)
QA1460: Describes how to set codec accuracy and field mode options when creating a decompression sessions.
QuickTime 2006-01-12
Defining and Using the kTransformFocused IconTransformType (HTML)
QA1414: Documents a new IconTransformType, available in Panther and later, which draws a focus ring around an icon.
Human Interface Toolbox 2005-03-29
Deselecting Icons in the Finder (HTML) (日本語 HTML)
IC04: Shows how to programmatically deselect icons in the Finder.
Interapplication Communication 1997-07-11
Detecting Classic and Carbon X Environments (HTML) (日本語 HTML)
OV03: Describes how to find out if your application is running in the Classic environment in Mac OS X.
Porting, Runtime Architecture 2000-10-16
Detecting specific ROM-in-RAM Mac (HTML) (日本語 HTML)
Deprecated - HW49: Identifying a Mac by name ("iMac"), and better alternatives for determining specific features ("has Firewire").
Design Guidelines, Runtime Architecture 1999-10-05
Determining console user login status (HTML)
QA1133: How to determine whether a user is logged in on the console, and be notified of changes.
Process Management 2008-04-14
Determining if a Drive is a Network Volume (HTML) (日本語 HTML)
NW09: Shows how to determine if a volume is mounted over the network.
File Management, Networking 1998-06-01
Directories Appear as Volume Aliases (HTML)
QA1351: Discusses how VFS plug-ins should handle device numbers to ensure compatibility with Carbon applications.
File Management 2004-05-25
Disabling Processor Cores on a Multi-Core System (HTML) (日本語 HTML)
QA1141: Describes how to disable processor cores on a multi-core system for testing purposes.
Performance 2008-09-16
Disconnected aliases on CD-ROM and Alias Manager (HTML)
OPS05: Explains why aliases may become disconnected on a CD-ROM.
File Management 2001-03-26
Discovering all advertised Bonjour service types (HTML)
QA1337: Explains how to discover all Bonjour service types being advertised on the local network.
Networking 2004-06-01
Do I have to call CreateRootControl after creating my window? (HTML) (日本語 HTML)
QA1215: Explains when and when not to call CreateRootControl after creating a window.
Human Interface Toolbox 2002-11-12
Don't forget to cancel your Bonjour resolve (HTML)
QA1297: Explains why it's important to cancel a Bonjour resolve operation.
Networking 2007-08-30
Downloading through a proxy server in Mac OS X (HTML)
QA1296: Explains when downloading through a proxy server will work, and when it will fail.
Networking 2003-10-29
Drawing a Path Multiple Times (HTML)
QA1047: Explains that path drawing operations consume the path.
Graphics & Imaging, Printing 2001-07-02
Dynamically registering a bundled component (HTML)
QA1083: Describes how to dynamically register a Component which resides in an Application bundle.
Core Foundation, QuickTime 2004-06-07
Empty Memory Objects (HTML) (日本語 HTML)
QA1259: Describes how two memory management edge cases are handled by the common Mac OS memory allocators.
Accessibility, Data Management 2003-04-21
Enabling the application menu's "Preferences..." menu item on Mac OS X (HTML)
QA1079: Explains how to enable the application menu's "Preferences..." menu item on Mac OS X.
Design Guidelines, Human Interface Toolbox 2001-10-30
Enabling the Navigation Services default behavior in its dialogs (HTML)
QA1384: Explains how to enable the default behavior of the Navigation Services dialogs.
File Management, Human Interface Toolbox 2004-10-15
Enumerating fonts with ATS (HTML)
QA1471: Describes the different ATS font enumeration methods
Text & Fonts 2006-04-14
Environment Variables (HTML)
QA1255: Describes how a process gets its environment variables.
Runtime Architecture 2003-10-29
Error -151 and NewGWorld (HTML)
Deprecated - QD18: Explains what the error code -151 means when in NewGWorld.
Graphics & Imaging, Performance, User Experience 1995-09-15
Error -3168 (kOTStateChangeErr) and Handoff Endpoints (HTML) (日本語 HTML)
Deprecated - NW22: Explains why a kOTStateChangeErr -3168 occurs when there is a handoff endpoint involved.
Networking 1996-04-08
Expanding Tilde-based paths (HTML)
QA1549: Demonstrates how to resolve tilde-based relevant paths.
File Management 2008-09-08
Extracting DV Fields using QTNewGWorldFromPtr (HTML)
QA1017: Describes using QTNewGWorldFromPtr to access individual fields contained within a frame of DV source.
QuickTime 2001-03-20
fBroadCastAddr Always Zero (HTML) (日本語 HTML)
Deprecated - NW58: Explains why the fBroadcastAddr field may be zero after a call to OTInetGetInterfaceInfo and includes the workaround.
Networking 1999-03-08
File Manager Text Encoding Hints (HTML) (日本語 HTML)
QA1223: How to use Text Encoding Hints.
File Management 2003-01-20
Filtering QuickTime media types in Navigation Services (HTML) (日本語 HTML)
QA1274: Describes how to filter QuickTime media types in a Navigation Services filter procedure.
Human Interface Toolbox 2003-07-23
Finding your application's directory (HTML)
FL14: Demonstrates finding your application's directory and setting it as the default directory.
File Management 2000-06-19
Fixing the Layout Binding of the Tab control User Panes (HTML)
QA1161: Describes the Tab control hierarchy and layouts of its panes and provides a fix to a common problem.
Human Interface Toolbox 2004-10-14
FSDeleteObject fails with fBsyErr, sometimes (HTML)
QA1497: Why Spotlight indexing can cause file deletion to fail, and what to do about it.
File Management 2008-09-24
FSSetCatalogInfo versus UID and GID (HTML) (日本語 HTML)
QA1251: Describes why FSSetCatalogInfo does not set the UID and GID of the file, and provides a work around.
File Management 2003-03-26
Gathering all PostScript Printer Descriptions (PPDs) (HTML)
QA1529: Describes a work around for an issue in PMCopyAvailablePPDs on Mac OS X 10.4 and below
Printing 2008-08-08
GetPortBitMapForCopyBits (HTML) (日本語 HTML)
Deprecated - QD61: Describes the proper usage of GetPortBitMapForCopyBits.
Graphics & Imaging 2000-11-08
GetProcAdress and OpenGL Entry Points (HTML) (日本語 HTML)
QA1188: Technique for finding function pointers for OpenGL entry points in Cocoa and Carbon
Games, Graphics & Imaging 2002-11-25
Getting a Packet Trace (HTML) (日本語 HTML)
QA1176: Lists tools available for looking at the network packets on the wire.
Internet & Web, Networking 2008-06-03
Getting the pixel data from a CGImage object (HTML)
QA1509: Describes how to access the pixel data of a CGImage object
Games, Graphics & Imaging 2008-08-27
Getting the User and Computer Name (HTML)
QA1078: Describes how to get the user and computer name on Mac OS X.
Networking 2001-10-30
grayishTextOr and Mac OS 8.5 (HTML) (日本語 HTML)
Deprecated - QD59: Explains why text drawn using TextMode(grayishTextOr) is never drawn; provides a workaround.
Graphics & Imaging 1998-12-07
The header file 'alut.h' is missing from the OpenAL framework. (HTML)
QA1504: ALUT headers were removed from OpenAL.framework with the Xcode 2.4. This Q&A describes how to regain access to those system-supplied symbols
Audio 2007-02-06
Help Book Caching During Software Development (HTML)
QA1409: Development situations that can potentially confuse Help Viewer
Tools 2005-03-30