Team Fortress 2 Source Code as on 22/4/2020
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.

986 lines
28 KiB

  1. /*
  2. File: ICAApplication.h
  3. Contains: General purpose Image Capture definitions
  4. Version: QuickTime 7.3
  5. Copyright: (c) 2007 (c) 2000-2001 by Apple Computer, Inc., all rights reserved.
  6. Bugs?: For bug reports, consult the following page on
  7. the World Wide Web:
  8. http://developer.apple.com/bugreporter/
  9. */
  10. #ifndef __ICAAPPLICATION__
  11. #define __ICAAPPLICATION__
  12. #ifndef __MACTYPES__
  13. #include <MacTypes.h>
  14. #endif
  15. #ifndef __FILES__
  16. #include <Files.h>
  17. #endif
  18. #ifndef __CFDICTIONARY__
  19. #include <CFDictionary.h>
  20. #endif
  21. #if PRAGMA_ONCE
  22. #pragma once
  23. #endif
  24. #ifdef __cplusplus
  25. extern "C" {
  26. #endif
  27. #if PRAGMA_IMPORT
  28. #pragma import on
  29. #endif
  30. #if PRAGMA_STRUCT_ALIGN
  31. #pragma options align=mac68k
  32. #elif PRAGMA_STRUCT_PACKPUSH
  33. #pragma pack(push, 2)
  34. #elif PRAGMA_STRUCT_PACK
  35. #pragma pack(2)
  36. #endif
  37. typedef struct OpaqueICAObject* ICAObject;
  38. typedef struct OpaqueICAProperty* ICAProperty;
  39. typedef struct OpaqueICAConnectionID* ICAConnectionID;
  40. typedef struct OpaqueICAEventDataCookie* ICAEventDataCookie;
  41. typedef struct OpaqueICAScannerSessionID* ICAScannerSessionID;
  42. /*
  43. --------------- Defines ---------------
  44. */
  45. /* Error codes (Image Capture range = -9900...-9949)*/
  46. enum {
  47. kICACommunicationErr = -9900,
  48. kICADeviceNotFoundErr = -9901,
  49. kICADeviceNotOpenErr = -9902,
  50. kICAFileCorruptedErr = -9903,
  51. kICAIOPendingErr = -9904,
  52. kICAInvalidObjectErr = -9905,
  53. kICAInvalidPropertyErr = -9906,
  54. kICAIndexOutOfRangeErr = -9907,
  55. kICAPropertyTypeNotFoundErr = -9908
  56. };
  57. /* ICAObject types and subtypes */
  58. enum {
  59. kICADevice = FOUR_CHAR_CODE('icdv'), /* Also creator of device library files */
  60. kICADeviceCamera = FOUR_CHAR_CODE('cmra'), /* Also file type of device library files */
  61. kICADeviceScanner = FOUR_CHAR_CODE('scan'), /* Also file type of device library files */
  62. kICADeviceMFP = FOUR_CHAR_CODE('mfp '), /* Also file type of device library files */
  63. kICAList = FOUR_CHAR_CODE('objl'),
  64. kICADirectory = FOUR_CHAR_CODE('dire'),
  65. kICAFile = FOUR_CHAR_CODE('file'),
  66. kICAFileImage = FOUR_CHAR_CODE('imag'),
  67. kICAFileMovie = FOUR_CHAR_CODE('moov'),
  68. kICAFileAudio = FOUR_CHAR_CODE('audo'),
  69. kICAFileFirmware = FOUR_CHAR_CODE('firm'),
  70. kICAFileOther = FOUR_CHAR_CODE('othe')
  71. };
  72. /* ICAProperties */
  73. enum {
  74. kICAProperty = FOUR_CHAR_CODE('prop'), /* */
  75. /* file properties */
  76. /* */
  77. /* for images, refer to 'Digital Still Camera Image File Format Standard' Exif Version 2.1 section 2.6.4. and 2.6.5.*/
  78. kICAPropertyImageWidth = FOUR_CHAR_CODE('0100'), /* UInt32 */
  79. kICAPropertyImageHeight = FOUR_CHAR_CODE('0101'), /* UInt32 */
  80. kICAPropertyImageBitDepth = FOUR_CHAR_CODE('0102'), /* UInt32 */
  81. kICAPropertyImageDPI = FOUR_CHAR_CODE('011A'), /* UInt32 */
  82. kICAPropertyImageExposureTime = FOUR_CHAR_CODE('829A'),
  83. kICAPropertyImageFNumber = FOUR_CHAR_CODE('829D'),
  84. kICAPropertyImageDateOriginal = FOUR_CHAR_CODE('9003'), /* null terminated string (YYYYMMDDThhmmss.s) */
  85. kICAPropertyImageDateDigitized = FOUR_CHAR_CODE('9004'), /* null terminated string (YYYYMMDDThhmmss.s) */
  86. kICAPropertyImageShutterSpeed = FOUR_CHAR_CODE('9201'), /* */
  87. kICAPropertyImageAperture = FOUR_CHAR_CODE('9202'), /* */
  88. kICAPropertyImageFlash = FOUR_CHAR_CODE('9209'), /* UInt16*/
  89. kICAPropertyColorSpace = FOUR_CHAR_CODE('A001'), /* UInt16*/
  90. kICAPropertyImageFilename = FOUR_CHAR_CODE('ifil'), /* null terminated string */
  91. kICAPropertyImageSize = FOUR_CHAR_CODE('isiz'), /* UInt32 */
  92. kICAPropertyImageData = FOUR_CHAR_CODE('idat'), /* void * */
  93. kICAPropertyImageThumbnail = FOUR_CHAR_CODE('thum'), /* void * */
  94. kICAPropertyColorSyncProfile = FOUR_CHAR_CODE('prof')
  95. };
  96. /* Messages */
  97. enum {
  98. kICAMessageConnect = FOUR_CHAR_CODE('open'),
  99. kICAMessageDisconnect = FOUR_CHAR_CODE('clos'),
  100. kICAMessageReset = FOUR_CHAR_CODE('rese'),
  101. kICAMessageCheckDevice = FOUR_CHAR_CODE('chkd')
  102. };
  103. /* Data type definitions, mapped to AppleEvent types */
  104. enum {
  105. kICATypeUInt16 = FOUR_CHAR_CODE('ui16'), /* UInt16 */
  106. kICATypeUInt32 = FOUR_CHAR_CODE('ui32'), /* UInt32 */
  107. kICATypeUInt64 = FOUR_CHAR_CODE('ui64'), /* UInt64 */
  108. kICATypeSInt16 = FOUR_CHAR_CODE('si16'), /* SInt16 */
  109. kICATypeSInt32 = FOUR_CHAR_CODE('si32'), /* SInt32 */
  110. kICATypeSInt64 = FOUR_CHAR_CODE('si64'), /* SInt64 */
  111. kICATypeFixed = FOUR_CHAR_CODE('sing'), /* typeIEEE32BitFloatingPoint */
  112. kICATypeBoolean = FOUR_CHAR_CODE('bool'), /* typeBoolean */
  113. kICATypeString = FOUR_CHAR_CODE('TEXT'), /* typeChar */
  114. kICATypeData = FOUR_CHAR_CODE('data'), /* void * */
  115. kICATypeThumbnail = FOUR_CHAR_CODE('thum') /* ICAThumbnail*/
  116. };
  117. /* Flags for PropertyInfo flag element */
  118. enum {
  119. kICAFlagReadWriteAccess = 1L << 0,
  120. kICAFlagReadAccess = 1L << 1
  121. };
  122. /* Notification types (Refer to section 12.4 of PTP spec) */
  123. enum {
  124. kICAEventCancelTransaction = FOUR_CHAR_CODE('ecnt'),
  125. kICAEventObjectAdded = FOUR_CHAR_CODE('eoba'),
  126. kICAEventObjectRemoved = FOUR_CHAR_CODE('eobr'),
  127. kICAEventStoreAdded = FOUR_CHAR_CODE('esta'),
  128. kICAEventStoreRemoved = FOUR_CHAR_CODE('estr'),
  129. kICAEventDeviceAdded = FOUR_CHAR_CODE('edea'),
  130. kICAEventDeviceRemoved = FOUR_CHAR_CODE('eder'),
  131. kICAEventDevicePropChanged = FOUR_CHAR_CODE('edpc'),
  132. kICAEventObjectInfoChanged = FOUR_CHAR_CODE('eoic'),
  133. kICAEventDeviceInfoChanged = FOUR_CHAR_CODE('edic'),
  134. kICAEventRequestObjectTransfer = FOUR_CHAR_CODE('erot'),
  135. kICAEventStoreFull = FOUR_CHAR_CODE('estf'),
  136. kICAEventDeviceReset = FOUR_CHAR_CODE('edvr'),
  137. kICAEventStorageInfoChanged = FOUR_CHAR_CODE('esic'),
  138. kICAEventCaptureComplete = FOUR_CHAR_CODE('ecpc'),
  139. kICAEventUnreportedStatus = FOUR_CHAR_CODE('eurs')
  140. };
  141. /* Used for partial reads via ICAGetPropertyData */
  142. enum {
  143. kICAStartAtBeginning = 0,
  144. kICAEntireLength = -1
  145. };
  146. /* ICADownloadFile flags */
  147. enum {
  148. kDeleteAfterDownload = 0x00000001,
  149. kCreateCustomIcon = 0x00000002,
  150. kAddMetaDataToFinderComment = 0x00000004,
  151. kAdjustCreationDate = 0x00000008,
  152. kSetFileTypeAndCreator = 0x00000010,
  153. kEmbedColorSyncProfile = 0x00000020,
  154. kRotateImage = 0x00000040
  155. };
  156. /* extended notification */
  157. enum {
  158. kExtendedNotificationPB = FOUR_CHAR_CODE('extd'),
  159. kMessageGetEventData = FOUR_CHAR_CODE('mged'),
  160. kEventClassPTPStandard = FOUR_CHAR_CODE('PTPs'),
  161. kEventClassPTPVendor = FOUR_CHAR_CODE('PTPv')
  162. };
  163. /*
  164. --------------- Structures ---------------
  165. */
  166. struct ICAObjectInfo {
  167. OSType objectType; /* i.e. kICAFile*/
  168. OSType objectSubtype; /* i.e. kICAFileImage */
  169. };
  170. typedef struct ICAObjectInfo ICAObjectInfo;
  171. struct ICAPropertyInfo {
  172. OSType propertyType;
  173. OSType dataType;
  174. UInt32 dataSize;
  175. UInt32 dataFlags;
  176. };
  177. typedef struct ICAPropertyInfo ICAPropertyInfo;
  178. struct ICAMessage {
  179. OSType messageType; /* <-- i.e. kICAMessageCameraCaptureNewImage */
  180. UInt32 startByte; /* <-- */
  181. void * dataPtr; /* <-- */
  182. UInt32 dataSize; /* <-- */
  183. OSType dataType; /* <-- */
  184. };
  185. typedef struct ICAMessage ICAMessage;
  186. struct ICAThumbnail {
  187. UInt32 width;
  188. UInt32 height;
  189. UInt32 dataSize;
  190. UInt8 data[1]; /* 8-bit RGB data (RGBRGBRGB...)*/
  191. };
  192. typedef struct ICAThumbnail ICAThumbnail;
  193. enum {
  194. kICAPBVersion = 0x00010000
  195. };
  196. /*
  197. --------------- Completion Procs ---------------
  198. */
  199. /*
  200. NOTE: the parameter for the completion proc (ICAHeader*) has to be casted to the appropriate type
  201. e.g. (ICAGetChildCountPB*), ...
  202. */
  203. typedef struct ICAHeader ICAHeader;
  204. typedef CALLBACK_API_C( void , ICACompletion )(ICAHeader * pb);
  205. /*
  206. --------------- ICAHeader ---------------
  207. */
  208. struct ICAHeader {
  209. OSErr err; /* --> */
  210. UInt32 refcon; /* <-- */
  211. };
  212. /*
  213. --------------- Object parameter blocks ---------------
  214. */
  215. struct ICAGetChildCountPB {
  216. ICAHeader header;
  217. ICAObject object; /* <-- */
  218. UInt32 count; /* --> */
  219. };
  220. typedef struct ICAGetChildCountPB ICAGetChildCountPB;
  221. struct ICAGetNthChildPB {
  222. ICAHeader header;
  223. ICAObject parentObject; /* <-- */
  224. UInt32 index; /* <-- zero based */
  225. ICAObject childObject; /* --> */
  226. ICAObjectInfo childInfo; /* --> */
  227. };
  228. typedef struct ICAGetNthChildPB ICAGetNthChildPB;
  229. struct ICAGetObjectInfoPB {
  230. ICAHeader header;
  231. ICAObject object; /* <-- */
  232. ICAObjectInfo objectInfo; /* --> */
  233. };
  234. typedef struct ICAGetObjectInfoPB ICAGetObjectInfoPB;
  235. struct ICAGetParentOfObjectPB {
  236. ICAHeader header;
  237. ICAObject object; /* <-- */
  238. ICAObject parentObject; /* --> */
  239. ICAObjectInfo parentInfo; /* --> */
  240. };
  241. typedef struct ICAGetParentOfObjectPB ICAGetParentOfObjectPB;
  242. struct ICAGetRootOfObjectPB {
  243. ICAHeader header;
  244. ICAObject object; /* <-- */
  245. ICAObject rootObject; /* --> */
  246. ICAObjectInfo rootInfo; /* --> */
  247. };
  248. typedef struct ICAGetRootOfObjectPB ICAGetRootOfObjectPB;
  249. struct ICAGetObjectRefConPB {
  250. ICAHeader header;
  251. ICAObject object; /* <-- */
  252. UInt32 objectRefCon; /* --> */
  253. };
  254. typedef struct ICAGetObjectRefConPB ICAGetObjectRefConPB;
  255. struct ICASetObjectRefConPB {
  256. ICAHeader header;
  257. ICAObject object; /* <-- */
  258. UInt32 objectRefCon; /* <-- */
  259. };
  260. typedef struct ICASetObjectRefConPB ICASetObjectRefConPB;
  261. /*
  262. --------------- Property parameter blocks ---------------
  263. */
  264. struct ICAGetPropertyCountPB {
  265. ICAHeader header;
  266. ICAObject object; /* <-- */
  267. UInt32 count; /* --> */
  268. };
  269. typedef struct ICAGetPropertyCountPB ICAGetPropertyCountPB;
  270. struct ICAGetNthPropertyPB {
  271. ICAHeader header;
  272. ICAObject object; /* <-- */
  273. UInt32 index; /* <-- zero based */
  274. ICAProperty property; /* --> */
  275. ICAPropertyInfo propertyInfo; /* --> */
  276. };
  277. typedef struct ICAGetNthPropertyPB ICAGetNthPropertyPB;
  278. struct ICAGetPropertyByTypePB {
  279. ICAHeader header;
  280. ICAObject object; /* <-- */
  281. OSType propertyType; /* <-- */
  282. ICAProperty property; /* --> */
  283. ICAPropertyInfo propertyInfo; /* --> */
  284. };
  285. typedef struct ICAGetPropertyByTypePB ICAGetPropertyByTypePB;
  286. struct ICAGetPropertyInfoPB {
  287. ICAHeader header;
  288. ICAProperty property; /* <-- */
  289. ICAPropertyInfo propertyInfo; /* --> */
  290. };
  291. typedef struct ICAGetPropertyInfoPB ICAGetPropertyInfoPB;
  292. struct ICAGetPropertyDataPB {
  293. ICAHeader header;
  294. ICAProperty property; /* <-- */
  295. UInt32 startByte; /* <-- */
  296. UInt32 requestedSize; /* <-- */
  297. void * dataPtr; /* <-> */
  298. UInt32 actualSize; /* --> */
  299. OSType dataType; /* --> */
  300. };
  301. typedef struct ICAGetPropertyDataPB ICAGetPropertyDataPB;
  302. struct ICASetPropertyDataPB {
  303. ICAHeader header;
  304. ICAProperty property; /* <-- */
  305. UInt32 startByte; /* <-- */
  306. void * dataPtr; /* <-- */
  307. UInt32 dataSize; /* <-- */
  308. OSType dataType; /* <-- */
  309. };
  310. typedef struct ICASetPropertyDataPB ICASetPropertyDataPB;
  311. struct ICAGetParentOfPropertyPB {
  312. ICAHeader header;
  313. ICAProperty property; /* <-- */
  314. ICAObject parentObject; /* --> */
  315. ICAObjectInfo parentInfo; /* --> */
  316. };
  317. typedef struct ICAGetParentOfPropertyPB ICAGetParentOfPropertyPB;
  318. struct ICAGetRootOfPropertyPB {
  319. ICAHeader header;
  320. ICAProperty property; /* <-- */
  321. ICAObject rootObject; /* --> */
  322. ICAObjectInfo rootInfo; /* --> */
  323. };
  324. typedef struct ICAGetRootOfPropertyPB ICAGetRootOfPropertyPB;
  325. struct ICAGetPropertyRefConPB {
  326. ICAHeader header;
  327. ICAProperty property; /* <-- */
  328. UInt32 propertyRefCon; /* --> */
  329. };
  330. typedef struct ICAGetPropertyRefConPB ICAGetPropertyRefConPB;
  331. struct ICASetPropertyRefConPB {
  332. ICAHeader header;
  333. ICAProperty property; /* <-- */
  334. UInt32 propertyRefCon; /* <-- */
  335. };
  336. typedef struct ICASetPropertyRefConPB ICASetPropertyRefConPB;
  337. /*
  338. --------------- Device parameter blocks ---------------
  339. */
  340. struct ICAGetDeviceListPB {
  341. ICAHeader header;
  342. ICAObject object; /* --> */
  343. };
  344. typedef struct ICAGetDeviceListPB ICAGetDeviceListPB;
  345. struct ICAObjectSendMessagePB {
  346. ICAHeader header;
  347. ICAObject object; /* <-- */
  348. ICAMessage message; /* <-- */
  349. UInt32 result; /* --> message specific result*/
  350. };
  351. typedef struct ICAObjectSendMessagePB ICAObjectSendMessagePB;
  352. struct ICARegisterEventNotificationPB {
  353. ICAHeader header;
  354. ICAObject object; /* <-> */
  355. OSType notifyType; /* <-> */
  356. ICACompletion notifyProc; /* <-- */
  357. };
  358. typedef struct ICARegisterEventNotificationPB ICARegisterEventNotificationPB;
  359. struct ICAExtendedRegisterEventNotificationPB {
  360. ICAHeader header;
  361. ICAObject object; /* <-> */
  362. OSType extd; /* <-- */
  363. ICACompletion notifyProc; /* <-- */
  364. UInt32 rawEventType; /* -->*/
  365. OSType eventType; /* <->*/
  366. OSType eventClass; /* -->*/
  367. UInt32 eventDataSize; /* -->*/
  368. ICAEventDataCookie eventDataCookie; /* -->*/
  369. ICAObject deviceObject; /* -->*/
  370. };
  371. typedef struct ICAExtendedRegisterEventNotificationPB ICAExtendedRegisterEventNotificationPB;
  372. struct ICADownloadFilePB {
  373. ICAHeader header;
  374. ICAObject object; /* <-- */
  375. FSRef * dirFSRef; /* <-- */
  376. UInt32 flags; /* <-- */
  377. OSType fileType; /* <-- */
  378. OSType fileCreator; /* <-- */
  379. Fixed rotationAngle; /* <-- */
  380. FSRef * fileFSRef; /* --> can be NULL*/
  381. };
  382. typedef struct ICADownloadFilePB ICADownloadFilePB;
  383. struct ICACopyObjectPropertyDictionaryPB {
  384. ICAHeader header;
  385. ICAObject object; /* <-- */
  386. CFDictionaryRef * theDict; /* --> */
  387. };
  388. typedef struct ICACopyObjectPropertyDictionaryPB ICACopyObjectPropertyDictionaryPB;
  389. /*
  390. NOTE: for all APIs - pass NULL as completion parameter to make a synchronous call
  391. */
  392. /*
  393. --------------- Object functions ---------------
  394. */
  395. /*
  396. * ICAGetChildCount()
  397. *
  398. * Availability:
  399. * Non-Carbon CFM: not available
  400. * CarbonLib: in CarbonLib 1.1 and later
  401. * Mac OS X: in version 10.0 and later
  402. */
  403. EXTERN_API( OSErr )
  404. ICAGetChildCount(
  405. ICAGetChildCountPB * pb,
  406. ICACompletion completion); /* can be NULL */
  407. /*
  408. * ICAGetNthChild()
  409. *
  410. * Availability:
  411. * Non-Carbon CFM: not available
  412. * CarbonLib: in CarbonLib 1.1 and later
  413. * Mac OS X: in version 10.0 and later
  414. */
  415. EXTERN_API( OSErr )
  416. ICAGetNthChild(
  417. ICAGetNthChildPB * pb,
  418. ICACompletion completion); /* can be NULL */
  419. /*
  420. * ICAGetObjectInfo()
  421. *
  422. * Availability:
  423. * Non-Carbon CFM: not available
  424. * CarbonLib: in CarbonLib 1.1 and later
  425. * Mac OS X: in version 10.0 and later
  426. */
  427. EXTERN_API( OSErr )
  428. ICAGetObjectInfo(
  429. ICAGetObjectInfoPB * pb,
  430. ICACompletion completion); /* can be NULL */
  431. /*
  432. * ICAGetParentOfObject()
  433. *
  434. * Availability:
  435. * Non-Carbon CFM: not available
  436. * CarbonLib: in CarbonLib 1.1 and later
  437. * Mac OS X: in version 10.0 and later
  438. */
  439. EXTERN_API( OSErr )
  440. ICAGetParentOfObject(
  441. ICAGetParentOfObjectPB * pb,
  442. ICACompletion completion); /* can be NULL */
  443. /*
  444. * ICAGetRootOfObject()
  445. *
  446. * Availability:
  447. * Non-Carbon CFM: not available
  448. * CarbonLib: in CarbonLib 1.1 and later
  449. * Mac OS X: in version 10.0 and later
  450. */
  451. EXTERN_API( OSErr )
  452. ICAGetRootOfObject(
  453. ICAGetRootOfObjectPB * pb,
  454. ICACompletion completion); /* can be NULL */
  455. /*
  456. * ICAGetObjectRefCon()
  457. *
  458. * Availability:
  459. * Non-Carbon CFM: not available
  460. * CarbonLib: in CarbonLib 1.1 and later
  461. * Mac OS X: in version 10.0 and later
  462. */
  463. EXTERN_API( OSErr )
  464. ICAGetObjectRefCon(
  465. ICAGetObjectRefConPB * pb,
  466. ICACompletion completion); /* can be NULL */
  467. /*
  468. * ICASetObjectRefCon()
  469. *
  470. * Availability:
  471. * Non-Carbon CFM: not available
  472. * CarbonLib: in CarbonLib 1.1 and later
  473. * Mac OS X: in version 10.0 and later
  474. */
  475. EXTERN_API( OSErr )
  476. ICASetObjectRefCon(
  477. ICASetObjectRefConPB * pb,
  478. ICACompletion completion); /* can be NULL */
  479. /*
  480. --------------- Property functions ---------------
  481. */
  482. /*
  483. * ICAGetPropertyCount()
  484. *
  485. * Availability:
  486. * Non-Carbon CFM: not available
  487. * CarbonLib: in CarbonLib 1.1 and later
  488. * Mac OS X: in version 10.0 and later
  489. */
  490. EXTERN_API( OSErr )
  491. ICAGetPropertyCount(
  492. ICAGetPropertyCountPB * pb,
  493. ICACompletion completion); /* can be NULL */
  494. /*
  495. * ICAGetNthProperty()
  496. *
  497. * Availability:
  498. * Non-Carbon CFM: not available
  499. * CarbonLib: in CarbonLib 1.1 and later
  500. * Mac OS X: in version 10.0 and later
  501. */
  502. EXTERN_API( OSErr )
  503. ICAGetNthProperty(
  504. ICAGetNthPropertyPB * pb,
  505. ICACompletion completion); /* can be NULL */
  506. /*
  507. * ICAGetPropertyByType()
  508. *
  509. * Availability:
  510. * Non-Carbon CFM: not available
  511. * CarbonLib: in CarbonLib 1.1 and later
  512. * Mac OS X: in version 10.0 and later
  513. */
  514. EXTERN_API( OSErr )
  515. ICAGetPropertyByType(
  516. ICAGetPropertyByTypePB * pb,
  517. ICACompletion completion); /* can be NULL */
  518. /*
  519. * ICAGetPropertyInfo()
  520. *
  521. * Availability:
  522. * Non-Carbon CFM: not available
  523. * CarbonLib: in CarbonLib 1.1 and later
  524. * Mac OS X: in version 10.0 and later
  525. */
  526. EXTERN_API( OSErr )
  527. ICAGetPropertyInfo(
  528. ICAGetPropertyInfoPB * pb,
  529. ICACompletion completion); /* can be NULL */
  530. /*
  531. * ICAGetPropertyData()
  532. *
  533. * Availability:
  534. * Non-Carbon CFM: not available
  535. * CarbonLib: in CarbonLib 1.1 and later
  536. * Mac OS X: in version 10.0 and later
  537. */
  538. EXTERN_API( OSErr )
  539. ICAGetPropertyData(
  540. ICAGetPropertyDataPB * pb,
  541. ICACompletion completion); /* can be NULL */
  542. /*
  543. * ICASetPropertyData()
  544. *
  545. * Availability:
  546. * Non-Carbon CFM: not available
  547. * CarbonLib: in CarbonLib 1.1 and later
  548. * Mac OS X: in version 10.0 and later
  549. */
  550. EXTERN_API( OSErr )
  551. ICASetPropertyData(
  552. ICASetPropertyDataPB * pb,
  553. ICACompletion completion); /* can be NULL */
  554. /*
  555. * ICAGetParentOfProperty()
  556. *
  557. * Availability:
  558. * Non-Carbon CFM: not available
  559. * CarbonLib: in CarbonLib 1.1 and later
  560. * Mac OS X: in version 10.0 and later
  561. */
  562. EXTERN_API( OSErr )
  563. ICAGetParentOfProperty(
  564. ICAGetParentOfPropertyPB * pb,
  565. ICACompletion completion); /* can be NULL */
  566. /*
  567. * ICAGetRootOfProperty()
  568. *
  569. * Availability:
  570. * Non-Carbon CFM: not available
  571. * CarbonLib: in CarbonLib 1.1 and later
  572. * Mac OS X: in version 10.0 and later
  573. */
  574. EXTERN_API( OSErr )
  575. ICAGetRootOfProperty(
  576. ICAGetRootOfPropertyPB * pb,
  577. ICACompletion completion); /* can be NULL */
  578. /*
  579. * ICAGetPropertyRefCon()
  580. *
  581. * Availability:
  582. * Non-Carbon CFM: not available
  583. * CarbonLib: in CarbonLib 1.1 and later
  584. * Mac OS X: in version 10.0 and later
  585. */
  586. EXTERN_API( OSErr )
  587. ICAGetPropertyRefCon(
  588. ICAGetPropertyRefConPB * pb,
  589. ICACompletion completion); /* can be NULL */
  590. /*
  591. * ICASetPropertyRefCon()
  592. *
  593. * Availability:
  594. * Non-Carbon CFM: not available
  595. * CarbonLib: in CarbonLib 1.1 and later
  596. * Mac OS X: in version 10.0 and later
  597. */
  598. EXTERN_API( OSErr )
  599. ICASetPropertyRefCon(
  600. ICASetPropertyRefConPB * pb,
  601. ICACompletion completion); /* can be NULL */
  602. /*
  603. --------------- Device functions ---------------
  604. */
  605. /*
  606. * ICAGetDeviceList()
  607. *
  608. * Availability:
  609. * Non-Carbon CFM: not available
  610. * CarbonLib: in CarbonLib 1.1 and later
  611. * Mac OS X: in version 10.0 and later
  612. */
  613. EXTERN_API( OSErr )
  614. ICAGetDeviceList(
  615. ICAGetDeviceListPB * pb,
  616. ICACompletion completion); /* can be NULL */
  617. /*
  618. * ICAObjectSendMessage()
  619. *
  620. * Availability:
  621. * Non-Carbon CFM: not available
  622. * CarbonLib: in CarbonLib 1.1 and later
  623. * Mac OS X: in version 10.0 and later
  624. */
  625. EXTERN_API( OSErr )
  626. ICAObjectSendMessage(
  627. ICAObjectSendMessagePB * pb,
  628. ICACompletion completion); /* can be NULL */
  629. /*
  630. * ICARegisterEventNotification()
  631. *
  632. * Availability:
  633. * Non-Carbon CFM: not available
  634. * CarbonLib: in CarbonLib 1.1 and later
  635. * Mac OS X: in version 10.0 and later
  636. */
  637. EXTERN_API( OSErr )
  638. ICARegisterEventNotification(
  639. ICARegisterEventNotificationPB * pb,
  640. ICACompletion completion); /* can be NULL */
  641. /*
  642. ------------------------------------------------
  643. */
  644. /*
  645. * ICADownloadFile()
  646. *
  647. * Availability:
  648. * Non-Carbon CFM: not available
  649. * CarbonLib: in CarbonLib 1.4 and later
  650. * Mac OS X: in version 10.1 and later
  651. */
  652. EXTERN_API( OSErr )
  653. ICADownloadFile(
  654. ICADownloadFilePB * pb,
  655. ICACompletion completion); /* can be NULL */
  656. /*
  657. * ICACopyObjectPropertyDictionary()
  658. *
  659. * Availability:
  660. * Non-Carbon CFM: not available
  661. * CarbonLib: in CarbonLib 1.4 and later
  662. * Mac OS X: in version 10.1 and later
  663. */
  664. EXTERN_API( OSErr )
  665. ICACopyObjectPropertyDictionary(
  666. ICACopyObjectPropertyDictionaryPB * pb,
  667. ICACompletion completion); /* can be NULL */
  668. /*
  669. --- scanner support ---------------------------------------------
  670. */
  671. struct ICAScannerOpenSessionPB {
  672. ICAHeader header;
  673. ICAObject object; /* <-- */
  674. ICAScannerSessionID sessionID; /* --> */
  675. };
  676. typedef struct ICAScannerOpenSessionPB ICAScannerOpenSessionPB;
  677. struct ICAScannerCloseSessionPB {
  678. ICAHeader header;
  679. ICAScannerSessionID sessionID; /* <-- */
  680. };
  681. typedef struct ICAScannerCloseSessionPB ICAScannerCloseSessionPB;
  682. struct ICAScannerInitializePB {
  683. ICAHeader header;
  684. ICAScannerSessionID sessionID; /* <-- */
  685. };
  686. typedef struct ICAScannerInitializePB ICAScannerInitializePB;
  687. struct ICAScannerGetParametersPB {
  688. ICAHeader header;
  689. ICAScannerSessionID sessionID; /* <-- */
  690. CFMutableDictionaryRef theDict; /* --> */
  691. };
  692. typedef struct ICAScannerGetParametersPB ICAScannerGetParametersPB;
  693. struct ICAScannerSetParametersPB {
  694. ICAHeader header;
  695. ICAScannerSessionID sessionID; /* <-- */
  696. CFMutableDictionaryRef theDict; /* <-> */
  697. };
  698. typedef struct ICAScannerSetParametersPB ICAScannerSetParametersPB;
  699. struct ICAScannerStatusPB {
  700. ICAHeader header;
  701. ICAScannerSessionID sessionID; /* <-- */
  702. UInt32 status; /* --> */
  703. };
  704. typedef struct ICAScannerStatusPB ICAScannerStatusPB;
  705. struct ICAScannerStartPB {
  706. ICAHeader header;
  707. ICAScannerSessionID sessionID; /* <-- */
  708. };
  709. typedef struct ICAScannerStartPB ICAScannerStartPB;
  710. /*
  711. * ICAScannerOpenSession()
  712. *
  713. * Availability:
  714. * Non-Carbon CFM: not available
  715. * CarbonLib: in CarbonLib 1.6 and later
  716. * Mac OS X: in version 10.1 and later
  717. */
  718. EXTERN_API( OSErr )
  719. ICAScannerOpenSession(
  720. ICAScannerOpenSessionPB * pb,
  721. ICACompletion completion); /* can be NULL */
  722. /*
  723. * ICAScannerCloseSession()
  724. *
  725. * Availability:
  726. * Non-Carbon CFM: not available
  727. * CarbonLib: in CarbonLib 1.6 and later
  728. * Mac OS X: in version 10.1 and later
  729. */
  730. EXTERN_API( OSErr )
  731. ICAScannerCloseSession(
  732. ICAScannerCloseSessionPB * pb,
  733. ICACompletion completion); /* can be NULL */
  734. /*
  735. * ICAScannerInitialize()
  736. *
  737. * Availability:
  738. * Non-Carbon CFM: not available
  739. * CarbonLib: in CarbonLib 1.6 and later
  740. * Mac OS X: in version 10.1 and later
  741. */
  742. EXTERN_API( OSErr )
  743. ICAScannerInitialize(
  744. ICAScannerInitializePB * pb,
  745. ICACompletion completion); /* can be NULL */
  746. /*
  747. * ICAScannerGetParameters()
  748. *
  749. * Availability:
  750. * Non-Carbon CFM: not available
  751. * CarbonLib: in CarbonLib 1.6 and later
  752. * Mac OS X: in version 10.1 and later
  753. */
  754. EXTERN_API( OSErr )
  755. ICAScannerGetParameters(
  756. ICAScannerGetParametersPB * pb,
  757. ICACompletion completion); /* can be NULL */
  758. /*
  759. * ICAScannerSetParameters()
  760. *
  761. * Availability:
  762. * Non-Carbon CFM: not available
  763. * CarbonLib: in CarbonLib 1.6 and later
  764. * Mac OS X: in version 10.1 and later
  765. */
  766. EXTERN_API( OSErr )
  767. ICAScannerSetParameters(
  768. ICAScannerSetParametersPB * pb,
  769. ICACompletion completion); /* can be NULL */
  770. /*
  771. * ICAScannerStatus()
  772. *
  773. * Availability:
  774. * Non-Carbon CFM: not available
  775. * CarbonLib: in CarbonLib 1.6 and later
  776. * Mac OS X: in version 10.1 and later
  777. */
  778. EXTERN_API( OSErr )
  779. ICAScannerStatus(
  780. ICAScannerStatusPB * pb,
  781. ICACompletion completion); /* can be NULL */
  782. /*
  783. * ICAScannerStart()
  784. *
  785. * Availability:
  786. * Non-Carbon CFM: not available
  787. * CarbonLib: in CarbonLib 1.6 and later
  788. * Mac OS X: in version 10.1 and later
  789. */
  790. EXTERN_API( OSErr )
  791. ICAScannerStart(
  792. ICAScannerStartPB * pb,
  793. ICACompletion completion); /* can be NULL */
  794. #if PRAGMA_STRUCT_ALIGN
  795. #pragma options align=reset
  796. #elif PRAGMA_STRUCT_PACKPUSH
  797. #pragma pack(pop)
  798. #elif PRAGMA_STRUCT_PACK
  799. #pragma pack()
  800. #endif
  801. #ifdef PRAGMA_IMPORT_OFF
  802. #pragma import off
  803. #elif PRAGMA_IMPORT
  804. #pragma import reset
  805. #endif
  806. #ifdef __cplusplus
  807. }
  808. #endif
  809. #endif /* __ICAAPPLICATION__ */