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

Sort by
Title
Sorted by
Topic
Sort by
Date
Allocate and Disk Full Error (HTML) (日本語 HTML)
FL12: Discusses a problem with AFP volumes displaying incorrect free space, and returning disk full errors.
Networking 1999-07-21
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
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
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Networking 1997-03-14
Closing the Connection: OpenTransport (HTML) (日本語 HTML)
Deprecated - NW20: Describes an orderly disconnect situation in Open Transport between two nodes.
Networking 1996-03-04
Determining if a Drive is a Network Volume (HTML) (日本語 HTML)
NW09: Shows how to determine if a volume is mounted over the network.
Networking 1998-06-01
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
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
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
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
Getting a Packet Trace (HTML) (日本語 HTML)
QA1176: Lists tools available for looking at the network packets on the wire.
Networking 2008-06-03
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
How to use the OT modem script engine (HTML) (日本語 HTML)
Deprecated - NW50: Shows how to use the Open Transport modem script engine.
Networking 1997-07-11
How to use URL Access with proxy servers (HTML)
Deprecated - QA1074: Explains how to use URL Access with proxy servers.
Networking 2001-10-02
NSL and how it relates to Bonjour (HTML)
QA1299: Explains the relationship between NSL and Bonjour.
Networking 2003-09-18
Numerous Small Packet Exchanges Resultin Poor TCP Performance (HTML) (日本語 HTML)
NW26: Explains why numerous small package exchanges result in poor TCP performance.
Networking 1998-05-25
Open Transport Error -3208: kEBADFErr (HTML) (日本語 HTML)
NW21: Explains why a call to OTSnd may result in a kEBADFErr -3208.
Networking 1996-03-04
Open Transport Libraries (HTML) (日本語 HTML)
NW18: Lists the Open Transport libraries and what to link with for PowerPC and 68K.
Networking 2000-11-03
OTScheduleDeferredTask When Task Running (HTML) (日本語 HTML)
NW52: Describes what happens when you use OTScheduleDefferedTask to schedule a task that is running.
Networking 1997-10-13
OTScheduleSystemTask Cleanup (HTML) (日本語 HTML)
Deprecated - NW37: States the proper way to clean up any pending system tasks scheduled with OTScheduleSystemTask.
Networking 1996-07-03
PPPoE Server for Testing (HTML) (日本語 HTML)
QA1252: Describes how to configure Mac OS X as a PPPoE server for testing purposes.
Networking 2003-04-11
Problems getting Bonjour TXT record information (HTML)
QA1389: Explains why you might have problems retrieving TXT record information from a CFNetServiceRef or NSNetService.
Networking 2005-07-06
Raw IP and Open Transport 2.5.x (HTML)
Deprecated - NW63: Discusses Open Transport 2.5's change to the behavior of raw IP endpoints with IP_HDRINCL set.
Networking 1999-10-25
Receiving UDP Broadcasts (HTML) (日本語 HTML)
Deprecated - NW53: Explains why UDP endpoints may never receive UDP broadcast messages.
Networking 1997-11-17
Registering a Bonjour service multiple times (HTML)
QA1311: Explains why registering the same Bonjour service twice on the same machine doesn't cause a name conflict.
Networking 2003-10-23
Resolves may return an IPv6 address in Panther (HTML)
QA1298: Explains why you get an IP address of 0.0.0.0 when resolving a Bonjour service.
Networking 2005-01-10
Sending an Email (HTML)
QA1084: Shows how to create an email in the user's prefered email application.
Networking 2004-11-05
Server Endpoint 'qlen' Limit (HTML) (日本語 HTML)
Deprecated - NW38: Tells how to determine the maximum 'qlen' value which limits the number of supported handoff endpoints.
Networking 1996-08-21
Setting request headers in URL Access (HTML) (日本語 HTML)
Deprecated - QA1073: Explains how to work around a bug in URL Access when setting request headers.
Networking 2002-09-10
Synchronous TCP OTConnect Client Call Completes Before Server Responds (HTML) (日本語 HTML)
Deprecated - NW24: Explains why an OTConnect call will complete before the server responds.
Networking 1996-05-14
T_DATA_REQ vs M_DATA TPI Message Blocks (HTML) (日本語 HTML)
NW42: Explains why OT passes data to a TPI module using M_DATA message blocks instead of M_PROTO+T_DATA_REQ.
Networking 1996-10-25
TCP Option Sizes (HTML)
Deprecated - NW27: Tells where to get more information on TCP Option sizes and setting TCP Options.
Networking 1996-05-14
TCP/IP Option Sizes (HTML) (日本語 HTML)
NW62: Enumerates the TCP/IP options and their sizes for Open Transport.
Networking 1999-04-26
Updating the TXT record of a Bonjour service (HTML)
QA1302: Explains how to update a Bonjour TXT record while running on either Jaguar or Panther.
Networking 2004-07-14
URL Access and the Missing Progress Dialog (HTML) (日本語 HTML)
Deprecated - QA1140: Explains a known bug in URL Access related to progress dialogs.
Networking 2002-09-23
URL Access vs. CFNetwork (HTML)
QA1291: Explains when to choose URL Access or CFNetwork when downloading files from within your application.
Networking 2003-10-29
Use the Computer Name when registering your Bonjour service (HTML)
QA1228: Explains why you should use the Computer Name when advertising a Bonjour service.
Networking 2004-03-05
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Performance 1997-03-14
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
Error -151 and NewGWorld (HTML)
Deprecated - QD18: Explains what the error code -151 means when in NewGWorld.
Performance 1995-09-15
How do I tell if a particular display is being hardware accelerated by Quartz Extreme? (HTML) (日本語 HTML)
QA1218: Describes how to use CGDisplayUsesOpenGLAcceleration to see if a display is accelerated or not.
Performance 2002-12-04
OTScheduleDeferredTask When Task Running (HTML) (日本語 HTML)
NW52: Describes what happens when you use OTScheduleDefferedTask to schedule a task that is running.
Performance 1997-10-13
Problem with PaintRgn on 256-color Screens (HTML)
Deprecated - QD23: PaintRgn with RGBForeColor and transfer mode addOver doesn't return color to original on 256-color-screens.
Performance 1995-09-15
Quartz 2D Thread Safety (HTML) (日本語 HTML)
QA1238: Explains the thread-safety issues for the Quartz 2D API.
Performance 2003-02-25
Requirements for Quartz GL (HTML)
QA1536: Describes the requirements for enabling Quartz GL.
Performance 2008-08-08
Using Temporary Memory with OpenPicture (HTML)
Deprecated - QD20: Provides several techniques of causing OpenPicture to allocate temporary memory for a picture handle.
Performance 1996-02-01
Current GDevice Dependencies (HTML) (日本語 HTML)
QA1115: Describes potential problems with creating windows or ports when the current GDevice isn't the main device.
Porting 2002-02-13
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 2000-10-16
Problems recording CopyBits into a PICT on Mac OS X 10.2 (HTML) (日本語 HTML)
QA1189: Identifies a problem with CopyBits and PICT on Mac OS X 10.2 and gives a simple workaround.
Porting 2002-11-19
QDFlushPortBuffer (HTML) (日本語 HTML)
QD65: Describes a possible solution for window update problems under Carbon.
Porting 2000-11-08
QDSwapPort (HTML) (日本語 HTML)
QA1128: Explains when to use QDSwapPort.
Porting 2002-11-06
QuickDraw Text Anti-Aliasing using Quartz 2D (HTML) (日本語 HTML)
QA1193: Describes APIs added to Mac OS X to allow applications to draw QD text using CG anti-aliasing.
Porting 2002-10-29
Setting environment variables for user processes (HTML)
QA1067: Tells how to set environment variables for user processes.
Porting 2001-10-25
TCP/IP Option Sizes (HTML) (日本語 HTML)
NW62: Enumerates the TCP/IP options and their sizes for Open Transport.
Porting 1999-04-26
CGContext Bounds (HTML)
QA1048: Explains how to determine the bounds of a CGContext.
Printing 2001-07-02
CGContextAddLineToPoint, CGContextAddCurveToPoint, et. al. (HTML)
QA1049: Explains why the CGContextAddXYZ APIs don't draw anything immediately.
Printing 2001-07-02
CGContextClosePath (HTML)
QA1046: Explains when you should call CGContextClosePath.
Printing 2001-10-02
Drawing a Path Multiple Times (HTML)
QA1047: Explains that path drawing operations consume the path.
Printing 2001-07-02
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
How do I use PMSessionGetGraphicsContext to get a CGContextRef? (HTML) (日本語 HTML)
Deprecated - QA1216: Describes how to use PMSessionSetDocumentFormatGeneration and PMSessionGetGraphicsContext to get a CGContextRef for printing.
Printing 2003-02-25
How to measure CG text (HTML)
QA1051: Explains how to measure Core Graphics text.
Printing 2007-08-02
Printer Queue vs. Printer Name (HTML)
QA1407: Explains the difference between a printer queue and a printer name.
Printing 2007-04-26
Quartz 2D Interpolation (HTML) (日本語 HTML)
QA1186: Explains how to control Quartz 2D's image interpolation.
Printing 2002-10-29
Quartz 2D Thread Safety (HTML) (日本語 HTML)
QA1238: Explains the thread-safety issues for the Quartz 2D API.
Printing 2003-02-25
Saving the current Core Graphics Path (HTML)
QA1056: Explains that the Core Graphics save and restore GState APIs do not affect the path.
Printing 2001-10-02
Turning Off Core Graphics Clipping (HTML)
QA1050: Explains how to clear the clipping path for a CGContext.
Printing 2001-07-02
Unexpected CG state changes (HTML)
QA1045: Explains why the Core Graphics drawing state sometimes changes for no apparent reason.
Printing 2001-07-02
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
Customizing Process Stack Size (HTML)
QA1419: Describes methods for setting the stack size of a process and/or thread.
Process Management 2008-02-20
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
How do I use kMPCreateTaskSuspendedMask with MPCreateTask? (HTML)
QA1055: Describes how to start a task that has been suspended with the ability to resume it later.
Process Management 2001-07-02
ICLaunchURL, "file:///" URLs and Mac OS X (HTML)
QA1028: Describes problems with ICLaunchURL and "file:///" URLs on Mac OS X.
Process Management 2001-04-20
MPRemoteCall Contexts (HTML) (日本語 HTML)
QA1122: Describes two recently introduced options for the context parameter of MPRemoteCall.
Process Management 2002-02-18
Non Mac OS X Bundled data-fork based Resources (HTML) (日本語 HTML)
QA1098: Mac OS X Bundled data-fork based Resources
Process Management 2003-08-20
OTScheduleDeferredTask When Task Running (HTML) (日本語 HTML)
NW52: Describes what happens when you use OTScheduleDefferedTask to schedule a task that is running.
Process Management 1997-10-13
Power Management; Policy Maker vs. Power Controller (HTML) (日本語 HTML)
QA1121: Describes the differences between a Power Management Policy Maker and a Power Management Power Controller.
Process Management 2002-02-13
Process Carbon Events Not Delivered in 10.2 (HTML) (日本語 HTML)
QA1181: Work around for a bug in Mac OS X 10.2 that prevents the delivery of process Carbon events.
Process Management 2002-08-27
Programmatically causing restart, shutdown and/or logout (HTML) (日本語 HTML)
QA1134: Describes how to programmatically cause restart, shutdown, sleep or logout.
Process Management 2008-09-24
Quartz 2D Thread Safety (HTML) (日本語 HTML)
QA1238: Explains the thread-safety issues for the Quartz 2D API.
Process Management 2003-02-25
Setting environment variables for user processes (HTML)
QA1067: Tells how to set environment variables for user processes.
Process Management 2001-10-25
Signals and Threads (HTML) (日本語 HTML)
QA1184: Describes how threads and signals interact.
Process Management 2002-08-27
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
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
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.
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
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
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
Dynamically registering a bundled component (HTML)
QA1083: Describes how to dynamically register a Component which resides in an Application bundle.
QuickTime 2004-06-07
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
How to work around HIMovieViewCreate failing (HTML)
QA1417: Describes how to work around HIMovieViewCreate failing to initialize the view in QuickTime 7
QuickTime 2008-03-11
Implementing a CVFillExtendedPixelsCallBack (HTML)
QA1440: Discusses how you implement a Core Video custom extended pixel fill callback function.
QuickTime 2005-09-06
Incorrect Inside Macintosh Volume V documentation (HTML)
Deprecated - QD15: Identifies incorrect documentation in Inside Macintosh Volume V regarding the formats of PnPixPat and BkPixPat opcodes.
QuickTime 1995-09-15