WiaScr.Idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:9k
源码类别:

模拟服务器

开发平台:

C/C++

  1. // wiascr.idl : IDL source for wiascr.dll
  2. //
  3. // This file will be processed by the MIDL tool to
  4. // produce the type library (wiascr.tlb) and marshalling code.
  5. import "oaidl.idl";
  6. import "ocidl.idl";
  7. // generic disp id's
  8. #define DISPID_GETPROP 1000
  9. #define DISPID_SETPROP 1001
  10. // IWia disp id's
  11. #define DISPID_WIA_DEVICES 1
  12. #define DISPID_WIA_CREATE 2
  13. // ICollection disp id's
  14. #define DISPID_COLLECTION_LENGTH 1
  15. // IWiaDeviceInfo disp id's
  16. #define DISPID_DEVINFO_CREATE 1
  17. #define DISPID_DEVINFO_ID 2
  18. #define DISPID_DEVINFO_NAME 3
  19. #define DISPID_DEVINFO_TYPE 4
  20. #define DISPID_DEVINFO_PORT 5
  21. #define DISPID_DEVINFO_UI_CLSID 6
  22. #define DISPID_DEVINFO_VENDOR 7
  23. // IWiaItem disp id's
  24. #define DISPID_ITEMD_CONNSTATUS 1
  25. #define DISPID_ITEMD_TIME 2
  26. #define DISPID_ITEMD_FIRMWAREVER 3
  27. #define DISPID_ITEM_NAME 20
  28. #define DISPID_ITEM_FULL_NAME 21
  29. #define DISPID_ITEM_TYPE 22
  30. #define DISPID_ITEM_WIDTH 23
  31. #define DISPID_ITEM_HEIGHT 24
  32. #define DISPID_ITEMC_THUMBWIDTH 50
  33. #define DISPID_ITEMC_THUMBHEIGHT 51
  34. #define DISPID_ITEMC_THUMBNAIL 52
  35. #define DISPID_ITEMC_HEIGHT 53
  36. #define DISPID_ITEMC_WIDTH 54
  37. #define DISPID_ITEM_CHILDREN 500
  38. [
  39. uuid(95CEDD63-2E34-4B84-9FB3-F86AF1D4BF7A),
  40. version(1.0),
  41. helpstring("nwscript 1.0 Type Library")
  42. ]
  43. library NDMEDIALib
  44. {
  45. importlib("stdole32.tlb");
  46. importlib("stdole2.tlb");
  47. //
  48. // Sample object class
  49. //
  50. [
  51. object,
  52. uuid(C7A4EFC9-017E-45AB-BEF0-9A8218BC1D40),
  53. dual,
  54. helpstring("ISample Interface"),
  55. pointer_default(unique)
  56. ]
  57. interface ISample : IDispatch
  58. {
  59. [propget, id(1), helpstring("Sample property")]
  60. HRESULT SampleProperty([out, retval] BSTR * pbstrSample);
  61. [propput, id(1), helpstring("Sample property")]
  62. HRESULT SampleProperty([in] BSTR bstrSample);
  63. [id(2), helpstring("Sample method. Does nothing in particular")]
  64. HRESULT SampleMethod(void);
  65. };
  66. // End Sample
  67. /*-------------------------------------------------------------------------
  68.  * Wia Interfaces and classes
  69.  *------------------------------------------------------------------------*/
  70. [
  71. object,
  72. uuid(C34C8CE7-B253-4f89-AA25-8A24AD71D0C0),
  73. dual,
  74. helpstring( "ICollection interface" ),
  75. pointer_default(unique)
  76. ]
  77. interface ICollection : IDispatch
  78. {
  79.         [propget, helpstring( "Returns the length of the collection" )]
  80.         HRESULT Count( [out,retval] long* pCount );
  81. [propget, id(DISPID_COLLECTION_LENGTH), helpstring( "Returns the length of the collection" )]
  82. HRESULT Length( [out, retval] unsigned long* plLength );
  83. [propget, id(DISPID_VALUE), helpstring("returns the specified item in the collection")]
  84. HRESULT Item( [in] unsigned long lItem, [out, retval] IDispatch** ppDispItem );
  85. [propget, id(DISPID_NEWENUM), helpstring("returns a copy of this enumerator")]
  86. HRESULT _NewEnum( [out, retval] IUnknown** ppEnum );
  87. };
  88. [
  89. object,
  90. uuid(B10BA1BC-3713-4EC0-8EEA-690EBD2CED8A),
  91. dual,
  92. helpstring("IWia Interface"),
  93. pointer_default(unique)
  94. ]
  95. interface IWia : IDispatch
  96. {
  97. [id(10010), helpstring( "pops up the debugging dialog" )]
  98. HRESULT _DebugDialog( BOOL fWait );
  99. [propget, id(DISPID_WIA_DEVICES), helpstring( "Retrieves the device collection" )]
  100. HRESULT Devices( [out, retval] ICollection** ppCol );
  101. [id(DISPID_WIA_CREATE), helpstring( "connects to the specified device" )]
  102. HRESULT Create( [in, unique] VARIANT* pvaConnect, [out,retval] IDispatch** ppDevice );
  103. };
  104. // for some reason midl doesn't put the DIID in the header
  105. // this ensures that it is in the header which makes ATL a lot
  106. // happier.
  107. cpp_quote( "EXTERN_C const GUID DIID__IWiaEvents;" )
  108. [
  109. uuid(E5F04D72-6C16-42e2-BCCA-F8D0DB4ADE06),
  110. helpstring("Events fired by the IWia interface")
  111. ]
  112. dispinterface _IWiaEvents
  113. {
  114. properties:
  115. methods:
  116. [id(1), helpstring("handles a device connection" )]
  117. void OnDeviceConnected( BSTR bstrDeviceId );
  118. [id(2), helpstring("handles a device disconnection")]
  119. void OnDeviceDisconnected( BSTR bstrDeviceId );
  120. [id(3), helpstring("called when a transfer is complete")]
  121. void OnTransferComplete( IDispatch* pItem, BSTR bstrPath );
  122. };
  123. [
  124. object,
  125. uuid(5267FF5E-7CAF-4769-865D-17A25968525E),
  126. dual,
  127. helpstring("IWiaDeviceInfo Interface"),
  128. pointer_default(unique)
  129. ]
  130. interface IWiaDeviceInfo : IDispatch
  131. {
  132. [propget, id(DISPID_DEVINFO_ID), helpstring("The id of the device")]
  133. HRESULT Id( [out,retval] BSTR* pbstrDeviceId );
  134. [propget, id(DISPID_DEVINFO_NAME), helpstring("the name of the device" )]
  135. HRESULT Name( [out,retval] BSTR* pbstrName );
  136. [propget, id(DISPID_DEVINFO_TYPE), helpstring("the type of the device" )]
  137. HRESULT Type( [out,retval] BSTR* pbstrType );
  138. [propget, id(DISPID_DEVINFO_PORT), helpstring("the port the device lives on" )]
  139. HRESULT Port( [out,retval] BSTR* pbstrPort );
  140. [propget, id(DISPID_DEVINFO_UI_CLSID), helpstring("the class id for the ui for this device" )]
  141. HRESULT UIClsid( [out,retval] BSTR* pbstrGuidUI );
  142. [propget, id(DISPID_DEVINFO_VENDOR), helpstring("the name of the vendor for this device" )]
  143. HRESULT Manufacturer( [out,retval] BSTR* pbstrVendor );
  144. [id(DISPID_DEVINFO_CREATE), helpstring("create a connection to this device")]
  145. HRESULT Create( [out,retval] IDispatch** ppDevice );
  146. // Universal backdoor for property inspection
  147. [id(DISPID_GETPROP), helpstring("returns the value of the property with the given id")]
  148. HRESULT GetPropById( [in] DWORD propid, [out,retval] VARIANT* pvaOut );
  149. };
  150. [
  151. object,
  152. uuid(D06D503F-4B71-40f3-94A7-66478F732BC9),
  153. dual,
  154. helpstring("IWiaDeviceItem interface"),
  155. pointer_default(unique)
  156. ]
  157. interface IWiaDispatchItem : IDispatch
  158. {
  159. // Methods ------------------------------------------------------------
  160.         // UI
  161.         [helpstring("shows the data acquisition U.I.")]
  162.         HRESULT GetItemsFromUI([in] DWORD dwFlags, [in] DWORD dwIntent, [out, retval] ICollection** ppCollection);
  163. // Universal backdoor for property inspection
  164. [id(DISPID_GETPROP), helpstring("returns the value of the property with the given id")]
  165. HRESULT GetPropById( [in] DWORD propid, [out,retval] VARIANT* pvaOut );
  166. // save this item (if its a file out)
  167. [helpstring( "transfers the item to a file, or clipboard if filename is clipboard" )]
  168. HRESULT Transfer( [in] BSTR pbstrFilename,  BOOL bAsyncTransfer );
  169. // Properties.  (there are lots of them) ------------------------------
  170. [propget, id(DISPID_ITEM_CHILDREN), helpstring("a collection of this items children")]
  171. HRESULT Children( [out,retval] ICollection** ppCollection );
  172. [propget, id(DISPID_ITEM_TYPE), helpstring("a string representing the type of this item")]
  173. HRESULT ItemType( [out,retval] BSTR* pbstrType );
  174. // WIA_DPA_xxx
  175. [propget, id(DISPID_ITEMD_CONNSTATUS), helpstring("the current connection status")]
  176. HRESULT ConnectStatus( [out,retval] BSTR* pbstrStatus );
  177. [propget, id(DISPID_ITEMD_TIME), helpstring("the current time on the device RO/RW")]
  178. HRESULT Time( [out,retval] BSTR* pbstrTime );
  179. [propget, id(DISPID_ITEMD_FIRMWAREVER), helpstring("the firmware version of the device")]
  180. HRESULT FirmwareVersion( [out,retval] BSTR* pbstrVersion );
  181. // WIA_IPA_xxx
  182. [propget, id(DISPID_ITEM_NAME), helpstring("the name of the item")]
  183. HRESULT Name( [out,retval] BSTR* pbstrName );
  184. [propget, id(DISPID_ITEM_FULL_NAME), helpstring("the full name of the item")]
  185. HRESULT FullName( [out,retval] BSTR* pbstrFullName );
  186. [propget, id(DISPID_ITEM_WIDTH), helpstring("the width of the item in pixels")]
  187. HRESULT Width( [out,retval] DWORD* pdwWidth );
  188. [propget, id(DISPID_ITEM_HEIGHT), helpstring("the height of the item in pixels")]
  189. HRESULT Height( [out,retval] DWORD* pdwHeight );
  190. // WIA_IPC_xxx
  191. [propget, id(DISPID_ITEMC_THUMBWIDTH), helpstring("width of the the item's thumbnail")]
  192. HRESULT ThumbWidth([out,retval] DWORD* pdwWidth );
  193. [propget, id(DISPID_ITEMC_THUMBHEIGHT), helpstring("height of the item's thumbnail")]
  194. HRESULT ThumbHeight( [out,retval] DWORD* pdwHeight );
  195. [propget, id(DISPID_ITEMC_THUMBNAIL), helpstring("path to the temporary image thumbnail")]
  196. HRESULT Thumbnail( [out,retval] BSTR* pbstrPath );
  197. [propget, id(DISPID_ITEMC_WIDTH), helpstring("width of the picture")]
  198. HRESULT PictureWidth( [out,retval] DWORD* pdwWidth );
  199. [propget, id(DISPID_ITEMC_HEIGHT), helpstring("height of the picture")]
  200. HRESULT PictureHeight( [out, retval] DWORD* pdwHeight );
  201. };
  202. /*-------------------------------------------------------------------------
  203.  * Component Classes
  204.  *------------------------------------------------------------------------*/
  205. [
  206. uuid(4C43FC25-E748-427F-8021-CB590027396F),
  207. helpstring("Sample Class")
  208. ]
  209. coclass Sample
  210. {
  211. [default] interface ISample;
  212. };
  213. [
  214. uuid(0DAD5531-BF31-43AC-A513-1F8926BBF5EC),
  215. helpstring("Wia Class")
  216. ]
  217. coclass Wia
  218. {
  219. [default] interface IWia;
  220. [default, source] dispinterface _IWiaEvents;
  221. };
  222. [
  223. uuid(13F3EA8B-91D7-4F0A-AD76-D2853AC8BECE),
  224. helpstring("WiaProtocol Class")
  225. ]
  226. coclass WiaProtocol
  227. {
  228. [default] interface IInternetProtocolRoot;
  229. };
  230. };