Report for: dataComet-Secure |
Report date: 6/20/2001 |
File Creator: 3278 |
Data gathered by analyzer version: 1.3 |
File Type: APPL |
Data gathered on: 6/20/2001 |
|
![]() |
Common OS ServicesProcess ManagerHardware InterfacesCarbon supports most of the Process Manager. The exception is the LaunchDeskAccessory function, which is not supported.
Note that some Process Manager functions access a ProcessInfoRec data structure, which contains fields that are no longer applicable in a preemptively scheduled environment (for example, the processLocation, processFreeMem, and processActiveTime fields). Your application should avoid accessing such fields. Changes to the memory model may also affect certain fields.
GetProcessInformation
The processActiveTime field of the returned ProcessInfoRec structure is not used in Carbon on Max OS X. In Carbon on Mac OS 8 and 9, the accumulated amount of CPU time used by the process is returned in this field. In Carbon on Mac OS X, the value returned in this field is always 0. Other fields in the ProcessInfoRec structure may also no longer be applicable. Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.Device ManagerHuman Interface ToolboxCarbon does not support the Device Manager as an interface for installing or interacting with device drivers. Carbon supports only the Device Manager APIs that allow applications to read and write to open files.
Other software products (such as desk accessories) that have relied on the Device Manager interface in the past should be converted into Carbon applications.
In Mac OS X, applications can access serial devices through the device file system. An application uses the I/O Kit to obtain a path to a device file in the /dev directory. It can then use traditional UNIX serial port access through the POSIX termios API. For more detail, see Inside Mac OS X: Accessing Hardware From Applications.
PBReadSync
This function is only supported for reading from open files. Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
PBWriteAsync
This function is only supported for writing to open files. Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
PBWriteSync
This function is only supported for writing to open files. Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.Window ManagerCarbon supports the Window Manager. Be aware, however, that if you use custom window definition procedures (also known as WDEFs), you must compile them as PowerPC-native code. In addition:
Your application must use the functions defined by the Window Manager whenever it creates and disposes of Window Manager data structures. For example, instead of directly creating and disposing of window records, applications must call such Window Manager functions as GetNewCWindow and DisposeWindow.
You must revise your application so that it accesses Window Manager data structures only through accessor functions.
You are encouraged to adopt the standard Mac OS 8 window definition procedures in your application. Applications that use the standard Mac OS 8 window definition procedures inherit the Mac OS 8 human interface appearance. Applications that use custom window definition procedures work correctly, but because custom definition procedures invoke their own drawing routines, Mac OS 8 cant draw these applications with the current appearance.
NewWindow
In Carbon, you cannot pass your own storage in to the wStorage parameter.
In Carbon, NewWindow is functionally equivalent to the NewCWindow, in that NewWindow returns a color window instead of a monochrome window. Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
Carbon CoreMemory ManagerHuman Interface ToolboxCarbon supports the majority of the Memory Manager programming interface. Changes primarily affect applications that use zones, system memory, or temporary memory. For example, temporary memory allocations in Mac OS X are allocated in the applications address space. As a result, calling TempNewHandle is effectively the same as calling NewHandle.
Carbon does not support functions for accessing the system heap, as the system heap in unavailable in Mac OS X.
By adhering to the following guidelines, you can increase your applications compliance with Mac OS X memory management:
Try to use memory only within your own application heap. Review the places where you allocate memory in the system heap.
Do not pass pointers to data among applications through Apple events, Gestalt routines, or other means. For example, dont share Toolbox data structures between applications, because in Mac OS X, each application will run in its own protected address space.
Do not use inline, hard-coded addresses.
Do not modify the zone header by calling the MoreMasters function. You should instead call the function MoreMasterPointers. Note, however, that master pointer blocks do not need to be preallocated or optimized in the Mac OS X environment, so MoreMasterPointers will only benefit Carbon applications running on Mac OS 8 or 9.
Dont make assumptions about the layout of memory, such as the relative position of data stored in heaps, stacks, and other memory areas.
Dont use the DisposePtr or DisposeHandle functions on pointers or handles allocated by Toolbox managers. For example, dont call the function DisposeHandle on a control allocated by the NewControl function; use DisposeControl instead.
Because Mac OS X applications run in a large, protected memory space, memory sizing routines such as MaxMem and FreeMem work differently than before and just return a large fixed value.
MoreMasters
You should instead useMoreMasterPointers. Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later. Scrap ManagerText and Other International ServicesCarbon supports only the LoadScrap and UnloadScrap functions from the original Scrap Manager. However, Carbon supplies new features, including support for "promises," to the Scrap Manager.
LoadScrap
Carbon applications may continue calling this function on Mac OS 8; however, on Mac OS X it does nothing and is no longer necessary. Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.Font ManagerCarbon supports most Font Manager functions. However, you no longer have direct access to Font Manager data structures, and you are not able to access the list of fonts (or the data in those fonts) using the Resource Manager. You should modify your application to use the new accessor functions.TextEdit
GetFNum
You should instead use FMGetFontFamilyFromName. Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
GetFontName
You should instead use FMGetFontFamilyName. Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.Carbon supports most TextEdit functions, but TextEdit functionality has been replaced by Multilingual Text Engine (MLTE). Although there is not a one-to-one correspondence between APIs in these two technologies, you are encouraged to use MLTE in place of TextEdit.
The Carbon version of TextEdit replaces the low memory accessors for TextEdit structures as follows:
TEGet/SetScrapLength replaces LMGet/SetTEScrpLength
TEGet/SetScrapHandle replaces LMGet/SetTEScrpHandle
TEGet/SetDoTextHook replaces LMGet/SetTEDoText
TEGet/SetRecalcHook replaces LMGet/SetTERecal
The Carbon version also has a new accessor for the FindWord hook: TEGet/SetFindWordHook.
TESetWordBreak is not available in Carbon, and you should not override wordBreak in order to customize wordBreak behavior. Instead, override the FindWord hook using the TEGet/SetFindWordHook accessors. Previously, the wordBreak hook was used on Roman-only systems, a distinction that no longer exists in Carbon. TERec's wordBreak field is ignored in Carbon.
TEActivate
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TEAutoView
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TECalText
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TEClick
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TECopy
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TECut
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TEDeactivate
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TEDelete
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TEDispose
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TEFromScrap
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TEIdle
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TEInsert
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TEKey
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TENew
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TEPaste
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TEScrapHandle
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TEScroll
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TESetSelect
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TETextBox
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
TEUpdate
Available in Carbon 1.0.2 and later when running Mac OS 8.1 or later.
Carbon CoreFile ManagerCommon OS ServicesWhile Carbon supports most of the File Manager interface, there are a number of significant changes.
You should not access File Manager structures directly if accessor functions for the structure exist. For example, you should call PBGetFCBInfo rather than calling LMGetFCBSPtr and walking the FCB table.
Similarly, you should create file system specification (FSSpec) records using the functions PBMakeFSSpec or FSMakeFSSpec instead of filling in your own structures. File system specification records must contain a volume reference number, a parent directory, and a name. Substituting a working directory for the volume reference number or a full or partial pathname for the name is not supported.
File Manager functions that support MFS (the Macintosh file system) are not supported in Carbon. These include
functions, such as OpenWD and GetWDInfo, that manipulate working directories
functions that identify a file or folder using a volume reference number and pathname but not a parent directory ID. You should use the HFS version of these calls (which use a parent directory ID) instead.
Functions that cannot be called by PowerPC applications (such as PBGetAltAccessSync and PBGetAltAccessAsync) are not supported.
You should use only documented File Manager interfaces in your application. For example, you should use a documented API call to get low memory information rather than access undocumented low memory global variables or vectors directly.
The default volume format for Carbon is the Mac OS Extended format; in most cases you will not need to modify your application to gain this volume support.
Carbon does not support the File System Manager (FSM) functions defined in the header file FSM.h. FSM plug-ins today often must make assumptions about File Manager data structures that may not be valid in Carbon. In addition, some plug-ins use 68K calling conventions when calling internal File Manager functions. Since the File System Manager was designed for a single-threaded file system, it cannot use the full threading capabilities of Mac OS X.Low Memory Accessors
CloseWD
Working directories are unsupported in Carbon. Not available in Carbon.
Create
This function is not supported in Carbon. Use the functionFSpCreate instead. To create a file with a long Unicode filename, or a file that can grow beyond 2 GB, use the FSCreateFileUnicode function. Not available in Carbon.
FSDelete
This function is not supported in Carbon. Use the functionFSpDelete instead. Not available in Carbon.
FSOpen
This function is not supported in Carbon. Use the functionFSpOpenDF to open the data fork of a file on HFS volumes; use the function FSpOpenRF to open the resource fork of a file on HFS volumes.
To open a data or resource fork that is larger than 2 GB on an HFS Plus volume, use theFSOpenFork function. Not available in Carbon.
GetFInfo
This function is not supported in Carbon. Use the functionFSpGetFInfo instead. Not available in Carbon.
GetVol
This function is unsupported in Carbon. Instead, use theHGetVol function. Not available in Carbon.
OpenWD
Working directories are unsupported in Carbon. Not available in Carbon.
PBGetFInfoSync
This function is not supported in Carbon. Use the functionPBHGetFInfoSync instead.
To get information about files and directories on HFS Plus volumes, use thePBGetCatalogInfoSync function. Not available in Carbon.
PBGetVInfoSync
This function is not supported in Carbon. Use the functionPBHGetVInfoSync instead. Not available in Carbon.
PBGetVolSync
This function is unsupported in Carbon. Instead, use thePBHGetVolSync function. Not available in Carbon.
PBOpenWDSync
Working directories are unsupported in Carbon. Not available in Carbon.
SetFInfo
This function is not supported in Carbon. Use the functionFSpSetFInfo instead. Not available in Carbon.
SetVol
This function is unsupported in Carbon. Instead, use theHSetVol function. Not available in Carbon. Carbon supports many of the accessor functions for low-memory variables. However, you should always avoid using low-memory accessors if there are direct Mac OS Toolbox calls to obtain the same information. For example:
Use the function TickCount instead of the low-memory accessor function LMGetTicks.
Use the function FrontWindow instead of the low-memory accessor function LMGetWindowList, when possible.
Use the function PBGetFCBInfo instead of walking the FCB table with the low-memory accessor function LMGetFCBSPtr.
In general, dont think of the values returned by low-memory accessor routines as residing in low memorythink of them as information, possibly associated with a specific Toolbox manager, that is returned by the Mac OS. In the future, Apple may supply new functions, distributed among the Mac OS Toolbox managers, for retrieving this information.
Some low-memory accessor functions are obsolete in Mac OS X. The following Resource Manager-related functions are not supported:
LMGetTopMapHndl and LMSetTopMapHndl
LMGetSysMapHndl and LMSetSysMapHndl
LMGetCurMapHndl and LMSetCurMapHndlMemory Management Utilities
LMGetCurDirStore
Not available in Carbon.
LMGetMBarHeight
Use GetMBarHeight instead. If you are using this function to hide the menu bar, use Hide/ShowMenuBar instead. Not available in Carbon.
LMGetTEScrpLength
Not available in Carbon.
LMGetTime
You should instead use GetDateTime. Not available in Carbon.
LMSetTEScrpLength
Not available in Carbon.While Carbon supports most of the Memory Management Utilities, there are changes to functions that assume a 68K runtime environment.
Functions that flush caches on 68K processors (such as FlushInstructionCache, FlushDataCache, and FlushCodeCacheRange) are no longer supported.
Functions such as SetA5 or SetCurrentA5 do nothing when running in Mac OS X. However, these functions should work normally when running in Mac OS 8 or 9.
The functions GetMMUMode and SwapMMUMode are not supported because all PowerPC applications use 32-bit addressing, even if they are not Carbon-compliant.
The SysEnvirons function is no longer supported since the Gestalt Manager can provide the same information. You should call the functions FindFolder and Gestalt instead.Memory Manager
SysEnvirons
Uses working directories. Use FindFolder and Gestalt instead. Not available in Carbon.Carbon supports the majority of the Memory Manager programming interface. Changes primarily affect applications that use zones, system memory, or temporary memory. For example, temporary memory allocations in Mac OS X are allocated in the applications address space. As a result, calling TempNewHandle is effectively the same as calling NewHandle.
Carbon does not support functions for accessing the system heap, as the system heap in unavailable in Mac OS X.
By adhering to the following guidelines, you can increase your applications compliance with Mac OS X memory management:
Try to use memory only within your own application heap. Review the places where you allocate memory in the system heap.
Do not pass pointers to data among applications through Apple events, Gestalt routines, or other means. For example, dont share Toolbox data structures between applications, because in Mac OS X, each application will run in its own protected address space.
Do not use inline, hard-coded addresses.
Do not modify the zone header by calling the MoreMasters function. You should instead call the function MoreMasterPointers. Note, however, that master pointer blocks do not need to be preallocated or optimized in the Mac OS X environment, so MoreMasterPointers will only benefit Carbon applications running on Mac OS 8 or 9.
Dont make assumptions about the layout of memory, such as the relative position of data stored in heaps, stacks, and other memory areas.
Dont use the DisposePtr or DisposeHandle functions on pointers or handles allocated by Toolbox managers. For example, dont call the function DisposeHandle on a control allocated by the NewControl function; use DisposeControl instead.
Because Mac OS X applications run in a large, protected memory space, memory sizing routines such as MaxMem and FreeMem work differently than before and just return a large fixed value.Mixed Mode Manager
MaxApplZone
This routine is not needed by PowerPC-based applications because they can specify a stack size in the cfrg resource. Not available in Carbon.Mac OS X will not run 68K code. However, Carbon supports universal procedure pointers (UPPs) transparently, so you do not have to change them or remove them from your code. You may want to keep Mixed Mode Manager calls in your application to maintain compatibility with the current version of the Mac OS. Mixed Mode Manager calls from Carbon applications running on Mac OS 8 or 9 function normally.
Typically, applications should use ProcPtrs for their own code and plug-ins and use the new system-supplied UPP creation functions for Toolbox callback UPPs. You still need to dispose of those UPPs (using the corresponding disposal function), so that any allocated memory can be cleaned up when your application is running on Mac OS 8 or 9.Patch Manager
CallUniversalProc
Not available in Carbon.
DisposeRoutineDescriptor
Use a specific UPP disposal routine; e.g., use Dispose ControlDefinitionProc instead of the more general function DisposeRoutineDescriptor. Not available in Carbon.
NewRoutineDescriptor
Applications should use ProcPtrs for their own code and plug-ins, and use the system-supplied UPP creation functions (such as NewModalFilterProc) for Toolbox callback UPPs. You still need to dispose of those UPPs using the appropriate system-supplied disposal function so that any allocated memory can be cleaned up when your application is running on Mac OS 8 or 9. Not available in Carbon.Carbon does not support the Patch Manager and there currently is no direct replacement. However, you can programmatically extend the system in various ways, such as by loading plug-ins or shared libraries, or by writing I/O Kit drivers or other kernel extensions.Resource Manager
GetToolTrapAddress
Not available in Carbon.
GetToolboxTrapAddress
Not available in Carbon.
NGetTrapAddress
Not available in Carbon.
SetToolTrapAddress
Not available in Carbon.Carbon supports the Resource Manager, with the following exceptions, which primarily involve ROM resource functions and functions that access the resource map:
There is no ROM in Mac OS X, so the ROM-related functions RGetResource and TempInsertROMMap are not supported.
There is no way to directly walk the resource chain. Instead, Carbon supplies a small number of new functions for proper management of the resource chain.
The function RsrcMapEntry, which provides an interface to the map handle format, is not supported.
The low-memory global variables JCheckLoad, TopMapHndl, CurMap, and SysMapHndl are not supported.
Note also that you should not attempt to store resources in the system heap, since you will not have the same access to the system heap as you do in previous versions of the Mac OS.
CreateResFile
This function is no longer supported. Instead, you may use any of the functions FSCreateResourceFile, FSpCreateResFile, and HCreateResFile instead. Not available in Carbon.
OpenResFile
Carbon does not support MFS calls. Use HFS+ calls instead. Not available in Carbon.Disk Initialization ManagerGraphics ServicesCarbon does not support the Disk Initialization Manager. Disk Initialization is supported by the system. Mac OS X applications that need to initialize disks can do so using new APIs in the IOKit.
Note that Carbon does not support the diskEvt event. If your application needs to identify disk events, you will need to handle volume events which will be available in the Carbon Event Manager.
DIBadMount
Not available in Carbon.Printing ManagerHardware InterfacesThe original Printing Manager defined in Printing.h is not supported in Carbon. Carbon applications must use the Carbon Printing Manager.QuickDraw Manager
PrClose
Replace PrClose withPMEnd . Not available in Carbon.
PrCloseDoc
Replace PrCloseDoc withPMEndDocument . Not available in Carbon.
PrClosePage
Replace PrClosePage withPMEndPage . Not available in Carbon.
PrError
Replace PrError withPMError
. Not available in Carbon.
PrGeneral
Replace PrGeneral withPMGeneral . Not available in Carbon.
PrJobDialog
Replace PrJobDialog withPMPrintDialog . Not available in Carbon.
PrOpen
Replace PrOpen withPMBegin. Not available in Carbon.
PrOpenDoc
Replace PrOpenDoc withPMBeginDocument . Not available in Carbon.
PrOpenPage
Replace PrOpenPage withPMBeginPage . Not available in Carbon.
PrPicFile
This function is obsolete. Printer drivers must perform their own spooling. Not available in Carbon.
PrSetError
Replace PrSetError withPMSetError . Not available in Carbon.
PrStlDialog
Replace PrStlDialog withPMPageSetUpDialog . Not available in Carbon.
PrValidate
Replace PrValidate with calls toPMValidatePageFormat andPMValidatePrintSettings
. Not available in Carbon.
PrintDefault
Replace PrintDefault with calls toPMDefaultPageFormat andPMDefaultPrintSettings
. Not available in Carbon.Carbon supports most of the QuickDraw programming interface.
Carbon applications should use CreateNewPort and DisposePort to open and close graphics ports, rather than OpenPort, OpenCPort, ClosePort, and CloseCPort.
Carbon adds functions to get and set port data without accessing port data structures directly. For example, you can use such functions as GetPixBounds, GetPortFillPixPat, SetPortBounds, and SetPortPenSize.
In the past, parts of QuickDraw have been documented in Inside Macintosh as the Color Manager and Cursor Utilities. Note, however, that Inside Macintosh: Imaging with QuickDraw describes animated cursor functions, such as SpinCursor, that are available in the MPW programming environment and possibly in other environments, but not in system software. These animated cursor functions, which are defined in the MPW interface file CursorCtl.h, are not supported by Carbon.
InitGraf
In Carbon, the Mac OS automatically initializes Quickdraw for every application. When the Mac OS initializes QuickDraw, the Mac OS also automatically calls InitGraf.
Not available in Carbon.Device ManagerHuman Interface ToolboxCarbon does not support the Device Manager as an interface for installing or interacting with device drivers. Carbon supports only the Device Manager APIs that allow applications to read and write to open files.
Other software products (such as desk accessories) that have relied on the Device Manager interface in the past should be converted into Carbon applications.
In Mac OS X, applications can access serial devices through the device file system. An application uses the I/O Kit to obtain a path to a device file in the /dev directory. It can then use traditional UNIX serial port access through the POSIX termios API. For more detail, see Inside Mac OS X: Accessing Hardware From Applications.Serial Driver
CloseDriver
Not available in Carbon.
Control
Not available in Carbon.
KillIO
Not available in Carbon.
OpenDeskAcc
Desk accessories are not supported in Carbon. Not available in Carbon.
OpenDriver
Not available in Carbon.
PBControlAsync
Not available in Carbon.
PBControlSync
Not available in Carbon.
PBOpenAsync
Not available in Carbon.
PBOpenSync
Not available in Carbon.Carbon does not support the Serial Driver, because it accesses hardware directly. You can use this manager through a non-Carbon plug-in for Mac OS 8. For Mac OS X, you should use the comparable APIs supplied with the IOKit.
SerClrBrk
Not available in Carbon.
SerGetBuf
Not available in Carbon.
SerReset
Not available in Carbon.
SerSetBrk
Not available in Carbon.
SerSetBuf
Not available in Carbon.Dialog ManagerNetworking and Communication ServicesCarbon supports the majority of the Dialog Manager. However, your application must access Dialog Manager data structures only through the supplied accessor functions. Furthermore, your application must use the functions provided for creating and disposing of Dialog Manager data structures.Event Manager
CloseDialog
The CloseDialog function is not supported because developers do not allocate their own memory for dialog boxes in Carbon. Use the DisposeDialog function to dismiss a dialog box instead. Not available in Carbon.
InitDialogs
InitDialogs is not supported in Carbon. There is no need to initialize the Dialog Manager because the shared library is loaded as needed. Not available in Carbon.Carbon supports the majority of the Event Manager.
High-level events APIs (as contained in EPPC.h) are not supported. You should use Apple events instead.
Carbon does not support the diskEvt event. Support for volume mount and unmount events will be available in the Carbon Event Manager.
Low-level event queue functions, such as GetEvQHdr and PPostEvent, are no longer supported.
Application-defined function-key procedures are not supported in Carbon.
Note that Carbon introduces a new event model to the Mac OS, with a new set of APIs. Developers are strongly encouraged to use the Carbon Event Manager APIs in place of the Event Manager APIs. The Carbon Event Manager offers a simple yet flexible approach to event handling that greatly reduces the amount of code needed to write a basic application. Morevover, the Carbon Event Manager's streamlined event handling enhances system performance on Mac OS X through more efficient allocation of processing time. Applications that use the Carbon Event Manager not only run better on Mac OS X, they help improve overall performance and responsiveness, creating a better experience for our customers.Help Manager
SystemClick
Desk accessories are not supported in Carbon. Not available in Carbon.
SystemTask
In Carbon, the Event Manager automatically handles all task scheduling. Not available in Carbon.Carbon does not support the classic Help Manager defined by Balloons.h. Your applications should use the Carbon Help Manager instead, defined in MacHelp.hMenu Manager
HMGetHelpMenuHandle
Not available in Carbon.Carbon supports the Menu Manager, with the following changes:
Your application must use the functions defined by the Menu Manager whenever it creates and disposes of Menu Manager data structures. Some applications, for example, create menus by using the Resource Manager function GetResource (instead of the Menu Manager function GetMenu) and dispose of them by calling ReleaseResource instead of DisposeMenu. This practice is not supported in Carbon.
The MenuInfo structure is opaque in Carbon. You must revise your application so that it accesses Menu Manager data structures only through accessor functions.
There are several Menu Manager functions that deal with manipulating menu color information tables. Apple recommends that you stop using them. The Appearance Manager generally disregards these color tables and instead uses the colors defined for the current appearance.
You are strongly encouraged to adopt the standard Mac OS 8 menu definition procedures (also known as MDEFs) in your application. Your menus will then inherit the systemwide appearance and, furthermore, take advantage of other Menu Manager enhancements planned for the future. Note, however, that if you must use custom menu definition procedures, you must compile them as PowerPC-native code.Scrap Manager
CheckItem
CheckItem has been renamed to CheckMenuItem in Carbon. Not available in Carbon.
CountMItems
CountMItems has been renamed to CountMenuItems in Carbon. Not available in Carbon.
DisableItem
Replaced by DisableMenuItem. Not available in Carbon.
EnableItem
Replaced by EnableMenuItem. Not available in Carbon.
InitMenus
InitMenus is not supported in Carbon. There is no need to initialize the Menu Manager because the shared library is loaded as needed. Not available in Carbon.
SystemEdit
Carbon does not support desk accessories. Not available in Carbon.Carbon supports only the LoadScrap and UnloadScrap functions from the original Scrap Manager. However, Carbon supplies new features, including support for "promises," to the Scrap Manager.Standard File Package
GetScrap
You should instead use the functions GetScrapFlavorSize and GetScrapFlavorData. Not available in Carbon.
PutScrap
You should instead use the function PutScrapFlavor. Not available in Carbon.
ZeroScrap
You should instead use the function ClearCurrentScrap. Not available in Carbon.Carbon does not support the Standard File Package. You must use Navigation Services instead.Window Manager
SFGetFile
Not available in Carbon.
SFPGetFile
Not available in Carbon.
SFPPutFile
Not available in Carbon.
SFPutFile
Not available in Carbon.Carbon supports the Window Manager. Be aware, however, that if you use custom window definition procedures (also known as WDEFs), you must compile them as PowerPC-native code. In addition:
Your application must use the functions defined by the Window Manager whenever it creates and disposes of Window Manager data structures. For example, instead of directly creating and disposing of window records, applications must call such Window Manager functions as GetNewCWindow and DisposeWindow.
You must revise your application so that it accesses Window Manager data structures only through accessor functions.
You are encouraged to adopt the standard Mac OS 8 window definition procedures in your application. Applications that use the standard Mac OS 8 window definition procedures inherit the Mac OS 8 human interface appearance. Applications that use custom window definition procedures work correctly, but because custom definition procedures invoke their own drawing routines, Mac OS 8 cant draw these applications with the current appearance.
CloseWindow
The CloseWindow function is not supported because developers do not allocate their own memory for windows in Carbon. Use the DisposeWindow function to remove a window instead. Not available in Carbon.
InitWindows
InitWindows is not supported in Carbon. There is no need to initialize the Window Manager because the shared library is loaded as needed. Not available in Carbon.
InvalRect
Calls InvalWindowRect, which takes a window pointer as an additional parameter.
Invalidation works on windows, not ports, and because windows are not ports in Carbon, this change is necessary. Not available in Carbon.
ValidRect
Calls ValidWindowRect, which takes a window pointer as an additional parameter. Validation works on windows, not ports, and because windows are not ports in Carbon, this change is necessary. Not available in Carbon.Communications ToolboxText and Other International ServicesCarbon does not support the Communications Toolbox.
CRMSearch
Not available in Carbon.
InitCRM
Not available in Carbon.Font ManagerCarbon supports most Font Manager functions. However, you no longer have direct access to Font Manager data structures, and you are not able to access the list of fonts (or the data in those fonts) using the Resource Manager. You should modify your application to use the new accessor functions.Text Utilities
InitFonts
There is no need to initialize the Font Manager because the shared library is loaded as needed. Not available in Carbon.Carbon supports the majority of Text Utilities. However, many obsolete functions (such as those prefixed with iu or IU ) are not supported.TextEdit
c2pstr
You should instead use CopyCStringToPascal. Not available in Carbon.
p2cstr
You should instead use CopyPascalStringToC. Not available in Carbon.Carbon supports most TextEdit functions, but TextEdit functionality has been replaced by Multilingual Text Engine (MLTE). Although there is not a one-to-one correspondence between APIs in these two technologies, you are encouraged to use MLTE in place of TextEdit.
The Carbon version of TextEdit replaces the low memory accessors for TextEdit structures as follows:
TEGet/SetScrapLength replaces LMGet/SetTEScrpLength
TEGet/SetScrapHandle replaces LMGet/SetTEScrpHandle
TEGet/SetDoTextHook replaces LMGet/SetTEDoText
TEGet/SetRecalcHook replaces LMGet/SetTERecal
The Carbon version also has a new accessor for the FindWord hook: TEGet/SetFindWordHook.
TESetWordBreak is not available in Carbon, and you should not override wordBreak in order to customize wordBreak behavior. Instead, override the FindWord hook using the TEGet/SetFindWordHook accessors. Previously, the wordBreak hook was used on Roman-only systems, a distinction that no longer exists in Carbon. TERec's wordBreak field is ignored in Carbon.
TEInit
There is no need to initialize TextEdit because the shared library is loaded as needed. Not available in Carbon.
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetWindowList | |||
Access supported if through LMSetWindowList | |||
Access supported if through LMSetWindowList | |||
Access supported if through LMSetWindowList | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMSetTEScrpLength | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMSetTEScrpLength | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMSetTEScrpLength | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMSetTEScrpLength | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetUTableBase | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMSetSFSaveDisk | |||
Access supported if through LMSetCurDirStore | |||
Access supported if through LMSetSFSaveDisk | |||
Access supported if through LMSetCurDirStore | |||
Access supported if through LMGetSFSaveDisk | |||
Access supported if through LMGetCurDirStore | |||
Access supported if through LMSetSFSaveDisk | |||
Access supported if through LMSetCurDirStore | |||
Access supported if through LMSetSFSaveDisk | |||
Access supported if through LMSetCurDirStore | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpLength | |||
Access supported if through LMSetTEScrpHandle | |||
Access supported if through LMSetTEScrpLength | |||
Access supported if through LMSetTEScrpHandle | |||
Access supported if through LMSetTEScrpLength | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMSetTEScrpHandle | |||
Access supported if through LMSetTEScrpLength | |||
Access supported if through LMGetTEScrpLength | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpLength | |||
Access supported if through LMGetTEScrpLength | |||
Access supported if through LMGetTEScrpLength | |||
Access supported if through LMGetTEScrpLength | |||
Access supported if through LMGetTEScrpLength | |||
Access supported if through LMGetTEScrpLength | |||
Access supported if through LMSetSFSaveDisk | |||
Access supported if through LMSetCurDirStore | |||
Access supported if through LMGetTEScrpLength | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpLength | |||
Access supported if through LMGetMenuList | |||
Access supported if through LMGetMenuList | |||
Access supported if through LMSetSFSaveDisk | |||
Access supported if through LMSetCurDirStore | |||
Access supported if through LMGetSFSaveDisk | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetMBarHeight | |||
Access supported if through LMSetSFSaveDisk | |||
Access supported if through LMSetCurDirStore | |||
Access supported if through LMSetSFSaveDisk | |||
Access supported if through LMSetCurDirStore | |||
Access supported if through LMGetTicks | |||
Access supported if through LMSetSFSaveDisk | |||
Access supported if through LMSetCurDirStore | |||
Access supported if through LMSetSFSaveDisk | |||
Access supported if through LMSetCurDirStore | |||
Access supported if through LMGetSFSaveDisk | |||
Access supported if through LMGetCurDirStore | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTicks | |||
Access supported if through LMGetTicks | |||
Access supported if through LMGetTicks | |||
Access supported if through LMGetTicks | |||
Access supported if through LMGetTicks | |||
Access supported if through LMGetTicks | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTicks | |||
Access supported if through LMGetTicks | |||
Access supported if through LMGetTicks | |||
Access supported if through LMGetTicks | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTicks | |||
Access supported if through LMGetTicks | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTicks | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTEScrpLength | |||
Access supported if through LMGetMenuList | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTEScrpHandle | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime | |||
Access supported if through LMGetTime |
These resources have the system heap bit set. The resource name is included, if defined.
Copyright 1998-2001 Apple Computer, Inc. All rights reserved.