123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680 |
- {
- File: HIToolbox/Scrap.h
-
- Contains: Scrap Manager Interfaces.
-
- Version: HIToolbox-219.4.81~2
-
- Copyright: © 1985-2005 by Apple Computer, Inc., all rights reserved
-
- Bugs?: For bug reports, consult the following page on
- the World Wide Web:
-
- http://www.freepascal.org/bugs.html
-
- }
- { Pascal Translation Updated: Peter N Lewis, <[email protected]>, August 2005 }
- {
- Modified for use with Free Pascal
- Version 200
- Please report any bugs to <[email protected]>
- }
- {$mode macpas}
- {$packenum 1}
- {$macro on}
- {$inline on}
- {$CALLING MWPASCAL}
- unit Scrap;
- interface
- {$setc UNIVERSAL_INTERFACES_VERSION := $0342}
- {$setc GAP_INTERFACES_VERSION := $0200}
- {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
- {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
- {$endc}
- {$ifc defined CPUPOWERPC and defined CPUI386}
- {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
- {$endc}
- {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
- {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
- {$endc}
- {$ifc not defined __ppc__ and defined CPUPOWERPC}
- {$setc __ppc__ := 1}
- {$elsec}
- {$setc __ppc__ := 0}
- {$endc}
- {$ifc not defined __i386__ and defined CPUI386}
- {$setc __i386__ := 1}
- {$elsec}
- {$setc __i386__ := 0}
- {$endc}
- {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
- {$error Conflicting definitions for __ppc__ and __i386__}
- {$endc}
- {$ifc defined __ppc__ and __ppc__}
- {$setc TARGET_CPU_PPC := TRUE}
- {$setc TARGET_CPU_X86 := FALSE}
- {$elifc defined __i386__ and __i386__}
- {$setc TARGET_CPU_PPC := FALSE}
- {$setc TARGET_CPU_X86 := TRUE}
- {$elsec}
- {$error Neither __ppc__ nor __i386__ is defined.}
- {$endc}
- {$setc TARGET_CPU_PPC_64 := FALSE}
- {$ifc defined FPC_BIG_ENDIAN}
- {$setc TARGET_RT_BIG_ENDIAN := TRUE}
- {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
- {$elifc defined FPC_LITTLE_ENDIAN}
- {$setc TARGET_RT_BIG_ENDIAN := FALSE}
- {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
- {$elsec}
- {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
- {$endc}
- {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
- {$setc CALL_NOT_IN_CARBON := FALSE}
- {$setc OLDROUTINENAMES := FALSE}
- {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
- {$setc OPAQUE_UPP_TYPES := TRUE}
- {$setc OTCARBONAPPLICATION := TRUE}
- {$setc OTKERNEL := FALSE}
- {$setc PM_USE_SESSION_APIS := TRUE}
- {$setc TARGET_API_MAC_CARBON := TRUE}
- {$setc TARGET_API_MAC_OS8 := FALSE}
- {$setc TARGET_API_MAC_OSX := TRUE}
- {$setc TARGET_CARBON := TRUE}
- {$setc TARGET_CPU_68K := FALSE}
- {$setc TARGET_CPU_MIPS := FALSE}
- {$setc TARGET_CPU_SPARC := FALSE}
- {$setc TARGET_OS_MAC := TRUE}
- {$setc TARGET_OS_UNIX := FALSE}
- {$setc TARGET_OS_WIN32 := FALSE}
- {$setc TARGET_RT_MAC_68881 := FALSE}
- {$setc TARGET_RT_MAC_CFM := FALSE}
- {$setc TARGET_RT_MAC_MACHO := TRUE}
- {$setc TYPED_FUNCTION_POINTERS := TRUE}
- {$setc TYPE_BOOL := FALSE}
- {$setc TYPE_EXTENDED := FALSE}
- {$setc TYPE_LONGLONG := TRUE}
- uses MacTypes,CFBase,MixedMode,MacErrors,CFString;
- {$ALIGN MAC68K}
- {
- ________________________________________________________________
- UNIVERSAL SCRAP MANAGER INTERFACES
- ________________________________________________________________
- The following interfaces are available when compiling for BOTH
- Carbon AND Mac OS 8.
- ________________________________________________________________
- }
- {
- While we're in here mucking about, we defined a new type to
- to put some confusion to rest. The old calls, as well as the
- new calls, use the new type. Existing clients should be
- blissfully ignorant.
- }
- type
- ScrapFlavorType = FourCharCode;
- {
- Newsflash! After 15 years of arduous toil, it's finally possible
- for specially trained typists wielding advanced text editing
- technology to define symbolic names for commonly used scrap
- flavor type constants! Apple triumphs again!
- }
- const
- kScrapFlavorTypePicture = $50494354 (* 'PICT' *); { contents of a PicHandle}
- kScrapFlavorTypeText = $54455854 (* 'TEXT' *); { stream of characters}
- kScrapFlavorTypeTextStyle = $7374796C (* 'styl' *); { see TEGetStyleScrapHandle}
- kScrapFlavorTypeMovie = $6D6F6F76 (* 'moov' *); { reference to a movie}
- kScrapFlavorTypeSound = $736E6420 (* 'snd ' *); { see SndRecord and SndPlay}
- kScrapFlavorTypeUnicode = $75747874 (* 'utxt' *); { stream of UTF16 characters (internal representation)}
- kScrapFlavorTypeUTF16External = $75743136 (* 'ut16' *); { stream of UTF16 characters (external representation)}
- kScrapFlavorTypeUnicodeStyle = $7573746C (* 'ustl' *); { ATSUI defines; Textension uses}
- {
- If you are a Carbon client and you need to run on Mac OS 8,
- you may still need to load and unload the scrap. Under Mac OS
- X, the scrap is held by the pasteboard server instead of in a
- handle in your app's heap, so LoadScrap and UnloadScrap do
- nothing when called under Mac OS X.
- }
- {
- * LoadScrap()
- *
- * Mac OS X threading:
- * Not thread safe
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in InterfaceLib 7.1 and later
- }
- function LoadScrap: OSStatus; external name '_LoadScrap';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
- {
- * UnloadScrap()
- *
- * Mac OS X threading:
- * Not thread safe
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: in InterfaceLib 7.1 and later
- }
- function UnloadScrap: OSStatus; external name '_UnloadScrap';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
- {
- * InfoScrap()
- *
- * Availability:
- * Mac OS X: not available
- * CarbonLib: not available
- * Non-Carbon CFM: in InterfaceLib 7.1 and later
- }
- {
- * GetScrap()
- *
- * Availability:
- * Mac OS X: not available
- * CarbonLib: not available
- * Non-Carbon CFM: in InterfaceLib 7.1 and later
- }
- {
- * ZeroScrap()
- *
- * Availability:
- * Mac OS X: not available
- * CarbonLib: not available
- * Non-Carbon CFM: in InterfaceLib 7.1 and later
- }
- {
- * PutScrap()
- *
- * Availability:
- * Mac OS X: not available
- * CarbonLib: not available
- * Non-Carbon CFM: in InterfaceLib 7.1 and later
- }
- {
- ________________________________________________________________
- CARBON SCRAP MANAGER INTERFACES
- ________________________________________________________________
- The following interfaces are available only when compiling for
- Carbon.
- ________________________________________________________________
- }
- {
- When promising a scrap flavor, it's OK if you
- don't yet know how big the flavor data will be.
- In this case, just pass kScrapFlavorSizeUnknown
- for the flavor data size.
- }
- const
- kScrapFlavorSizeUnknown = -1;
- {
- kScrapReservedFlavorType is a flavor type which is reserved
- for use by Scrap Manager. If you pass it to Scrap Manager,
- it will be rejected.
- }
- const
- kScrapReservedFlavorType = $73726674 (* 'srft' *);
- {
- We've added scrap flavor flags ala Drag Manager.
- kScrapFlavorMaskNone means you want none of the flags.
- kScrapFlavorSenderOnlyMask means only the process which
- put the flavor on the scrap can see it. If some other
- process put a flavor with this flag on the scrap,
- your process will never see the flavor, so there's
- no point in testing for this flag.
- kScrapFlavorTranslated means the flavor was translated
- from some other flavor in the scrap by Translation Manager.
- Most callers should not care about this bit.
- }
- const
- kScrapFlavorMaskNone = $00000000;
- kScrapFlavorMaskSenderOnly = $00000001;
- kScrapFlavorMaskTranslated = $00000002;
- type
- ScrapFlavorFlags = UInt32;
- {
- ScrapFlavorInfo describes a single flavor within
- a scrap.
- }
- type
- ScrapFlavorInfoPtr = ^ScrapFlavorInfo;
- ScrapFlavorInfo = record
- flavorType: ScrapFlavorType;
- flavorFlags: ScrapFlavorFlags;
- end;
- type
- ScrapRef = ^SInt32; { an opaque 32-bit type }
- {
- kScrapRefNone is guaranteed to be an invalid ScrapRef. This
- is convenient when initializing application variables.
- }
- const
- kScrapRefNone = nil;
- {
- Defined Apple scrap names for GetScrapByName
- kScrapClipboardScrap traditional clipboard scrap
- kScrapFindScrap compatible with Cocoa's global find scrap
- }
- {$ifc USE_CFSTR_CONSTANT_MACROS}
- {$definec kScrapClipboardScrap CFSTRP('com.apple.scrap.clipboard')}
- {$endc}
- {$ifc USE_CFSTR_CONSTANT_MACROS}
- {$definec kScrapFindScrap CFSTRP('com.apple.scrap.find')}
- {$endc}
- { Enumerated options to be passed to GetScrapByName}
- const
- kScrapGetNamedScrap = 0; { get current named scrap without bumping}
- kScrapClearNamedScrap = 1 shl 0; { acquire the named scrap, bumping and clearing}
- {
- GetScrapByName allows access to an indefinite number of public or private
- scraps. The constant kScrapClipboardScrap refers to the "current" scrap
- we've all come to know and love. kScrapFindScrap allows Carbon apps to
- interact seamlessly with Cocoa's global find scrap. Note that calling:
- GetScrapByName( kScrapClipboardScrap, kScrapGetNamedScrap, &scrap );
- is an exact match to the call:
-
- GetCurrentScrap( &scrap );
- Additionally, a call to:
- GetScrapByName( kScrapClipboardScrap, kScrapClearNamedScrap, &scrap );
- is a replacement for the sequence:
-
- ClearCurrentScrap();
- GetCurrentScrap( &scrap );
- You can use this API to generate your own private scraps to use as a high
- level interprocess communication between your main and helper apps. The Java
- naming convention is suggested for your scraps ( ie. com.joeco.scrap.secret ).
-
- CarbonLib does not support arbitrary named scraps; when calling this API on
- CarbonLib, kScrapClipboardScrap is the only supported value for the name parameter.
- }
- {
- * GetScrapByName()
- *
- * Mac OS X threading:
- * Not thread safe
- *
- * Availability:
- * Mac OS X: in version 10.1 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.5 and later
- * Non-Carbon CFM: not available
- }
- function GetScrapByName( name: CFStringRef; options: OptionBits; var scrap: ScrapRef ): OSStatus; external name '_GetScrapByName';
- (* AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER *)
- {
- GetCurrentScrap obtains a reference to the current scrap.
- The ScrapRef obtained via GetCurrentScrap will become
- invalid and unusable after the scrap is cleared.
- }
- {
- * GetCurrentScrap()
- *
- * Mac OS X threading:
- * Not thread safe
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: not available
- }
- function GetCurrentScrap( var scrap: ScrapRef ): OSStatus; external name '_GetCurrentScrap';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
- {
- GetScrapFlavorFlags tells you [a] whether the scrap contains
- data for a particular flavor and [b] some things about that
- flavor if it exists. This call never blocks, and is useful
- for deciding whether to enable the Paste item in your Edit
- menu, among other things.
- }
- {
- * GetScrapFlavorFlags()
- *
- * Mac OS X threading:
- * Not thread safe
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: not available
- }
- function GetScrapFlavorFlags( scrap: ScrapRef; flavorType: ScrapFlavorType; var flavorFlags: ScrapFlavorFlags ): OSStatus; external name '_GetScrapFlavorFlags';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
- {
- GetScrapFlavorSize gets the size of the data of the specified
- flavor. This function blocks until the specified flavor
- data is available. GetScrapFlavorSize is intended as a prelude
- to allocating memory and calling GetScrapFlavorData.
- }
- {
- * GetScrapFlavorSize()
- *
- * Mac OS X threading:
- * Not thread safe
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: not available
- }
- function GetScrapFlavorSize( scrap: ScrapRef; flavorType: ScrapFlavorType; var byteCount: Size ): OSStatus; external name '_GetScrapFlavorSize';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
- {
- GetScrapFlavorData gets the data from the specified flavor in the
- specified scrap. This function blocks until the specified flavor
- data is available. Specify the maximum size your buffer can contain;
- on output, this function produces the number of bytes that were
- available (even if this is more than you requested).
- }
- {
- * GetScrapFlavorData()
- *
- * Mac OS X threading:
- * Not thread safe
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: not available
- }
- function GetScrapFlavorData( scrap: ScrapRef; flavorType: ScrapFlavorType; var byteCount: Size; destination: UnivPtr ): OSStatus; external name '_GetScrapFlavorData';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
- {
- ClearCurrentScrap clears the current scrap. Call this
- first when the user requests a Copy or Cut operation --
- even if you maintain a private scrap! You should not wait
- until receiving a suspend event to call ClearCurrentScrap. Call
- it immediately after the user requests a Copy or Cut operation.
- You don't need to put any data on the scrap immediately (although
- it's perfectly fine to do so). You DO need to call GetCurrentScrap
- after ClearCurrentScrap so you'll have a valid ScrapRef to pass
- to other functions.
- }
- {
- * ClearCurrentScrap()
- *
- * Mac OS X threading:
- * Not thread safe
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: not available
- }
- function ClearCurrentScrap: OSStatus; external name '_ClearCurrentScrap';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
- {
- ClearScrap will clear the scrap passed in and return the bumped
- ScrapRef value. ClearScrap behaves similarly to GetScrapByName
- when called with the kScrapClearNamedScrap option with the
- benefit of not requiring a name in the event one is not available.
-
- CarbonLib does not support arbitrary named scraps; when calling this
- API on CarbonLib, only clearing the current scrap is supported.
- }
- {
- * ClearScrap()
- *
- * Mac OS X threading:
- * Not thread safe
- *
- * Availability:
- * Mac OS X: in version 10.1 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.5 and later
- * Non-Carbon CFM: not available
- }
- function ClearScrap( var inOutScrap: ScrapRef ): OSStatus; external name '_ClearScrap';
- (* AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER *)
- {
- PutScrapFlavor is a lot like PutScrap, with two differences:
- we added a ScrapRef parameter at the beginning and you can
- "promise" various aspects of a flavor. If you pass a NIL
- data pointer, this is a promise that in the future you
- will provide data for this flavor. Provide the data
- through a subsequent call to PutScrapFlavor, either later
- in the same code flow or during a scrap promise keeper proc.
- If you know how big the data is, you can pass the size as
- well, and this may allow subsequent callers of GetScrapFlavorInfo
- to avoid blocking. If you don't know the size, pass -1.
- If you pass a 0 size, you are telling Scrap Manager not to
- expect any data for this flavor. In this case, the flavor
- data pointer is ignored. NOTE: the last time you can provide
- scrap flavor data is when your scrap promise keeper gets
- called. It is NOT possible to call PutScrapFlavor while
- handling a suspend event; suspend events under Carbon
- simply don't work the way they do under Mac OS 8.
- The method for setting Scrap Manager promises differs from that for Drag Manger promises.
- This chart describes the method for setting scrap promises via PutScrapFlavor().
-
- dataPtr dataSize result
- pointer value actual data size The data of size dataSize pointed to by dataPtr is added to the scrap.
- 0 actual data size A promise for data of size dataSize is placed on the scrap.
- 0 -1 A promise for data of an undetermined size is placed on the scrap.
- ignored 0 A flavor with no data expected is placed on the scrap. This is not a promise.
- }
- {
- * PutScrapFlavor()
- *
- * Mac OS X threading:
- * Not thread safe
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: not available
- }
- function PutScrapFlavor( scrap: ScrapRef; flavorType: ScrapFlavorType; flavorFlags: ScrapFlavorFlags; flavorSize: Size; flavorData: {const} UnivPtr { can be NULL } ): OSStatus; external name '_PutScrapFlavor';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
- {
- ScrapPromiseKeeper is a function you write which is called by
- Scrap Manager as needed to keep your earlier promise of a
- particular scrap flavor. When your function is called, deliver
- the requested data by calling PutScrapFlavor.
- }
- type
- ScrapPromiseKeeperProcPtr = function( scrap: ScrapRef; flavorType: ScrapFlavorType; userData: UnivPtr ): OSStatus;
- type
- ScrapPromiseKeeperUPP = ScrapPromiseKeeperProcPtr;
- {
- * NewScrapPromiseKeeperUPP()
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: available as macro/inline
- }
- function NewScrapPromiseKeeperUPP( userRoutine: ScrapPromiseKeeperProcPtr ): ScrapPromiseKeeperUPP; external name '_NewScrapPromiseKeeperUPP';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
- {
- * DisposeScrapPromiseKeeperUPP()
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: available as macro/inline
- }
- procedure DisposeScrapPromiseKeeperUPP( userUPP: ScrapPromiseKeeperUPP ); external name '_DisposeScrapPromiseKeeperUPP';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
- {
- * InvokeScrapPromiseKeeperUPP()
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: available as macro/inline
- }
- function InvokeScrapPromiseKeeperUPP( scrap: ScrapRef; flavorType: ScrapFlavorType; userData: UnivPtr; userUPP: ScrapPromiseKeeperUPP ): OSStatus; external name '_InvokeScrapPromiseKeeperUPP';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
- {
- SetScrapPromiseKeeper associates a ScrapPromiseKeeper with a
- scrap. You can remove a ScrapPromiseKeeper from a scrap by
- passing a NIL ScrapPromiseKeeper to SetScrapPromiseKeeper.
- Pass whatever you like in the last parameter; its value will
- be passed to your ScrapPromiseKeeper, which can do whatever
- it likes with the value. You might choose to pass a pointer
- or handle to some private scrap data which the
- ScrapPromiseKeeper could use in fabricating one or more
- promised flavors.
- }
- {
- * SetScrapPromiseKeeper()
- *
- * Mac OS X threading:
- * Not thread safe
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: not available
- }
- function SetScrapPromiseKeeper( scrap: ScrapRef; upp: ScrapPromiseKeeperUPP; userData: {const} UnivPtr ): OSStatus; external name '_SetScrapPromiseKeeper';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
- {
- GetScrapFlavorCount produces the number of
- items which can be obtained by GetScrapFlavorInfoList.
- }
- {
- * GetScrapFlavorCount()
- *
- * Mac OS X threading:
- * Not thread safe
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: not available
- }
- function GetScrapFlavorCount( scrap: ScrapRef; var infoCount: UInt32 ): OSStatus; external name '_GetScrapFlavorCount';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
- {
- GetScrapFlavorInfoList fills a list (array)
- of items which each describe the corresponding
- flavor in the scrap. It fills no more array
- elements as are specified. On exit, it produces
- the count of elements it filled (which may be
- smaller than the count requested). Yes, YOU
- must provide the memory for the array.
- }
- {
- * GetScrapFlavorInfoList()
- *
- * Mac OS X threading:
- * Not thread safe
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: not available
- }
- function GetScrapFlavorInfoList( scrap: ScrapRef; var infoCount: UInt32; info: {variable-size-array} ScrapFlavorInfoPtr ): OSStatus; external name '_GetScrapFlavorInfoList';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
- {
- CallInScrapPromises forces all promises to be kept.
- If your application promises at least one flavor
- AND it does NOT adopt the new event model, you
- should call this function when your application
- is about to quit. If your app promises no flavors,
- there is no need to call this function, and if
- your app adopts the new event model, this function
- will be called automagically for you. It doesn't
- hurt to call this function more than once, though
- promise keepers may be asked to keep promises
- they already tried and failed.
- }
- {
- * CallInScrapPromises()
- *
- * Mac OS X threading:
- * Not thread safe
- *
- * Availability:
- * Mac OS X: in version 10.0 and later in Carbon.framework
- * CarbonLib: in CarbonLib 1.0 and later
- * Non-Carbon CFM: not available
- }
- function CallInScrapPromises: OSStatus; external name '_CallInScrapPromises';
- (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
- end.
|