Mac OS 9
Scrap.h
Go to the documentation of this file.
1 
19 #ifndef __SCRAP__
20 #define __SCRAP__
21 
22 #ifndef __MIXEDMODE__
23 #include <MixedMode.h>
24 #endif
25 
26 #ifndef __MACERRORS__
27 #include <MacErrors.h>
28 #endif
29 
30 #ifndef __CFSTRING__
31 #include <CFString.h>
32 #endif
33 
34 #if PRAGMA_ONCE
35 #pragma once
36 #endif
37 
38 #ifdef __cplusplus
39 extern "C"
40 {
41 #endif
42 
43 #if PRAGMA_IMPORT
44 #pragma import on
45 #endif
46 
47 #if PRAGMA_STRUCT_ALIGN
48 #pragma options align = mac68k
49 #elif PRAGMA_STRUCT_PACKPUSH
50 #pragma pack(push, 2)
51 #elif PRAGMA_STRUCT_PACK
52 #pragma pack(2)
53 #endif
54 
70  typedef FourCharCode ScrapFlavorType;
77  enum
78  {
79  kScrapFlavorTypePicture =
80  FOUR_CHAR_CODE('PICT'),
81  kScrapFlavorTypeText = FOUR_CHAR_CODE('TEXT'),
83  FOUR_CHAR_CODE('styl'),
84  kScrapFlavorTypeMovie = FOUR_CHAR_CODE('moov'),
86  FOUR_CHAR_CODE('snd '),
88  FOUR_CHAR_CODE('utxt'),
90  FOUR_CHAR_CODE('ustl')
91  };
92 
109  OSStatus
110  LoadScrap(void);
111 
120  OSStatus
121  UnloadScrap(void);
122 
123 #if CALL_NOT_IN_CARBON
133  struct ScrapStuff
134  {
135  SInt32 scrapSize;
136  Handle scrapHandle;
137  SInt16 scrapCount;
138  SInt16 scrapState;
139  StringPtr scrapName;
140  };
141  typedef struct ScrapStuff ScrapStuff;
142  typedef ScrapStuff *PScrapStuff;
143  typedef ScrapStuff *ScrapStuffPtr;
144 #endif
146 #if CALL_NOT_IN_CARBON
147 
178  InfoScrap(void);
179 
188  long
189  GetScrap(Handle destination, ScrapFlavorType flavorType, SInt32 *offset);
190 
199  OSStatus
200  ZeroScrap(void);
201 
210  OSStatus
211  PutScrap(SInt32 sourceBufferByteCount, ScrapFlavorType flavorType,
212  const void *sourceBuffer);
213 
230 #endif
232  enum
233  {
234  kScrapFlavorSizeUnknown = -1
235  };
236 
243  enum
244  {
245  kScrapReservedFlavorType = FOUR_CHAR_CODE('srft')
246  };
247 
263  enum
264  {
265  kScrapFlavorMaskNone = 0x00000000,
266  kScrapFlavorMaskSenderOnly = 0x00000001,
267  kScrapFlavorMaskTranslated = 0x00000002
268  };
269 
270  typedef UInt32 ScrapFlavorFlags;
276  {
277  ScrapFlavorType flavorType;
278  ScrapFlavorFlags flavorFlags;
279  };
280  typedef struct ScrapFlavorInfo ScrapFlavorInfo;
281  typedef struct OpaqueScrapRef *ScrapRef;
286 #define kScrapRefNone ((ScrapRef)NULL)
292 #define kScrapClipboardScrap CFSTR("com.apple.scrap.clipboard")
293 #define kScrapFindScrap CFSTR("com.apple.scrap.find")
294 
297  enum
298  {
299  kScrapGetNamedScrap = 0,
301  (1L << 0)
302  };
303 
342  OSStatus
343  GetScrapByName(CFStringRef name, OptionBits options, ScrapRef *scrap);
344 
359  OSStatus
360  GetCurrentScrap(ScrapRef *scrap);
361 
378  OSStatus
379  GetScrapFlavorFlags(ScrapRef scrap, ScrapFlavorType flavorType,
380  ScrapFlavorFlags *flavorFlags);
381 
397  OSStatus
398  GetScrapFlavorSize(ScrapRef scrap, ScrapFlavorType flavorType, Size *byteCount);
399 
416  OSStatus
417  GetScrapFlavorData(ScrapRef scrap, ScrapFlavorType flavorType, Size *byteCount,
418  void *destination);
419 
440  OSStatus
442 
460  OSStatus
461  ClearScrap(ScrapRef *inOutScrap);
462 
501  OSStatus
502  PutScrapFlavor(ScrapRef scrap, ScrapFlavorType flavorType,
503  ScrapFlavorFlags flavorFlags, Size flavorSize,
504  const void *flavorData);
513  typedef CALLBACK_API(OSStatus,
514  ScrapPromiseKeeperProcPtr)(ScrapRef scrap,
515  ScrapFlavorType flavorType,
516  void *userData);
517  typedef STACK_UPP_TYPE(ScrapPromiseKeeperProcPtr) ScrapPromiseKeeperUPP;
526  ScrapPromiseKeeperUPP
527  NewScrapPromiseKeeperUPP(ScrapPromiseKeeperProcPtr userRoutine);
528 #if !OPAQUE_UPP_TYPES
529  enum
530  {
531  uppScrapPromiseKeeperProcInfo = 0x00000FF0
532  };
533 #ifdef __cplusplus
534  inline ScrapPromiseKeeperUPP
535  NewScrapPromiseKeeperUPP(ScrapPromiseKeeperProcPtr userRoutine)
536  {
537  return (ScrapPromiseKeeperUPP)NewRoutineDescriptor(
538  (ProcPtr)(userRoutine), uppScrapPromiseKeeperProcInfo,
539  GetCurrentArchitecture());
540  }
541 #else
542 #define NewScrapPromiseKeeperUPP(userRoutine) \
543  (ScrapPromiseKeeperUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), \
544  uppScrapPromiseKeeperProcInfo, \
545  GetCurrentArchitecture())
546 #endif
547 #endif
548 
557  void
558  DisposeScrapPromiseKeeperUPP(ScrapPromiseKeeperUPP userUPP);
559 #if !OPAQUE_UPP_TYPES
560 #ifdef __cplusplus
561  inline void DisposeScrapPromiseKeeperUPP(ScrapPromiseKeeperUPP userUPP)
562  {
563  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
564  }
565 #else
566 #define DisposeScrapPromiseKeeperUPP(userUPP) DisposeRoutineDescriptor(userUPP)
567 #endif
568 #endif
569 
578  OSStatus
579  InvokeScrapPromiseKeeperUPP(ScrapRef scrap, ScrapFlavorType flavorType,
580  void *userData, ScrapPromiseKeeperUPP userUPP);
581 #if !OPAQUE_UPP_TYPES
582 #ifdef __cplusplus
583  inline OSStatus InvokeScrapPromiseKeeperUPP(ScrapRef scrap,
584  ScrapFlavorType flavorType,
585  void *userData,
586  ScrapPromiseKeeperUPP userUPP)
587  {
588  return (OSStatus)CALL_THREE_PARAMETER_UPP(
589  userUPP, uppScrapPromiseKeeperProcInfo, scrap, flavorType, userData);
590  }
591 #else
592 #define InvokeScrapPromiseKeeperUPP(scrap, flavorType, userData, userUPP) \
593  (OSStatus) \
594  CALL_THREE_PARAMETER_UPP((userUPP), uppScrapPromiseKeeperProcInfo, \
595  (scrap), (flavorType), (userData))
596 #endif
597 #endif
598 
599 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
601 #define NewScrapPromiseKeeperProc(userRoutine) \
602  NewScrapPromiseKeeperUPP(userRoutine)
603 #define CallScrapPromiseKeeperProc(userRoutine, scrap, flavorType, userData) \
604  InvokeScrapPromiseKeeperUPP(scrap, flavorType, userData, userRoutine)
605 #endif
626  OSStatus
627  SetScrapPromiseKeeper(ScrapRef scrap, ScrapPromiseKeeperUPP upp,
628  const void *userData);
629 
643  OSStatus
644  GetScrapFlavorCount(ScrapRef scrap, UInt32 *infoCount);
645 
664  OSStatus
665  GetScrapFlavorInfoList(ScrapRef scrap, UInt32 *infoCount,
666  ScrapFlavorInfo info[]);
667 
690  OSStatus
692 
693 #if PRAGMA_STRUCT_ALIGN
694 #pragma options align = reset
695 #elif PRAGMA_STRUCT_PACKPUSH
696 #pragma pack(pop)
697 #elif PRAGMA_STRUCT_PACK
698 #pragma pack()
699 #endif
700 
701 #ifdef PRAGMA_IMPORT_OFF
702 #pragma import off
703 #elif PRAGMA_IMPORT
704 #pragma import reset
705 #endif
706 
707 #ifdef __cplusplus
708 }
709 #endif
710 
711 #endif
712 * /
OSErr codes.
unsigned char * StringPtr
Definition: MacTypes.h:477
Mixed Mode Manager Interfaces.
void DisposeRoutineDescriptor(UniversalProcPtr theUPP)
#define STACK_UPP_TYPE(name)
Definition: MixedMode.h:734
UniversalProcPtr NewRoutineDescriptor(ProcPtr theProc, ProcInfoType theProcInfo, ISAType theISA)
OSStatus GetScrapByName(CFStringRef name, OptionBits options, ScrapRef *scrap)
FourCharCode ScrapFlavorType
Definition: Scrap.h:70
#define NewScrapPromiseKeeperUPP(userRoutine)
Definition: Scrap.h:542
OSStatus ZeroScrap(void)
OSStatus InvokeScrapPromiseKeeperUPP(ScrapRef scrap, ScrapFlavorType flavorType, void *userData, ScrapPromiseKeeperUPP userUPP)
typedef CALLBACK_API(OSStatus, ScrapPromiseKeeperProcPtr)(ScrapRef scrap
OSStatus GetScrapFlavorSize(ScrapRef scrap, ScrapFlavorType flavorType, Size *byteCount)
void DisposeScrapPromiseKeeperUPP(ScrapPromiseKeeperUPP userUPP)
OSStatus GetScrapFlavorInfoList(ScrapRef scrap, UInt32 *infoCount, ScrapFlavorInfo info[])
OSStatus SetScrapPromiseKeeper(ScrapRef scrap, ScrapPromiseKeeperUPP upp, const void *userData)
OSStatus GetCurrentScrap(ScrapRef *scrap)
OSStatus ClearScrap(ScrapRef *inOutScrap)
OSStatus PutScrapFlavor(ScrapRef scrap, ScrapFlavorType flavorType, ScrapFlavorFlags flavorFlags, Size flavorSize, const void *flavorData)
long GetScrap(Handle destination, ScrapFlavorType flavorType, SInt32 *offset)
OSStatus GetScrapFlavorData(ScrapRef scrap, ScrapFlavorType flavorType, Size *byteCount, void *destination)
OSStatus CallInScrapPromises(void)
@ kScrapFlavorTypeUnicodeStyle
Definition: Scrap.h:89
@ kScrapFlavorTypeTextStyle
Definition: Scrap.h:82
@ kScrapFlavorTypeSound
Definition: Scrap.h:85
@ kScrapFlavorTypeUnicode
Definition: Scrap.h:87
@ kScrapFlavorTypeText
Definition: Scrap.h:81
@ kScrapFlavorTypeMovie
Definition: Scrap.h:84
OSStatus PutScrap(SInt32 sourceBufferByteCount, ScrapFlavorType flavorType, const void *sourceBuffer)
OSStatus GetScrapFlavorFlags(ScrapRef scrap, ScrapFlavorType flavorType, ScrapFlavorFlags *flavorFlags)
OSStatus UnloadScrap(void)
ScrapStuffPtr InfoScrap(void)
OSStatus GetScrapFlavorCount(ScrapRef scrap, UInt32 *infoCount)
OSStatus LoadScrap(void)
OSStatus ClearCurrentScrap(void)
@ kScrapClearNamedScrap
Definition: Scrap.h:300
Definition: Scrap.h:276
Definition: Scrap.h:134