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

模拟服务器

开发平台:

C/C++

  1. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  2. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  3.  /* File created by MIDL compiler version 6.00.0347 */
  4. /* Compiler settings for wia.idl, wia.acf:
  5.     Oicf, W1, Zp8, env=Win32 (32b run)
  6.     protocol : dce , ms_ext, c_ext, robust
  7.     error checks: allocation ref bounds_check enum stub_data 
  8.     VC __declspec() decoration level: 
  9.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  10.          DECLSPEC_UUID(), MIDL_INTERFACE()
  11. */
  12. //@@MIDL_FILE_HEADING(  )
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef COM_NO_WINDOWS_H
  23. #include "windows.h"
  24. #include "ole2.h"
  25. #endif /*COM_NO_WINDOWS_H*/
  26. #ifndef __wia_h__
  27. #define __wia_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. /* Forward Declarations */ 
  32. #ifndef __IWiaDevMgr_FWD_DEFINED__
  33. #define __IWiaDevMgr_FWD_DEFINED__
  34. typedef interface IWiaDevMgr IWiaDevMgr;
  35. #endif  /* __IWiaDevMgr_FWD_DEFINED__ */
  36. #ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__
  37. #define __IEnumWIA_DEV_INFO_FWD_DEFINED__
  38. typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO;
  39. #endif  /* __IEnumWIA_DEV_INFO_FWD_DEFINED__ */
  40. #ifndef __IWiaEventCallback_FWD_DEFINED__
  41. #define __IWiaEventCallback_FWD_DEFINED__
  42. typedef interface IWiaEventCallback IWiaEventCallback;
  43. #endif  /* __IWiaEventCallback_FWD_DEFINED__ */
  44. #ifndef __IWiaDataCallback_FWD_DEFINED__
  45. #define __IWiaDataCallback_FWD_DEFINED__
  46. typedef interface IWiaDataCallback IWiaDataCallback;
  47. #endif  /* __IWiaDataCallback_FWD_DEFINED__ */
  48. #ifndef __IWiaDataTransfer_FWD_DEFINED__
  49. #define __IWiaDataTransfer_FWD_DEFINED__
  50. typedef interface IWiaDataTransfer IWiaDataTransfer;
  51. #endif  /* __IWiaDataTransfer_FWD_DEFINED__ */
  52. #ifndef __IWiaItem_FWD_DEFINED__
  53. #define __IWiaItem_FWD_DEFINED__
  54. typedef interface IWiaItem IWiaItem;
  55. #endif  /* __IWiaItem_FWD_DEFINED__ */
  56. #ifndef __IWiaPropertyStorage_FWD_DEFINED__
  57. #define __IWiaPropertyStorage_FWD_DEFINED__
  58. typedef interface IWiaPropertyStorage IWiaPropertyStorage;
  59. #endif  /* __IWiaPropertyStorage_FWD_DEFINED__ */
  60. #ifndef __IEnumWiaItem_FWD_DEFINED__
  61. #define __IEnumWiaItem_FWD_DEFINED__
  62. typedef interface IEnumWiaItem IEnumWiaItem;
  63. #endif  /* __IEnumWiaItem_FWD_DEFINED__ */
  64. #ifndef __IEnumWIA_DEV_CAPS_FWD_DEFINED__
  65. #define __IEnumWIA_DEV_CAPS_FWD_DEFINED__
  66. typedef interface IEnumWIA_DEV_CAPS IEnumWIA_DEV_CAPS;
  67. #endif  /* __IEnumWIA_DEV_CAPS_FWD_DEFINED__ */
  68. #ifndef __IEnumWIA_FORMAT_INFO_FWD_DEFINED__
  69. #define __IEnumWIA_FORMAT_INFO_FWD_DEFINED__
  70. typedef interface IEnumWIA_FORMAT_INFO IEnumWIA_FORMAT_INFO;
  71. #endif  /* __IEnumWIA_FORMAT_INFO_FWD_DEFINED__ */
  72. #ifndef __IWiaLog_FWD_DEFINED__
  73. #define __IWiaLog_FWD_DEFINED__
  74. typedef interface IWiaLog IWiaLog;
  75. #endif  /* __IWiaLog_FWD_DEFINED__ */
  76. #ifndef __IWiaLogEx_FWD_DEFINED__
  77. #define __IWiaLogEx_FWD_DEFINED__
  78. typedef interface IWiaLogEx IWiaLogEx;
  79. #endif  /* __IWiaLogEx_FWD_DEFINED__ */
  80. #ifndef __IWiaNotifyDevMgr_FWD_DEFINED__
  81. #define __IWiaNotifyDevMgr_FWD_DEFINED__
  82. typedef interface IWiaNotifyDevMgr IWiaNotifyDevMgr;
  83. #endif  /* __IWiaNotifyDevMgr_FWD_DEFINED__ */
  84. #ifndef __IWiaItemExtras_FWD_DEFINED__
  85. #define __IWiaItemExtras_FWD_DEFINED__
  86. typedef interface IWiaItemExtras IWiaItemExtras;
  87. #endif  /* __IWiaItemExtras_FWD_DEFINED__ */
  88. #ifndef __WiaDevMgr_FWD_DEFINED__
  89. #define __WiaDevMgr_FWD_DEFINED__
  90. #ifdef __cplusplus
  91. typedef class WiaDevMgr WiaDevMgr;
  92. #else
  93. typedef struct WiaDevMgr WiaDevMgr;
  94. #endif /* __cplusplus */
  95. #endif  /* __WiaDevMgr_FWD_DEFINED__ */
  96. #ifndef __WiaLog_FWD_DEFINED__
  97. #define __WiaLog_FWD_DEFINED__
  98. #ifdef __cplusplus
  99. typedef class WiaLog WiaLog;
  100. #else
  101. typedef struct WiaLog WiaLog;
  102. #endif /* __cplusplus */
  103. #endif  /* __WiaLog_FWD_DEFINED__ */
  104. /* header files for imported files */
  105. #include "unknwn.h"
  106. #include "oaidl.h"
  107. #include "propidl.h"
  108. #ifdef __cplusplus
  109. extern "C"{
  110. #endif 
  111. void * __RPC_USER MIDL_user_allocate(size_t);
  112. void __RPC_USER MIDL_user_free( void * ); 
  113. /* interface __MIDL_itf_wia_0000 */
  114. /* [local] */ 
  115. typedef struct _WIA_DITHER_PATTERN_DATA
  116.     {
  117.     LONG lSize;
  118.     BSTR bstrPatternName;
  119.     LONG lPatternWidth;
  120.     LONG lPatternLength;
  121.     LONG cbPattern;
  122.     /* [size_is] */ BYTE *pbPattern;
  123.     }  WIA_DITHER_PATTERN_DATA;
  124. typedef struct _WIA_DITHER_PATTERN_DATA *PWIA_DITHER_PATTERN_DATA;
  125. typedef struct _WIA_PROPID_TO_NAME
  126.     {
  127.     PROPID propid;
  128.     LPOLESTR pszName;
  129.     }  WIA_PROPID_TO_NAME;
  130. typedef struct _WIA_PROPID_TO_NAME *PWIA_PROPID_TO_NAME;
  131. typedef struct _WIA_FORMAT_INFO
  132.     {
  133.     GUID guidFormatID;
  134.     LONG lTymed;
  135.     }  WIA_FORMAT_INFO;
  136. typedef struct _WIA_FORMAT_INFO *PWIA_FORMAT_INFO;
  137. #include "wiadef.h"
  138. extern RPC_IF_HANDLE __MIDL_itf_wia_0000_v0_0_c_ifspec;
  139. extern RPC_IF_HANDLE __MIDL_itf_wia_0000_v0_0_s_ifspec;
  140. #ifndef __IWiaDevMgr_INTERFACE_DEFINED__
  141. #define __IWiaDevMgr_INTERFACE_DEFINED__
  142. /* interface IWiaDevMgr */
  143. /* [unique][helpstring][uuid][object] */ 
  144. EXTERN_C const IID IID_IWiaDevMgr;
  145. #if defined(__cplusplus) && !defined(CINTERFACE)
  146.     
  147.     MIDL_INTERFACE("5eb2502a-8cf1-11d1-bf92-0060081ed811")
  148.     IWiaDevMgr : public IUnknown
  149.     {
  150.     public:
  151.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EnumDeviceInfo( 
  152.             /* [in] */ LONG lFlag,
  153.             /* [retval][out] */ IEnumWIA_DEV_INFO **ppIEnum) = 0;
  154.         
  155.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE CreateDevice( 
  156.             /* [in] */ BSTR bstrDeviceID,
  157.             /* [out] */ IWiaItem **ppWiaItemRoot) = 0;
  158.         
  159.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SelectDeviceDlg( 
  160.             /* [in] */ HWND hwndParent,
  161.             /* [in] */ LONG lDeviceType,
  162.             /* [in] */ LONG lFlags,
  163.             /* [out][in] */ BSTR *pbstrDeviceID,
  164.             /* [retval][out] */ IWiaItem **ppItemRoot) = 0;
  165.         
  166.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SelectDeviceDlgID( 
  167.             /* [in] */ HWND hwndParent,
  168.             /* [in] */ LONG lDeviceType,
  169.             /* [in] */ LONG lFlags,
  170.             /* [retval][out] */ BSTR *pbstrDeviceID) = 0;
  171.         
  172.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetImageDlg( 
  173.             /* [in] */ HWND hwndParent,
  174.             /* [in] */ LONG lDeviceType,
  175.             /* [in] */ LONG lFlags,
  176.             /* [in] */ LONG lIntent,
  177.             /* [in] */ IWiaItem *pItemRoot,
  178.             /* [in] */ BSTR bstrFilename,
  179.             /* [out][in] */ GUID *pguidFormat) = 0;
  180.         
  181.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE RegisterEventCallbackProgram( 
  182.             /* [in] */ LONG lFlags,
  183.             /* [in] */ BSTR bstrDeviceID,
  184.             /* [in] */ const GUID *pEventGUID,
  185.             /* [in] */ BSTR bstrCommandline,
  186.             /* [in] */ BSTR bstrName,
  187.             /* [in] */ BSTR bstrDescription,
  188.             /* [in] */ BSTR bstrIcon) = 0;
  189.         
  190.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RegisterEventCallbackInterface( 
  191.             /* [in] */ LONG lFlags,
  192.             /* [in] */ BSTR bstrDeviceID,
  193.             /* [in] */ const GUID *pEventGUID,
  194.             /* [unique][in] */ IWiaEventCallback *pIWiaEventCallback,
  195.             /* [out] */ IUnknown **pEventObject) = 0;
  196.         
  197.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE RegisterEventCallbackCLSID( 
  198.             /* [in] */ LONG lFlags,
  199.             /* [in] */ BSTR bstrDeviceID,
  200.             /* [in] */ const GUID *pEventGUID,
  201.             /* [unique][in] */ const GUID *pClsID,
  202.             /* [in] */ BSTR bstrName,
  203.             /* [in] */ BSTR bstrDescription,
  204.             /* [in] */ BSTR bstrIcon) = 0;
  205.         
  206.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddDeviceDlg( 
  207.             /* [in] */ HWND hwndParent,
  208.             /* [in] */ LONG lFlags) = 0;
  209.         
  210.     };
  211.     
  212. #else  /* C style interface */
  213.     typedef struct IWiaDevMgrVtbl
  214.     {
  215.         BEGIN_INTERFACE
  216.         
  217.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  218.             IWiaDevMgr * This,
  219.             /* [in] */ REFIID riid,
  220.             /* [iid_is][out] */ void **ppvObject);
  221.         
  222.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  223.             IWiaDevMgr * This);
  224.         
  225.         ULONG ( STDMETHODCALLTYPE *Release )( 
  226.             IWiaDevMgr * This);
  227.         
  228.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumDeviceInfo )( 
  229.             IWiaDevMgr * This,
  230.             /* [in] */ LONG lFlag,
  231.             /* [retval][out] */ IEnumWIA_DEV_INFO **ppIEnum);
  232.         
  233.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *CreateDevice )( 
  234.             IWiaDevMgr * This,
  235.             /* [in] */ BSTR bstrDeviceID,
  236.             /* [out] */ IWiaItem **ppWiaItemRoot);
  237.         
  238.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SelectDeviceDlg )( 
  239.             IWiaDevMgr * This,
  240.             /* [in] */ HWND hwndParent,
  241.             /* [in] */ LONG lDeviceType,
  242.             /* [in] */ LONG lFlags,
  243.             /* [out][in] */ BSTR *pbstrDeviceID,
  244.             /* [retval][out] */ IWiaItem **ppItemRoot);
  245.         
  246.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SelectDeviceDlgID )( 
  247.             IWiaDevMgr * This,
  248.             /* [in] */ HWND hwndParent,
  249.             /* [in] */ LONG lDeviceType,
  250.             /* [in] */ LONG lFlags,
  251.             /* [retval][out] */ BSTR *pbstrDeviceID);
  252.         
  253.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetImageDlg )( 
  254.             IWiaDevMgr * This,
  255.             /* [in] */ HWND hwndParent,
  256.             /* [in] */ LONG lDeviceType,
  257.             /* [in] */ LONG lFlags,
  258.             /* [in] */ LONG lIntent,
  259.             /* [in] */ IWiaItem *pItemRoot,
  260.             /* [in] */ BSTR bstrFilename,
  261.             /* [out][in] */ GUID *pguidFormat);
  262.         
  263.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *RegisterEventCallbackProgram )( 
  264.             IWiaDevMgr * This,
  265.             /* [in] */ LONG lFlags,
  266.             /* [in] */ BSTR bstrDeviceID,
  267.             /* [in] */ const GUID *pEventGUID,
  268.             /* [in] */ BSTR bstrCommandline,
  269.             /* [in] */ BSTR bstrName,
  270.             /* [in] */ BSTR bstrDescription,
  271.             /* [in] */ BSTR bstrIcon);
  272.         
  273.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterEventCallbackInterface )( 
  274.             IWiaDevMgr * This,
  275.             /* [in] */ LONG lFlags,
  276.             /* [in] */ BSTR bstrDeviceID,
  277.             /* [in] */ const GUID *pEventGUID,
  278.             /* [unique][in] */ IWiaEventCallback *pIWiaEventCallback,
  279.             /* [out] */ IUnknown **pEventObject);
  280.         
  281.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *RegisterEventCallbackCLSID )( 
  282.             IWiaDevMgr * This,
  283.             /* [in] */ LONG lFlags,
  284.             /* [in] */ BSTR bstrDeviceID,
  285.             /* [in] */ const GUID *pEventGUID,
  286.             /* [unique][in] */ const GUID *pClsID,
  287.             /* [in] */ BSTR bstrName,
  288.             /* [in] */ BSTR bstrDescription,
  289.             /* [in] */ BSTR bstrIcon);
  290.         
  291.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddDeviceDlg )( 
  292.             IWiaDevMgr * This,
  293.             /* [in] */ HWND hwndParent,
  294.             /* [in] */ LONG lFlags);
  295.         
  296.         END_INTERFACE
  297.     } IWiaDevMgrVtbl;
  298.     interface IWiaDevMgr
  299.     {
  300.         CONST_VTBL struct IWiaDevMgrVtbl *lpVtbl;
  301.     };
  302.     
  303. #ifdef COBJMACROS
  304. #define IWiaDevMgr_QueryInterface(This,riid,ppvObject)
  305.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  306. #define IWiaDevMgr_AddRef(This)
  307.     (This)->lpVtbl -> AddRef(This)
  308. #define IWiaDevMgr_Release(This)
  309.     (This)->lpVtbl -> Release(This)
  310. #define IWiaDevMgr_EnumDeviceInfo(This,lFlag,ppIEnum)
  311.     (This)->lpVtbl -> EnumDeviceInfo(This,lFlag,ppIEnum)
  312. #define IWiaDevMgr_CreateDevice(This,bstrDeviceID,ppWiaItemRoot)
  313.     (This)->lpVtbl -> CreateDevice(This,bstrDeviceID,ppWiaItemRoot)
  314. #define IWiaDevMgr_SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot)
  315.     (This)->lpVtbl -> SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot)
  316. #define IWiaDevMgr_SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID)
  317.     (This)->lpVtbl -> SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID)
  318. #define IWiaDevMgr_GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat)
  319.     (This)->lpVtbl -> GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat)
  320. #define IWiaDevMgr_RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon)
  321.     (This)->lpVtbl -> RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon)
  322. #define IWiaDevMgr_RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject)
  323.     (This)->lpVtbl -> RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject)
  324. #define IWiaDevMgr_RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon)
  325.     (This)->lpVtbl -> RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon)
  326. #define IWiaDevMgr_AddDeviceDlg(This,hwndParent,lFlags)
  327.     (This)->lpVtbl -> AddDeviceDlg(This,hwndParent,lFlags)
  328. #endif /* COBJMACROS */
  329. #endif  /* C style interface */
  330. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_EnumDeviceInfo_Proxy( 
  331.     IWiaDevMgr * This,
  332.     /* [in] */ LONG lFlag,
  333.     /* [retval][out] */ IEnumWIA_DEV_INFO **ppIEnum);
  334. void __RPC_STUB IWiaDevMgr_EnumDeviceInfo_Stub(
  335.     IRpcStubBuffer *This,
  336.     IRpcChannelBuffer *_pRpcChannelBuffer,
  337.     PRPC_MESSAGE _pRpcMessage,
  338.     DWORD *_pdwStubPhase);
  339. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_LocalCreateDevice_Proxy( 
  340.     IWiaDevMgr * This,
  341.     /* [in] */ BSTR bstrDeviceID,
  342.     /* [out] */ IWiaItem **ppWiaItemRoot);
  343. void __RPC_STUB IWiaDevMgr_LocalCreateDevice_Stub(
  344.     IRpcStubBuffer *This,
  345.     IRpcChannelBuffer *_pRpcChannelBuffer,
  346.     PRPC_MESSAGE _pRpcMessage,
  347.     DWORD *_pdwStubPhase);
  348. /* [nocode][helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_LocalSelectDeviceDlg_Proxy( 
  349.     IWiaDevMgr * This,
  350.     /* [in] */ HWND hwndParent,
  351.     /* [in] */ LONG lDeviceType,
  352.     /* [in] */ LONG lFlags,
  353.     /* [out][in] */ BSTR *pbstrDeviceID,
  354.     /* [retval][out] */ IWiaItem **ppItemRoot);
  355. void __RPC_STUB IWiaDevMgr_LocalSelectDeviceDlg_Stub(
  356.     IRpcStubBuffer *This,
  357.     IRpcChannelBuffer *_pRpcChannelBuffer,
  358.     PRPC_MESSAGE _pRpcMessage,
  359.     DWORD *_pdwStubPhase);
  360. /* [nocode][helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_LocalSelectDeviceDlgID_Proxy( 
  361.     IWiaDevMgr * This,
  362.     /* [in] */ HWND hwndParent,
  363.     /* [in] */ LONG lDeviceType,
  364.     /* [in] */ LONG lFlags,
  365.     /* [retval][out] */ BSTR *pbstrDeviceID);
  366. void __RPC_STUB IWiaDevMgr_LocalSelectDeviceDlgID_Stub(
  367.     IRpcStubBuffer *This,
  368.     IRpcChannelBuffer *_pRpcChannelBuffer,
  369.     PRPC_MESSAGE _pRpcMessage,
  370.     DWORD *_pdwStubPhase);
  371. /* [nocode][helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_LocalGetImageDlg_Proxy( 
  372.     IWiaDevMgr * This,
  373.     /* [in] */ HWND hwndParent,
  374.     /* [in] */ LONG lDeviceType,
  375.     /* [in] */ LONG lFlags,
  376.     /* [in] */ LONG lIntent,
  377.     /* [in] */ IWiaItem *pItemRoot,
  378.     /* [in] */ BSTR bstrFilename,
  379.     /* [out][in] */ GUID *pguidFormat);
  380. void __RPC_STUB IWiaDevMgr_LocalGetImageDlg_Stub(
  381.     IRpcStubBuffer *This,
  382.     IRpcChannelBuffer *_pRpcChannelBuffer,
  383.     PRPC_MESSAGE _pRpcMessage,
  384.     DWORD *_pdwStubPhase);
  385. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_LocalRegisterEventCallbackProgram_Proxy( 
  386.     IWiaDevMgr * This,
  387.     /* [in] */ LONG lFlags,
  388.     /* [in] */ BSTR bstrDeviceID,
  389.     /* [in] */ const GUID *pEventGUID,
  390.     /* [in] */ BSTR bstrCommandline,
  391.     /* [in] */ BSTR bstrName,
  392.     /* [in] */ BSTR bstrDescription,
  393.     /* [in] */ BSTR bstrIcon);
  394. void __RPC_STUB IWiaDevMgr_LocalRegisterEventCallbackProgram_Stub(
  395.     IRpcStubBuffer *This,
  396.     IRpcChannelBuffer *_pRpcChannelBuffer,
  397.     PRPC_MESSAGE _pRpcMessage,
  398.     DWORD *_pdwStubPhase);
  399. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_RegisterEventCallbackInterface_Proxy( 
  400.     IWiaDevMgr * This,
  401.     /* [in] */ LONG lFlags,
  402.     /* [in] */ BSTR bstrDeviceID,
  403.     /* [in] */ const GUID *pEventGUID,
  404.     /* [unique][in] */ IWiaEventCallback *pIWiaEventCallback,
  405.     /* [out] */ IUnknown **pEventObject);
  406. void __RPC_STUB IWiaDevMgr_RegisterEventCallbackInterface_Stub(
  407.     IRpcStubBuffer *This,
  408.     IRpcChannelBuffer *_pRpcChannelBuffer,
  409.     PRPC_MESSAGE _pRpcMessage,
  410.     DWORD *_pdwStubPhase);
  411. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_LocalRegisterEventCallbackCLSID_Proxy( 
  412.     IWiaDevMgr * This,
  413.     /* [in] */ LONG lFlags,
  414.     /* [in] */ BSTR bstrDeviceID,
  415.     /* [in] */ const GUID *pEventGUID,
  416.     /* [unique][in] */ const GUID *pClsID,
  417.     /* [in] */ BSTR bstrName,
  418.     /* [in] */ BSTR bstrDescription,
  419.     /* [in] */ BSTR bstrIcon);
  420. void __RPC_STUB IWiaDevMgr_LocalRegisterEventCallbackCLSID_Stub(
  421.     IRpcStubBuffer *This,
  422.     IRpcChannelBuffer *_pRpcChannelBuffer,
  423.     PRPC_MESSAGE _pRpcMessage,
  424.     DWORD *_pdwStubPhase);
  425. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_AddDeviceDlg_Proxy( 
  426.     IWiaDevMgr * This,
  427.     /* [in] */ HWND hwndParent,
  428.     /* [in] */ LONG lFlags);
  429. void __RPC_STUB IWiaDevMgr_AddDeviceDlg_Stub(
  430.     IRpcStubBuffer *This,
  431.     IRpcChannelBuffer *_pRpcChannelBuffer,
  432.     PRPC_MESSAGE _pRpcMessage,
  433.     DWORD *_pdwStubPhase);
  434. #endif  /* __IWiaDevMgr_INTERFACE_DEFINED__ */
  435. #ifndef __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
  436. #define __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
  437. /* interface IEnumWIA_DEV_INFO */
  438. /* [unique][helpstring][uuid][object] */ 
  439. EXTERN_C const IID IID_IEnumWIA_DEV_INFO;
  440. #if defined(__cplusplus) && !defined(CINTERFACE)
  441.     
  442.     MIDL_INTERFACE("5e38b83c-8cf1-11d1-bf92-0060081ed811")
  443.     IEnumWIA_DEV_INFO : public IUnknown
  444.     {
  445.     public:
  446.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( 
  447.             /* [in] */ ULONG celt,
  448.             /* [length_is][size_is][out] */ IWiaPropertyStorage **rgelt,
  449.             /* [unique][out][in] */ ULONG *pceltFetched) = 0;
  450.         
  451.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Skip( 
  452.             /* [in] */ ULONG celt) = 0;
  453.         
  454.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  455.         
  456.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clone( 
  457.             /* [out] */ IEnumWIA_DEV_INFO **ppIEnum) = 0;
  458.         
  459.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCount( 
  460.             /* [out] */ ULONG *celt) = 0;
  461.         
  462.     };
  463.     
  464. #else  /* C style interface */
  465.     typedef struct IEnumWIA_DEV_INFOVtbl
  466.     {
  467.         BEGIN_INTERFACE
  468.         
  469.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  470.             IEnumWIA_DEV_INFO * This,
  471.             /* [in] */ REFIID riid,
  472.             /* [iid_is][out] */ void **ppvObject);
  473.         
  474.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  475.             IEnumWIA_DEV_INFO * This);
  476.         
  477.         ULONG ( STDMETHODCALLTYPE *Release )( 
  478.             IEnumWIA_DEV_INFO * This);
  479.         
  480.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( 
  481.             IEnumWIA_DEV_INFO * This,
  482.             /* [in] */ ULONG celt,
  483.             /* [length_is][size_is][out] */ IWiaPropertyStorage **rgelt,
  484.             /* [unique][out][in] */ ULONG *pceltFetched);
  485.         
  486.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Skip )( 
  487.             IEnumWIA_DEV_INFO * This,
  488.             /* [in] */ ULONG celt);
  489.         
  490.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Reset )( 
  491.             IEnumWIA_DEV_INFO * This);
  492.         
  493.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clone )( 
  494.             IEnumWIA_DEV_INFO * This,
  495.             /* [out] */ IEnumWIA_DEV_INFO **ppIEnum);
  496.         
  497.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( 
  498.             IEnumWIA_DEV_INFO * This,
  499.             /* [out] */ ULONG *celt);
  500.         
  501.         END_INTERFACE
  502.     } IEnumWIA_DEV_INFOVtbl;
  503.     interface IEnumWIA_DEV_INFO
  504.     {
  505.         CONST_VTBL struct IEnumWIA_DEV_INFOVtbl *lpVtbl;
  506.     };
  507.     
  508. #ifdef COBJMACROS
  509. #define IEnumWIA_DEV_INFO_QueryInterface(This,riid,ppvObject)
  510.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  511. #define IEnumWIA_DEV_INFO_AddRef(This)
  512.     (This)->lpVtbl -> AddRef(This)
  513. #define IEnumWIA_DEV_INFO_Release(This)
  514.     (This)->lpVtbl -> Release(This)
  515. #define IEnumWIA_DEV_INFO_Next(This,celt,rgelt,pceltFetched)
  516.     (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched)
  517. #define IEnumWIA_DEV_INFO_Skip(This,celt)
  518.     (This)->lpVtbl -> Skip(This,celt)
  519. #define IEnumWIA_DEV_INFO_Reset(This)
  520.     (This)->lpVtbl -> Reset(This)
  521. #define IEnumWIA_DEV_INFO_Clone(This,ppIEnum)
  522.     (This)->lpVtbl -> Clone(This,ppIEnum)
  523. #define IEnumWIA_DEV_INFO_GetCount(This,celt)
  524.     (This)->lpVtbl -> GetCount(This,celt)
  525. #endif /* COBJMACROS */
  526. #endif  /* C style interface */
  527. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IEnumWIA_DEV_INFO_RemoteNext_Proxy( 
  528.     IEnumWIA_DEV_INFO * This,
  529.     /* [in] */ ULONG celt,
  530.     /* [length_is][size_is][out] */ IWiaPropertyStorage **rgelt,
  531.     /* [unique][out][in] */ ULONG *pceltFetched);
  532. void __RPC_STUB IEnumWIA_DEV_INFO_RemoteNext_Stub(
  533.     IRpcStubBuffer *This,
  534.     IRpcChannelBuffer *_pRpcChannelBuffer,
  535.     PRPC_MESSAGE _pRpcMessage,
  536.     DWORD *_pdwStubPhase);
  537. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWIA_DEV_INFO_Skip_Proxy( 
  538.     IEnumWIA_DEV_INFO * This,
  539.     /* [in] */ ULONG celt);
  540. void __RPC_STUB IEnumWIA_DEV_INFO_Skip_Stub(
  541.     IRpcStubBuffer *This,
  542.     IRpcChannelBuffer *_pRpcChannelBuffer,
  543.     PRPC_MESSAGE _pRpcMessage,
  544.     DWORD *_pdwStubPhase);
  545. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWIA_DEV_INFO_Reset_Proxy( 
  546.     IEnumWIA_DEV_INFO * This);
  547. void __RPC_STUB IEnumWIA_DEV_INFO_Reset_Stub(
  548.     IRpcStubBuffer *This,
  549.     IRpcChannelBuffer *_pRpcChannelBuffer,
  550.     PRPC_MESSAGE _pRpcMessage,
  551.     DWORD *_pdwStubPhase);
  552. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWIA_DEV_INFO_Clone_Proxy( 
  553.     IEnumWIA_DEV_INFO * This,
  554.     /* [out] */ IEnumWIA_DEV_INFO **ppIEnum);
  555. void __RPC_STUB IEnumWIA_DEV_INFO_Clone_Stub(
  556.     IRpcStubBuffer *This,
  557.     IRpcChannelBuffer *_pRpcChannelBuffer,
  558.     PRPC_MESSAGE _pRpcMessage,
  559.     DWORD *_pdwStubPhase);
  560. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWIA_DEV_INFO_GetCount_Proxy( 
  561.     IEnumWIA_DEV_INFO * This,
  562.     /* [out] */ ULONG *celt);
  563. void __RPC_STUB IEnumWIA_DEV_INFO_GetCount_Stub(
  564.     IRpcStubBuffer *This,
  565.     IRpcChannelBuffer *_pRpcChannelBuffer,
  566.     PRPC_MESSAGE _pRpcMessage,
  567.     DWORD *_pdwStubPhase);
  568. #endif  /* __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__ */
  569. #ifndef __IWiaEventCallback_INTERFACE_DEFINED__
  570. #define __IWiaEventCallback_INTERFACE_DEFINED__
  571. /* interface IWiaEventCallback */
  572. /* [unique][helpstring][uuid][object] */ 
  573. EXTERN_C const IID IID_IWiaEventCallback;
  574. #if defined(__cplusplus) && !defined(CINTERFACE)
  575.     
  576.     MIDL_INTERFACE("ae6287b0-0084-11d2-973b-00a0c9068f2e")
  577.     IWiaEventCallback : public IUnknown
  578.     {
  579.     public:
  580.         virtual HRESULT STDMETHODCALLTYPE ImageEventCallback( 
  581.             /* [in] */ const GUID *pEventGUID,
  582.             /* [in] */ BSTR bstrEventDescription,
  583.             /* [in] */ BSTR bstrDeviceID,
  584.             /* [in] */ BSTR bstrDeviceDescription,
  585.             /* [in] */ DWORD dwDeviceType,
  586.             /* [in] */ BSTR bstrFullItemName,
  587.             /* [out][in] */ ULONG *pulEventType,
  588.             /* [in] */ ULONG ulReserved) = 0;
  589.         
  590.     };
  591.     
  592. #else  /* C style interface */
  593.     typedef struct IWiaEventCallbackVtbl
  594.     {
  595.         BEGIN_INTERFACE
  596.         
  597.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  598.             IWiaEventCallback * This,
  599.             /* [in] */ REFIID riid,
  600.             /* [iid_is][out] */ void **ppvObject);
  601.         
  602.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  603.             IWiaEventCallback * This);
  604.         
  605.         ULONG ( STDMETHODCALLTYPE *Release )( 
  606.             IWiaEventCallback * This);
  607.         
  608.         HRESULT ( STDMETHODCALLTYPE *ImageEventCallback )( 
  609.             IWiaEventCallback * This,
  610.             /* [in] */ const GUID *pEventGUID,
  611.             /* [in] */ BSTR bstrEventDescription,
  612.             /* [in] */ BSTR bstrDeviceID,
  613.             /* [in] */ BSTR bstrDeviceDescription,
  614.             /* [in] */ DWORD dwDeviceType,
  615.             /* [in] */ BSTR bstrFullItemName,
  616.             /* [out][in] */ ULONG *pulEventType,
  617.             /* [in] */ ULONG ulReserved);
  618.         
  619.         END_INTERFACE
  620.     } IWiaEventCallbackVtbl;
  621.     interface IWiaEventCallback
  622.     {
  623.         CONST_VTBL struct IWiaEventCallbackVtbl *lpVtbl;
  624.     };
  625.     
  626. #ifdef COBJMACROS
  627. #define IWiaEventCallback_QueryInterface(This,riid,ppvObject)
  628.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  629. #define IWiaEventCallback_AddRef(This)
  630.     (This)->lpVtbl -> AddRef(This)
  631. #define IWiaEventCallback_Release(This)
  632.     (This)->lpVtbl -> Release(This)
  633. #define IWiaEventCallback_ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved)
  634.     (This)->lpVtbl -> ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved)
  635. #endif /* COBJMACROS */
  636. #endif  /* C style interface */
  637. HRESULT STDMETHODCALLTYPE IWiaEventCallback_ImageEventCallback_Proxy( 
  638.     IWiaEventCallback * This,
  639.     /* [in] */ const GUID *pEventGUID,
  640.     /* [in] */ BSTR bstrEventDescription,
  641.     /* [in] */ BSTR bstrDeviceID,
  642.     /* [in] */ BSTR bstrDeviceDescription,
  643.     /* [in] */ DWORD dwDeviceType,
  644.     /* [in] */ BSTR bstrFullItemName,
  645.     /* [out][in] */ ULONG *pulEventType,
  646.     /* [in] */ ULONG ulReserved);
  647. void __RPC_STUB IWiaEventCallback_ImageEventCallback_Stub(
  648.     IRpcStubBuffer *This,
  649.     IRpcChannelBuffer *_pRpcChannelBuffer,
  650.     PRPC_MESSAGE _pRpcMessage,
  651.     DWORD *_pdwStubPhase);
  652. #endif  /* __IWiaEventCallback_INTERFACE_DEFINED__ */
  653. /* interface __MIDL_itf_wia_0120 */
  654. /* [local] */ 
  655. typedef struct _WIA_DATA_CALLBACK_HEADER
  656.     {
  657.     LONG lSize;
  658.     GUID guidFormatID;
  659.     LONG lBufferSize;
  660.     LONG lPageCount;
  661.     }  WIA_DATA_CALLBACK_HEADER;
  662. typedef struct _WIA_DATA_CALLBACK_HEADER *PWIA_DATA_CALLBACK_HEADER;
  663. extern RPC_IF_HANDLE __MIDL_itf_wia_0120_v0_0_c_ifspec;
  664. extern RPC_IF_HANDLE __MIDL_itf_wia_0120_v0_0_s_ifspec;
  665. #ifndef __IWiaDataCallback_INTERFACE_DEFINED__
  666. #define __IWiaDataCallback_INTERFACE_DEFINED__
  667. /* interface IWiaDataCallback */
  668. /* [unique][helpstring][uuid][object] */ 
  669. EXTERN_C const IID IID_IWiaDataCallback;
  670. #if defined(__cplusplus) && !defined(CINTERFACE)
  671.     
  672.     MIDL_INTERFACE("a558a866-a5b0-11d2-a08f-00c04f72dc3c")
  673.     IWiaDataCallback : public IUnknown
  674.     {
  675.     public:
  676.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE BandedDataCallback( 
  677.             /* [in] */ LONG lMessage,
  678.             /* [in] */ LONG lStatus,
  679.             /* [in] */ LONG lPercentComplete,
  680.             /* [in] */ LONG lOffset,
  681.             /* [in] */ LONG lLength,
  682.             /* [in] */ LONG lReserved,
  683.             /* [in] */ LONG lResLength,
  684.             /* [size_is][in] */ BYTE *pbBuffer) = 0;
  685.         
  686.     };
  687.     
  688. #else  /* C style interface */
  689.     typedef struct IWiaDataCallbackVtbl
  690.     {
  691.         BEGIN_INTERFACE
  692.         
  693.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  694.             IWiaDataCallback * This,
  695.             /* [in] */ REFIID riid,
  696.             /* [iid_is][out] */ void **ppvObject);
  697.         
  698.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  699.             IWiaDataCallback * This);
  700.         
  701.         ULONG ( STDMETHODCALLTYPE *Release )( 
  702.             IWiaDataCallback * This);
  703.         
  704.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *BandedDataCallback )( 
  705.             IWiaDataCallback * This,
  706.             /* [in] */ LONG lMessage,
  707.             /* [in] */ LONG lStatus,
  708.             /* [in] */ LONG lPercentComplete,
  709.             /* [in] */ LONG lOffset,
  710.             /* [in] */ LONG lLength,
  711.             /* [in] */ LONG lReserved,
  712.             /* [in] */ LONG lResLength,
  713.             /* [size_is][in] */ BYTE *pbBuffer);
  714.         
  715.         END_INTERFACE
  716.     } IWiaDataCallbackVtbl;
  717.     interface IWiaDataCallback
  718.     {
  719.         CONST_VTBL struct IWiaDataCallbackVtbl *lpVtbl;
  720.     };
  721.     
  722. #ifdef COBJMACROS
  723. #define IWiaDataCallback_QueryInterface(This,riid,ppvObject)
  724.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  725. #define IWiaDataCallback_AddRef(This)
  726.     (This)->lpVtbl -> AddRef(This)
  727. #define IWiaDataCallback_Release(This)
  728.     (This)->lpVtbl -> Release(This)
  729. #define IWiaDataCallback_BandedDataCallback(This,lMessage,lStatus,lPercentComplete,lOffset,lLength,lReserved,lResLength,pbBuffer)
  730.     (This)->lpVtbl -> BandedDataCallback(This,lMessage,lStatus,lPercentComplete,lOffset,lLength,lReserved,lResLength,pbBuffer)
  731. #endif /* COBJMACROS */
  732. #endif  /* C style interface */
  733. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDataCallback_RemoteBandedDataCallback_Proxy( 
  734.     IWiaDataCallback * This,
  735.     /* [in] */ LONG lMessage,
  736.     /* [in] */ LONG lStatus,
  737.     /* [in] */ LONG lPercentComplete,
  738.     /* [in] */ LONG lOffset,
  739.     /* [in] */ LONG lLength,
  740.     /* [in] */ LONG lReserved,
  741.     /* [in] */ LONG lResLength,
  742.     /* [unique][size_is][in] */ BYTE *pbBuffer);
  743. void __RPC_STUB IWiaDataCallback_RemoteBandedDataCallback_Stub(
  744.     IRpcStubBuffer *This,
  745.     IRpcChannelBuffer *_pRpcChannelBuffer,
  746.     PRPC_MESSAGE _pRpcMessage,
  747.     DWORD *_pdwStubPhase);
  748. #endif  /* __IWiaDataCallback_INTERFACE_DEFINED__ */
  749. /* interface __MIDL_itf_wia_0121 */
  750. /* [local] */ 
  751. typedef struct _WIA_DATA_TRANSFER_INFO
  752.     {
  753.     ULONG ulSize;
  754.     ULONG ulSection;
  755.     ULONG ulBufferSize;
  756.     BOOL bDoubleBuffer;
  757.     ULONG ulReserved1;
  758.     ULONG ulReserved2;
  759.     ULONG ulReserved3;
  760.     }  WIA_DATA_TRANSFER_INFO;
  761. typedef struct _WIA_DATA_TRANSFER_INFO *PWIA_DATA_TRANSFER_INFO;
  762. typedef struct _WIA_EXTENDED_TRANSFER_INFO
  763.     {
  764.     ULONG ulSize;
  765.     ULONG ulMinBufferSize;
  766.     ULONG ulOptimalBufferSize;
  767.     ULONG ulMaxBufferSize;
  768.     ULONG ulNumBuffers;
  769.     }  WIA_EXTENDED_TRANSFER_INFO;
  770. typedef struct _WIA_EXTENDED_TRANSFER_INFO *PWIA_EXTENDED_TRANSFER_INFO;
  771. extern RPC_IF_HANDLE __MIDL_itf_wia_0121_v0_0_c_ifspec;
  772. extern RPC_IF_HANDLE __MIDL_itf_wia_0121_v0_0_s_ifspec;
  773. #ifndef __IWiaDataTransfer_INTERFACE_DEFINED__
  774. #define __IWiaDataTransfer_INTERFACE_DEFINED__
  775. /* interface IWiaDataTransfer */
  776. /* [unique][helpstring][uuid][object] */ 
  777. EXTERN_C const IID IID_IWiaDataTransfer;
  778. #if defined(__cplusplus) && !defined(CINTERFACE)
  779.     
  780.     MIDL_INTERFACE("a6cef998-a5b0-11d2-a08f-00c04f72dc3c")
  781.     IWiaDataTransfer : public IUnknown
  782.     {
  783.     public:
  784.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE idtGetData( 
  785.             /* [out][in] */ LPSTGMEDIUM pMedium,
  786.             /* [unique][in] */ IWiaDataCallback *pIWiaDataCallback) = 0;
  787.         
  788.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE idtGetBandedData( 
  789.             /* [unique][in] */ PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,
  790.             /* [unique][in] */ IWiaDataCallback *pIWiaDataCallback) = 0;
  791.         
  792.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE idtQueryGetData( 
  793.             /* [unique][in] */ WIA_FORMAT_INFO *pfe) = 0;
  794.         
  795.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE idtEnumWIA_FORMAT_INFO( 
  796.             /* [out] */ IEnumWIA_FORMAT_INFO **ppEnum) = 0;
  797.         
  798.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE idtGetExtendedTransferInfo( 
  799.             /* [out] */ PWIA_EXTENDED_TRANSFER_INFO pExtendedTransferInfo) = 0;
  800.         
  801.     };
  802.     
  803. #else  /* C style interface */
  804.     typedef struct IWiaDataTransferVtbl
  805.     {
  806.         BEGIN_INTERFACE
  807.         
  808.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  809.             IWiaDataTransfer * This,
  810.             /* [in] */ REFIID riid,
  811.             /* [iid_is][out] */ void **ppvObject);
  812.         
  813.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  814.             IWiaDataTransfer * This);
  815.         
  816.         ULONG ( STDMETHODCALLTYPE *Release )( 
  817.             IWiaDataTransfer * This);
  818.         
  819.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *idtGetData )( 
  820.             IWiaDataTransfer * This,
  821.             /* [out][in] */ LPSTGMEDIUM pMedium,
  822.             /* [unique][in] */ IWiaDataCallback *pIWiaDataCallback);
  823.         
  824.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *idtGetBandedData )( 
  825.             IWiaDataTransfer * This,
  826.             /* [unique][in] */ PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,
  827.             /* [unique][in] */ IWiaDataCallback *pIWiaDataCallback);
  828.         
  829.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *idtQueryGetData )( 
  830.             IWiaDataTransfer * This,
  831.             /* [unique][in] */ WIA_FORMAT_INFO *pfe);
  832.         
  833.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *idtEnumWIA_FORMAT_INFO )( 
  834.             IWiaDataTransfer * This,
  835.             /* [out] */ IEnumWIA_FORMAT_INFO **ppEnum);
  836.         
  837.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *idtGetExtendedTransferInfo )( 
  838.             IWiaDataTransfer * This,
  839.             /* [out] */ PWIA_EXTENDED_TRANSFER_INFO pExtendedTransferInfo);
  840.         
  841.         END_INTERFACE
  842.     } IWiaDataTransferVtbl;
  843.     interface IWiaDataTransfer
  844.     {
  845.         CONST_VTBL struct IWiaDataTransferVtbl *lpVtbl;
  846.     };
  847.     
  848. #ifdef COBJMACROS
  849. #define IWiaDataTransfer_QueryInterface(This,riid,ppvObject)
  850.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  851. #define IWiaDataTransfer_AddRef(This)
  852.     (This)->lpVtbl -> AddRef(This)
  853. #define IWiaDataTransfer_Release(This)
  854.     (This)->lpVtbl -> Release(This)
  855. #define IWiaDataTransfer_idtGetData(This,pMedium,pIWiaDataCallback)
  856.     (This)->lpVtbl -> idtGetData(This,pMedium,pIWiaDataCallback)
  857. #define IWiaDataTransfer_idtGetBandedData(This,pWiaDataTransInfo,pIWiaDataCallback)
  858.     (This)->lpVtbl -> idtGetBandedData(This,pWiaDataTransInfo,pIWiaDataCallback)
  859. #define IWiaDataTransfer_idtQueryGetData(This,pfe)
  860.     (This)->lpVtbl -> idtQueryGetData(This,pfe)
  861. #define IWiaDataTransfer_idtEnumWIA_FORMAT_INFO(This,ppEnum)
  862.     (This)->lpVtbl -> idtEnumWIA_FORMAT_INFO(This,ppEnum)
  863. #define IWiaDataTransfer_idtGetExtendedTransferInfo(This,pExtendedTransferInfo)
  864.     (This)->lpVtbl -> idtGetExtendedTransferInfo(This,pExtendedTransferInfo)
  865. #endif /* COBJMACROS */
  866. #endif  /* C style interface */
  867. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDataTransfer_idtGetDataEx_Proxy( 
  868.     IWiaDataTransfer * This,
  869.     /* [out][in] */ LPSTGMEDIUM pMedium,
  870.     /* [unique][in] */ IWiaDataCallback *pIWiaDataCallback);
  871. void __RPC_STUB IWiaDataTransfer_idtGetDataEx_Stub(
  872.     IRpcStubBuffer *This,
  873.     IRpcChannelBuffer *_pRpcChannelBuffer,
  874.     PRPC_MESSAGE _pRpcMessage,
  875.     DWORD *_pdwStubPhase);
  876. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDataTransfer_idtGetBandedDataEx_Proxy( 
  877.     IWiaDataTransfer * This,
  878.     /* [unique][in] */ PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,
  879.     /* [unique][in] */ IWiaDataCallback *pIWiaDataCallback);
  880. void __RPC_STUB IWiaDataTransfer_idtGetBandedDataEx_Stub(
  881.     IRpcStubBuffer *This,
  882.     IRpcChannelBuffer *_pRpcChannelBuffer,
  883.     PRPC_MESSAGE _pRpcMessage,
  884.     DWORD *_pdwStubPhase);
  885. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaDataTransfer_idtQueryGetData_Proxy( 
  886.     IWiaDataTransfer * This,
  887.     /* [unique][in] */ WIA_FORMAT_INFO *pfe);
  888. void __RPC_STUB IWiaDataTransfer_idtQueryGetData_Stub(
  889.     IRpcStubBuffer *This,
  890.     IRpcChannelBuffer *_pRpcChannelBuffer,
  891.     PRPC_MESSAGE _pRpcMessage,
  892.     DWORD *_pdwStubPhase);
  893. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaDataTransfer_idtEnumWIA_FORMAT_INFO_Proxy( 
  894.     IWiaDataTransfer * This,
  895.     /* [out] */ IEnumWIA_FORMAT_INFO **ppEnum);
  896. void __RPC_STUB IWiaDataTransfer_idtEnumWIA_FORMAT_INFO_Stub(
  897.     IRpcStubBuffer *This,
  898.     IRpcChannelBuffer *_pRpcChannelBuffer,
  899.     PRPC_MESSAGE _pRpcMessage,
  900.     DWORD *_pdwStubPhase);
  901. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaDataTransfer_idtGetExtendedTransferInfo_Proxy( 
  902.     IWiaDataTransfer * This,
  903.     /* [out] */ PWIA_EXTENDED_TRANSFER_INFO pExtendedTransferInfo);
  904. void __RPC_STUB IWiaDataTransfer_idtGetExtendedTransferInfo_Stub(
  905.     IRpcStubBuffer *This,
  906.     IRpcChannelBuffer *_pRpcChannelBuffer,
  907.     PRPC_MESSAGE _pRpcMessage,
  908.     DWORD *_pdwStubPhase);
  909. #endif  /* __IWiaDataTransfer_INTERFACE_DEFINED__ */
  910. #ifndef __IWiaItem_INTERFACE_DEFINED__
  911. #define __IWiaItem_INTERFACE_DEFINED__
  912. /* interface IWiaItem */
  913. /* [unique][helpstring][uuid][object] */ 
  914. EXTERN_C const IID IID_IWiaItem;
  915. #if defined(__cplusplus) && !defined(CINTERFACE)
  916.     
  917.     MIDL_INTERFACE("4db1ad10-3391-11d2-9a33-00c04fa36145")
  918.     IWiaItem : public IUnknown
  919.     {
  920.     public:
  921.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetItemType( 
  922.             /* [out] */ LONG *pItemType) = 0;
  923.         
  924.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AnalyzeItem( 
  925.             /* [in] */ LONG lFlags) = 0;
  926.         
  927.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EnumChildItems( 
  928.             /* [out] */ IEnumWiaItem **ppIEnumWiaItem) = 0;
  929.         
  930.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteItem( 
  931.             /* [in] */ LONG lFlags) = 0;
  932.         
  933.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateChildItem( 
  934.             /* [in] */ LONG lFlags,
  935.             /* [in] */ BSTR bstrItemName,
  936.             /* [in] */ BSTR bstrFullItemName,
  937.             /* [out] */ IWiaItem **ppIWiaItem) = 0;
  938.         
  939.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EnumRegisterEventInfo( 
  940.             /* [in] */ LONG lFlags,
  941.             /* [in] */ const GUID *pEventGUID,
  942.             /* [out] */ IEnumWIA_DEV_CAPS **ppIEnum) = 0;
  943.         
  944.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindItemByName( 
  945.             /* [in] */ LONG lFlags,
  946.             /* [in] */ BSTR bstrFullItemName,
  947.             /* [out] */ IWiaItem **ppIWiaItem) = 0;
  948.         
  949.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE DeviceDlg( 
  950.             /* [in] */ HWND hwndParent,
  951.             /* [in] */ LONG lFlags,
  952.             /* [in] */ LONG lIntent,
  953.             /* [out] */ LONG *plItemCount,
  954.             /* [out] */ IWiaItem ***ppIWiaItem) = 0;
  955.         
  956.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeviceCommand( 
  957.             /* [in] */ LONG lFlags,
  958.             /* [in] */ const GUID *pCmdGUID,
  959.             /* [out][in] */ IWiaItem **pIWiaItem) = 0;
  960.         
  961.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetRootItem( 
  962.             /* [out] */ IWiaItem **ppIWiaItem) = 0;
  963.         
  964.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EnumDeviceCapabilities( 
  965.             /* [in] */ LONG lFlags,
  966.             /* [out] */ IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS) = 0;
  967.         
  968.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DumpItemData( 
  969.             /* [out] */ BSTR *bstrData) = 0;
  970.         
  971.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DumpDrvItemData( 
  972.             /* [out] */ BSTR *bstrData) = 0;
  973.         
  974.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DumpTreeItemData( 
  975.             /* [out] */ BSTR *bstrData) = 0;
  976.         
  977.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Diagnostic( 
  978.             /* [in] */ ULONG ulSize,
  979.             /* [size_is][in] */ BYTE *pBuffer) = 0;
  980.         
  981.     };
  982.     
  983. #else  /* C style interface */
  984.     typedef struct IWiaItemVtbl
  985.     {
  986.         BEGIN_INTERFACE
  987.         
  988.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  989.             IWiaItem * This,
  990.             /* [in] */ REFIID riid,
  991.             /* [iid_is][out] */ void **ppvObject);
  992.         
  993.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  994.             IWiaItem * This);
  995.         
  996.         ULONG ( STDMETHODCALLTYPE *Release )( 
  997.             IWiaItem * This);
  998.         
  999.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetItemType )( 
  1000.             IWiaItem * This,
  1001.             /* [out] */ LONG *pItemType);
  1002.         
  1003.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AnalyzeItem )( 
  1004.             IWiaItem * This,
  1005.             /* [in] */ LONG lFlags);
  1006.         
  1007.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumChildItems )( 
  1008.             IWiaItem * This,
  1009.             /* [out] */ IEnumWiaItem **ppIEnumWiaItem);
  1010.         
  1011.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteItem )( 
  1012.             IWiaItem * This,
  1013.             /* [in] */ LONG lFlags);
  1014.         
  1015.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateChildItem )( 
  1016.             IWiaItem * This,
  1017.             /* [in] */ LONG lFlags,
  1018.             /* [in] */ BSTR bstrItemName,
  1019.             /* [in] */ BSTR bstrFullItemName,
  1020.             /* [out] */ IWiaItem **ppIWiaItem);
  1021.         
  1022.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumRegisterEventInfo )( 
  1023.             IWiaItem * This,
  1024.             /* [in] */ LONG lFlags,
  1025.             /* [in] */ const GUID *pEventGUID,
  1026.             /* [out] */ IEnumWIA_DEV_CAPS **ppIEnum);
  1027.         
  1028.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindItemByName )( 
  1029.             IWiaItem * This,
  1030.             /* [in] */ LONG lFlags,
  1031.             /* [in] */ BSTR bstrFullItemName,
  1032.             /* [out] */ IWiaItem **ppIWiaItem);
  1033.         
  1034.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *DeviceDlg )( 
  1035.             IWiaItem * This,
  1036.             /* [in] */ HWND hwndParent,
  1037.             /* [in] */ LONG lFlags,
  1038.             /* [in] */ LONG lIntent,
  1039.             /* [out] */ LONG *plItemCount,
  1040.             /* [out] */ IWiaItem ***ppIWiaItem);
  1041.         
  1042.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeviceCommand )( 
  1043.             IWiaItem * This,
  1044.             /* [in] */ LONG lFlags,
  1045.             /* [in] */ const GUID *pCmdGUID,
  1046.             /* [out][in] */ IWiaItem **pIWiaItem);
  1047.         
  1048.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetRootItem )( 
  1049.             IWiaItem * This,
  1050.             /* [out] */ IWiaItem **ppIWiaItem);
  1051.         
  1052.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumDeviceCapabilities )( 
  1053.             IWiaItem * This,
  1054.             /* [in] */ LONG lFlags,
  1055.             /* [out] */ IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS);
  1056.         
  1057.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DumpItemData )( 
  1058.             IWiaItem * This,
  1059.             /* [out] */ BSTR *bstrData);
  1060.         
  1061.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DumpDrvItemData )( 
  1062.             IWiaItem * This,
  1063.             /* [out] */ BSTR *bstrData);
  1064.         
  1065.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DumpTreeItemData )( 
  1066.             IWiaItem * This,
  1067.             /* [out] */ BSTR *bstrData);
  1068.         
  1069.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Diagnostic )( 
  1070.             IWiaItem * This,
  1071.             /* [in] */ ULONG ulSize,
  1072.             /* [size_is][in] */ BYTE *pBuffer);
  1073.         
  1074.         END_INTERFACE
  1075.     } IWiaItemVtbl;
  1076.     interface IWiaItem
  1077.     {
  1078.         CONST_VTBL struct IWiaItemVtbl *lpVtbl;
  1079.     };
  1080.     
  1081. #ifdef COBJMACROS
  1082. #define IWiaItem_QueryInterface(This,riid,ppvObject)
  1083.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1084. #define IWiaItem_AddRef(This)
  1085.     (This)->lpVtbl -> AddRef(This)
  1086. #define IWiaItem_Release(This)
  1087.     (This)->lpVtbl -> Release(This)
  1088. #define IWiaItem_GetItemType(This,pItemType)
  1089.     (This)->lpVtbl -> GetItemType(This,pItemType)
  1090. #define IWiaItem_AnalyzeItem(This,lFlags)
  1091.     (This)->lpVtbl -> AnalyzeItem(This,lFlags)
  1092. #define IWiaItem_EnumChildItems(This,ppIEnumWiaItem)
  1093.     (This)->lpVtbl -> EnumChildItems(This,ppIEnumWiaItem)
  1094. #define IWiaItem_DeleteItem(This,lFlags)
  1095.     (This)->lpVtbl -> DeleteItem(This,lFlags)
  1096. #define IWiaItem_CreateChildItem(This,lFlags,bstrItemName,bstrFullItemName,ppIWiaItem)
  1097.     (This)->lpVtbl -> CreateChildItem(This,lFlags,bstrItemName,bstrFullItemName,ppIWiaItem)
  1098. #define IWiaItem_EnumRegisterEventInfo(This,lFlags,pEventGUID,ppIEnum)
  1099.     (This)->lpVtbl -> EnumRegisterEventInfo(This,lFlags,pEventGUID,ppIEnum)
  1100. #define IWiaItem_FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem)
  1101.     (This)->lpVtbl -> FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem)
  1102. #define IWiaItem_DeviceDlg(This,hwndParent,lFlags,lIntent,plItemCount,ppIWiaItem)
  1103.     (This)->lpVtbl -> DeviceDlg(This,hwndParent,lFlags,lIntent,plItemCount,ppIWiaItem)
  1104. #define IWiaItem_DeviceCommand(This,lFlags,pCmdGUID,pIWiaItem)
  1105.     (This)->lpVtbl -> DeviceCommand(This,lFlags,pCmdGUID,pIWiaItem)
  1106. #define IWiaItem_GetRootItem(This,ppIWiaItem)
  1107.     (This)->lpVtbl -> GetRootItem(This,ppIWiaItem)
  1108. #define IWiaItem_EnumDeviceCapabilities(This,lFlags,ppIEnumWIA_DEV_CAPS)
  1109.     (This)->lpVtbl -> EnumDeviceCapabilities(This,lFlags,ppIEnumWIA_DEV_CAPS)
  1110. #define IWiaItem_DumpItemData(This,bstrData)
  1111.     (This)->lpVtbl -> DumpItemData(This,bstrData)
  1112. #define IWiaItem_DumpDrvItemData(This,bstrData)
  1113.     (This)->lpVtbl -> DumpDrvItemData(This,bstrData)
  1114. #define IWiaItem_DumpTreeItemData(This,bstrData)
  1115.     (This)->lpVtbl -> DumpTreeItemData(This,bstrData)
  1116. #define IWiaItem_Diagnostic(This,ulSize,pBuffer)
  1117.     (This)->lpVtbl -> Diagnostic(This,ulSize,pBuffer)
  1118. #endif /* COBJMACROS */
  1119. #endif  /* C style interface */
  1120. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItem_GetItemType_Proxy( 
  1121.     IWiaItem * This,
  1122.     /* [out] */ LONG *pItemType);
  1123. void __RPC_STUB IWiaItem_GetItemType_Stub(
  1124.     IRpcStubBuffer *This,
  1125.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1126.     PRPC_MESSAGE _pRpcMessage,
  1127.     DWORD *_pdwStubPhase);
  1128. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItem_AnalyzeItem_Proxy( 
  1129.     IWiaItem * This,
  1130.     /* [in] */ LONG lFlags);
  1131. void __RPC_STUB IWiaItem_AnalyzeItem_Stub(
  1132.     IRpcStubBuffer *This,
  1133.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1134.     PRPC_MESSAGE _pRpcMessage,
  1135.     DWORD *_pdwStubPhase);
  1136. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItem_EnumChildItems_Proxy( 
  1137.     IWiaItem * This,
  1138.     /* [out] */ IEnumWiaItem **ppIEnumWiaItem);
  1139. void __RPC_STUB IWiaItem_EnumChildItems_Stub(
  1140.     IRpcStubBuffer *This,
  1141.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1142.     PRPC_MESSAGE _pRpcMessage,
  1143.     DWORD *_pdwStubPhase);
  1144. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItem_DeleteItem_Proxy( 
  1145.     IWiaItem * This,
  1146.     /* [in] */ LONG lFlags);
  1147. void __RPC_STUB IWiaItem_DeleteItem_Stub(
  1148.     IRpcStubBuffer *This,
  1149.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1150.     PRPC_MESSAGE _pRpcMessage,
  1151.     DWORD *_pdwStubPhase);
  1152. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItem_CreateChildItem_Proxy( 
  1153.     IWiaItem * This,
  1154.     /* [in] */ LONG lFlags,
  1155.     /* [in] */ BSTR bstrItemName,
  1156.     /* [in] */ BSTR bstrFullItemName,
  1157.     /* [out] */ IWiaItem **ppIWiaItem);
  1158. void __RPC_STUB IWiaItem_CreateChildItem_Stub(
  1159.     IRpcStubBuffer *This,
  1160.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1161.     PRPC_MESSAGE _pRpcMessage,
  1162.     DWORD *_pdwStubPhase);
  1163. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItem_EnumRegisterEventInfo_Proxy( 
  1164.     IWiaItem * This,
  1165.     /* [in] */ LONG lFlags,
  1166.     /* [in] */ const GUID *pEventGUID,
  1167.     /* [out] */ IEnumWIA_DEV_CAPS **ppIEnum);
  1168. void __RPC_STUB IWiaItem_EnumRegisterEventInfo_Stub(
  1169.     IRpcStubBuffer *This,
  1170.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1171.     PRPC_MESSAGE _pRpcMessage,
  1172.     DWORD *_pdwStubPhase);
  1173. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItem_FindItemByName_Proxy( 
  1174.     IWiaItem * This,
  1175.     /* [in] */ LONG lFlags,
  1176.     /* [in] */ BSTR bstrFullItemName,
  1177.     /* [out] */ IWiaItem **ppIWiaItem);
  1178. void __RPC_STUB IWiaItem_FindItemByName_Stub(
  1179.     IRpcStubBuffer *This,
  1180.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1181.     PRPC_MESSAGE _pRpcMessage,
  1182.     DWORD *_pdwStubPhase);
  1183. /* [nocode][helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaItem_LocalDeviceDlg_Proxy( 
  1184.     IWiaItem * This,
  1185.     /* [in] */ HWND hwndParent,
  1186.     /* [in] */ LONG lFlags,
  1187.     /* [in] */ LONG lIntent,
  1188.     /* [out] */ LONG *plItemCount,
  1189.     /* [out] */ IWiaItem ***pIWiaItem);
  1190. void __RPC_STUB IWiaItem_LocalDeviceDlg_Stub(
  1191.     IRpcStubBuffer *This,
  1192.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1193.     PRPC_MESSAGE _pRpcMessage,
  1194.     DWORD *_pdwStubPhase);
  1195. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItem_DeviceCommand_Proxy( 
  1196.     IWiaItem * This,
  1197.     /* [in] */ LONG lFlags,
  1198.     /* [in] */ const GUID *pCmdGUID,
  1199.     /* [out][in] */ IWiaItem **pIWiaItem);
  1200. void __RPC_STUB IWiaItem_DeviceCommand_Stub(
  1201.     IRpcStubBuffer *This,
  1202.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1203.     PRPC_MESSAGE _pRpcMessage,
  1204.     DWORD *_pdwStubPhase);
  1205. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItem_GetRootItem_Proxy( 
  1206.     IWiaItem * This,
  1207.     /* [out] */ IWiaItem **ppIWiaItem);
  1208. void __RPC_STUB IWiaItem_GetRootItem_Stub(
  1209.     IRpcStubBuffer *This,
  1210.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1211.     PRPC_MESSAGE _pRpcMessage,
  1212.     DWORD *_pdwStubPhase);
  1213. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItem_EnumDeviceCapabilities_Proxy( 
  1214.     IWiaItem * This,
  1215.     /* [in] */ LONG lFlags,
  1216.     /* [out] */ IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS);
  1217. void __RPC_STUB IWiaItem_EnumDeviceCapabilities_Stub(
  1218.     IRpcStubBuffer *This,
  1219.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1220.     PRPC_MESSAGE _pRpcMessage,
  1221.     DWORD *_pdwStubPhase);
  1222. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItem_DumpItemData_Proxy( 
  1223.     IWiaItem * This,
  1224.     /* [out] */ BSTR *bstrData);
  1225. void __RPC_STUB IWiaItem_DumpItemData_Stub(
  1226.     IRpcStubBuffer *This,
  1227.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1228.     PRPC_MESSAGE _pRpcMessage,
  1229.     DWORD *_pdwStubPhase);
  1230. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItem_DumpDrvItemData_Proxy( 
  1231.     IWiaItem * This,
  1232.     /* [out] */ BSTR *bstrData);
  1233. void __RPC_STUB IWiaItem_DumpDrvItemData_Stub(
  1234.     IRpcStubBuffer *This,
  1235.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1236.     PRPC_MESSAGE _pRpcMessage,
  1237.     DWORD *_pdwStubPhase);
  1238. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItem_DumpTreeItemData_Proxy( 
  1239.     IWiaItem * This,
  1240.     /* [out] */ BSTR *bstrData);
  1241. void __RPC_STUB IWiaItem_DumpTreeItemData_Stub(
  1242.     IRpcStubBuffer *This,
  1243.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1244.     PRPC_MESSAGE _pRpcMessage,
  1245.     DWORD *_pdwStubPhase);
  1246. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItem_Diagnostic_Proxy( 
  1247.     IWiaItem * This,
  1248.     /* [in] */ ULONG ulSize,
  1249.     /* [size_is][in] */ BYTE *pBuffer);
  1250. void __RPC_STUB IWiaItem_Diagnostic_Stub(
  1251.     IRpcStubBuffer *This,
  1252.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1253.     PRPC_MESSAGE _pRpcMessage,
  1254.     DWORD *_pdwStubPhase);
  1255. #endif  /* __IWiaItem_INTERFACE_DEFINED__ */
  1256. #ifndef __IWiaPropertyStorage_INTERFACE_DEFINED__
  1257. #define __IWiaPropertyStorage_INTERFACE_DEFINED__
  1258. /* interface IWiaPropertyStorage */
  1259. /* [unique][helpstring][uuid][object] */ 
  1260. EXTERN_C const IID IID_IWiaPropertyStorage;
  1261. #if defined(__cplusplus) && !defined(CINTERFACE)
  1262.     
  1263.     MIDL_INTERFACE("98B5E8A0-29CC-491a-AAC0-E6DB4FDCCEB6")
  1264.     IWiaPropertyStorage : public IUnknown
  1265.     {
  1266.     public:
  1267.         virtual HRESULT STDMETHODCALLTYPE ReadMultiple( 
  1268.             /* [in] */ ULONG cpspec,
  1269.             /* [size_is][in] */ const PROPSPEC rgpspec[  ],
  1270.             /* [size_is][out] */ PROPVARIANT rgpropvar[  ]) = 0;
  1271.         
  1272.         virtual HRESULT STDMETHODCALLTYPE WriteMultiple( 
  1273.             /* [in] */ ULONG cpspec,
  1274.             /* [size_is][in] */ const PROPSPEC rgpspec[  ],
  1275.             /* [size_is][in] */ const PROPVARIANT rgpropvar[  ],
  1276.             /* [in] */ PROPID propidNameFirst) = 0;
  1277.         
  1278.         virtual HRESULT STDMETHODCALLTYPE DeleteMultiple( 
  1279.             /* [in] */ ULONG cpspec,
  1280.             /* [size_is][in] */ const PROPSPEC rgpspec[  ]) = 0;
  1281.         
  1282.         virtual HRESULT STDMETHODCALLTYPE ReadPropertyNames( 
  1283.             /* [in] */ ULONG cpropid,
  1284.             /* [size_is][in] */ const PROPID rgpropid[  ],
  1285.             /* [size_is][out] */ LPOLESTR rglpwstrName[  ]) = 0;
  1286.         
  1287.         virtual HRESULT STDMETHODCALLTYPE WritePropertyNames( 
  1288.             /* [in] */ ULONG cpropid,
  1289.             /* [size_is][in] */ const PROPID rgpropid[  ],
  1290.             /* [size_is][in] */ const LPOLESTR rglpwstrName[  ]) = 0;
  1291.         
  1292.         virtual HRESULT STDMETHODCALLTYPE DeletePropertyNames( 
  1293.             /* [in] */ ULONG cpropid,
  1294.             /* [size_is][in] */ const PROPID rgpropid[  ]) = 0;
  1295.         
  1296.         virtual HRESULT STDMETHODCALLTYPE Commit( 
  1297.             /* [in] */ DWORD grfCommitFlags) = 0;
  1298.         
  1299.         virtual HRESULT STDMETHODCALLTYPE Revert( void) = 0;
  1300.         
  1301.         virtual HRESULT STDMETHODCALLTYPE Enum( 
  1302.             /* [out] */ IEnumSTATPROPSTG **ppenum) = 0;
  1303.         
  1304.         virtual HRESULT STDMETHODCALLTYPE SetTimes( 
  1305.             /* [in] */ const FILETIME *pctime,
  1306.             /* [in] */ const FILETIME *patime,
  1307.             /* [in] */ const FILETIME *pmtime) = 0;
  1308.         
  1309.         virtual HRESULT STDMETHODCALLTYPE SetClass( 
  1310.             /* [in] */ REFCLSID clsid) = 0;
  1311.         
  1312.         virtual HRESULT STDMETHODCALLTYPE Stat( 
  1313.             /* [out] */ STATPROPSETSTG *pstatpsstg) = 0;
  1314.         
  1315.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPropertyAttributes( 
  1316.             /* [in] */ ULONG cpspec,
  1317.             /* [size_is][in] */ PROPSPEC rgpspec[  ],
  1318.             /* [size_is][out] */ ULONG rgflags[  ],
  1319.             /* [size_is][out] */ PROPVARIANT rgpropvar[  ]) = 0;
  1320.         
  1321.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCount( 
  1322.             /* [out] */ ULONG *pulNumProps) = 0;
  1323.         
  1324.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPropertyStream( 
  1325.             /* [out] */ GUID *pCompatibilityId,
  1326.             /* [out] */ IStream **ppIStream) = 0;
  1327.         
  1328.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetPropertyStream( 
  1329.             /* [in] */ GUID *pCompatibilityId,
  1330.             /* [unique][in] */ IStream *pIStream) = 0;
  1331.         
  1332.     };
  1333.     
  1334. #else  /* C style interface */
  1335.     typedef struct IWiaPropertyStorageVtbl
  1336.     {
  1337.         BEGIN_INTERFACE
  1338.         
  1339.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1340.             IWiaPropertyStorage * This,
  1341.             /* [in] */ REFIID riid,
  1342.             /* [iid_is][out] */ void **ppvObject);
  1343.         
  1344.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1345.             IWiaPropertyStorage * This);
  1346.         
  1347.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1348.             IWiaPropertyStorage * This);
  1349.         
  1350.         HRESULT ( STDMETHODCALLTYPE *ReadMultiple )( 
  1351.             IWiaPropertyStorage * This,
  1352.             /* [in] */ ULONG cpspec,
  1353.             /* [size_is][in] */ const PROPSPEC rgpspec[  ],
  1354.             /* [size_is][out] */ PROPVARIANT rgpropvar[  ]);
  1355.         
  1356.         HRESULT ( STDMETHODCALLTYPE *WriteMultiple )( 
  1357.             IWiaPropertyStorage * This,
  1358.             /* [in] */ ULONG cpspec,
  1359.             /* [size_is][in] */ const PROPSPEC rgpspec[  ],
  1360.             /* [size_is][in] */ const PROPVARIANT rgpropvar[  ],
  1361.             /* [in] */ PROPID propidNameFirst);
  1362.         
  1363.         HRESULT ( STDMETHODCALLTYPE *DeleteMultiple )( 
  1364.             IWiaPropertyStorage * This,
  1365.             /* [in] */ ULONG cpspec,
  1366.             /* [size_is][in] */ const PROPSPEC rgpspec[  ]);
  1367.         
  1368.         HRESULT ( STDMETHODCALLTYPE *ReadPropertyNames )( 
  1369.             IWiaPropertyStorage * This,
  1370.             /* [in] */ ULONG cpropid,
  1371.             /* [size_is][in] */ const PROPID rgpropid[  ],
  1372.             /* [size_is][out] */ LPOLESTR rglpwstrName[  ]);
  1373.         
  1374.         HRESULT ( STDMETHODCALLTYPE *WritePropertyNames )( 
  1375.             IWiaPropertyStorage * This,
  1376.             /* [in] */ ULONG cpropid,
  1377.             /* [size_is][in] */ const PROPID rgpropid[  ],
  1378.             /* [size_is][in] */ const LPOLESTR rglpwstrName[  ]);
  1379.         
  1380.         HRESULT ( STDMETHODCALLTYPE *DeletePropertyNames )( 
  1381.             IWiaPropertyStorage * This,
  1382.             /* [in] */ ULONG cpropid,
  1383.             /* [size_is][in] */ const PROPID rgpropid[  ]);
  1384.         
  1385.         HRESULT ( STDMETHODCALLTYPE *Commit )( 
  1386.             IWiaPropertyStorage * This,
  1387.             /* [in] */ DWORD grfCommitFlags);
  1388.         
  1389.         HRESULT ( STDMETHODCALLTYPE *Revert )( 
  1390.             IWiaPropertyStorage * This);
  1391.         
  1392.         HRESULT ( STDMETHODCALLTYPE *Enum )( 
  1393.             IWiaPropertyStorage * This,
  1394.             /* [out] */ IEnumSTATPROPSTG **ppenum);
  1395.         
  1396.         HRESULT ( STDMETHODCALLTYPE *SetTimes )( 
  1397.             IWiaPropertyStorage * This,
  1398.             /* [in] */ const FILETIME *pctime,
  1399.             /* [in] */ const FILETIME *patime,
  1400.             /* [in] */ const FILETIME *pmtime);
  1401.         
  1402.         HRESULT ( STDMETHODCALLTYPE *SetClass )( 
  1403.             IWiaPropertyStorage * This,
  1404.             /* [in] */ REFCLSID clsid);
  1405.         
  1406.         HRESULT ( STDMETHODCALLTYPE *Stat )( 
  1407.             IWiaPropertyStorage * This,
  1408.             /* [out] */ STATPROPSETSTG *pstatpsstg);
  1409.         
  1410.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPropertyAttributes )( 
  1411.             IWiaPropertyStorage * This,
  1412.             /* [in] */ ULONG cpspec,
  1413.             /* [size_is][in] */ PROPSPEC rgpspec[  ],
  1414.             /* [size_is][out] */ ULONG rgflags[  ],
  1415.             /* [size_is][out] */ PROPVARIANT rgpropvar[  ]);
  1416.         
  1417.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( 
  1418.             IWiaPropertyStorage * This,
  1419.             /* [out] */ ULONG *pulNumProps);
  1420.         
  1421.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPropertyStream )( 
  1422.             IWiaPropertyStorage * This,
  1423.             /* [out] */ GUID *pCompatibilityId,
  1424.             /* [out] */ IStream **ppIStream);
  1425.         
  1426.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPropertyStream )( 
  1427.             IWiaPropertyStorage * This,
  1428.             /* [in] */ GUID *pCompatibilityId,
  1429.             /* [unique][in] */ IStream *pIStream);
  1430.         
  1431.         END_INTERFACE
  1432.     } IWiaPropertyStorageVtbl;
  1433.     interface IWiaPropertyStorage
  1434.     {
  1435.         CONST_VTBL struct IWiaPropertyStorageVtbl *lpVtbl;
  1436.     };
  1437.     
  1438. #ifdef COBJMACROS
  1439. #define IWiaPropertyStorage_QueryInterface(This,riid,ppvObject)
  1440.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1441. #define IWiaPropertyStorage_AddRef(This)
  1442.     (This)->lpVtbl -> AddRef(This)
  1443. #define IWiaPropertyStorage_Release(This)
  1444.     (This)->lpVtbl -> Release(This)
  1445. #define IWiaPropertyStorage_ReadMultiple(This,cpspec,rgpspec,rgpropvar)
  1446.     (This)->lpVtbl -> ReadMultiple(This,cpspec,rgpspec,rgpropvar)
  1447. #define IWiaPropertyStorage_WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst)
  1448.     (This)->lpVtbl -> WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst)
  1449. #define IWiaPropertyStorage_DeleteMultiple(This,cpspec,rgpspec)
  1450.     (This)->lpVtbl -> DeleteMultiple(This,cpspec,rgpspec)
  1451. #define IWiaPropertyStorage_ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName)
  1452.     (This)->lpVtbl -> ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName)
  1453. #define IWiaPropertyStorage_WritePropertyNames(This,cpropid,rgpropid,rglpwstrName)
  1454.     (This)->lpVtbl -> WritePropertyNames(This,cpropid,rgpropid,rglpwstrName)
  1455. #define IWiaPropertyStorage_DeletePropertyNames(This,cpropid,rgpropid)
  1456.     (This)->lpVtbl -> DeletePropertyNames(This,cpropid,rgpropid)
  1457. #define IWiaPropertyStorage_Commit(This,grfCommitFlags)
  1458.     (This)->lpVtbl -> Commit(This,grfCommitFlags)
  1459. #define IWiaPropertyStorage_Revert(This)
  1460.     (This)->lpVtbl -> Revert(This)
  1461. #define IWiaPropertyStorage_Enum(This,ppenum)
  1462.     (This)->lpVtbl -> Enum(This,ppenum)
  1463. #define IWiaPropertyStorage_SetTimes(This,pctime,patime,pmtime)
  1464.     (This)->lpVtbl -> SetTimes(This,pctime,patime,pmtime)
  1465. #define IWiaPropertyStorage_SetClass(This,clsid)
  1466.     (This)->lpVtbl -> SetClass(This,clsid)
  1467. #define IWiaPropertyStorage_Stat(This,pstatpsstg)
  1468.     (This)->lpVtbl -> Stat(This,pstatpsstg)
  1469. #define IWiaPropertyStorage_GetPropertyAttributes(This,cpspec,rgpspec,rgflags,rgpropvar)
  1470.     (This)->lpVtbl -> GetPropertyAttributes(This,cpspec,rgpspec,rgflags,rgpropvar)
  1471. #define IWiaPropertyStorage_GetCount(This,pulNumProps)
  1472.     (This)->lpVtbl -> GetCount(This,pulNumProps)
  1473. #define IWiaPropertyStorage_GetPropertyStream(This,pCompatibilityId,ppIStream)
  1474.     (This)->lpVtbl -> GetPropertyStream(This,pCompatibilityId,ppIStream)
  1475. #define IWiaPropertyStorage_SetPropertyStream(This,pCompatibilityId,pIStream)
  1476.     (This)->lpVtbl -> SetPropertyStream(This,pCompatibilityId,pIStream)
  1477. #endif /* COBJMACROS */
  1478. #endif  /* C style interface */
  1479. HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_ReadMultiple_Proxy( 
  1480.     IWiaPropertyStorage * This,
  1481.     /* [in] */ ULONG cpspec,
  1482.     /* [size_is][in] */ const PROPSPEC rgpspec[  ],
  1483.     /* [size_is][out] */ PROPVARIANT rgpropvar[  ]);
  1484. void __RPC_STUB IWiaPropertyStorage_ReadMultiple_Stub(
  1485.     IRpcStubBuffer *This,
  1486.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1487.     PRPC_MESSAGE _pRpcMessage,
  1488.     DWORD *_pdwStubPhase);
  1489. HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_WriteMultiple_Proxy( 
  1490.     IWiaPropertyStorage * This,
  1491.     /* [in] */ ULONG cpspec,
  1492.     /* [size_is][in] */ const PROPSPEC rgpspec[  ],
  1493.     /* [size_is][in] */ const PROPVARIANT rgpropvar[  ],
  1494.     /* [in] */ PROPID propidNameFirst);
  1495. void __RPC_STUB IWiaPropertyStorage_WriteMultiple_Stub(
  1496.     IRpcStubBuffer *This,
  1497.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1498.     PRPC_MESSAGE _pRpcMessage,
  1499.     DWORD *_pdwStubPhase);
  1500. HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_DeleteMultiple_Proxy( 
  1501.     IWiaPropertyStorage * This,
  1502.     /* [in] */ ULONG cpspec,
  1503.     /* [size_is][in] */ const PROPSPEC rgpspec[  ]);
  1504. void __RPC_STUB IWiaPropertyStorage_DeleteMultiple_Stub(
  1505.     IRpcStubBuffer *This,
  1506.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1507.     PRPC_MESSAGE _pRpcMessage,
  1508.     DWORD *_pdwStubPhase);
  1509. HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_ReadPropertyNames_Proxy( 
  1510.     IWiaPropertyStorage * This,
  1511.     /* [in] */ ULONG cpropid,
  1512.     /* [size_is][in] */ const PROPID rgpropid[  ],
  1513.     /* [size_is][out] */ LPOLESTR rglpwstrName[  ]);
  1514. void __RPC_STUB IWiaPropertyStorage_ReadPropertyNames_Stub(
  1515.     IRpcStubBuffer *This,
  1516.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1517.     PRPC_MESSAGE _pRpcMessage,
  1518.     DWORD *_pdwStubPhase);
  1519. HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_WritePropertyNames_Proxy( 
  1520.     IWiaPropertyStorage * This,
  1521.     /* [in] */ ULONG cpropid,
  1522.     /* [size_is][in] */ const PROPID rgpropid[  ],
  1523.     /* [size_is][in] */ const LPOLESTR rglpwstrName[  ]);
  1524. void __RPC_STUB IWiaPropertyStorage_WritePropertyNames_Stub(
  1525.     IRpcStubBuffer *This,
  1526.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1527.     PRPC_MESSAGE _pRpcMessage,
  1528.     DWORD *_pdwStubPhase);
  1529. HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_DeletePropertyNames_Proxy( 
  1530.     IWiaPropertyStorage * This,
  1531.     /* [in] */ ULONG cpropid,
  1532.     /* [size_is][in] */ const PROPID rgpropid[  ]);
  1533. void __RPC_STUB IWiaPropertyStorage_DeletePropertyNames_Stub(
  1534.     IRpcStubBuffer *This,
  1535.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1536.     PRPC_MESSAGE _pRpcMessage,
  1537.     DWORD *_pdwStubPhase);
  1538. HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_Commit_Proxy( 
  1539.     IWiaPropertyStorage * This,
  1540.     /* [in] */ DWORD grfCommitFlags);
  1541. void __RPC_STUB IWiaPropertyStorage_Commit_Stub(
  1542.     IRpcStubBuffer *This,
  1543.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1544.     PRPC_MESSAGE _pRpcMessage,
  1545.     DWORD *_pdwStubPhase);
  1546. HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_Revert_Proxy( 
  1547.     IWiaPropertyStorage * This);
  1548. void __RPC_STUB IWiaPropertyStorage_Revert_Stub(
  1549.     IRpcStubBuffer *This,
  1550.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1551.     PRPC_MESSAGE _pRpcMessage,
  1552.     DWORD *_pdwStubPhase);
  1553. HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_Enum_Proxy( 
  1554.     IWiaPropertyStorage * This,
  1555.     /* [out] */ IEnumSTATPROPSTG **ppenum);
  1556. void __RPC_STUB IWiaPropertyStorage_Enum_Stub(
  1557.     IRpcStubBuffer *This,
  1558.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1559.     PRPC_MESSAGE _pRpcMessage,
  1560.     DWORD *_pdwStubPhase);
  1561. HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_SetTimes_Proxy( 
  1562.     IWiaPropertyStorage * This,
  1563.     /* [in] */ const FILETIME *pctime,
  1564.     /* [in] */ const FILETIME *patime,
  1565.     /* [in] */ const FILETIME *pmtime);
  1566. void __RPC_STUB IWiaPropertyStorage_SetTimes_Stub(
  1567.     IRpcStubBuffer *This,
  1568.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1569.     PRPC_MESSAGE _pRpcMessage,
  1570.     DWORD *_pdwStubPhase);
  1571. HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_SetClass_Proxy( 
  1572.     IWiaPropertyStorage * This,
  1573.     /* [in] */ REFCLSID clsid);
  1574. void __RPC_STUB IWiaPropertyStorage_SetClass_Stub(
  1575.     IRpcStubBuffer *This,
  1576.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1577.     PRPC_MESSAGE _pRpcMessage,
  1578.     DWORD *_pdwStubPhase);
  1579. HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_Stat_Proxy( 
  1580.     IWiaPropertyStorage * This,
  1581.     /* [out] */ STATPROPSETSTG *pstatpsstg);
  1582. void __RPC_STUB IWiaPropertyStorage_Stat_Stub(
  1583.     IRpcStubBuffer *This,
  1584.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1585.     PRPC_MESSAGE _pRpcMessage,
  1586.     DWORD *_pdwStubPhase);
  1587. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_GetPropertyAttributes_Proxy( 
  1588.     IWiaPropertyStorage * This,
  1589.     /* [in] */ ULONG cpspec,
  1590.     /* [size_is][in] */ PROPSPEC rgpspec[  ],
  1591.     /* [size_is][out] */ ULONG rgflags[  ],
  1592.     /* [size_is][out] */ PROPVARIANT rgpropvar[  ]);
  1593. void __RPC_STUB IWiaPropertyStorage_GetPropertyAttributes_Stub(
  1594.     IRpcStubBuffer *This,
  1595.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1596.     PRPC_MESSAGE _pRpcMessage,
  1597.     DWORD *_pdwStubPhase);
  1598. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_GetCount_Proxy( 
  1599.     IWiaPropertyStorage * This,
  1600.     /* [out] */ ULONG *pulNumProps);
  1601. void __RPC_STUB IWiaPropertyStorage_GetCount_Stub(
  1602.     IRpcStubBuffer *This,
  1603.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1604.     PRPC_MESSAGE _pRpcMessage,
  1605.     DWORD *_pdwStubPhase);
  1606. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_GetPropertyStream_Proxy( 
  1607.     IWiaPropertyStorage * This,
  1608.     /* [out] */ GUID *pCompatibilityId,
  1609.     /* [out] */ IStream **ppIStream);
  1610. void __RPC_STUB IWiaPropertyStorage_GetPropertyStream_Stub(
  1611.     IRpcStubBuffer *This,
  1612.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1613.     PRPC_MESSAGE _pRpcMessage,
  1614.     DWORD *_pdwStubPhase);
  1615. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaPropertyStorage_SetPropertyStream_Proxy( 
  1616.     IWiaPropertyStorage * This,
  1617.     /* [in] */ GUID *pCompatibilityId,
  1618.     /* [unique][in] */ IStream *pIStream);
  1619. void __RPC_STUB IWiaPropertyStorage_SetPropertyStream_Stub(
  1620.     IRpcStubBuffer *This,
  1621.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1622.     PRPC_MESSAGE _pRpcMessage,
  1623.     DWORD *_pdwStubPhase);
  1624. #endif  /* __IWiaPropertyStorage_INTERFACE_DEFINED__ */
  1625. #ifndef __IEnumWiaItem_INTERFACE_DEFINED__
  1626. #define __IEnumWiaItem_INTERFACE_DEFINED__
  1627. /* interface IEnumWiaItem */
  1628. /* [unique][helpstring][uuid][object] */ 
  1629. EXTERN_C const IID IID_IEnumWiaItem;
  1630. #if defined(__cplusplus) && !defined(CINTERFACE)
  1631.     
  1632.     MIDL_INTERFACE("5e8383fc-3391-11d2-9a33-00c04fa36145")
  1633.     IEnumWiaItem : public IUnknown
  1634.     {
  1635.     public:
  1636.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( 
  1637.             /* [in] */ ULONG celt,
  1638.             /* [length_is][size_is][out] */ IWiaItem **ppIWiaItem,
  1639.             /* [unique][out][in] */ ULONG *pceltFetched) = 0;
  1640.         
  1641.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Skip( 
  1642.             /* [in] */ ULONG celt) = 0;
  1643.         
  1644.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  1645.         
  1646.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clone( 
  1647.             /* [out] */ IEnumWiaItem **ppIEnum) = 0;
  1648.         
  1649.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCount( 
  1650.             /* [out] */ ULONG *celt) = 0;
  1651.         
  1652.     };
  1653.     
  1654. #else  /* C style interface */
  1655.     typedef struct IEnumWiaItemVtbl
  1656.     {
  1657.         BEGIN_INTERFACE
  1658.         
  1659.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1660.             IEnumWiaItem * This,
  1661.             /* [in] */ REFIID riid,
  1662.             /* [iid_is][out] */ void **ppvObject);
  1663.         
  1664.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1665.             IEnumWiaItem * This);
  1666.         
  1667.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1668.             IEnumWiaItem * This);
  1669.         
  1670.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( 
  1671.             IEnumWiaItem * This,
  1672.             /* [in] */ ULONG celt,
  1673.             /* [length_is][size_is][out] */ IWiaItem **ppIWiaItem,
  1674.             /* [unique][out][in] */ ULONG *pceltFetched);
  1675.         
  1676.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Skip )( 
  1677.             IEnumWiaItem * This,
  1678.             /* [in] */ ULONG celt);
  1679.         
  1680.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Reset )( 
  1681.             IEnumWiaItem * This);
  1682.         
  1683.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clone )( 
  1684.             IEnumWiaItem * This,
  1685.             /* [out] */ IEnumWiaItem **ppIEnum);
  1686.         
  1687.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( 
  1688.             IEnumWiaItem * This,
  1689.             /* [out] */ ULONG *celt);
  1690.         
  1691.         END_INTERFACE
  1692.     } IEnumWiaItemVtbl;
  1693.     interface IEnumWiaItem
  1694.     {
  1695.         CONST_VTBL struct IEnumWiaItemVtbl *lpVtbl;
  1696.     };
  1697.     
  1698. #ifdef COBJMACROS
  1699. #define IEnumWiaItem_QueryInterface(This,riid,ppvObject)
  1700.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1701. #define IEnumWiaItem_AddRef(This)
  1702.     (This)->lpVtbl -> AddRef(This)
  1703. #define IEnumWiaItem_Release(This)
  1704.     (This)->lpVtbl -> Release(This)
  1705. #define IEnumWiaItem_Next(This,celt,ppIWiaItem,pceltFetched)
  1706.     (This)->lpVtbl -> Next(This,celt,ppIWiaItem,pceltFetched)
  1707. #define IEnumWiaItem_Skip(This,celt)
  1708.     (This)->lpVtbl -> Skip(This,celt)
  1709. #define IEnumWiaItem_Reset(This)
  1710.     (This)->lpVtbl -> Reset(This)
  1711. #define IEnumWiaItem_Clone(This,ppIEnum)
  1712.     (This)->lpVtbl -> Clone(This,ppIEnum)
  1713. #define IEnumWiaItem_GetCount(This,celt)
  1714.     (This)->lpVtbl -> GetCount(This,celt)
  1715. #endif /* COBJMACROS */
  1716. #endif  /* C style interface */
  1717. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IEnumWiaItem_RemoteNext_Proxy( 
  1718.     IEnumWiaItem * This,
  1719.     /* [in] */ ULONG celt,
  1720.     /* [length_is][size_is][out] */ IWiaItem **ppIWiaItem,
  1721.     /* [unique][out][in] */ ULONG *pceltFetched);
  1722. void __RPC_STUB IEnumWiaItem_RemoteNext_Stub(
  1723.     IRpcStubBuffer *This,
  1724.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1725.     PRPC_MESSAGE _pRpcMessage,
  1726.     DWORD *_pdwStubPhase);
  1727. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWiaItem_Skip_Proxy( 
  1728.     IEnumWiaItem * This,
  1729.     /* [in] */ ULONG celt);
  1730. void __RPC_STUB IEnumWiaItem_Skip_Stub(
  1731.     IRpcStubBuffer *This,
  1732.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1733.     PRPC_MESSAGE _pRpcMessage,
  1734.     DWORD *_pdwStubPhase);
  1735. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWiaItem_Reset_Proxy( 
  1736.     IEnumWiaItem * This);
  1737. void __RPC_STUB IEnumWiaItem_Reset_Stub(
  1738.     IRpcStubBuffer *This,
  1739.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1740.     PRPC_MESSAGE _pRpcMessage,
  1741.     DWORD *_pdwStubPhase);
  1742. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWiaItem_Clone_Proxy( 
  1743.     IEnumWiaItem * This,
  1744.     /* [out] */ IEnumWiaItem **ppIEnum);
  1745. void __RPC_STUB IEnumWiaItem_Clone_Stub(
  1746.     IRpcStubBuffer *This,
  1747.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1748.     PRPC_MESSAGE _pRpcMessage,
  1749.     DWORD *_pdwStubPhase);
  1750. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWiaItem_GetCount_Proxy( 
  1751.     IEnumWiaItem * This,
  1752.     /* [out] */ ULONG *celt);
  1753. void __RPC_STUB IEnumWiaItem_GetCount_Stub(
  1754.     IRpcStubBuffer *This,
  1755.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1756.     PRPC_MESSAGE _pRpcMessage,
  1757.     DWORD *_pdwStubPhase);
  1758. #endif  /* __IEnumWiaItem_INTERFACE_DEFINED__ */
  1759. /* interface __MIDL_itf_wia_0125 */
  1760. /* [local] */ 
  1761. typedef struct _WIA_DEV_CAP
  1762.     {
  1763.     GUID guid;
  1764.     ULONG ulFlags;
  1765.     BSTR bstrName;
  1766.     BSTR bstrDescription;
  1767.     BSTR bstrIcon;
  1768.     BSTR bstrCommandline;
  1769.     }  WIA_DEV_CAP;
  1770. typedef struct _WIA_DEV_CAP *PWIA_DEV_CAP;
  1771. typedef struct _WIA_DEV_CAP WIA_EVENT_HANDLER;
  1772. typedef struct _WIA_DEV_CAP *PWIA_EVENT_HANDLER;
  1773. extern RPC_IF_HANDLE __MIDL_itf_wia_0125_v0_0_c_ifspec;
  1774. extern RPC_IF_HANDLE __MIDL_itf_wia_0125_v0_0_s_ifspec;
  1775. #ifndef __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__
  1776. #define __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__
  1777. /* interface IEnumWIA_DEV_CAPS */
  1778. /* [unique][helpstring][uuid][object] */ 
  1779. EXTERN_C const IID IID_IEnumWIA_DEV_CAPS;
  1780. #if defined(__cplusplus) && !defined(CINTERFACE)
  1781.     
  1782.     MIDL_INTERFACE("1fcc4287-aca6-11d2-a093-00c04f72dc3c")
  1783.     IEnumWIA_DEV_CAPS : public IUnknown
  1784.     {
  1785.     public:
  1786.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( 
  1787.             /* [in] */ ULONG celt,
  1788.             /* [length_is][size_is][out] */ WIA_DEV_CAP *rgelt,
  1789.             /* [unique][out][in] */ ULONG *pceltFetched) = 0;
  1790.         
  1791.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Skip( 
  1792.             /* [in] */ ULONG celt) = 0;
  1793.         
  1794.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  1795.         
  1796.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clone( 
  1797.             /* [out] */ IEnumWIA_DEV_CAPS **ppIEnum) = 0;
  1798.         
  1799.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCount( 
  1800.             /* [out] */ ULONG *pcelt) = 0;
  1801.         
  1802.     };
  1803.     
  1804. #else  /* C style interface */
  1805.     typedef struct IEnumWIA_DEV_CAPSVtbl
  1806.     {
  1807.         BEGIN_INTERFACE
  1808.         
  1809.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1810.             IEnumWIA_DEV_CAPS * This,
  1811.             /* [in] */ REFIID riid,
  1812.             /* [iid_is][out] */ void **ppvObject);
  1813.         
  1814.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1815.             IEnumWIA_DEV_CAPS * This);
  1816.         
  1817.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1818.             IEnumWIA_DEV_CAPS * This);
  1819.         
  1820.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( 
  1821.             IEnumWIA_DEV_CAPS * This,
  1822.             /* [in] */ ULONG celt,
  1823.             /* [length_is][size_is][out] */ WIA_DEV_CAP *rgelt,
  1824.             /* [unique][out][in] */ ULONG *pceltFetched);
  1825.         
  1826.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Skip )( 
  1827.             IEnumWIA_DEV_CAPS * This,
  1828.             /* [in] */ ULONG celt);
  1829.         
  1830.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Reset )( 
  1831.             IEnumWIA_DEV_CAPS * This);
  1832.         
  1833.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clone )( 
  1834.             IEnumWIA_DEV_CAPS * This,
  1835.             /* [out] */ IEnumWIA_DEV_CAPS **ppIEnum);
  1836.         
  1837.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( 
  1838.             IEnumWIA_DEV_CAPS * This,
  1839.             /* [out] */ ULONG *pcelt);
  1840.         
  1841.         END_INTERFACE
  1842.     } IEnumWIA_DEV_CAPSVtbl;
  1843.     interface IEnumWIA_DEV_CAPS
  1844.     {
  1845.         CONST_VTBL struct IEnumWIA_DEV_CAPSVtbl *lpVtbl;
  1846.     };
  1847.     
  1848. #ifdef COBJMACROS
  1849. #define IEnumWIA_DEV_CAPS_QueryInterface(This,riid,ppvObject)
  1850.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1851. #define IEnumWIA_DEV_CAPS_AddRef(This)
  1852.     (This)->lpVtbl -> AddRef(This)
  1853. #define IEnumWIA_DEV_CAPS_Release(This)
  1854.     (This)->lpVtbl -> Release(This)
  1855. #define IEnumWIA_DEV_CAPS_Next(This,celt,rgelt,pceltFetched)
  1856.     (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched)
  1857. #define IEnumWIA_DEV_CAPS_Skip(This,celt)
  1858.     (This)->lpVtbl -> Skip(This,celt)
  1859. #define IEnumWIA_DEV_CAPS_Reset(This)
  1860.     (This)->lpVtbl -> Reset(This)
  1861. #define IEnumWIA_DEV_CAPS_Clone(This,ppIEnum)
  1862.     (This)->lpVtbl -> Clone(This,ppIEnum)
  1863. #define IEnumWIA_DEV_CAPS_GetCount(This,pcelt)
  1864.     (This)->lpVtbl -> GetCount(This,pcelt)
  1865. #endif /* COBJMACROS */
  1866. #endif  /* C style interface */
  1867. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IEnumWIA_DEV_CAPS_RemoteNext_Proxy( 
  1868.     IEnumWIA_DEV_CAPS * This,
  1869.     /* [in] */ ULONG celt,
  1870.     /* [length_is][size_is][out] */ WIA_DEV_CAP *rgelt,
  1871.     /* [unique][out][in] */ ULONG *pceltFetched);
  1872. void __RPC_STUB IEnumWIA_DEV_CAPS_RemoteNext_Stub(
  1873.     IRpcStubBuffer *This,
  1874.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1875.     PRPC_MESSAGE _pRpcMessage,
  1876.     DWORD *_pdwStubPhase);
  1877. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWIA_DEV_CAPS_Skip_Proxy( 
  1878.     IEnumWIA_DEV_CAPS * This,
  1879.     /* [in] */ ULONG celt);
  1880. void __RPC_STUB IEnumWIA_DEV_CAPS_Skip_Stub(
  1881.     IRpcStubBuffer *This,
  1882.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1883.     PRPC_MESSAGE _pRpcMessage,
  1884.     DWORD *_pdwStubPhase);
  1885. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWIA_DEV_CAPS_Reset_Proxy( 
  1886.     IEnumWIA_DEV_CAPS * This);
  1887. void __RPC_STUB IEnumWIA_DEV_CAPS_Reset_Stub(
  1888.     IRpcStubBuffer *This,
  1889.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1890.     PRPC_MESSAGE _pRpcMessage,
  1891.     DWORD *_pdwStubPhase);
  1892. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWIA_DEV_CAPS_Clone_Proxy( 
  1893.     IEnumWIA_DEV_CAPS * This,
  1894.     /* [out] */ IEnumWIA_DEV_CAPS **ppIEnum);
  1895. void __RPC_STUB IEnumWIA_DEV_CAPS_Clone_Stub(
  1896.     IRpcStubBuffer *This,
  1897.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1898.     PRPC_MESSAGE _pRpcMessage,
  1899.     DWORD *_pdwStubPhase);
  1900. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWIA_DEV_CAPS_GetCount_Proxy( 
  1901.     IEnumWIA_DEV_CAPS * This,
  1902.     /* [out] */ ULONG *pcelt);
  1903. void __RPC_STUB IEnumWIA_DEV_CAPS_GetCount_Stub(
  1904.     IRpcStubBuffer *This,
  1905.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1906.     PRPC_MESSAGE _pRpcMessage,
  1907.     DWORD *_pdwStubPhase);
  1908. #endif  /* __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__ */
  1909. #ifndef __IEnumWIA_FORMAT_INFO_INTERFACE_DEFINED__
  1910. #define __IEnumWIA_FORMAT_INFO_INTERFACE_DEFINED__
  1911. /* interface IEnumWIA_FORMAT_INFO */
  1912. /* [unique][helpstring][uuid][object] */ 
  1913. EXTERN_C const IID IID_IEnumWIA_FORMAT_INFO;
  1914. #if defined(__cplusplus) && !defined(CINTERFACE)
  1915.     
  1916.     MIDL_INTERFACE("81BEFC5B-656D-44f1-B24C-D41D51B4DC81")
  1917.     IEnumWIA_FORMAT_INFO : public IUnknown
  1918.     {
  1919.     public:
  1920.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE Next( 
  1921.             /* [in] */ ULONG celt,
  1922.             /* [length_is][size_is][out] */ WIA_FORMAT_INFO *rgelt,
  1923.             /* [unique][out][in] */ ULONG *pceltFetched) = 0;
  1924.         
  1925.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Skip( 
  1926.             /* [in] */ ULONG celt) = 0;
  1927.         
  1928.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  1929.         
  1930.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clone( 
  1931.             /* [out] */ IEnumWIA_FORMAT_INFO **ppIEnum) = 0;
  1932.         
  1933.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCount( 
  1934.             /* [out] */ ULONG *pcelt) = 0;
  1935.         
  1936.     };
  1937.     
  1938. #else  /* C style interface */
  1939.     typedef struct IEnumWIA_FORMAT_INFOVtbl
  1940.     {
  1941.         BEGIN_INTERFACE
  1942.         
  1943.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1944.             IEnumWIA_FORMAT_INFO * This,
  1945.             /* [in] */ REFIID riid,
  1946.             /* [iid_is][out] */ void **ppvObject);
  1947.         
  1948.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1949.             IEnumWIA_FORMAT_INFO * This);
  1950.         
  1951.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1952.             IEnumWIA_FORMAT_INFO * This);
  1953.         
  1954.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Next )( 
  1955.             IEnumWIA_FORMAT_INFO * This,
  1956.             /* [in] */ ULONG celt,
  1957.             /* [length_is][size_is][out] */ WIA_FORMAT_INFO *rgelt,
  1958.             /* [unique][out][in] */ ULONG *pceltFetched);
  1959.         
  1960.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Skip )( 
  1961.             IEnumWIA_FORMAT_INFO * This,
  1962.             /* [in] */ ULONG celt);
  1963.         
  1964.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Reset )( 
  1965.             IEnumWIA_FORMAT_INFO * This);
  1966.         
  1967.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clone )( 
  1968.             IEnumWIA_FORMAT_INFO * This,
  1969.             /* [out] */ IEnumWIA_FORMAT_INFO **ppIEnum);
  1970.         
  1971.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( 
  1972.             IEnumWIA_FORMAT_INFO * This,
  1973.             /* [out] */ ULONG *pcelt);
  1974.         
  1975.         END_INTERFACE
  1976.     } IEnumWIA_FORMAT_INFOVtbl;
  1977.     interface IEnumWIA_FORMAT_INFO
  1978.     {
  1979.         CONST_VTBL struct IEnumWIA_FORMAT_INFOVtbl *lpVtbl;
  1980.     };
  1981.     
  1982. #ifdef COBJMACROS
  1983. #define IEnumWIA_FORMAT_INFO_QueryInterface(This,riid,ppvObject)
  1984.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1985. #define IEnumWIA_FORMAT_INFO_AddRef(This)
  1986.     (This)->lpVtbl -> AddRef(This)
  1987. #define IEnumWIA_FORMAT_INFO_Release(This)
  1988.     (This)->lpVtbl -> Release(This)
  1989. #define IEnumWIA_FORMAT_INFO_Next(This,celt,rgelt,pceltFetched)
  1990.     (This)->lpVtbl -> Next(This,celt,rgelt,pceltFetched)
  1991. #define IEnumWIA_FORMAT_INFO_Skip(This,celt)
  1992.     (This)->lpVtbl -> Skip(This,celt)
  1993. #define IEnumWIA_FORMAT_INFO_Reset(This)
  1994.     (This)->lpVtbl -> Reset(This)
  1995. #define IEnumWIA_FORMAT_INFO_Clone(This,ppIEnum)
  1996.     (This)->lpVtbl -> Clone(This,ppIEnum)
  1997. #define IEnumWIA_FORMAT_INFO_GetCount(This,pcelt)
  1998.     (This)->lpVtbl -> GetCount(This,pcelt)
  1999. #endif /* COBJMACROS */
  2000. #endif  /* C style interface */
  2001. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IEnumWIA_FORMAT_INFO_RemoteNext_Proxy( 
  2002.     IEnumWIA_FORMAT_INFO * This,
  2003.     /* [in] */ ULONG celt,
  2004.     /* [length_is][size_is][out] */ WIA_FORMAT_INFO *rgelt,
  2005.     /* [unique][out][in] */ ULONG *pceltFetched);
  2006. void __RPC_STUB IEnumWIA_FORMAT_INFO_RemoteNext_Stub(
  2007.     IRpcStubBuffer *This,
  2008.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2009.     PRPC_MESSAGE _pRpcMessage,
  2010.     DWORD *_pdwStubPhase);
  2011. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWIA_FORMAT_INFO_Skip_Proxy( 
  2012.     IEnumWIA_FORMAT_INFO * This,
  2013.     /* [in] */ ULONG celt);
  2014. void __RPC_STUB IEnumWIA_FORMAT_INFO_Skip_Stub(
  2015.     IRpcStubBuffer *This,
  2016.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2017.     PRPC_MESSAGE _pRpcMessage,
  2018.     DWORD *_pdwStubPhase);
  2019. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWIA_FORMAT_INFO_Reset_Proxy( 
  2020.     IEnumWIA_FORMAT_INFO * This);
  2021. void __RPC_STUB IEnumWIA_FORMAT_INFO_Reset_Stub(
  2022.     IRpcStubBuffer *This,
  2023.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2024.     PRPC_MESSAGE _pRpcMessage,
  2025.     DWORD *_pdwStubPhase);
  2026. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWIA_FORMAT_INFO_Clone_Proxy( 
  2027.     IEnumWIA_FORMAT_INFO * This,
  2028.     /* [out] */ IEnumWIA_FORMAT_INFO **ppIEnum);
  2029. void __RPC_STUB IEnumWIA_FORMAT_INFO_Clone_Stub(
  2030.     IRpcStubBuffer *This,
  2031.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2032.     PRPC_MESSAGE _pRpcMessage,
  2033.     DWORD *_pdwStubPhase);
  2034. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IEnumWIA_FORMAT_INFO_GetCount_Proxy( 
  2035.     IEnumWIA_FORMAT_INFO * This,
  2036.     /* [out] */ ULONG *pcelt);
  2037. void __RPC_STUB IEnumWIA_FORMAT_INFO_GetCount_Stub(
  2038.     IRpcStubBuffer *This,
  2039.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2040.     PRPC_MESSAGE _pRpcMessage,
  2041.     DWORD *_pdwStubPhase);
  2042. #endif  /* __IEnumWIA_FORMAT_INFO_INTERFACE_DEFINED__ */
  2043. #ifndef __IWiaLog_INTERFACE_DEFINED__
  2044. #define __IWiaLog_INTERFACE_DEFINED__
  2045. /* interface IWiaLog */
  2046. /* [unique][helpstring][uuid][object] */ 
  2047. EXTERN_C const IID IID_IWiaLog;
  2048. #if defined(__cplusplus) && !defined(CINTERFACE)
  2049.     
  2050.     MIDL_INTERFACE("A00C10B6-82A1-452f-8B6C-86062AAD6890")
  2051.     IWiaLog : public IUnknown
  2052.     {
  2053.     public:
  2054.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InitializeLog( 
  2055.             /* [in] */ LONG hInstance) = 0;
  2056.         
  2057.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE hResult( 
  2058.             /* [in] */ HRESULT hResult) = 0;
  2059.         
  2060.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Log( 
  2061.             /* [in] */ LONG lFlags,
  2062.             /* [in] */ LONG lResID,
  2063.             /* [in] */ LONG lDetail,
  2064.             /* [in] */ BSTR bstrText) = 0;
  2065.         
  2066.     };
  2067.     
  2068. #else  /* C style interface */
  2069.     typedef struct IWiaLogVtbl
  2070.     {
  2071.         BEGIN_INTERFACE
  2072.         
  2073.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2074.             IWiaLog * This,
  2075.             /* [in] */ REFIID riid,
  2076.             /* [iid_is][out] */ void **ppvObject);
  2077.         
  2078.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2079.             IWiaLog * This);
  2080.         
  2081.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2082.             IWiaLog * This);
  2083.         
  2084.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InitializeLog )( 
  2085.             IWiaLog * This,
  2086.             /* [in] */ LONG hInstance);
  2087.         
  2088.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *hResult )( 
  2089.             IWiaLog * This,
  2090.             /* [in] */ HRESULT hResult);
  2091.         
  2092.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Log )( 
  2093.             IWiaLog * This,
  2094.             /* [in] */ LONG lFlags,
  2095.             /* [in] */ LONG lResID,
  2096.             /* [in] */ LONG lDetail,
  2097.             /* [in] */ BSTR bstrText);
  2098.         
  2099.         END_INTERFACE
  2100.     } IWiaLogVtbl;
  2101.     interface IWiaLog
  2102.     {
  2103.         CONST_VTBL struct IWiaLogVtbl *lpVtbl;
  2104.     };
  2105.     
  2106. #ifdef COBJMACROS
  2107. #define IWiaLog_QueryInterface(This,riid,ppvObject)
  2108.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2109. #define IWiaLog_AddRef(This)
  2110.     (This)->lpVtbl -> AddRef(This)
  2111. #define IWiaLog_Release(This)
  2112.     (This)->lpVtbl -> Release(This)
  2113. #define IWiaLog_InitializeLog(This,hInstance)
  2114.     (This)->lpVtbl -> InitializeLog(This,hInstance)
  2115. #define IWiaLog_hResult(This,hResult)
  2116.     (This)->lpVtbl -> hResult(This,hResult)
  2117. #define IWiaLog_Log(This,lFlags,lResID,lDetail,bstrText)
  2118.     (This)->lpVtbl -> Log(This,lFlags,lResID,lDetail,bstrText)
  2119. #endif /* COBJMACROS */
  2120. #endif  /* C style interface */
  2121. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaLog_InitializeLog_Proxy( 
  2122.     IWiaLog * This,
  2123.     /* [in] */ LONG hInstance);
  2124. void __RPC_STUB IWiaLog_InitializeLog_Stub(
  2125.     IRpcStubBuffer *This,
  2126.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2127.     PRPC_MESSAGE _pRpcMessage,
  2128.     DWORD *_pdwStubPhase);
  2129. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaLog_hResult_Proxy( 
  2130.     IWiaLog * This,
  2131.     /* [in] */ HRESULT hResult);
  2132. void __RPC_STUB IWiaLog_hResult_Stub(
  2133.     IRpcStubBuffer *This,
  2134.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2135.     PRPC_MESSAGE _pRpcMessage,
  2136.     DWORD *_pdwStubPhase);
  2137. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaLog_Log_Proxy( 
  2138.     IWiaLog * This,
  2139.     /* [in] */ LONG lFlags,
  2140.     /* [in] */ LONG lResID,
  2141.     /* [in] */ LONG lDetail,
  2142.     /* [in] */ BSTR bstrText);
  2143. void __RPC_STUB IWiaLog_Log_Stub(
  2144.     IRpcStubBuffer *This,
  2145.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2146.     PRPC_MESSAGE _pRpcMessage,
  2147.     DWORD *_pdwStubPhase);
  2148. #endif  /* __IWiaLog_INTERFACE_DEFINED__ */
  2149. #ifndef __IWiaLogEx_INTERFACE_DEFINED__
  2150. #define __IWiaLogEx_INTERFACE_DEFINED__
  2151. /* interface IWiaLogEx */
  2152. /* [unique][helpstring][uuid][object] */ 
  2153. EXTERN_C const IID IID_IWiaLogEx;
  2154. #if defined(__cplusplus) && !defined(CINTERFACE)
  2155.     
  2156.     MIDL_INTERFACE("AF1F22AC-7A40-4787-B421-AEb47A1FBD0B")
  2157.     IWiaLogEx : public IUnknown
  2158.     {
  2159.     public:
  2160.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InitializeLogEx( 
  2161.             /* [in] */ BYTE *hInstance) = 0;
  2162.         
  2163.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE hResult( 
  2164.             /* [in] */ HRESULT hResult) = 0;
  2165.         
  2166.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Log( 
  2167.             /* [in] */ LONG lFlags,
  2168.             /* [in] */ LONG lResID,
  2169.             /* [in] */ LONG lDetail,
  2170.             /* [in] */ BSTR bstrText) = 0;
  2171.         
  2172.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE hResultEx( 
  2173.             /* [in] */ LONG lMethodId,
  2174.             /* [in] */ HRESULT hResult) = 0;
  2175.         
  2176.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LogEx( 
  2177.             /* [in] */ LONG lMethodId,
  2178.             /* [in] */ LONG lFlags,
  2179.             /* [in] */ LONG lResID,
  2180.             /* [in] */ LONG lDetail,
  2181.             /* [in] */ BSTR bstrText) = 0;
  2182.         
  2183.     };
  2184.     
  2185. #else  /* C style interface */
  2186.     typedef struct IWiaLogExVtbl
  2187.     {
  2188.         BEGIN_INTERFACE
  2189.         
  2190.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2191.             IWiaLogEx * This,
  2192.             /* [in] */ REFIID riid,
  2193.             /* [iid_is][out] */ void **ppvObject);
  2194.         
  2195.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2196.             IWiaLogEx * This);
  2197.         
  2198.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2199.             IWiaLogEx * This);
  2200.         
  2201.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InitializeLogEx )( 
  2202.             IWiaLogEx * This,
  2203.             /* [in] */ BYTE *hInstance);
  2204.         
  2205.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *hResult )( 
  2206.             IWiaLogEx * This,
  2207.             /* [in] */ HRESULT hResult);
  2208.         
  2209.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Log )( 
  2210.             IWiaLogEx * This,
  2211.             /* [in] */ LONG lFlags,
  2212.             /* [in] */ LONG lResID,
  2213.             /* [in] */ LONG lDetail,
  2214.             /* [in] */ BSTR bstrText);
  2215.         
  2216.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *hResultEx )( 
  2217.             IWiaLogEx * This,
  2218.             /* [in] */ LONG lMethodId,
  2219.             /* [in] */ HRESULT hResult);
  2220.         
  2221.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LogEx )( 
  2222.             IWiaLogEx * This,
  2223.             /* [in] */ LONG lMethodId,
  2224.             /* [in] */ LONG lFlags,
  2225.             /* [in] */ LONG lResID,
  2226.             /* [in] */ LONG lDetail,
  2227.             /* [in] */ BSTR bstrText);
  2228.         
  2229.         END_INTERFACE
  2230.     } IWiaLogExVtbl;
  2231.     interface IWiaLogEx
  2232.     {
  2233.         CONST_VTBL struct IWiaLogExVtbl *lpVtbl;
  2234.     };
  2235.     
  2236. #ifdef COBJMACROS
  2237. #define IWiaLogEx_QueryInterface(This,riid,ppvObject)
  2238.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2239. #define IWiaLogEx_AddRef(This)
  2240.     (This)->lpVtbl -> AddRef(This)
  2241. #define IWiaLogEx_Release(This)
  2242.     (This)->lpVtbl -> Release(This)
  2243. #define IWiaLogEx_InitializeLogEx(This,hInstance)
  2244.     (This)->lpVtbl -> InitializeLogEx(This,hInstance)
  2245. #define IWiaLogEx_hResult(This,hResult)
  2246.     (This)->lpVtbl -> hResult(This,hResult)
  2247. #define IWiaLogEx_Log(This,lFlags,lResID,lDetail,bstrText)
  2248.     (This)->lpVtbl -> Log(This,lFlags,lResID,lDetail,bstrText)
  2249. #define IWiaLogEx_hResultEx(This,lMethodId,hResult)
  2250.     (This)->lpVtbl -> hResultEx(This,lMethodId,hResult)
  2251. #define IWiaLogEx_LogEx(This,lMethodId,lFlags,lResID,lDetail,bstrText)
  2252.     (This)->lpVtbl -> LogEx(This,lMethodId,lFlags,lResID,lDetail,bstrText)
  2253. #endif /* COBJMACROS */
  2254. #endif  /* C style interface */
  2255. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaLogEx_InitializeLogEx_Proxy( 
  2256.     IWiaLogEx * This,
  2257.     /* [in] */ BYTE *hInstance);
  2258. void __RPC_STUB IWiaLogEx_InitializeLogEx_Stub(
  2259.     IRpcStubBuffer *This,
  2260.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2261.     PRPC_MESSAGE _pRpcMessage,
  2262.     DWORD *_pdwStubPhase);
  2263. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaLogEx_hResult_Proxy( 
  2264.     IWiaLogEx * This,
  2265.     /* [in] */ HRESULT hResult);
  2266. void __RPC_STUB IWiaLogEx_hResult_Stub(
  2267.     IRpcStubBuffer *This,
  2268.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2269.     PRPC_MESSAGE _pRpcMessage,
  2270.     DWORD *_pdwStubPhase);
  2271. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaLogEx_Log_Proxy( 
  2272.     IWiaLogEx * This,
  2273.     /* [in] */ LONG lFlags,
  2274.     /* [in] */ LONG lResID,
  2275.     /* [in] */ LONG lDetail,
  2276.     /* [in] */ BSTR bstrText);
  2277. void __RPC_STUB IWiaLogEx_Log_Stub(
  2278.     IRpcStubBuffer *This,
  2279.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2280.     PRPC_MESSAGE _pRpcMessage,
  2281.     DWORD *_pdwStubPhase);
  2282. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaLogEx_hResultEx_Proxy( 
  2283.     IWiaLogEx * This,
  2284.     /* [in] */ LONG lMethodId,
  2285.     /* [in] */ HRESULT hResult);
  2286. void __RPC_STUB IWiaLogEx_hResultEx_Stub(
  2287.     IRpcStubBuffer *This,
  2288.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2289.     PRPC_MESSAGE _pRpcMessage,
  2290.     DWORD *_pdwStubPhase);
  2291. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaLogEx_LogEx_Proxy( 
  2292.     IWiaLogEx * This,
  2293.     /* [in] */ LONG lMethodId,
  2294.     /* [in] */ LONG lFlags,
  2295.     /* [in] */ LONG lResID,
  2296.     /* [in] */ LONG lDetail,
  2297.     /* [in] */ BSTR bstrText);
  2298. void __RPC_STUB IWiaLogEx_LogEx_Stub(
  2299.     IRpcStubBuffer *This,
  2300.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2301.     PRPC_MESSAGE _pRpcMessage,
  2302.     DWORD *_pdwStubPhase);
  2303. #endif  /* __IWiaLogEx_INTERFACE_DEFINED__ */
  2304. #ifndef __IWiaNotifyDevMgr_INTERFACE_DEFINED__
  2305. #define __IWiaNotifyDevMgr_INTERFACE_DEFINED__
  2306. /* interface IWiaNotifyDevMgr */
  2307. /* [unique][helpstring][uuid][object] */ 
  2308. EXTERN_C const IID IID_IWiaNotifyDevMgr;
  2309. #if defined(__cplusplus) && !defined(CINTERFACE)
  2310.     
  2311.     MIDL_INTERFACE("70681EA0-E7BF-4291-9FB1-4E8813A3F78E")
  2312.     IWiaNotifyDevMgr : public IUnknown
  2313.     {
  2314.     public:
  2315.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE NewDeviceArrival( void) = 0;
  2316.         
  2317.     };
  2318.     
  2319. #else  /* C style interface */
  2320.     typedef struct IWiaNotifyDevMgrVtbl
  2321.     {
  2322.         BEGIN_INTERFACE
  2323.         
  2324.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2325.             IWiaNotifyDevMgr * This,
  2326.             /* [in] */ REFIID riid,
  2327.             /* [iid_is][out] */ void **ppvObject);
  2328.         
  2329.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2330.             IWiaNotifyDevMgr * This);
  2331.         
  2332.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2333.             IWiaNotifyDevMgr * This);
  2334.         
  2335.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *NewDeviceArrival )( 
  2336.             IWiaNotifyDevMgr * This);
  2337.         
  2338.         END_INTERFACE
  2339.     } IWiaNotifyDevMgrVtbl;
  2340.     interface IWiaNotifyDevMgr
  2341.     {
  2342.         CONST_VTBL struct IWiaNotifyDevMgrVtbl *lpVtbl;
  2343.     };
  2344.     
  2345. #ifdef COBJMACROS
  2346. #define IWiaNotifyDevMgr_QueryInterface(This,riid,ppvObject)
  2347.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2348. #define IWiaNotifyDevMgr_AddRef(This)
  2349.     (This)->lpVtbl -> AddRef(This)
  2350. #define IWiaNotifyDevMgr_Release(This)
  2351.     (This)->lpVtbl -> Release(This)
  2352. #define IWiaNotifyDevMgr_NewDeviceArrival(This)
  2353.     (This)->lpVtbl -> NewDeviceArrival(This)
  2354. #endif /* COBJMACROS */
  2355. #endif  /* C style interface */
  2356. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaNotifyDevMgr_NewDeviceArrival_Proxy( 
  2357.     IWiaNotifyDevMgr * This);
  2358. void __RPC_STUB IWiaNotifyDevMgr_NewDeviceArrival_Stub(
  2359.     IRpcStubBuffer *This,
  2360.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2361.     PRPC_MESSAGE _pRpcMessage,
  2362.     DWORD *_pdwStubPhase);
  2363. #endif  /* __IWiaNotifyDevMgr_INTERFACE_DEFINED__ */
  2364. #ifndef __IWiaItemExtras_INTERFACE_DEFINED__
  2365. #define __IWiaItemExtras_INTERFACE_DEFINED__
  2366. /* interface IWiaItemExtras */
  2367. /* [unique][helpstring][uuid][object] */ 
  2368. EXTERN_C const IID IID_IWiaItemExtras;
  2369. #if defined(__cplusplus) && !defined(CINTERFACE)
  2370.     
  2371.     MIDL_INTERFACE("6291ef2c-36ef-4532-876a-8e132593778d")
  2372.     IWiaItemExtras : public IUnknown
  2373.     {
  2374.     public:
  2375.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetExtendedErrorInfo( 
  2376.             /* [out] */ BSTR *bstrErrorText) = 0;
  2377.         
  2378.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Escape( 
  2379.             /* [in] */ DWORD dwEscapeCode,
  2380.             /* [size_is][in] */ BYTE *lpInData,
  2381.             /* [in] */ DWORD cbInDataSize,
  2382.             /* [length_is][size_is][out] */ BYTE *pOutData,
  2383.             /* [in] */ DWORD dwOutDataSize,
  2384.             /* [out] */ DWORD *pdwActualDataSize) = 0;
  2385.         
  2386.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CancelPendingIO( void) = 0;
  2387.         
  2388.     };
  2389.     
  2390. #else  /* C style interface */
  2391.     typedef struct IWiaItemExtrasVtbl
  2392.     {
  2393.         BEGIN_INTERFACE
  2394.         
  2395.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2396.             IWiaItemExtras * This,
  2397.             /* [in] */ REFIID riid,
  2398.             /* [iid_is][out] */ void **ppvObject);
  2399.         
  2400.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2401.             IWiaItemExtras * This);
  2402.         
  2403.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2404.             IWiaItemExtras * This);
  2405.         
  2406.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetExtendedErrorInfo )( 
  2407.             IWiaItemExtras * This,
  2408.             /* [out] */ BSTR *bstrErrorText);
  2409.         
  2410.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Escape )( 
  2411.             IWiaItemExtras * This,
  2412.             /* [in] */ DWORD dwEscapeCode,
  2413.             /* [size_is][in] */ BYTE *lpInData,
  2414.             /* [in] */ DWORD cbInDataSize,
  2415.             /* [length_is][size_is][out] */ BYTE *pOutData,
  2416.             /* [in] */ DWORD dwOutDataSize,
  2417.             /* [out] */ DWORD *pdwActualDataSize);
  2418.         
  2419.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CancelPendingIO )( 
  2420.             IWiaItemExtras * This);
  2421.         
  2422.         END_INTERFACE
  2423.     } IWiaItemExtrasVtbl;
  2424.     interface IWiaItemExtras
  2425.     {
  2426.         CONST_VTBL struct IWiaItemExtrasVtbl *lpVtbl;
  2427.     };
  2428.     
  2429. #ifdef COBJMACROS
  2430. #define IWiaItemExtras_QueryInterface(This,riid,ppvObject)
  2431.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2432. #define IWiaItemExtras_AddRef(This)
  2433.     (This)->lpVtbl -> AddRef(This)
  2434. #define IWiaItemExtras_Release(This)
  2435.     (This)->lpVtbl -> Release(This)
  2436. #define IWiaItemExtras_GetExtendedErrorInfo(This,bstrErrorText)
  2437.     (This)->lpVtbl -> GetExtendedErrorInfo(This,bstrErrorText)
  2438. #define IWiaItemExtras_Escape(This,dwEscapeCode,lpInData,cbInDataSize,pOutData,dwOutDataSize,pdwActualDataSize)
  2439.     (This)->lpVtbl -> Escape(This,dwEscapeCode,lpInData,cbInDataSize,pOutData,dwOutDataSize,pdwActualDataSize)
  2440. #define IWiaItemExtras_CancelPendingIO(This)
  2441.     (This)->lpVtbl -> CancelPendingIO(This)
  2442. #endif /* COBJMACROS */
  2443. #endif  /* C style interface */
  2444. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItemExtras_GetExtendedErrorInfo_Proxy( 
  2445.     IWiaItemExtras * This,
  2446.     /* [out] */ BSTR *bstrErrorText);
  2447. void __RPC_STUB IWiaItemExtras_GetExtendedErrorInfo_Stub(
  2448.     IRpcStubBuffer *This,
  2449.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2450.     PRPC_MESSAGE _pRpcMessage,
  2451.     DWORD *_pdwStubPhase);
  2452. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItemExtras_Escape_Proxy( 
  2453.     IWiaItemExtras * This,
  2454.     /* [in] */ DWORD dwEscapeCode,
  2455.     /* [size_is][in] */ BYTE *lpInData,
  2456.     /* [in] */ DWORD cbInDataSize,
  2457.     /* [length_is][size_is][out] */ BYTE *pOutData,
  2458.     /* [in] */ DWORD dwOutDataSize,
  2459.     /* [out] */ DWORD *pdwActualDataSize);
  2460. void __RPC_STUB IWiaItemExtras_Escape_Stub(
  2461.     IRpcStubBuffer *This,
  2462.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2463.     PRPC_MESSAGE _pRpcMessage,
  2464.     DWORD *_pdwStubPhase);
  2465. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IWiaItemExtras_CancelPendingIO_Proxy( 
  2466.     IWiaItemExtras * This);
  2467. void __RPC_STUB IWiaItemExtras_CancelPendingIO_Stub(
  2468.     IRpcStubBuffer *This,
  2469.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2470.     PRPC_MESSAGE _pRpcMessage,
  2471.     DWORD *_pdwStubPhase);
  2472. #endif  /* __IWiaItemExtras_INTERFACE_DEFINED__ */
  2473. #ifndef __WiaDevMgr_LIBRARY_DEFINED__
  2474. #define __WiaDevMgr_LIBRARY_DEFINED__
  2475. /* library WiaDevMgr */
  2476. /* [helpstring][version][uuid] */ 
  2477. EXTERN_C const IID LIBID_WiaDevMgr;
  2478. EXTERN_C const CLSID CLSID_WiaDevMgr;
  2479. #ifdef __cplusplus
  2480. class DECLSPEC_UUID("a1f4e726-8cf1-11d1-bf92-0060081ed811")
  2481. WiaDevMgr;
  2482. #endif
  2483. EXTERN_C const CLSID CLSID_WiaLog;
  2484. #ifdef __cplusplus
  2485. class DECLSPEC_UUID("A1E75357-881A-419e-83E2-BB16DB197C68")
  2486. WiaLog;
  2487. #endif
  2488. #endif /* __WiaDevMgr_LIBRARY_DEFINED__ */
  2489. /* Additional Prototypes for ALL interfaces */
  2490. unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
  2491. unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
  2492. unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
  2493. void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 
  2494. unsigned long             __RPC_USER  HWND_UserSize(     unsigned long *, unsigned long            , HWND * ); 
  2495. unsigned char * __RPC_USER  HWND_UserMarshal(  unsigned long *, unsigned char *, HWND * ); 
  2496. unsigned char * __RPC_USER  HWND_UserUnmarshal(unsigned long *, unsigned char *, HWND * ); 
  2497. void                      __RPC_USER  HWND_UserFree(     unsigned long *, HWND * ); 
  2498. unsigned long             __RPC_USER  LPSAFEARRAY_UserSize(     unsigned long *, unsigned long            , LPSAFEARRAY * ); 
  2499. unsigned char * __RPC_USER  LPSAFEARRAY_UserMarshal(  unsigned long *, unsigned char *, LPSAFEARRAY * ); 
  2500. unsigned char * __RPC_USER  LPSAFEARRAY_UserUnmarshal(unsigned long *, unsigned char *, LPSAFEARRAY * ); 
  2501. void                      __RPC_USER  LPSAFEARRAY_UserFree(     unsigned long *, LPSAFEARRAY * ); 
  2502. unsigned long             __RPC_USER  STGMEDIUM_UserSize(     unsigned long *, unsigned long            , STGMEDIUM * ); 
  2503. unsigned char * __RPC_USER  STGMEDIUM_UserMarshal(  unsigned long *, unsigned char *, STGMEDIUM * ); 
  2504. unsigned char * __RPC_USER  STGMEDIUM_UserUnmarshal(unsigned long *, unsigned char *, STGMEDIUM * ); 
  2505. void                      __RPC_USER  STGMEDIUM_UserFree(     unsigned long *, STGMEDIUM * ); 
  2506. /* [local] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_CreateDevice_Proxy( 
  2507.     IWiaDevMgr * This,
  2508.     /* [in] */ BSTR bstrDeviceID,
  2509.     /* [out] */ IWiaItem **ppWiaItemRoot);
  2510. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_CreateDevice_Stub( 
  2511.     IWiaDevMgr * This,
  2512.     /* [in] */ BSTR bstrDeviceID,
  2513.     /* [out] */ IWiaItem **ppWiaItemRoot);
  2514. /* [local] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_SelectDeviceDlg_Proxy( 
  2515.     IWiaDevMgr * This,
  2516.     /* [in] */ HWND hwndParent,
  2517.     /* [in] */ LONG lDeviceType,
  2518.     /* [in] */ LONG lFlags,
  2519.     /* [out][in] */ BSTR *pbstrDeviceID,
  2520.     /* [retval][out] */ IWiaItem **ppItemRoot);
  2521. /* [nocode][helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_SelectDeviceDlg_Stub( 
  2522.     IWiaDevMgr * This,
  2523.     /* [in] */ HWND hwndParent,
  2524.     /* [in] */ LONG lDeviceType,
  2525.     /* [in] */ LONG lFlags,
  2526.     /* [out][in] */ BSTR *pbstrDeviceID,
  2527.     /* [retval][out] */ IWiaItem **ppItemRoot);
  2528. /* [local] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_SelectDeviceDlgID_Proxy( 
  2529.     IWiaDevMgr * This,
  2530.     /* [in] */ HWND hwndParent,
  2531.     /* [in] */ LONG lDeviceType,
  2532.     /* [in] */ LONG lFlags,
  2533.     /* [retval][out] */ BSTR *pbstrDeviceID);
  2534. /* [nocode][helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_SelectDeviceDlgID_Stub( 
  2535.     IWiaDevMgr * This,
  2536.     /* [in] */ HWND hwndParent,
  2537.     /* [in] */ LONG lDeviceType,
  2538.     /* [in] */ LONG lFlags,
  2539.     /* [retval][out] */ BSTR *pbstrDeviceID);
  2540. /* [local] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_GetImageDlg_Proxy( 
  2541.     IWiaDevMgr * This,
  2542.     /* [in] */ HWND hwndParent,
  2543.     /* [in] */ LONG lDeviceType,
  2544.     /* [in] */ LONG lFlags,
  2545.     /* [in] */ LONG lIntent,
  2546.     /* [in] */ IWiaItem *pItemRoot,
  2547.     /* [in] */ BSTR bstrFilename,
  2548.     /* [out][in] */ GUID *pguidFormat);
  2549. /* [nocode][helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_GetImageDlg_Stub( 
  2550.     IWiaDevMgr * This,
  2551.     /* [in] */ HWND hwndParent,
  2552.     /* [in] */ LONG lDeviceType,
  2553.     /* [in] */ LONG lFlags,
  2554.     /* [in] */ LONG lIntent,
  2555.     /* [in] */ IWiaItem *pItemRoot,
  2556.     /* [in] */ BSTR bstrFilename,
  2557.     /* [out][in] */ GUID *pguidFormat);
  2558. /* [local] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_RegisterEventCallbackProgram_Proxy( 
  2559.     IWiaDevMgr * This,
  2560.     /* [in] */ LONG lFlags,
  2561.     /* [in] */ BSTR bstrDeviceID,
  2562.     /* [in] */ const GUID *pEventGUID,
  2563.     /* [in] */ BSTR bstrCommandline,
  2564.     /* [in] */ BSTR bstrName,
  2565.     /* [in] */ BSTR bstrDescription,
  2566.     /* [in] */ BSTR bstrIcon);
  2567. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_RegisterEventCallbackProgram_Stub( 
  2568.     IWiaDevMgr * This,
  2569.     /* [in] */ LONG lFlags,
  2570.     /* [in] */ BSTR bstrDeviceID,
  2571.     /* [in] */ const GUID *pEventGUID,
  2572.     /* [in] */ BSTR bstrCommandline,
  2573.     /* [in] */ BSTR bstrName,
  2574.     /* [in] */ BSTR bstrDescription,
  2575.     /* [in] */ BSTR bstrIcon);
  2576. /* [local] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_RegisterEventCallbackCLSID_Proxy( 
  2577.     IWiaDevMgr * This,
  2578.     /* [in] */ LONG lFlags,
  2579.     /* [in] */ BSTR bstrDeviceID,
  2580.     /* [in] */ const GUID *pEventGUID,
  2581.     /* [unique][in] */ const GUID *pClsID,
  2582.     /* [in] */ BSTR bstrName,
  2583.     /* [in] */ BSTR bstrDescription,
  2584.     /* [in] */ BSTR bstrIcon);
  2585. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDevMgr_RegisterEventCallbackCLSID_Stub( 
  2586.     IWiaDevMgr * This,
  2587.     /* [in] */ LONG lFlags,
  2588.     /* [in] */ BSTR bstrDeviceID,
  2589.     /* [in] */ const GUID *pEventGUID,
  2590.     /* [unique][in] */ const GUID *pClsID,
  2591.     /* [in] */ BSTR bstrName,
  2592.     /* [in] */ BSTR bstrDescription,
  2593.     /* [in] */ BSTR bstrIcon);
  2594. /* [local] */ HRESULT STDMETHODCALLTYPE IEnumWIA_DEV_INFO_Next_Proxy( 
  2595.     IEnumWIA_DEV_INFO * This,
  2596.     /* [in] */ ULONG celt,
  2597.     /* [length_is][size_is][out] */ IWiaPropertyStorage **rgelt,
  2598.     /* [unique][out][in] */ ULONG *pceltFetched);
  2599. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IEnumWIA_DEV_INFO_Next_Stub( 
  2600.     IEnumWIA_DEV_INFO * This,
  2601.     /* [in] */ ULONG celt,
  2602.     /* [length_is][size_is][out] */ IWiaPropertyStorage **rgelt,
  2603.     /* [unique][out][in] */ ULONG *pceltFetched);
  2604. /* [local] */ HRESULT STDMETHODCALLTYPE IWiaDataCallback_BandedDataCallback_Proxy( 
  2605.     IWiaDataCallback * This,
  2606.     /* [in] */ LONG lMessage,
  2607.     /* [in] */ LONG lStatus,
  2608.     /* [in] */ LONG lPercentComplete,
  2609.     /* [in] */ LONG lOffset,
  2610.     /* [in] */ LONG lLength,
  2611.     /* [in] */ LONG lReserved,
  2612.     /* [in] */ LONG lResLength,
  2613.     /* [size_is][in] */ BYTE *pbBuffer);
  2614. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDataCallback_BandedDataCallback_Stub( 
  2615.     IWiaDataCallback * This,
  2616.     /* [in] */ LONG lMessage,
  2617.     /* [in] */ LONG lStatus,
  2618.     /* [in] */ LONG lPercentComplete,
  2619.     /* [in] */ LONG lOffset,
  2620.     /* [in] */ LONG lLength,
  2621.     /* [in] */ LONG lReserved,
  2622.     /* [in] */ LONG lResLength,
  2623.     /* [unique][size_is][in] */ BYTE *pbBuffer);
  2624. /* [local] */ HRESULT STDMETHODCALLTYPE IWiaDataTransfer_idtGetData_Proxy( 
  2625.     IWiaDataTransfer * This,
  2626.     /* [out][in] */ LPSTGMEDIUM pMedium,
  2627.     /* [unique][in] */ IWiaDataCallback *pIWiaDataCallback);
  2628. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDataTransfer_idtGetData_Stub( 
  2629.     IWiaDataTransfer * This,
  2630.     /* [out][in] */ LPSTGMEDIUM pMedium,
  2631.     /* [unique][in] */ IWiaDataCallback *pIWiaDataCallback);
  2632. /* [local] */ HRESULT STDMETHODCALLTYPE IWiaDataTransfer_idtGetBandedData_Proxy( 
  2633.     IWiaDataTransfer * This,
  2634.     /* [unique][in] */ PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,
  2635.     /* [unique][in] */ IWiaDataCallback *pIWiaDataCallback);
  2636. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaDataTransfer_idtGetBandedData_Stub( 
  2637.     IWiaDataTransfer * This,
  2638.     /* [unique][in] */ PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,
  2639.     /* [unique][in] */ IWiaDataCallback *pIWiaDataCallback);
  2640. /* [local] */ HRESULT STDMETHODCALLTYPE IWiaItem_DeviceDlg_Proxy( 
  2641.     IWiaItem * This,
  2642.     /* [in] */ HWND hwndParent,
  2643.     /* [in] */ LONG lFlags,
  2644.     /* [in] */ LONG lIntent,
  2645.     /* [out] */ LONG *plItemCount,
  2646.     /* [out] */ IWiaItem ***ppIWiaItem);
  2647. /* [nocode][helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IWiaItem_DeviceDlg_Stub( 
  2648.     IWiaItem * This,
  2649.     /* [in] */ HWND hwndParent,
  2650.     /* [in] */ LONG lFlags,
  2651.     /* [in] */ LONG lIntent,
  2652.     /* [out] */ LONG *plItemCount,
  2653.     /* [out] */ IWiaItem ***pIWiaItem);
  2654. /* [local] */ HRESULT STDMETHODCALLTYPE IEnumWiaItem_Next_Proxy( 
  2655.     IEnumWiaItem * This,
  2656.     /* [in] */ ULONG celt,
  2657.     /* [length_is][size_is][out] */ IWiaItem **ppIWiaItem,
  2658.     /* [unique][out][in] */ ULONG *pceltFetched);
  2659. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IEnumWiaItem_Next_Stub( 
  2660.     IEnumWiaItem * This,
  2661.     /* [in] */ ULONG celt,
  2662.     /* [length_is][size_is][out] */ IWiaItem **ppIWiaItem,
  2663.     /* [unique][out][in] */ ULONG *pceltFetched);
  2664. /* [local] */ HRESULT STDMETHODCALLTYPE IEnumWIA_DEV_CAPS_Next_Proxy( 
  2665.     IEnumWIA_DEV_CAPS * This,
  2666.     /* [in] */ ULONG celt,
  2667.     /* [length_is][size_is][out] */ WIA_DEV_CAP *rgelt,
  2668.     /* [unique][out][in] */ ULONG *pceltFetched);
  2669. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IEnumWIA_DEV_CAPS_Next_Stub( 
  2670.     IEnumWIA_DEV_CAPS * This,
  2671.     /* [in] */ ULONG celt,
  2672.     /* [length_is][size_is][out] */ WIA_DEV_CAP *rgelt,
  2673.     /* [unique][out][in] */ ULONG *pceltFetched);
  2674. /* [local] */ HRESULT STDMETHODCALLTYPE IEnumWIA_FORMAT_INFO_Next_Proxy( 
  2675.     IEnumWIA_FORMAT_INFO * This,
  2676.     /* [in] */ ULONG celt,
  2677.     /* [length_is][size_is][out] */ WIA_FORMAT_INFO *rgelt,
  2678.     /* [unique][out][in] */ ULONG *pceltFetched);
  2679. /* [helpstring][call_as] */ HRESULT STDMETHODCALLTYPE IEnumWIA_FORMAT_INFO_Next_Stub( 
  2680.     IEnumWIA_FORMAT_INFO * This,
  2681.     /* [in] */ ULONG celt,
  2682.     /* [length_is][size_is][out] */ WIA_FORMAT_INFO *rgelt,
  2683.     /* [unique][out][in] */ ULONG *pceltFetched);
  2684. /* end of Additional Prototypes */
  2685. #ifdef __cplusplus
  2686. }
  2687. #endif
  2688. #endif