You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
691 lines
21 KiB
691 lines
21 KiB
/* |
|
File: Scrap.h |
|
|
|
Contains: Scrap Manager Interfaces. |
|
|
|
Version: QuickTime 7.3 |
|
|
|
Copyright: (c) 2007 (c) 1985-2001 by Apple Computer, Inc., all rights reserved |
|
|
|
Bugs?: For bug reports, consult the following page on |
|
the World Wide Web: |
|
|
|
http://developer.apple.com/bugreporter/ |
|
|
|
*/ |
|
#ifndef __SCRAP__ |
|
#define __SCRAP__ |
|
|
|
#ifndef __MIXEDMODE__ |
|
#include <MixedMode.h> |
|
#endif |
|
|
|
#ifndef __MACERRORS__ |
|
#include <MacErrors.h> |
|
#endif |
|
|
|
#ifndef __CFSTRING__ |
|
#include <CFString.h> |
|
#endif |
|
|
|
|
|
|
|
#if PRAGMA_ONCE |
|
#pragma once |
|
#endif |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
#if PRAGMA_IMPORT |
|
#pragma import on |
|
#endif |
|
|
|
#if PRAGMA_STRUCT_ALIGN |
|
#pragma options align=mac68k |
|
#elif PRAGMA_STRUCT_PACKPUSH |
|
#pragma pack(push, 2) |
|
#elif PRAGMA_STRUCT_PACK |
|
#pragma pack(2) |
|
#endif |
|
|
|
/* |
|
________________________________________________________________ |
|
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. |
|
*/ |
|
|
|
typedef FourCharCode ScrapFlavorType; |
|
/* |
|
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! |
|
*/ |
|
enum { |
|
kScrapFlavorTypePicture = FOUR_CHAR_CODE('PICT'), /* contents of a PicHandle*/ |
|
kScrapFlavorTypeText = FOUR_CHAR_CODE('TEXT'), /* stream of characters*/ |
|
kScrapFlavorTypeTextStyle = FOUR_CHAR_CODE('styl'), /* see TEGetStyleScrapHandle*/ |
|
kScrapFlavorTypeMovie = FOUR_CHAR_CODE('moov'), /* reference to a movie*/ |
|
kScrapFlavorTypeSound = FOUR_CHAR_CODE('snd '), /* see SndRecord and SndPlay*/ |
|
kScrapFlavorTypeUnicode = FOUR_CHAR_CODE('utxt'), /* stream of UTF16 characters*/ |
|
kScrapFlavorTypeUnicodeStyle = FOUR_CHAR_CODE('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() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
LoadScrap(void) ONEWORDINLINE(0xA9FB); |
|
|
|
|
|
/* |
|
* UnloadScrap() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
UnloadScrap(void) ONEWORDINLINE(0xA9FA); |
|
|
|
|
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
________________________________________________________________ |
|
MAC OS 8 SCRAP MANAGER INTERFACES |
|
________________________________________________________________ |
|
The following interfaces are available only when compiling for |
|
plain vanilla Mac OS 8. We didn't add comments to them because |
|
Inside Mac covers them in detail. |
|
________________________________________________________________ |
|
*/ |
|
struct ScrapStuff { |
|
SInt32 scrapSize; |
|
Handle scrapHandle; |
|
SInt16 scrapCount; |
|
SInt16 scrapState; |
|
StringPtr scrapName; |
|
}; |
|
typedef struct ScrapStuff ScrapStuff; |
|
typedef ScrapStuff * PScrapStuff; |
|
typedef ScrapStuff * ScrapStuffPtr; |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
#if CALL_NOT_IN_CARBON |
|
/* |
|
* InfoScrap() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( ScrapStuffPtr ) |
|
InfoScrap(void) ONEWORDINLINE(0xA9F9); |
|
|
|
|
|
/* |
|
* GetScrap() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( long ) |
|
GetScrap( |
|
Handle destination, |
|
ScrapFlavorType flavorType, |
|
SInt32 * offset) ONEWORDINLINE(0xA9FD); |
|
|
|
|
|
/* |
|
* ZeroScrap() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
ZeroScrap(void) ONEWORDINLINE(0xA9FC); |
|
|
|
|
|
/* |
|
* PutScrap() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later |
|
* CarbonLib: not available |
|
* Mac OS X: not available |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
PutScrap( |
|
SInt32 sourceBufferByteCount, |
|
ScrapFlavorType flavorType, |
|
const void * sourceBuffer) ONEWORDINLINE(0xA9FE); |
|
|
|
|
|
|
|
/* |
|
________________________________________________________________ |
|
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. |
|
*/ |
|
|
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
enum { |
|
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. |
|
*/ |
|
|
|
enum { |
|
kScrapReservedFlavorType = FOUR_CHAR_CODE('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. |
|
*/ |
|
enum { |
|
kScrapFlavorMaskNone = 0x00000000, |
|
kScrapFlavorMaskSenderOnly = 0x00000001, |
|
kScrapFlavorMaskTranslated = 0x00000002 |
|
}; |
|
|
|
typedef UInt32 ScrapFlavorFlags; |
|
/* |
|
ScrapFlavorInfo describes a single flavor within |
|
a scrap. |
|
*/ |
|
struct ScrapFlavorInfo { |
|
ScrapFlavorType flavorType; |
|
ScrapFlavorFlags flavorFlags; |
|
}; |
|
typedef struct ScrapFlavorInfo ScrapFlavorInfo; |
|
typedef struct OpaqueScrapRef* ScrapRef; |
|
/* |
|
kScrapRefNone is guaranteed to be an invalid ScrapRef. This |
|
is convenient when initializing application variables. |
|
*/ |
|
#define kScrapRefNone ((ScrapRef)NULL) |
|
/* |
|
Defined Apple scrap names for GetScrapByName |
|
kScrapClipboardScrap traditional clipboard scrap |
|
kScrapFindScrap compatible with Cocoa's global find scrap |
|
*/ |
|
#define kScrapClipboardScrap CFSTR("com.apple.scrap.clipboard") |
|
#define kScrapFindScrap CFSTR("com.apple.scrap.find") |
|
|
|
/* Enumerated options to be passed to GetScrapByName*/ |
|
|
|
enum { |
|
kScrapGetNamedScrap = 0, /* get current named scrap without bumping*/ |
|
kScrapClearNamedScrap = (1L << 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() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.5 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetScrapByName( |
|
CFStringRef name, |
|
OptionBits options, |
|
ScrapRef * scrap); |
|
|
|
|
|
/* |
|
GetCurrentScrap obtains a reference to the current scrap. |
|
The ScrapRef obtained via GetCurrentScrap will become |
|
invalid and unusable after the scrap is cleared. |
|
*/ |
|
|
|
/* |
|
* GetCurrentScrap() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetCurrentScrap(ScrapRef * scrap); |
|
|
|
|
|
/* |
|
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() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetScrapFlavorFlags( |
|
ScrapRef scrap, |
|
ScrapFlavorType flavorType, |
|
ScrapFlavorFlags * flavorFlags); |
|
|
|
|
|
/* |
|
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() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetScrapFlavorSize( |
|
ScrapRef scrap, |
|
ScrapFlavorType flavorType, |
|
Size * byteCount); |
|
|
|
|
|
/* |
|
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() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetScrapFlavorData( |
|
ScrapRef scrap, |
|
ScrapFlavorType flavorType, |
|
Size * byteCount, |
|
void * destination); |
|
|
|
|
|
/* |
|
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() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
ClearCurrentScrap(void); |
|
|
|
|
|
/* |
|
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() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.5 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
ClearScrap(ScrapRef * inOutScrap); |
|
|
|
|
|
|
|
/* |
|
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() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
PutScrapFlavor( |
|
ScrapRef scrap, |
|
ScrapFlavorType flavorType, |
|
ScrapFlavorFlags flavorFlags, |
|
Size flavorSize, |
|
const void * flavorData); /* can be NULL */ |
|
|
|
|
|
/* |
|
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. |
|
*/ |
|
|
|
typedef CALLBACK_API( OSStatus , ScrapPromiseKeeperProcPtr )(ScrapRef scrap, ScrapFlavorType flavorType, void *userData); |
|
typedef STACK_UPP_TYPE(ScrapPromiseKeeperProcPtr) ScrapPromiseKeeperUPP; |
|
/* |
|
* NewScrapPromiseKeeperUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( ScrapPromiseKeeperUPP ) |
|
NewScrapPromiseKeeperUPP(ScrapPromiseKeeperProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppScrapPromiseKeeperProcInfo = 0x00000FF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(ScrapPromiseKeeperUPP) NewScrapPromiseKeeperUPP(ScrapPromiseKeeperProcPtr userRoutine) { return (ScrapPromiseKeeperUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppScrapPromiseKeeperProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewScrapPromiseKeeperUPP(userRoutine) (ScrapPromiseKeeperUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppScrapPromiseKeeperProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeScrapPromiseKeeperUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeScrapPromiseKeeperUPP(ScrapPromiseKeeperUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeScrapPromiseKeeperUPP(ScrapPromiseKeeperUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeScrapPromiseKeeperUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeScrapPromiseKeeperUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSStatus ) |
|
InvokeScrapPromiseKeeperUPP( |
|
ScrapRef scrap, |
|
ScrapFlavorType flavorType, |
|
void * userData, |
|
ScrapPromiseKeeperUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(OSStatus) InvokeScrapPromiseKeeperUPP(ScrapRef scrap, ScrapFlavorType flavorType, void * userData, ScrapPromiseKeeperUPP userUPP) { return (OSStatus)CALL_THREE_PARAMETER_UPP(userUPP, uppScrapPromiseKeeperProcInfo, scrap, flavorType, userData); } |
|
#else |
|
#define InvokeScrapPromiseKeeperUPP(scrap, flavorType, userData, userUPP) (OSStatus)CALL_THREE_PARAMETER_UPP((userUPP), uppScrapPromiseKeeperProcInfo, (scrap), (flavorType), (userData)) |
|
#endif |
|
#endif |
|
|
|
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES |
|
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ |
|
#define NewScrapPromiseKeeperProc(userRoutine) NewScrapPromiseKeeperUPP(userRoutine) |
|
#define CallScrapPromiseKeeperProc(userRoutine, scrap, flavorType, userData) InvokeScrapPromiseKeeperUPP(scrap, flavorType, userData, userRoutine) |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
/* |
|
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() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
SetScrapPromiseKeeper( |
|
ScrapRef scrap, |
|
ScrapPromiseKeeperUPP upp, |
|
const void * userData); |
|
|
|
|
|
/* |
|
GetScrapFlavorCount produces the number of |
|
items which can be obtained by GetScrapFlavorInfoList. |
|
*/ |
|
|
|
/* |
|
* GetScrapFlavorCount() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetScrapFlavorCount( |
|
ScrapRef scrap, |
|
UInt32 * infoCount); |
|
|
|
|
|
/* |
|
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() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
GetScrapFlavorInfoList( |
|
ScrapRef scrap, |
|
UInt32 * infoCount, |
|
ScrapFlavorInfo info[]); |
|
|
|
|
|
|
|
/* |
|
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() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: not available |
|
* CarbonLib: in CarbonLib 1.0 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( OSStatus ) |
|
CallInScrapPromises(void); |
|
|
|
|
|
|
|
#if PRAGMA_STRUCT_ALIGN |
|
#pragma options align=reset |
|
#elif PRAGMA_STRUCT_PACKPUSH |
|
#pragma pack(pop) |
|
#elif PRAGMA_STRUCT_PACK |
|
#pragma pack() |
|
#endif |
|
|
|
#ifdef PRAGMA_IMPORT_OFF |
|
#pragma import off |
|
#elif PRAGMA_IMPORT |
|
#pragma import reset |
|
#endif |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
#endif /* __SCRAP__ */ |
|
|
|
|