Jump To:
Leopard Reference Library
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
Resource Type
Sort by
Date
Locales Programming Guide (HTML) (PDF)
Explains how to use locales to retrieve, interpret, and display localized information in Core Foundation.
Internationalization Guides 2008-10-15
MoreIsBetter (HTML) (DMG) (ZIP)
Library providing indispensable wrapers and workarounds for many areas of Mac OS programming.
Internationalization Sample Code 2003-10-27
Multilingual Text Engine Frequently Asked Questions (HTML) (日本語 HTML)
TN2026: A list of frequently asked questions for the Multilingual Text Engine (MLTE).
Internationalization Technical Notes 2005-09-12
Multilingual Text Engine Reference (HTML) (PDF)
Describes the C API for supporting Unicode text editing.
Internationalization Reference 2007-02-19
Programming With the Language Analysis Manager (HTML) (PDF)
Explains how morpholgical analysis is performed by the system.
Internationalization Guides 2003-05-01
Programming With the Text Encoding Conversion Manager (HTML) (PDF)
Explains character encodings, Unicode conversion, and custom converter plug-ins. Lists encoding variants.
Internationalization Guides 2005-07-07
Strings Programming Guide for Core Foundation (HTML) (PDF)
Explains how to create, manipulate, and search strings in Core Foundation, and how strings interact with encodings and character sets.
Internationalization Guides 2008-03-11
Supporting Unicode Input (HTML) (PDF)
Introduces international text in Mac OS X and lists the tasks an application needs to perform.
Internationalization Guides 2005-07-07
Text Encoding Conversion Manager Reference (HTML) (PDF)
Describes the C API for transferring text across other platforms or over the Internet.
Internationalization Reference 2005-07-07
Text Input Source Services Reference (HTML) (PDF)
Describes the API for operating on text input sources, such as keyboards, character palettes, and ink input.
Internationalization Reference 2007-06-07
Understanding Text Input and the Text Services Manager in Carbon (HTML) (PDF)
Discusses keyboard input, including Unicode, and explains how events are routed and handled.
Internationalization Guides 2002-12-11
Unicode Utilities Reference (HTML) (PDF)
Describes the C API that allows applications and input methods to operate on Unicode text.
Internationalization Reference 2006-01-10
Using the Japanese Analysis Engine and Access Method (HTML) (PDF)
Describes dictionary access and the environments used by the Japanese Analysis Engine.
Internationalization Guides 2003-05-01
Availability of Quartz Composer Patches in Web Kit (HTML)
QA1505: Details which Quartz Composer patches are available in Web Kit
Internet & Web Technical Q&As 2007-03-05
CarbonCocoaCoreImageTab (HTML) (DMG) (ZIP)
Carbon-based application creates a Cocoa-based web window which used CoreImage filters to transition between tabbed WebViews
Internet & Web Sample Code 2006-07-25
Getting a Packet Trace (HTML) (日本語 HTML)
QA1176: Lists tools available for looking at the network packets on the wire.
Internet & Web Technical Q&As 2008-06-03
JavaScriptCore Framework Reference (HTML)
Describes the API for evaluating JavaScript programs from within a C-based program
Internet & Web Reference 2008-04-08
Sending an Email (HTML)
QA1084: Shows how to create an email in the user's prefered email application.
Internet & Web Technical Q&As 2004-11-05
URL Access Manager Reference (HTML) (PDF)
Deprecated - Describes the legacy C API for transferring data to and from a URL from within an application. Replaced by CFNetwork.
Internet & Web Reference 2006-07-13
Using the Web Services Core Framework and CFNetwork to Access Remote SOAP Services (HTML)
Learn how to access remote SOAP-based web services that require HTTP Basic or Digest authentication.
Internet & Web Articles 2007-03-07
Web Services Core Framework Reference (HTML)
Describes the client-side APIs for accessing web services.
Internet & Web Reference 2009-01-06
Web Services Core Programming Guide (HTML) (PDF)
Explains how to use the new Web Services client-side frameworks available in Mac OS X.
Internet & Web Guides 2009-01-06
WebKit C Reference (HTML) (PDF)
Describes the C API for displaying web content in windows.
Internet & Web Reference 2008-10-15
WebKit Objective-C Programming Guide (HTML) (PDF)
Explains how to use the WebKit to embed web content in both Cocoa and Carbon applications.
Internet & Web Guides 2008-10-15
XML Programming Topics for Core Foundation (HTML) (PDF)
Explains how to parse XML documents into structured objects.
Internet & Web Guides 2008-10-15
XML-RPC and SOAP Programming Guide (HTML) (PDF)
Explains how to make remote procedure calls from applications or from AppleScript scripts.
Internet & Web Guides 2005-03-03
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 Technical Q&As 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 Technical Q&As 1996-05-14
Accessing HTTPS Proxy Settings (HTML) (日本語 HTML)
QA1234: Describes how to programatically access Secure Web Proxy information.
Networking Technical Q&As 2003-02-19
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 Technical Q&As 2007-02-12
Allocate and Disk Full Error (HTML) (日本語 HTML)
FL12: Discusses a problem with AFP volumes displaying incorrect free space, and returning disk full errors.
Networking Technical Q&As 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 Technical Q&As 2003-09-18
Bonjour enforces the service type format in Panther (HTML)
QA1198: Explains why registering a Bonjour service might fail on Panther.
Networking Technical Q&As 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 Technical Q&As 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 Technical Q&As 2008-03-25
Bonjour TXT record rate limiting in Panther (HTML)
QA1293: Explains how mDNSResponder implements TXT record rate limiting in Panther.
Networking Technical Q&As 2003-10-23
BSDLLCTest (HTML) (DMG) (ZIP)
Program sample demonstrates how to send and receive raw LLC Ethernet packets.
Networking Sample Code 2003-06-12
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 Technical Q&As 1996-07-03
CFHostSample (HTML) (DMG) (ZIP)
Uses the CFHost API to do DNS hostname lookups and to determine host reachability.
Networking Sample Code 2004-04-20
CFNetwork Reference Collection (HTML) (PDF)
Describes the C APIs for performing a variety network tasks.
Networking Reference 2008-07-15
CFNetworkHTTPDownload (HTML) (DMG) (ZIP)
Demonstrates how to download a URL using CFNetworking.
Networking Sample Code 2006-01-18
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Networking Technical Q&As 1997-03-14
Closing the Connection: OpenTransport (HTML) (日本語 HTML)
Deprecated - NW20: Describes an orderly disconnect situation in Open Transport between two nodes.
Networking Technical Q&As 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 Technical Q&As 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 Technical Q&As 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 Technical Q&As 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 Technical Q&As 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 Technical Q&As 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 Technical Q&As 1999-03-08
GetHWEthernetAddr (HTML) (DMG) (ZIP)
Deprecated - Shows how to obtain the hardware Ethernet address of a machine.
Networking Sample Code 2003-01-14
GetMACAddressSample (HTML) (DMG) (ZIP)
Demonstrates how to retrieve the MAC address for each Ethernet interface from the Mac OS X I/O Registry.
Networking Sample Code 2003-01-14
GetPrimaryMACAddress (HTML) (DMG) (ZIP)
Demonstrates retrieving the MAC address of the built-in Ethernet controller. Useful for uniquely identifying a Macintosh system.
Networking Sample Code 2005-10-27
GetSetOptions (HTML) (DMG) (ZIP)
Demonstrates a variety of uses of Open Transport's option management routines.
Networking Sample Code 2003-01-14
Getting a Packet Trace (HTML) (日本語 HTML)
QA1176: Lists tools available for looking at the network packets on the wire.
Networking Technical Q&As 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 Technical Q&As 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 Technical Q&As 1997-07-11
How to use URL Access with proxy servers (HTML)
Deprecated - QA1074: Explains how to use URL Access with proxy servers.
Networking Technical Q&As 2001-10-02
ImageClient (HTML) (DMG) (ZIP)
Demonstrates how to use CFNetwork for synchronous and asynchronous operations, network diagnostics, proxy navigation, and authentication.
Networking Sample Code 2005-06-01
Internet Config Reference (HTML) (PDF)
Describes the legacy technology for managing Internet preferences in Classic Mac OS.
Networking Reference 2003-05-01
ListMania (HTML) (DMG) (ZIP)
Demonstrates a variety of techniques for using Open Transport's list utility routines.
Networking Sample Code 2003-01-14
LocalServer (HTML) (DMG) (ZIP)
Deprecated - Sample demonstrates how a Classic process can communicate with a Mac OS X process using IP networking protocols.
Networking Sample Code 2003-01-30
MoreIsBetter (HTML) (DMG) (ZIP)
Library providing indispensable wrapers and workarounds for many areas of Mac OS programming.
Networking Sample Code 2003-10-27
Network Services Location Manager (Legacy) (HTML) (PDF)
Deprecated - Explains how to have a Carbon application discover available network services.
Networking Guides 2006-05-23
NoCopyReceives (HTML) (DMG) (ZIP)
Demonstrates using no-copy receives under Open Transport.
Networking Sample Code 2003-01-14
NSL and how it relates to Bonjour (HTML)
QA1299: Explains the relationship between NSL and Bonjour.
Networking Technical Q&As 2003-09-18
NSLMiniBrowser (HTML) (DMG) (ZIP)
Deprecated - Uses the NSL API to find network services using SLP, NBP, and Directory Services.
Networking Sample Code 2003-01-14
Numerous Small Packet Exchanges Resultin Poor TCP Performance (HTML) (日本語 HTML)
NW26: Explains why numerous small package exchanges result in poor TCP performance.
Networking Technical Q&As 1998-05-25
Open Transport Error -3208: kEBADFErr (HTML) (日本語 HTML)
NW21: Explains why a call to OTSnd may result in a kEBADFErr -3208.
Networking Technical Q&As 1996-03-04
Open Transport Libraries (HTML) (日本語 HTML)
NW18: Lists the Open Transport libraries and what to link with for PowerPC and 68K.
Networking Technical Q&As 2000-11-03
Open Transport Reference (HTML) (PDF)
Describes the Carbon compatibility library for accessing TCP/IP networks at the transport level.
Networking Reference 2005-07-07
Open Transport STREAMS FAQ (HTML)
Deprecated - TN1117: Decribes writing STREAMS modules and drivers for use with Open Transport.
Networking Technical Notes 1997-12-01
OS Services Framework Release Notes (HTML)
Networking Release Notes 2007-10-31
OT Virtual Server (HTML) (DMG) (ZIP)
Deprecated - Sample code which uses Open Transport and demonstrates real world issues.
Networking Sample Code 2003-01-14
OTEndpointInfo (HTML) (DMG) (ZIP)
Deprecated - Demonstrates how to query an endpoint for its 'vital statistic' using OTGetEndpointInfo.
Networking Sample Code 2003-08-20
OTLookupNameTest (HTML) (DMG) (ZIP)
Deprecated - Demonstrates how to lookup NBP entities on an AppleTalk network using Open Transport.
Networking Sample Code 2003-01-14
OTMP (HTML) (DMG) (ZIP)
Deprecated - A library for calling Open Transport synchronously from preemptively scheduled tasks (MP tasks).
Networking Sample Code 2003-07-22
OTPingSample (HTML) (DMG) (ZIP)
Deprecated - Demonstrates how to implement ping on top of the Open Transport API.
Networking Sample Code 2003-07-22
OTScheduleDeferredTask When Task Running (HTML) (日本語 HTML)
NW52: Describes what happens when you use OTScheduleDefferedTask to schedule a task that is running.
Networking Technical Q&As 1997-10-13
OTScheduleSystemTask Cleanup (HTML) (日本語 HTML)
Deprecated - NW37: States the proper way to clean up any pending system tasks scheduled with OTScheduleSystemTask.
Networking Technical Q&As 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 Technical Q&As 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 Technical Q&As 2005-07-06
QISA (HTML) (DMG) (ZIP)
Demonstrates the basics of writing an Internet setup assistant for traditional Mac OS and Mac OS X.
Networking Sample Code 2003-05-15
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 Technical Q&As 1999-10-25
Receiving UDP Broadcasts (HTML) (日本語 HTML)
Deprecated - NW53: Explains why UDP endpoints may never receive UDP broadcast messages.
Networking Technical Q&As 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 Technical Q&As 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 Technical Q&As 2005-01-10
Sending an Email (HTML)
QA1084: Shows how to create an email in the user's prefered email application.
Networking Technical Q&As 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 Technical Q&As 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 Technical Q&As 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 Technical Q&As 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 Technical Q&As 1996-10-25
TCP Option Sizes (HTML)
Deprecated - NW27: Tells where to get more information on TCP Option sizes and setting TCP Options.
Networking Technical Q&As 1996-05-14
TCP/IP Option Sizes (HTML) (日本語 HTML)
NW62: Enumerates the TCP/IP options and their sizes for Open Transport.
Networking Technical Q&As 1999-04-26
Update: Borrowed AFP Sessions (HTML) (日本語 HTML)
TN1106: Shows how to borrow the session reference number of an AFP volume mounted by the Macintosh File System.
Networking Technical Notes 2000-08-14
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 Technical Q&As 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 Technical Q&As 2002-09-23
URL Access Manager Reference (HTML) (PDF)
Deprecated - Describes the legacy C API for transferring data to and from a URL from within an application. Replaced by CFNetwork.
Networking Reference 2006-07-13
URL Access vs. CFNetwork (HTML)
QA1291: Explains when to choose URL Access or CFNetwork when downloading files from within your application.
Networking Technical Q&As 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 Technical Q&As 2004-03-05
Using the Web Services Core Framework and CFNetwork to Access Remote SOAP Services (HTML)
Learn how to access remote SOAP-based web services that require HTTP Basic or Digest authentication.
Networking Articles 2007-03-07