Translation.pas 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. {
  2. File: HIToolbox/Translation.h
  3. Contains: Translation Manager (Macintosh Easy Open) Interfaces.
  4. Version: HIToolbox-219.4.81~2
  5. Copyright: © 1991-2005 by Apple Computer, Inc., all rights reserved.
  6. Bugs?: For bug reports, consult the following page on
  7. the World Wide Web:
  8. http://www.freepascal.org/bugs.html
  9. }
  10. { Pascal Translation Updated: Peter N Lewis, <[email protected]>, August 2005 }
  11. {
  12. Modified for use with Free Pascal
  13. Version 200
  14. Please report any bugs to <[email protected]>
  15. }
  16. {$mode macpas}
  17. {$packenum 1}
  18. {$macro on}
  19. {$inline on}
  20. {$CALLING MWPASCAL}
  21. unit Translation;
  22. interface
  23. {$setc UNIVERSAL_INTERFACES_VERSION := $0342}
  24. {$setc GAP_INTERFACES_VERSION := $0200}
  25. {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
  26. {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
  27. {$endc}
  28. {$ifc defined CPUPOWERPC and defined CPUI386}
  29. {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
  30. {$endc}
  31. {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
  32. {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
  33. {$endc}
  34. {$ifc not defined __ppc__ and defined CPUPOWERPC}
  35. {$setc __ppc__ := 1}
  36. {$elsec}
  37. {$setc __ppc__ := 0}
  38. {$endc}
  39. {$ifc not defined __i386__ and defined CPUI386}
  40. {$setc __i386__ := 1}
  41. {$elsec}
  42. {$setc __i386__ := 0}
  43. {$endc}
  44. {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
  45. {$error Conflicting definitions for __ppc__ and __i386__}
  46. {$endc}
  47. {$ifc defined __ppc__ and __ppc__}
  48. {$setc TARGET_CPU_PPC := TRUE}
  49. {$setc TARGET_CPU_X86 := FALSE}
  50. {$elifc defined __i386__ and __i386__}
  51. {$setc TARGET_CPU_PPC := FALSE}
  52. {$setc TARGET_CPU_X86 := TRUE}
  53. {$elsec}
  54. {$error Neither __ppc__ nor __i386__ is defined.}
  55. {$endc}
  56. {$setc TARGET_CPU_PPC_64 := FALSE}
  57. {$ifc defined FPC_BIG_ENDIAN}
  58. {$setc TARGET_RT_BIG_ENDIAN := TRUE}
  59. {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
  60. {$elifc defined FPC_LITTLE_ENDIAN}
  61. {$setc TARGET_RT_BIG_ENDIAN := FALSE}
  62. {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
  63. {$elsec}
  64. {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
  65. {$endc}
  66. {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
  67. {$setc CALL_NOT_IN_CARBON := FALSE}
  68. {$setc OLDROUTINENAMES := FALSE}
  69. {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
  70. {$setc OPAQUE_UPP_TYPES := TRUE}
  71. {$setc OTCARBONAPPLICATION := TRUE}
  72. {$setc OTKERNEL := FALSE}
  73. {$setc PM_USE_SESSION_APIS := TRUE}
  74. {$setc TARGET_API_MAC_CARBON := TRUE}
  75. {$setc TARGET_API_MAC_OS8 := FALSE}
  76. {$setc TARGET_API_MAC_OSX := TRUE}
  77. {$setc TARGET_CARBON := TRUE}
  78. {$setc TARGET_CPU_68K := FALSE}
  79. {$setc TARGET_CPU_MIPS := FALSE}
  80. {$setc TARGET_CPU_SPARC := FALSE}
  81. {$setc TARGET_OS_MAC := TRUE}
  82. {$setc TARGET_OS_UNIX := FALSE}
  83. {$setc TARGET_OS_WIN32 := FALSE}
  84. {$setc TARGET_RT_MAC_68881 := FALSE}
  85. {$setc TARGET_RT_MAC_CFM := FALSE}
  86. {$setc TARGET_RT_MAC_MACHO := TRUE}
  87. {$setc TYPED_FUNCTION_POINTERS := TRUE}
  88. {$setc TYPE_BOOL := FALSE}
  89. {$setc TYPE_EXTENDED := FALSE}
  90. {$setc TYPE_LONGLONG := TRUE}
  91. uses MacTypes,Files,Components,TranslationExtensions;
  92. {$ALIGN MAC68K}
  93. {
  94. Carbon clients should use Translation Services. The definitions below will NOT work for Carbon and
  95. are only defined for those files that need to build pre-Carbon applications.
  96. }
  97. { enumerated types on how a document can be opened}
  98. type
  99. DocOpenMethod = SInt16;
  100. const
  101. domCannot = 0;
  102. domNative = 1;
  103. domTranslateFirst = 2;
  104. domWildcard = 3;
  105. { 0L terminated array of OSTypes, or FileTypes}
  106. type
  107. TypesBlock = array [0..63] of OSType;
  108. TypesBlockPtr = ^TypesBlock;
  109. { Progress dialog resource ID}
  110. const
  111. kTranslationScrapProgressDialogID = -16555;
  112. { block of data that describes how to translate}
  113. type
  114. FileTranslationSpecPtr = ^FileTranslationSpec;
  115. FileTranslationSpec = record
  116. componentSignature: OSType;
  117. translationSystemInfo: UnivPtr;
  118. src: FileTypeSpec;
  119. dst: FileTypeSpec;
  120. end;
  121. type
  122. FileTranslationSpecArray = array [0..$7F000000 div SizeOf(FileTranslationSpec)-1] of FileTranslationSpec;
  123. FileTranslationSpecArrayPtr = ^FileTranslationSpecArray;
  124. FileTranslationSpecArrayHandle = ^FileTranslationSpecArrayPtr;
  125. {
  126. * GetFileTypesThatAppCanNativelyOpen() *** DEPRECATED ***
  127. *
  128. * Deprecated:
  129. * There is no direct replacement at this time.
  130. *
  131. * Mac OS X threading:
  132. * Not thread safe
  133. *
  134. * Availability:
  135. * Mac OS X: in version 10.0 and later in Carbon.framework but deprecated in 10.3
  136. * CarbonLib: in CarbonLib 1.0 and later
  137. * Non-Carbon CFM: in Translation 1.0 and later
  138. }
  139. function GetFileTypesThatAppCanNativelyOpen( appVRefNumHint: SInt16; appSignature: OSType; var nativeTypes: TypesBlock ): OSErr; external name '_GetFileTypesThatAppCanNativelyOpen';
  140. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 *)
  141. {
  142. * ExtendFileTypeList() *** DEPRECATED ***
  143. *
  144. * Deprecated:
  145. * Use TranslationCreateWithSourceArray instead.
  146. *
  147. * Mac OS X threading:
  148. * Not thread safe
  149. *
  150. * Availability:
  151. * Mac OS X: in version 10.0 and later in Carbon.framework but deprecated in 10.3
  152. * CarbonLib: in CarbonLib 1.0 and later
  153. * Non-Carbon CFM: in Translation 1.0 and later
  154. }
  155. function ExtendFileTypeList( originalTypeList: {variable-size-array} FileTypePtr; numberOriginalTypes: SInt16; extendedTypeList: {variable-size-array} FileTypePtr; var numberExtendedTypes: SInt16 ): OSErr; external name '_ExtendFileTypeList';
  156. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 *)
  157. {
  158. * CanDocBeOpened() *** DEPRECATED ***
  159. *
  160. * Deprecated:
  161. * Use the Launch Services API instead.
  162. *
  163. * Mac OS X threading:
  164. * Not thread safe
  165. *
  166. * Availability:
  167. * Mac OS X: in version 10.0 and later in Carbon.framework but deprecated in 10.3
  168. * CarbonLib: in CarbonLib 1.0 and later
  169. * Non-Carbon CFM: in Translation 1.0 and later
  170. }
  171. function CanDocBeOpened( const (*var*) targetDocument: FSSpec; appVRefNumHint: SInt16; appSignature: OSType; nativeTypes: {variable-size-array} FileTypePtr; onlyNative: Boolean; var howToOpen: DocOpenMethod; var howToTranslate: FileTranslationSpec ): OSErr; external name '_CanDocBeOpened';
  172. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 *)
  173. {
  174. * GetFileTranslationPaths() *** DEPRECATED ***
  175. *
  176. * Deprecated:
  177. * Use TranslationCreateWithSourceArray instead.
  178. *
  179. * Mac OS X threading:
  180. * Not thread safe
  181. *
  182. * Availability:
  183. * Mac OS X: in version 10.0 and later in Carbon.framework but deprecated in 10.3
  184. * CarbonLib: in CarbonLib 1.0 and later
  185. * Non-Carbon CFM: in Translation 1.0 and later
  186. }
  187. function GetFileTranslationPaths( const (*var*) srcDocument: FSSpec; dstDocType: FileType; maxResultCount: UInt16; resultBuffer: FileTranslationSpecArrayPtr ): SInt16; external name '_GetFileTranslationPaths';
  188. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 *)
  189. {
  190. * GetPathFromTranslationDialog() *** DEPRECATED ***
  191. *
  192. * Deprecated:
  193. * There is no direct replacement at this time, but all the
  194. * necessary information can be obtained from the Launch Services,
  195. * Translation Services and Uniform Type Identification APIs.
  196. *
  197. * Mac OS X threading:
  198. * Not thread safe
  199. *
  200. * Availability:
  201. * Mac OS X: in version 10.0 and later in Carbon.framework but deprecated in 10.3
  202. * CarbonLib: in CarbonLib 1.0 and later
  203. * Non-Carbon CFM: in Translation 1.0 and later
  204. }
  205. function GetPathFromTranslationDialog( const (*var*) theDocument: FSSpec; const (*var*) theApplication: FSSpec; typeList: TypesBlockPtr; var howToOpen: DocOpenMethod; var howToTranslate: FileTranslationSpec ): OSErr; external name '_GetPathFromTranslationDialog';
  206. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 *)
  207. {
  208. * TranslateFile() *** DEPRECATED ***
  209. *
  210. * Deprecated:
  211. * Use TranslationPerformForFile or TranslationPerformForURL instead.
  212. *
  213. * Mac OS X threading:
  214. * Not thread safe
  215. *
  216. * Availability:
  217. * Mac OS X: in version 10.0 and later in Carbon.framework but deprecated in 10.3
  218. * CarbonLib: in CarbonLib 1.0 and later
  219. * Non-Carbon CFM: in Translation 1.0 and later
  220. }
  221. function TranslateFile( const (*var*) sourceDocument: FSSpec; const (*var*) destinationDocument: FSSpec; const (*var*) howToTranslate: FileTranslationSpec ): OSErr; external name '_TranslateFile';
  222. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 *)
  223. {
  224. * GetDocumentKindString() *** DEPRECATED ***
  225. *
  226. * Deprecated:
  227. * Use the Launch Services API instead.
  228. *
  229. * Mac OS X threading:
  230. * Not thread safe
  231. *
  232. * Availability:
  233. * Mac OS X: in version 10.0 and later in Carbon.framework but deprecated in 10.3
  234. * CarbonLib: in CarbonLib 1.0 and later
  235. * Non-Carbon CFM: in Translation 1.0 and later
  236. }
  237. function GetDocumentKindString( docVRefNum: SInt16; docType: OSType; docCreator: OSType; var kindString: Str63 ): OSErr; external name '_GetDocumentKindString';
  238. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 *)
  239. {
  240. * GetTranslationExtensionName() *** DEPRECATED ***
  241. *
  242. * Deprecated:
  243. * There is no direct replacement at this time, but
  244. * TranslationCopySourceType and TranslationCopyDestinationType in
  245. * conjunction with UTTypeCopyDescription will provide useful user
  246. * level information.
  247. *
  248. * Mac OS X threading:
  249. * Not thread safe
  250. *
  251. * Availability:
  252. * Mac OS X: in version 10.0 and later in Carbon.framework but deprecated in 10.3
  253. * CarbonLib: in CarbonLib 1.0 and later
  254. * Non-Carbon CFM: in Translation 1.0 and later
  255. }
  256. function GetTranslationExtensionName( const (*var*) translationMethod: FileTranslationSpec; var extensionName: Str31 ): OSErr; external name '_GetTranslationExtensionName';
  257. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 *)
  258. {
  259. * GetScrapDataProcPtr
  260. }
  261. type
  262. GetScrapDataProcPtr = function( requestedFormat: ScrapType; dataH: Handle; srcDataGetterRefCon: UnivPtr ): OSErr;
  263. GetScrapDataUPP = GetScrapDataProcPtr;
  264. {
  265. * NewGetScrapDataUPP()
  266. *
  267. * Availability:
  268. * Mac OS X: in version 10.0 and later in Carbon.framework
  269. * CarbonLib: in CarbonLib 1.0 and later
  270. * Non-Carbon CFM: available as macro/inline
  271. }
  272. function NewGetScrapDataUPP( userRoutine: GetScrapDataProcPtr ): GetScrapDataUPP; external name '_NewGetScrapDataUPP';
  273. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 *)
  274. {
  275. * DisposeGetScrapDataUPP()
  276. *
  277. * Availability:
  278. * Mac OS X: in version 10.0 and later in Carbon.framework
  279. * CarbonLib: in CarbonLib 1.0 and later
  280. * Non-Carbon CFM: available as macro/inline
  281. }
  282. procedure DisposeGetScrapDataUPP( userUPP: GetScrapDataUPP ); external name '_DisposeGetScrapDataUPP';
  283. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 *)
  284. {
  285. * InvokeGetScrapDataUPP()
  286. *
  287. * Availability:
  288. * Mac OS X: in version 10.0 and later in Carbon.framework
  289. * CarbonLib: in CarbonLib 1.0 and later
  290. * Non-Carbon CFM: available as macro/inline
  291. }
  292. function InvokeGetScrapDataUPP( requestedFormat: ScrapType; dataH: Handle; srcDataGetterRefCon: UnivPtr; userUPP: GetScrapDataUPP ): OSErr; external name '_InvokeGetScrapDataUPP';
  293. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 *)
  294. type
  295. GetScrapData = GetScrapDataUPP;
  296. {
  297. * TranslateScrap() *** DEPRECATED ***
  298. *
  299. * Deprecated:
  300. * Use TranslationPerformForData instead.
  301. *
  302. * Mac OS X threading:
  303. * Not thread safe
  304. *
  305. * Availability:
  306. * Mac OS X: in version 10.0 and later in Carbon.framework but deprecated in 10.3
  307. * CarbonLib: in CarbonLib 1.0 and later
  308. * Non-Carbon CFM: in Translation 1.0 and later
  309. }
  310. function TranslateScrap( sourceDataGetter: GetScrapDataUPP; sourceDataGetterRefCon: UnivPtr; destinationFormat: ScrapType; destinationData: Handle; progressDialogID: SInt16 ): OSErr; external name '_TranslateScrap';
  311. (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3 *)
  312. end.