URLAccess.pas 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533
  1. {
  2. File: URLAccess.p
  3. Contains: URL Access Interfaces.
  4. Version: Technology: URLAccess 2.0
  5. Release: Universal Interfaces 3.4.2
  6. Copyright: © 1994-2002 by Apple Computer, Inc., all rights reserved
  7. Bugs?: For bug reports, consult the following page on
  8. the World Wide Web:
  9. http://www.freepascal.org/bugs.html
  10. }
  11. {
  12. Modified for use with Free Pascal
  13. Version 210
  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 URLAccess;
  22. interface
  23. {$setc UNIVERSAL_INTERFACES_VERSION := $0342}
  24. {$setc GAP_INTERFACES_VERSION := $0210}
  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,CodeFragments,MacErrors,Events;
  92. {$ALIGN MAC68K}
  93. { Data structures and types }
  94. type
  95. URLReference = ^SInt32; { an opaque 32-bit type }
  96. URLReferencePtr = ^URLReference; { when a var xx:URLReference parameter can be nil, it is changed to xx: URLReferencePtr }
  97. URLOpenFlags = UInt32;
  98. const
  99. kURLReplaceExistingFlag = $01;
  100. kURLBinHexFileFlag = $02; { Binhex before uploading if necessary }
  101. kURLExpandFileFlag = $04; { Use StuffIt engine to expand file if necessary }
  102. kURLDisplayProgressFlag = $08;
  103. kURLDisplayAuthFlag = $10; { Display auth dialog if guest connection fails }
  104. kURLUploadFlag = $20; { Do an upload instead of a download }
  105. kURLIsDirectoryHintFlag = $40; { Hint: the URL is a directory }
  106. kURLDoNotTryAnonymousFlag = $80; { Don't try to connect anonymously before getting logon info }
  107. kURLDirectoryListingFlag = $0100; { Download the directory listing, not the whole directory }
  108. kURLExpandAndVerifyFlag = $0200; { Expand file and then verify using signature resource }
  109. kURLNoAutoRedirectFlag = $0400; { Do not automatically redirect to new URL }
  110. kURLDebinhexOnlyFlag = $0800; { Do not use Stuffit Expander - just internal debinhex engine }
  111. kURLDoNotDeleteOnErrorFlag = $1000; { Do not delete the downloaded file if an error or abort occurs. }
  112. { This flag applies to downloading only and should be used if }
  113. { interested in later resuming the download. }
  114. kURLResumeDownloadFlag = $2000; { The passed in file is partially downloaded, attempt to resume }
  115. { it. Currently works for HTTP only. If no FSSpec passed in, }
  116. { this flag will be ignored. Overriden by kURLReplaceExistingFlag. }
  117. kURLReservedFlag = $80000000; { reserved for Apple internal use }
  118. type
  119. URLState = UInt32;
  120. const
  121. kURLNullState = 0;
  122. kURLInitiatingState = 1;
  123. kURLLookingUpHostState = 2;
  124. kURLConnectingState = 3;
  125. kURLResourceFoundState = 4;
  126. kURLDownloadingState = 5;
  127. kURLDataAvailableState = $15;
  128. kURLTransactionCompleteState = 6;
  129. kURLErrorOccurredState = 7;
  130. kURLAbortingState = 8;
  131. kURLCompletedState = 9;
  132. kURLUploadingState = 10;
  133. type
  134. URLEvent = UInt32;
  135. const
  136. kURLInitiatedEvent = 1;
  137. kURLResourceFoundEvent = 4;
  138. kURLDownloadingEvent = 5;
  139. kURLAbortInitiatedEvent = 8;
  140. kURLCompletedEvent = 9;
  141. kURLErrorOccurredEvent = 7;
  142. kURLDataAvailableEvent = $15;
  143. kURLTransactionCompleteEvent = 6;
  144. kURLUploadingEvent = 10;
  145. kURLSystemEvent = 29;
  146. kURLPercentEvent = 30;
  147. kURLPeriodicEvent = 31;
  148. kURLPropertyChangedEvent = 32;
  149. type
  150. URLEventMask = UInt32;
  151. const
  152. kURLInitiatedEventMask = $01;
  153. kURLResourceFoundEventMask = $08;
  154. kURLDownloadingMask = $10;
  155. kURLUploadingMask = $0200;
  156. kURLAbortInitiatedMask = $80;
  157. kURLCompletedEventMask = $0100;
  158. kURLErrorOccurredEventMask = $40;
  159. kURLDataAvailableEventMask = $00100000;
  160. kURLTransactionCompleteEventMask = $20;
  161. kURLSystemEventMask = $10000000;
  162. kURLPercentEventMask = $20000000;
  163. kURLPeriodicEventMask = $40000000;
  164. kURLPropertyChangedEventMask = $80000000;
  165. kURLAllBufferEventsMask = $00100020;
  166. kURLAllNonBufferEventsMask = $E00003D1;
  167. kURLAllEventsMask = $FFFFFFFF;
  168. type
  169. URLCallbackInfoPtr = ^URLCallbackInfo;
  170. URLCallbackInfo = record
  171. version: UInt32;
  172. urlRef: URLReference;
  173. proprty: ConstCStringPtr;
  174. currentSize: UInt32;
  175. systemEvent: EventRecordPtr;
  176. end;
  177. { authentication type flags }
  178. const
  179. kUserNameAndPasswordFlag = $00000001;
  180. kURLURL = 'URLString';
  181. kURLResourceSize = 'URLResourceSize';
  182. kURLLastModifiedTime = 'URLLastModifiedTime';
  183. kURLMIMEType = 'URLMIMEType';
  184. kURLFileType = 'URLFileType';
  185. kURLFileCreator = 'URLFileCreator';
  186. kURLCharacterSet = 'URLCharacterSet';
  187. kURLResourceName = 'URLResourceName';
  188. kURLHost = 'URLHost';
  189. kURLAuthType = 'URLAuthType';
  190. kURLUserName = 'URLUserName';
  191. kURLPassword = 'URLPassword';
  192. kURLStatusString = 'URLStatusString';
  193. kURLIsSecure = 'URLIsSecure';
  194. kURLCertificate = 'URLCertificate';
  195. kURLTotalItems = 'URLTotalItems';
  196. kURLConnectTimeout = 'URLConnectTimeout';
  197. { http and https properties }
  198. kURLHTTPRequestMethod = 'URLHTTPRequestMethod';
  199. kURLHTTPRequestHeader = 'URLHTTPRequestHeader';
  200. kURLHTTPRequestBody = 'URLHTTPRequestBody';
  201. kURLHTTPRespHeader = 'URLHTTPRespHeader';
  202. kURLHTTPUserAgent = 'URLHTTPUserAgent';
  203. kURLHTTPRedirectedURL = 'URLHTTPRedirectedURL';
  204. kURLSSLCipherSuite = 'URLSSLCipherSuite';
  205. {
  206. * URLGetURLAccessVersion()
  207. *
  208. * Availability:
  209. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  210. * CarbonLib: in CarbonLib 1.0 and later
  211. * Mac OS X: in version 10.0 and later
  212. }
  213. function URLGetURLAccessVersion(var returnVers: UInt32): OSStatus; external name '_URLGetURLAccessVersion';
  214. {$ifc TARGET_RT_MAC_CFM}
  215. {
  216. URLAccessAvailable() is a macro/inline available only in C/C++.
  217. To get the same functionality from pascal or assembly, you need
  218. to test if URLGetURLAccessVersion function is not NULL. For instance:
  219. gURLAccessAvailable = FALSE;
  220. IF @URLAccessAvailable <> kUnresolvedCFragSymbolAddress THEN
  221. gURLAccessAvailable = TRUE;
  222. end
  223. }
  224. {$elsec}
  225. {$ifc TARGET_RT_MAC_MACHO}
  226. { URL Access is always available on OS X }
  227. {$endc}
  228. {$endc}
  229. type
  230. {$ifc TYPED_FUNCTION_POINTERS}
  231. URLNotifyProcPtr = function(userContext: UnivPtr; event: URLEvent; var callbackInfo: URLCallbackInfo): OSStatus;
  232. {$elsec}
  233. URLNotifyProcPtr = ProcPtr;
  234. {$endc}
  235. {$ifc TYPED_FUNCTION_POINTERS}
  236. URLSystemEventProcPtr = function(userContext: UnivPtr; var event: EventRecord): OSStatus;
  237. {$elsec}
  238. URLSystemEventProcPtr = ProcPtr;
  239. {$endc}
  240. {$ifc OPAQUE_UPP_TYPES}
  241. URLNotifyUPP = ^SInt32; { an opaque UPP }
  242. {$elsec}
  243. URLNotifyUPP = URLNotifyProcPtr;
  244. {$endc}
  245. {$ifc OPAQUE_UPP_TYPES}
  246. URLSystemEventUPP = ^SInt32; { an opaque UPP }
  247. {$elsec}
  248. URLSystemEventUPP = URLSystemEventProcPtr;
  249. {$endc}
  250. const
  251. uppURLNotifyProcInfo = $00000FF0;
  252. uppURLSystemEventProcInfo = $000003F0;
  253. {
  254. * NewURLNotifyUPP()
  255. *
  256. * Availability:
  257. * Non-Carbon CFM: available as macro/inline
  258. * CarbonLib: in CarbonLib 1.0 and later
  259. * Mac OS X: in version 10.0 and later
  260. }
  261. function NewURLNotifyUPP(userRoutine: URLNotifyProcPtr): URLNotifyUPP; external name '_NewURLNotifyUPP';
  262. {
  263. * NewURLSystemEventUPP()
  264. *
  265. * Availability:
  266. * Non-Carbon CFM: available as macro/inline
  267. * CarbonLib: in CarbonLib 1.0 and later
  268. * Mac OS X: in version 10.0 and later
  269. }
  270. function NewURLSystemEventUPP(userRoutine: URLSystemEventProcPtr): URLSystemEventUPP; external name '_NewURLSystemEventUPP';
  271. {
  272. * DisposeURLNotifyUPP()
  273. *
  274. * Availability:
  275. * Non-Carbon CFM: available as macro/inline
  276. * CarbonLib: in CarbonLib 1.0 and later
  277. * Mac OS X: in version 10.0 and later
  278. }
  279. procedure DisposeURLNotifyUPP(userUPP: URLNotifyUPP); external name '_DisposeURLNotifyUPP';
  280. {
  281. * DisposeURLSystemEventUPP()
  282. *
  283. * Availability:
  284. * Non-Carbon CFM: available as macro/inline
  285. * CarbonLib: in CarbonLib 1.0 and later
  286. * Mac OS X: in version 10.0 and later
  287. }
  288. procedure DisposeURLSystemEventUPP(userUPP: URLSystemEventUPP); external name '_DisposeURLSystemEventUPP';
  289. {
  290. * InvokeURLNotifyUPP()
  291. *
  292. * Availability:
  293. * Non-Carbon CFM: available as macro/inline
  294. * CarbonLib: in CarbonLib 1.0 and later
  295. * Mac OS X: in version 10.0 and later
  296. }
  297. function InvokeURLNotifyUPP(userContext: UnivPtr; event: URLEvent; var callbackInfo: URLCallbackInfo; userRoutine: URLNotifyUPP): OSStatus; external name '_InvokeURLNotifyUPP';
  298. {
  299. * InvokeURLSystemEventUPP()
  300. *
  301. * Availability:
  302. * Non-Carbon CFM: available as macro/inline
  303. * CarbonLib: in CarbonLib 1.0 and later
  304. * Mac OS X: in version 10.0 and later
  305. }
  306. function InvokeURLSystemEventUPP(userContext: UnivPtr; var event: EventRecord; userRoutine: URLSystemEventUPP): OSStatus; external name '_InvokeURLSystemEventUPP';
  307. {
  308. * URLSimpleDownload()
  309. *
  310. * Availability:
  311. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  312. * CarbonLib: in CarbonLib 1.0 and later
  313. * Mac OS X: in version 10.0 and later
  314. }
  315. function URLSimpleDownload(url: ConstCStringPtr; destination: FSSpecPtr; destinationHandle: Handle; openFlags: URLOpenFlags; eventProc: URLSystemEventUPP; userContext: UnivPtr): OSStatus; external name '_URLSimpleDownload';
  316. {
  317. * URLDownload()
  318. *
  319. * Availability:
  320. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  321. * CarbonLib: in CarbonLib 1.0 and later
  322. * Mac OS X: in version 10.0 and later
  323. }
  324. function URLDownload(urlRef: URLReference; destination: FSSpecPtr; destinationHandle: Handle; openFlags: URLOpenFlags; eventProc: URLSystemEventUPP; userContext: UnivPtr): OSStatus; external name '_URLDownload';
  325. {
  326. * URLSimpleUpload()
  327. *
  328. * Availability:
  329. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  330. * CarbonLib: in CarbonLib 1.0 and later
  331. * Mac OS X: in version 10.0 and later
  332. }
  333. function URLSimpleUpload(url: ConstCStringPtr; const (*var*) source: FSSpec; openFlags: URLOpenFlags; eventProc: URLSystemEventUPP; userContext: UnivPtr): OSStatus; external name '_URLSimpleUpload';
  334. {
  335. * URLUpload()
  336. *
  337. * Availability:
  338. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  339. * CarbonLib: in CarbonLib 1.0 and later
  340. * Mac OS X: in version 10.0 and later
  341. }
  342. function URLUpload(urlRef: URLReference; const (*var*) source: FSSpec; openFlags: URLOpenFlags; eventProc: URLSystemEventUPP; userContext: UnivPtr): OSStatus; external name '_URLUpload';
  343. {
  344. * URLNewReference()
  345. *
  346. * Availability:
  347. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  348. * CarbonLib: in CarbonLib 1.0 and later
  349. * Mac OS X: in version 10.0 and later
  350. }
  351. function URLNewReference(url: ConstCStringPtr; var urlRef: URLReference): OSStatus; external name '_URLNewReference';
  352. {
  353. * URLDisposeReference()
  354. *
  355. * Availability:
  356. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  357. * CarbonLib: in CarbonLib 1.0 and later
  358. * Mac OS X: in version 10.0 and later
  359. }
  360. function URLDisposeReference(urlRef: URLReference): OSStatus; external name '_URLDisposeReference';
  361. {
  362. * URLOpen()
  363. *
  364. * Availability:
  365. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  366. * CarbonLib: in CarbonLib 1.0 and later
  367. * Mac OS X: in version 10.0 and later
  368. }
  369. function URLOpen(urlRef: URLReference; fileSpec: FSSpecPtr; openFlags: URLOpenFlags; notifyProc: URLNotifyUPP; eventRegister: URLEventMask; userContext: UnivPtr): OSStatus; external name '_URLOpen';
  370. {
  371. * URLAbort()
  372. *
  373. * Availability:
  374. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  375. * CarbonLib: in CarbonLib 1.0 and later
  376. * Mac OS X: in version 10.0 and later
  377. }
  378. function URLAbort(urlRef: URLReference): OSStatus; external name '_URLAbort';
  379. {
  380. * URLGetDataAvailable()
  381. *
  382. * Availability:
  383. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  384. * CarbonLib: in CarbonLib 1.0 and later
  385. * Mac OS X: in version 10.0 and later
  386. }
  387. function URLGetDataAvailable(urlRef: URLReference; var dataSize: Size): OSStatus; external name '_URLGetDataAvailable';
  388. {
  389. * URLGetBuffer()
  390. *
  391. * Availability:
  392. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  393. * CarbonLib: in CarbonLib 1.0 and later
  394. * Mac OS X: in version 10.0 and later
  395. }
  396. function URLGetBuffer(urlRef: URLReference; var buffer: UnivPtr; var bufferSize: Size): OSStatus; external name '_URLGetBuffer';
  397. {
  398. * URLReleaseBuffer()
  399. *
  400. * Availability:
  401. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  402. * CarbonLib: in CarbonLib 1.0 and later
  403. * Mac OS X: in version 10.0 and later
  404. }
  405. function URLReleaseBuffer(urlRef: URLReference; buffer: UnivPtr): OSStatus; external name '_URLReleaseBuffer';
  406. {
  407. * URLGetProperty()
  408. *
  409. * Availability:
  410. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  411. * CarbonLib: in CarbonLib 1.0 and later
  412. * Mac OS X: in version 10.0 and later
  413. }
  414. function URLGetProperty(urlRef: URLReference; proprty: ConstCStringPtr; propertyBuffer: UnivPtr; bufferSize: Size): OSStatus; external name '_URLGetProperty';
  415. {
  416. * URLGetPropertySize()
  417. *
  418. * Availability:
  419. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  420. * CarbonLib: in CarbonLib 1.0 and later
  421. * Mac OS X: in version 10.0 and later
  422. }
  423. function URLGetPropertySize(urlRef: URLReference; proprty: ConstCStringPtr; var propertySize: Size): OSStatus; external name '_URLGetPropertySize';
  424. {
  425. * URLSetProperty()
  426. *
  427. * Availability:
  428. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  429. * CarbonLib: in CarbonLib 1.0 and later
  430. * Mac OS X: in version 10.0 and later
  431. }
  432. function URLSetProperty(urlRef: URLReference; proprty: ConstCStringPtr; propertyBuffer: UnivPtr; bufferSize: Size): OSStatus; external name '_URLSetProperty';
  433. {
  434. * URLGetCurrentState()
  435. *
  436. * Availability:
  437. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  438. * CarbonLib: in CarbonLib 1.0 and later
  439. * Mac OS X: in version 10.0 and later
  440. }
  441. function URLGetCurrentState(urlRef: URLReference; var state: URLState): OSStatus; external name '_URLGetCurrentState';
  442. {
  443. * URLGetError()
  444. *
  445. * Availability:
  446. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  447. * CarbonLib: in CarbonLib 1.0 and later
  448. * Mac OS X: in version 10.0 and later
  449. }
  450. function URLGetError(urlRef: URLReference; var urlError: OSStatus): OSStatus; external name '_URLGetError';
  451. {
  452. * URLIdle()
  453. *
  454. * Availability:
  455. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  456. * CarbonLib: in CarbonLib 1.0 and later
  457. * Mac OS X: in version 10.0 and later
  458. }
  459. function URLIdle: OSStatus; external name '_URLIdle';
  460. {
  461. * URLGetFileInfo()
  462. *
  463. * Availability:
  464. * Non-Carbon CFM: in URLAccessLib 1.0 and later
  465. * CarbonLib: in CarbonLib 1.0 and later
  466. * Mac OS X: in version 10.0 and later
  467. }
  468. function URLGetFileInfo(fName: StringPtr; var fType: OSType; var fCreator: OSType): OSStatus; external name '_URLGetFileInfo';
  469. {$ALIGN MAC68K}
  470. end.