Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

7951 lines
241 KiB

  1. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  2. /* File created by MIDL compiler version 6.00.0361 */
  3. /* Compiler settings for mswmdm.idl:
  4. Oicf, W1, Zp8, env=Win32 (32b run)
  5. protocol : dce , ms_ext, c_ext, robust
  6. error checks: allocation ref bounds_check enum stub_data
  7. VC __declspec() decoration level:
  8. __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  9. DECLSPEC_UUID(), MIDL_INTERFACE()
  10. */
  11. //@@MIDL_FILE_HEADING( )
  12. #pragma warning( disable: 4049 ) /* more than 64k source lines */
  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 __mswmdm_h__
  27. #define __mswmdm_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. /* Forward Declarations */
  32. #ifndef __IWMDeviceManager_FWD_DEFINED__
  33. #define __IWMDeviceManager_FWD_DEFINED__
  34. typedef interface IWMDeviceManager IWMDeviceManager;
  35. #endif /* __IWMDeviceManager_FWD_DEFINED__ */
  36. #ifndef __IWMDeviceManager2_FWD_DEFINED__
  37. #define __IWMDeviceManager2_FWD_DEFINED__
  38. typedef interface IWMDeviceManager2 IWMDeviceManager2;
  39. #endif /* __IWMDeviceManager2_FWD_DEFINED__ */
  40. #ifndef __IWMDMStorageGlobals_FWD_DEFINED__
  41. #define __IWMDMStorageGlobals_FWD_DEFINED__
  42. typedef interface IWMDMStorageGlobals IWMDMStorageGlobals;
  43. #endif /* __IWMDMStorageGlobals_FWD_DEFINED__ */
  44. #ifndef __IWMDMStorage_FWD_DEFINED__
  45. #define __IWMDMStorage_FWD_DEFINED__
  46. typedef interface IWMDMStorage IWMDMStorage;
  47. #endif /* __IWMDMStorage_FWD_DEFINED__ */
  48. #ifndef __IWMDMStorage2_FWD_DEFINED__
  49. #define __IWMDMStorage2_FWD_DEFINED__
  50. typedef interface IWMDMStorage2 IWMDMStorage2;
  51. #endif /* __IWMDMStorage2_FWD_DEFINED__ */
  52. #ifndef __IWMDMOperation_FWD_DEFINED__
  53. #define __IWMDMOperation_FWD_DEFINED__
  54. typedef interface IWMDMOperation IWMDMOperation;
  55. #endif /* __IWMDMOperation_FWD_DEFINED__ */
  56. #ifndef __IWMDMOperation2_FWD_DEFINED__
  57. #define __IWMDMOperation2_FWD_DEFINED__
  58. typedef interface IWMDMOperation2 IWMDMOperation2;
  59. #endif /* __IWMDMOperation2_FWD_DEFINED__ */
  60. #ifndef __IWMDMProgress_FWD_DEFINED__
  61. #define __IWMDMProgress_FWD_DEFINED__
  62. typedef interface IWMDMProgress IWMDMProgress;
  63. #endif /* __IWMDMProgress_FWD_DEFINED__ */
  64. #ifndef __IWMDMProgress2_FWD_DEFINED__
  65. #define __IWMDMProgress2_FWD_DEFINED__
  66. typedef interface IWMDMProgress2 IWMDMProgress2;
  67. #endif /* __IWMDMProgress2_FWD_DEFINED__ */
  68. #ifndef __IWMDMDevice_FWD_DEFINED__
  69. #define __IWMDMDevice_FWD_DEFINED__
  70. typedef interface IWMDMDevice IWMDMDevice;
  71. #endif /* __IWMDMDevice_FWD_DEFINED__ */
  72. #ifndef __IWMDMDevice2_FWD_DEFINED__
  73. #define __IWMDMDevice2_FWD_DEFINED__
  74. typedef interface IWMDMDevice2 IWMDMDevice2;
  75. #endif /* __IWMDMDevice2_FWD_DEFINED__ */
  76. #ifndef __IWMDMEnumDevice_FWD_DEFINED__
  77. #define __IWMDMEnumDevice_FWD_DEFINED__
  78. typedef interface IWMDMEnumDevice IWMDMEnumDevice;
  79. #endif /* __IWMDMEnumDevice_FWD_DEFINED__ */
  80. #ifndef __IWMDMDeviceControl_FWD_DEFINED__
  81. #define __IWMDMDeviceControl_FWD_DEFINED__
  82. typedef interface IWMDMDeviceControl IWMDMDeviceControl;
  83. #endif /* __IWMDMDeviceControl_FWD_DEFINED__ */
  84. #ifndef __IWMDMEnumStorage_FWD_DEFINED__
  85. #define __IWMDMEnumStorage_FWD_DEFINED__
  86. typedef interface IWMDMEnumStorage IWMDMEnumStorage;
  87. #endif /* __IWMDMEnumStorage_FWD_DEFINED__ */
  88. #ifndef __IWMDMStorageControl_FWD_DEFINED__
  89. #define __IWMDMStorageControl_FWD_DEFINED__
  90. typedef interface IWMDMStorageControl IWMDMStorageControl;
  91. #endif /* __IWMDMStorageControl_FWD_DEFINED__ */
  92. #ifndef __IWMDMStorageControl2_FWD_DEFINED__
  93. #define __IWMDMStorageControl2_FWD_DEFINED__
  94. typedef interface IWMDMStorageControl2 IWMDMStorageControl2;
  95. #endif /* __IWMDMStorageControl2_FWD_DEFINED__ */
  96. #ifndef __IWMDMObjectInfo_FWD_DEFINED__
  97. #define __IWMDMObjectInfo_FWD_DEFINED__
  98. typedef interface IWMDMObjectInfo IWMDMObjectInfo;
  99. #endif /* __IWMDMObjectInfo_FWD_DEFINED__ */
  100. #ifndef __IWMDMRevoked_FWD_DEFINED__
  101. #define __IWMDMRevoked_FWD_DEFINED__
  102. typedef interface IWMDMRevoked IWMDMRevoked;
  103. #endif /* __IWMDMRevoked_FWD_DEFINED__ */
  104. #ifndef __IMDServiceProvider_FWD_DEFINED__
  105. #define __IMDServiceProvider_FWD_DEFINED__
  106. typedef interface IMDServiceProvider IMDServiceProvider;
  107. #endif /* __IMDServiceProvider_FWD_DEFINED__ */
  108. #ifndef __IMDServiceProvider2_FWD_DEFINED__
  109. #define __IMDServiceProvider2_FWD_DEFINED__
  110. typedef interface IMDServiceProvider2 IMDServiceProvider2;
  111. #endif /* __IMDServiceProvider2_FWD_DEFINED__ */
  112. #ifndef __IMDSPEnumDevice_FWD_DEFINED__
  113. #define __IMDSPEnumDevice_FWD_DEFINED__
  114. typedef interface IMDSPEnumDevice IMDSPEnumDevice;
  115. #endif /* __IMDSPEnumDevice_FWD_DEFINED__ */
  116. #ifndef __IMDSPDevice_FWD_DEFINED__
  117. #define __IMDSPDevice_FWD_DEFINED__
  118. typedef interface IMDSPDevice IMDSPDevice;
  119. #endif /* __IMDSPDevice_FWD_DEFINED__ */
  120. #ifndef __IMDSPDevice2_FWD_DEFINED__
  121. #define __IMDSPDevice2_FWD_DEFINED__
  122. typedef interface IMDSPDevice2 IMDSPDevice2;
  123. #endif /* __IMDSPDevice2_FWD_DEFINED__ */
  124. #ifndef __IMDSPDeviceControl_FWD_DEFINED__
  125. #define __IMDSPDeviceControl_FWD_DEFINED__
  126. typedef interface IMDSPDeviceControl IMDSPDeviceControl;
  127. #endif /* __IMDSPDeviceControl_FWD_DEFINED__ */
  128. #ifndef __IMDSPEnumStorage_FWD_DEFINED__
  129. #define __IMDSPEnumStorage_FWD_DEFINED__
  130. typedef interface IMDSPEnumStorage IMDSPEnumStorage;
  131. #endif /* __IMDSPEnumStorage_FWD_DEFINED__ */
  132. #ifndef __IMDSPStorage_FWD_DEFINED__
  133. #define __IMDSPStorage_FWD_DEFINED__
  134. typedef interface IMDSPStorage IMDSPStorage;
  135. #endif /* __IMDSPStorage_FWD_DEFINED__ */
  136. #ifndef __IMDSPStorage2_FWD_DEFINED__
  137. #define __IMDSPStorage2_FWD_DEFINED__
  138. typedef interface IMDSPStorage2 IMDSPStorage2;
  139. #endif /* __IMDSPStorage2_FWD_DEFINED__ */
  140. #ifndef __IMDSPStorageGlobals_FWD_DEFINED__
  141. #define __IMDSPStorageGlobals_FWD_DEFINED__
  142. typedef interface IMDSPStorageGlobals IMDSPStorageGlobals;
  143. #endif /* __IMDSPStorageGlobals_FWD_DEFINED__ */
  144. #ifndef __IMDSPObjectInfo_FWD_DEFINED__
  145. #define __IMDSPObjectInfo_FWD_DEFINED__
  146. typedef interface IMDSPObjectInfo IMDSPObjectInfo;
  147. #endif /* __IMDSPObjectInfo_FWD_DEFINED__ */
  148. #ifndef __IMDSPObject_FWD_DEFINED__
  149. #define __IMDSPObject_FWD_DEFINED__
  150. typedef interface IMDSPObject IMDSPObject;
  151. #endif /* __IMDSPObject_FWD_DEFINED__ */
  152. #ifndef __IMDSPRevoked_FWD_DEFINED__
  153. #define __IMDSPRevoked_FWD_DEFINED__
  154. typedef interface IMDSPRevoked IMDSPRevoked;
  155. #endif /* __IMDSPRevoked_FWD_DEFINED__ */
  156. #ifndef __ISCPSecureAuthenticate_FWD_DEFINED__
  157. #define __ISCPSecureAuthenticate_FWD_DEFINED__
  158. typedef interface ISCPSecureAuthenticate ISCPSecureAuthenticate;
  159. #endif /* __ISCPSecureAuthenticate_FWD_DEFINED__ */
  160. #ifndef __ISCPSecureQuery_FWD_DEFINED__
  161. #define __ISCPSecureQuery_FWD_DEFINED__
  162. typedef interface ISCPSecureQuery ISCPSecureQuery;
  163. #endif /* __ISCPSecureQuery_FWD_DEFINED__ */
  164. #ifndef __ISCPSecureQuery2_FWD_DEFINED__
  165. #define __ISCPSecureQuery2_FWD_DEFINED__
  166. typedef interface ISCPSecureQuery2 ISCPSecureQuery2;
  167. #endif /* __ISCPSecureQuery2_FWD_DEFINED__ */
  168. #ifndef __ISCPSecureExchange_FWD_DEFINED__
  169. #define __ISCPSecureExchange_FWD_DEFINED__
  170. typedef interface ISCPSecureExchange ISCPSecureExchange;
  171. #endif /* __ISCPSecureExchange_FWD_DEFINED__ */
  172. #ifndef __IComponentAuthenticate_FWD_DEFINED__
  173. #define __IComponentAuthenticate_FWD_DEFINED__
  174. typedef interface IComponentAuthenticate IComponentAuthenticate;
  175. #endif /* __IComponentAuthenticate_FWD_DEFINED__ */
  176. #ifndef __MediaDevMgrClassFactory_FWD_DEFINED__
  177. #define __MediaDevMgrClassFactory_FWD_DEFINED__
  178. #ifdef __cplusplus
  179. typedef class MediaDevMgrClassFactory MediaDevMgrClassFactory;
  180. #else
  181. typedef struct MediaDevMgrClassFactory MediaDevMgrClassFactory;
  182. #endif /* __cplusplus */
  183. #endif /* __MediaDevMgrClassFactory_FWD_DEFINED__ */
  184. #ifndef __MediaDevMgr_FWD_DEFINED__
  185. #define __MediaDevMgr_FWD_DEFINED__
  186. #ifdef __cplusplus
  187. typedef class MediaDevMgr MediaDevMgr;
  188. #else
  189. typedef struct MediaDevMgr MediaDevMgr;
  190. #endif /* __cplusplus */
  191. #endif /* __MediaDevMgr_FWD_DEFINED__ */
  192. #ifndef __WMDMDevice_FWD_DEFINED__
  193. #define __WMDMDevice_FWD_DEFINED__
  194. #ifdef __cplusplus
  195. typedef class WMDMDevice WMDMDevice;
  196. #else
  197. typedef struct WMDMDevice WMDMDevice;
  198. #endif /* __cplusplus */
  199. #endif /* __WMDMDevice_FWD_DEFINED__ */
  200. #ifndef __WMDMStorage_FWD_DEFINED__
  201. #define __WMDMStorage_FWD_DEFINED__
  202. #ifdef __cplusplus
  203. typedef class WMDMStorage WMDMStorage;
  204. #else
  205. typedef struct WMDMStorage WMDMStorage;
  206. #endif /* __cplusplus */
  207. #endif /* __WMDMStorage_FWD_DEFINED__ */
  208. #ifndef __WMDMStorageGlobal_FWD_DEFINED__
  209. #define __WMDMStorageGlobal_FWD_DEFINED__
  210. #ifdef __cplusplus
  211. typedef class WMDMStorageGlobal WMDMStorageGlobal;
  212. #else
  213. typedef struct WMDMStorageGlobal WMDMStorageGlobal;
  214. #endif /* __cplusplus */
  215. #endif /* __WMDMStorageGlobal_FWD_DEFINED__ */
  216. #ifndef __WMDMDeviceEnum_FWD_DEFINED__
  217. #define __WMDMDeviceEnum_FWD_DEFINED__
  218. #ifdef __cplusplus
  219. typedef class WMDMDeviceEnum WMDMDeviceEnum;
  220. #else
  221. typedef struct WMDMDeviceEnum WMDMDeviceEnum;
  222. #endif /* __cplusplus */
  223. #endif /* __WMDMDeviceEnum_FWD_DEFINED__ */
  224. #ifndef __WMDMStorageEnum_FWD_DEFINED__
  225. #define __WMDMStorageEnum_FWD_DEFINED__
  226. #ifdef __cplusplus
  227. typedef class WMDMStorageEnum WMDMStorageEnum;
  228. #else
  229. typedef struct WMDMStorageEnum WMDMStorageEnum;
  230. #endif /* __cplusplus */
  231. #endif /* __WMDMStorageEnum_FWD_DEFINED__ */
  232. /* header files for imported files */
  233. #include "oaidl.h"
  234. #include "ocidl.h"
  235. #ifdef __cplusplus
  236. extern "C"{
  237. #endif
  238. void * __RPC_USER MIDL_user_allocate(size_t);
  239. void __RPC_USER MIDL_user_free( void * );
  240. /* interface __MIDL_itf_mswmdm_0000 */
  241. /* [local] */
  242. typedef struct _tWAVEFORMATEX
  243. {
  244. WORD wFormatTag;
  245. WORD nChannels;
  246. DWORD nSamplesPerSec;
  247. DWORD nAvgBytesPerSec;
  248. WORD nBlockAlign;
  249. WORD wBitsPerSample;
  250. WORD cbSize;
  251. } _WAVEFORMATEX;
  252. typedef struct _tagBITMAPINFOHEADER
  253. {
  254. DWORD biSize;
  255. LONG biWidth;
  256. LONG biHeight;
  257. WORD biPlanes;
  258. WORD biBitCount;
  259. DWORD biCompression;
  260. DWORD biSizeImage;
  261. LONG biXPelsPerMeter;
  262. LONG biYPelsPerMeter;
  263. DWORD biClrUsed;
  264. DWORD biClrImportant;
  265. } _BITMAPINFOHEADER;
  266. typedef struct _tagVIDEOINFOHEADER
  267. {
  268. RECT rcSource;
  269. RECT rcTarget;
  270. DWORD dwBitRate;
  271. DWORD dwBitErrorRate;
  272. LONGLONG AvgTimePerFrame;
  273. _BITMAPINFOHEADER bmiHeader;
  274. } _VIDEOINFOHEADER;
  275. typedef struct _tagWMFILECAPABILITIES
  276. {
  277. LPWSTR pwszMimeType;
  278. DWORD dwReserved;
  279. } WMFILECAPABILITIES;
  280. typedef struct __OPAQUECOMMAND
  281. {
  282. GUID guidCommand;
  283. DWORD dwDataLen;
  284. /* [size_is] */ BYTE *pData;
  285. BYTE abMAC[ 20 ];
  286. } OPAQUECOMMAND;
  287. #define WMDMID_LENGTH 128
  288. typedef struct __WMDMID
  289. {
  290. UINT cbSize;
  291. DWORD dwVendorID;
  292. BYTE pID[ 128 ];
  293. UINT SerialNumberLength;
  294. } WMDMID;
  295. typedef struct __WMDMID *PWMDMID;
  296. typedef struct _WMDMDATETIME
  297. {
  298. WORD wYear;
  299. WORD wMonth;
  300. WORD wDay;
  301. WORD wHour;
  302. WORD wMinute;
  303. WORD wSecond;
  304. } WMDMDATETIME;
  305. typedef struct _WMDMDATETIME *PWMDMDATETIME;
  306. typedef struct __WMDMRIGHTS
  307. {
  308. UINT cbSize;
  309. DWORD dwContentType;
  310. DWORD fuFlags;
  311. DWORD fuRights;
  312. DWORD dwAppSec;
  313. DWORD dwPlaybackCount;
  314. WMDMDATETIME ExpirationDate;
  315. } WMDMRIGHTS;
  316. typedef struct __WMDMRIGHTS *PWMDMRIGHTS;
  317. #define WMDM_MAC_LENGTH 8
  318. // WMDM HRESULTS
  319. #define WMDM_E_BUSY 0x80045000L
  320. #define WMDM_E_INTERFACEDEAD 0x80045001L
  321. #define WMDM_E_INVALIDTYPE 0x80045002L
  322. #define WMDM_E_PROCESSFAILED 0x80045003L
  323. #define WMDM_E_NOTSUPPORTED 0x80045004L
  324. #define WMDM_E_NOTCERTIFIED 0x80045005L
  325. #define WMDM_E_NORIGHTS 0x80045006L
  326. #define WMDM_E_CALL_OUT_OF_SEQUENCE 0x80045007L
  327. #define WMDM_E_BUFFERTOOSMALL 0x80045008L
  328. #define WMDM_E_MOREDATA 0x80045009L
  329. #define WMDM_E_MAC_CHECK_FAILED 0x8004500AL
  330. #define WMDM_E_USER_CANCELLED 0x8004500BL
  331. #define WMDM_E_SDMI_TRIGGER 0x8004500CL
  332. #define WMDM_E_SDMI_NOMORECOPIES 0x8004500DL
  333. #define WMDM_E_REVOKED 0x8004500EL
  334. // Revocation Flags
  335. #define WMDM_WMDM_REVOKED 0x00000001
  336. #define WMDM_APP_REVOKED 0x00000002
  337. #define WMDM_SP_REVOKED 0x00000004
  338. #define WMDM_SCP_REVOKED 0x00000008
  339. // GetFormatSupport2 Flags
  340. #define WMDM_GET_FORMAT_SUPPORT_AUDIO 0x00000001
  341. #define WMDM_GET_FORMAT_SUPPORT_VIDEO 0x00000002
  342. #define WMDM_GET_FORMAT_SUPPORT_FILE 0x00000004
  343. // MDMRIGHTS Flags
  344. #define WMDM_RIGHTS_PLAYBACKCOUNT 0x00000001
  345. #define WMDM_RIGHTS_EXPIRATIONDATE 0x00000002
  346. #define WMDM_RIGHTS_GROUPID 0x00000004
  347. #define WMDM_RIGHTS_FREESERIALIDS 0x00000008
  348. #define WMDM_RIGHTS_NAMEDSERIALIDS 0x00000010
  349. // Device Type Flags
  350. #define WMDM_DEVICE_TYPE_PLAYBACK 0x00000001
  351. #define WMDM_DEVICE_TYPE_RECORD 0x00000002
  352. #define WMDM_DEVICE_TYPE_DECODE 0x00000004
  353. #define WMDM_DEVICE_TYPE_ENCODE 0x00000008
  354. #define WMDM_DEVICE_TYPE_STORAGE 0x00000010
  355. #define WMDM_DEVICE_TYPE_VIRTUAL 0x00000020
  356. #define WMDM_DEVICE_TYPE_SDMI 0x00000040
  357. #define WMDM_DEVICE_TYPE_NONSDMI 0x00000080
  358. #define WMDM_DEVICE_TYPE_NONREENTRANT 0x00000100
  359. #define WMDM_DEVICE_TYPE_FILELISTRESYNC 0x00000200
  360. // Device Power Source Flags
  361. #define WMDM_POWER_CAP_BATTERY 0x00000001
  362. #define WMDM_POWER_CAP_EXTERNAL 0x00000002
  363. #define WMDM_POWER_IS_BATTERY 0x00000004
  364. #define WMDM_POWER_IS_EXTERNAL 0x00000008
  365. #define WMDM_POWER_PERCENT_AVAILABLE 0x00000010
  366. // Device Status Flags
  367. #define WMDM_STATUS_READY 0x00000001
  368. #define WMDM_STATUS_BUSY 0x00000002
  369. #define WMDM_STATUS_DEVICE_NOTPRESENT 0x00000004
  370. #define WMDM_STATUS_DEVICECONTROL_PLAYING 0x00000008
  371. #define WMDM_STATUS_DEVICECONTROL_RECORDING 0x00000010
  372. #define WMDM_STATUS_DEVICECONTROL_PAUSED 0x00000020
  373. #define WMDM_STATUS_DEVICECONTROL_REMOTE 0x00000040
  374. #define WMDM_STATUS_DEVICECONTROL_STREAM 0x00000080
  375. #define WMDM_STATUS_STORAGE_NOTPRESENT 0x00000100
  376. #define WMDM_STATUS_STORAGE_INITIALIZING 0x00000200
  377. #define WMDM_STATUS_STORAGE_BROKEN 0x00000400
  378. #define WMDM_STATUS_STORAGE_NOTSUPPORTED 0x00000800
  379. #define WMDM_STATUS_STORAGE_UNFORMATTED 0x00001000
  380. #define WMDM_STATUS_STORAGECONTROL_INSERTING 0x00002000
  381. #define WMDM_STATUS_STORAGECONTROL_DELETING 0x00004000
  382. #define WMDM_STATUS_STORAGECONTROL_APPENDING 0x00008000
  383. #define WMDM_STATUS_STORAGECONTROL_MOVING 0x00010000
  384. #define WMDM_STATUS_STORAGECONTROL_READING 0x00020000
  385. // Device Capabilities Flags
  386. #define WMDM_DEVICECAP_CANPLAY 0x00000001
  387. #define WMDM_DEVICECAP_CANSTREAMPLAY 0x00000002
  388. #define WMDM_DEVICECAP_CANRECORD 0x00000004
  389. #define WMDM_DEVICECAP_CANSTREAMRECORD 0x00000008
  390. #define WMDM_DEVICECAP_CANPAUSE 0x00000010
  391. #define WMDM_DEVICECAP_CANRESUME 0x00000020
  392. #define WMDM_DEVICECAP_CANSTOP 0x00000040
  393. #define WMDM_DEVICECAP_CANSEEK 0x00000080
  394. // WMDM Seek Flags
  395. #define WMDM_SEEK_REMOTECONTROL 0x00000001
  396. #define WMDM_SEEK_STREAMINGAUDIO 0x00000002
  397. // Storage Attributes Flags
  398. #define WMDM_STORAGE_ATTR_FILESYSTEM 0x00000001
  399. #define WMDM_STORAGE_ATTR_REMOVABLE 0x00000002
  400. #define WMDM_STORAGE_ATTR_NONREMOVABLE 0x00000004
  401. #define WMDM_FILE_ATTR_FOLDER 0x00000008
  402. #define WMDM_FILE_ATTR_LINK 0x00000010
  403. #define WMDM_FILE_ATTR_FILE 0x00000020
  404. #define WMDM_FILE_ATTR_VIDEO 0x00000040
  405. #define WMDM_STORAGE_ATTR_FOLDERS 0x00000100
  406. #define WMDM_FILE_ATTR_AUDIO 0x00001000
  407. #define WMDM_FILE_ATTR_DATA 0x00002000
  408. #define WMDM_FILE_ATTR_CANPLAY 0x00004000
  409. #define WMDM_FILE_ATTR_CANDELETE 0x00008000
  410. #define WMDM_FILE_ATTR_CANMOVE 0x00010000
  411. #define WMDM_FILE_ATTR_CANRENAME 0x00020000
  412. #define WMDM_FILE_ATTR_CANREAD 0x00040000
  413. #define WMDM_FILE_ATTR_MUSIC 0x00080000
  414. #define WMDM_FILE_CREATE_OVERWRITE 0x00100000
  415. #define WMDM_FILE_ATTR_AUDIOBOOK 0x00200000
  416. #define WMDM_FILE_ATTR_HIDDEN 0x00400000
  417. #define WMDM_FILE_ATTR_SYSTEM 0x00800000
  418. #define WMDM_FILE_ATTR_READONLY 0x01000000
  419. #define WMDM_STORAGE_ATTR_HAS_FOLDERS 0x02000000
  420. #define WMDM_STORAGE_ATTR_HAS_FILES 0x04000000
  421. #define WMDM_STORAGE_IS_DEFAULT 0x08000000
  422. #define WMDM_STORAGE_CONTAINS_DEFAULT 0x10000000
  423. // Storage Capabilities Flags
  424. #define WMDM_STORAGECAP_FOLDERSINROOT 0x00000001
  425. #define WMDM_STORAGECAP_FILESINROOT 0x00000002
  426. #define WMDM_STORAGECAP_FOLDERSINFOLDERS 0x00000004
  427. #define WMDM_STORAGECAP_FILESINFOLDERS 0x00000008
  428. #define WMDM_STORAGECAP_FOLDERLIMITEXISTS 0x00000010
  429. #define WMDM_STORAGECAP_FILELIMITEXISTS 0x00000020
  430. // WMDM Mode Flags
  431. #define WMDM_MODE_BLOCK 0x00000001
  432. #define WMDM_MODE_THREAD 0x00000002
  433. #define WMDM_CONTENT_FILE 0x00000004
  434. #define WMDM_CONTENT_FOLDER 0x00000008
  435. #define WMDM_CONTENT_OPERATIONINTERFACE 0x00000010
  436. #define WMDM_MODE_QUERY 0x00000020
  437. #define WMDM_MODE_PROGRESS 0x00000040
  438. #define WMDM_MODE_TRANSFER_PROTECTED 0x00000080
  439. #define WMDM_MODE_TRANSFER_UNPROTECTED 0x00000100
  440. #define WMDM_STORAGECONTROL_INSERTBEFORE 0x00000200
  441. #define WMDM_STORAGECONTROL_INSERTAFTER 0x00000400
  442. #define WMDM_STORAGECONTROL_INSERTINTO 0x00000800
  443. #define WMDM_MODE_RECURSIVE 0x00001000
  444. // WMDM Rights Flags
  445. // NON_SDMI = !SDMI_PROTECTED
  446. // SDMI = SDMI_VALIDATED
  447. #define WMDM_RIGHTS_PLAY_ON_PC 0x00000001
  448. #define WMDM_RIGHTS_COPY_TO_NON_SDMI_DEVICE 0x00000002
  449. #define WMDM_RIGHTS_COPY_TO_CD 0x00000008
  450. #define WMDM_RIGHTS_COPY_TO_SDMI_DEVICE 0x00000010
  451. // WMDM Seek Flags
  452. #define WMDM_SEEK_BEGIN 0x00000001
  453. #define WMDM_SEEK_CURRENT 0x00000002
  454. #define WMDM_SEEK_END 0x00000008
  455. extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0000_v0_0_c_ifspec;
  456. extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0000_v0_0_s_ifspec;
  457. #ifndef __IWMDeviceManager_INTERFACE_DEFINED__
  458. #define __IWMDeviceManager_INTERFACE_DEFINED__
  459. /* interface IWMDeviceManager */
  460. /* [unique][uuid][object] */
  461. EXTERN_C const IID IID_IWMDeviceManager;
  462. #if defined(__cplusplus) && !defined(CINTERFACE)
  463. MIDL_INTERFACE("1DCB3A00-33ED-11d3-8470-00C04F79DBC0")
  464. IWMDeviceManager : public IUnknown
  465. {
  466. public:
  467. virtual HRESULT STDMETHODCALLTYPE GetRevision(
  468. /* [out] */ DWORD *pdwRevision) = 0;
  469. virtual HRESULT STDMETHODCALLTYPE GetDeviceCount(
  470. /* [out] */ DWORD *pdwCount) = 0;
  471. virtual HRESULT STDMETHODCALLTYPE EnumDevices(
  472. /* [out] */ IWMDMEnumDevice **ppEnumDevice) = 0;
  473. };
  474. #else /* C style interface */
  475. typedef struct IWMDeviceManagerVtbl
  476. {
  477. BEGIN_INTERFACE
  478. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  479. IWMDeviceManager * This,
  480. /* [in] */ REFIID riid,
  481. /* [iid_is][out] */ void **ppvObject);
  482. ULONG ( STDMETHODCALLTYPE *AddRef )(
  483. IWMDeviceManager * This);
  484. ULONG ( STDMETHODCALLTYPE *Release )(
  485. IWMDeviceManager * This);
  486. HRESULT ( STDMETHODCALLTYPE *GetRevision )(
  487. IWMDeviceManager * This,
  488. /* [out] */ DWORD *pdwRevision);
  489. HRESULT ( STDMETHODCALLTYPE *GetDeviceCount )(
  490. IWMDeviceManager * This,
  491. /* [out] */ DWORD *pdwCount);
  492. HRESULT ( STDMETHODCALLTYPE *EnumDevices )(
  493. IWMDeviceManager * This,
  494. /* [out] */ IWMDMEnumDevice **ppEnumDevice);
  495. END_INTERFACE
  496. } IWMDeviceManagerVtbl;
  497. interface IWMDeviceManager
  498. {
  499. CONST_VTBL struct IWMDeviceManagerVtbl *lpVtbl;
  500. };
  501. #ifdef COBJMACROS
  502. #define IWMDeviceManager_QueryInterface(This,riid,ppvObject) \
  503. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  504. #define IWMDeviceManager_AddRef(This) \
  505. (This)->lpVtbl -> AddRef(This)
  506. #define IWMDeviceManager_Release(This) \
  507. (This)->lpVtbl -> Release(This)
  508. #define IWMDeviceManager_GetRevision(This,pdwRevision) \
  509. (This)->lpVtbl -> GetRevision(This,pdwRevision)
  510. #define IWMDeviceManager_GetDeviceCount(This,pdwCount) \
  511. (This)->lpVtbl -> GetDeviceCount(This,pdwCount)
  512. #define IWMDeviceManager_EnumDevices(This,ppEnumDevice) \
  513. (This)->lpVtbl -> EnumDevices(This,ppEnumDevice)
  514. #endif /* COBJMACROS */
  515. #endif /* C style interface */
  516. HRESULT STDMETHODCALLTYPE IWMDeviceManager_GetRevision_Proxy(
  517. IWMDeviceManager * This,
  518. /* [out] */ DWORD *pdwRevision);
  519. void __RPC_STUB IWMDeviceManager_GetRevision_Stub(
  520. IRpcStubBuffer *This,
  521. IRpcChannelBuffer *_pRpcChannelBuffer,
  522. PRPC_MESSAGE _pRpcMessage,
  523. DWORD *_pdwStubPhase);
  524. HRESULT STDMETHODCALLTYPE IWMDeviceManager_GetDeviceCount_Proxy(
  525. IWMDeviceManager * This,
  526. /* [out] */ DWORD *pdwCount);
  527. void __RPC_STUB IWMDeviceManager_GetDeviceCount_Stub(
  528. IRpcStubBuffer *This,
  529. IRpcChannelBuffer *_pRpcChannelBuffer,
  530. PRPC_MESSAGE _pRpcMessage,
  531. DWORD *_pdwStubPhase);
  532. HRESULT STDMETHODCALLTYPE IWMDeviceManager_EnumDevices_Proxy(
  533. IWMDeviceManager * This,
  534. /* [out] */ IWMDMEnumDevice **ppEnumDevice);
  535. void __RPC_STUB IWMDeviceManager_EnumDevices_Stub(
  536. IRpcStubBuffer *This,
  537. IRpcChannelBuffer *_pRpcChannelBuffer,
  538. PRPC_MESSAGE _pRpcMessage,
  539. DWORD *_pdwStubPhase);
  540. #endif /* __IWMDeviceManager_INTERFACE_DEFINED__ */
  541. #ifndef __IWMDeviceManager2_INTERFACE_DEFINED__
  542. #define __IWMDeviceManager2_INTERFACE_DEFINED__
  543. /* interface IWMDeviceManager2 */
  544. /* [unique][uuid][object] */
  545. EXTERN_C const IID IID_IWMDeviceManager2;
  546. #if defined(__cplusplus) && !defined(CINTERFACE)
  547. MIDL_INTERFACE("923E5249-8731-4c5b-9B1C-B8B60B6E46AF")
  548. IWMDeviceManager2 : public IWMDeviceManager
  549. {
  550. public:
  551. virtual HRESULT STDMETHODCALLTYPE GetDeviceFromPnPName(
  552. /* [string][in] */ LPCWSTR pwszPnPName,
  553. /* [out] */ IWMDMDevice **ppDevice) = 0;
  554. };
  555. #else /* C style interface */
  556. typedef struct IWMDeviceManager2Vtbl
  557. {
  558. BEGIN_INTERFACE
  559. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  560. IWMDeviceManager2 * This,
  561. /* [in] */ REFIID riid,
  562. /* [iid_is][out] */ void **ppvObject);
  563. ULONG ( STDMETHODCALLTYPE *AddRef )(
  564. IWMDeviceManager2 * This);
  565. ULONG ( STDMETHODCALLTYPE *Release )(
  566. IWMDeviceManager2 * This);
  567. HRESULT ( STDMETHODCALLTYPE *GetRevision )(
  568. IWMDeviceManager2 * This,
  569. /* [out] */ DWORD *pdwRevision);
  570. HRESULT ( STDMETHODCALLTYPE *GetDeviceCount )(
  571. IWMDeviceManager2 * This,
  572. /* [out] */ DWORD *pdwCount);
  573. HRESULT ( STDMETHODCALLTYPE *EnumDevices )(
  574. IWMDeviceManager2 * This,
  575. /* [out] */ IWMDMEnumDevice **ppEnumDevice);
  576. HRESULT ( STDMETHODCALLTYPE *GetDeviceFromPnPName )(
  577. IWMDeviceManager2 * This,
  578. /* [string][in] */ LPCWSTR pwszPnPName,
  579. /* [out] */ IWMDMDevice **ppDevice);
  580. END_INTERFACE
  581. } IWMDeviceManager2Vtbl;
  582. interface IWMDeviceManager2
  583. {
  584. CONST_VTBL struct IWMDeviceManager2Vtbl *lpVtbl;
  585. };
  586. #ifdef COBJMACROS
  587. #define IWMDeviceManager2_QueryInterface(This,riid,ppvObject) \
  588. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  589. #define IWMDeviceManager2_AddRef(This) \
  590. (This)->lpVtbl -> AddRef(This)
  591. #define IWMDeviceManager2_Release(This) \
  592. (This)->lpVtbl -> Release(This)
  593. #define IWMDeviceManager2_GetRevision(This,pdwRevision) \
  594. (This)->lpVtbl -> GetRevision(This,pdwRevision)
  595. #define IWMDeviceManager2_GetDeviceCount(This,pdwCount) \
  596. (This)->lpVtbl -> GetDeviceCount(This,pdwCount)
  597. #define IWMDeviceManager2_EnumDevices(This,ppEnumDevice) \
  598. (This)->lpVtbl -> EnumDevices(This,ppEnumDevice)
  599. #define IWMDeviceManager2_GetDeviceFromPnPName(This,pwszPnPName,ppDevice) \
  600. (This)->lpVtbl -> GetDeviceFromPnPName(This,pwszPnPName,ppDevice)
  601. #endif /* COBJMACROS */
  602. #endif /* C style interface */
  603. HRESULT STDMETHODCALLTYPE IWMDeviceManager2_GetDeviceFromPnPName_Proxy(
  604. IWMDeviceManager2 * This,
  605. /* [string][in] */ LPCWSTR pwszPnPName,
  606. /* [out] */ IWMDMDevice **ppDevice);
  607. void __RPC_STUB IWMDeviceManager2_GetDeviceFromPnPName_Stub(
  608. IRpcStubBuffer *This,
  609. IRpcChannelBuffer *_pRpcChannelBuffer,
  610. PRPC_MESSAGE _pRpcMessage,
  611. DWORD *_pdwStubPhase);
  612. #endif /* __IWMDeviceManager2_INTERFACE_DEFINED__ */
  613. #ifndef __IWMDMStorageGlobals_INTERFACE_DEFINED__
  614. #define __IWMDMStorageGlobals_INTERFACE_DEFINED__
  615. /* interface IWMDMStorageGlobals */
  616. /* [unique][uuid][object] */
  617. EXTERN_C const IID IID_IWMDMStorageGlobals;
  618. #if defined(__cplusplus) && !defined(CINTERFACE)
  619. MIDL_INTERFACE("1DCB3A07-33ED-11d3-8470-00C04F79DBC0")
  620. IWMDMStorageGlobals : public IUnknown
  621. {
  622. public:
  623. virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
  624. /* [out] */ DWORD *pdwCapabilities) = 0;
  625. virtual HRESULT STDMETHODCALLTYPE GetSerialNumber(
  626. /* [out] */ PWMDMID pSerialNum,
  627. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  628. virtual HRESULT STDMETHODCALLTYPE GetTotalSize(
  629. /* [out] */ DWORD *pdwTotalSizeLow,
  630. /* [out] */ DWORD *pdwTotalSizeHigh) = 0;
  631. virtual HRESULT STDMETHODCALLTYPE GetTotalFree(
  632. /* [out] */ DWORD *pdwFreeLow,
  633. /* [out] */ DWORD *pdwFreeHigh) = 0;
  634. virtual HRESULT STDMETHODCALLTYPE GetTotalBad(
  635. /* [out] */ DWORD *pdwBadLow,
  636. /* [out] */ DWORD *pdwBadHigh) = 0;
  637. virtual HRESULT STDMETHODCALLTYPE GetStatus(
  638. /* [out] */ DWORD *pdwStatus) = 0;
  639. virtual HRESULT STDMETHODCALLTYPE Initialize(
  640. /* [in] */ UINT fuMode,
  641. /* [in] */ IWMDMProgress *pProgress) = 0;
  642. };
  643. #else /* C style interface */
  644. typedef struct IWMDMStorageGlobalsVtbl
  645. {
  646. BEGIN_INTERFACE
  647. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  648. IWMDMStorageGlobals * This,
  649. /* [in] */ REFIID riid,
  650. /* [iid_is][out] */ void **ppvObject);
  651. ULONG ( STDMETHODCALLTYPE *AddRef )(
  652. IWMDMStorageGlobals * This);
  653. ULONG ( STDMETHODCALLTYPE *Release )(
  654. IWMDMStorageGlobals * This);
  655. HRESULT ( STDMETHODCALLTYPE *GetCapabilities )(
  656. IWMDMStorageGlobals * This,
  657. /* [out] */ DWORD *pdwCapabilities);
  658. HRESULT ( STDMETHODCALLTYPE *GetSerialNumber )(
  659. IWMDMStorageGlobals * This,
  660. /* [out] */ PWMDMID pSerialNum,
  661. /* [out][in] */ BYTE abMac[ 8 ]);
  662. HRESULT ( STDMETHODCALLTYPE *GetTotalSize )(
  663. IWMDMStorageGlobals * This,
  664. /* [out] */ DWORD *pdwTotalSizeLow,
  665. /* [out] */ DWORD *pdwTotalSizeHigh);
  666. HRESULT ( STDMETHODCALLTYPE *GetTotalFree )(
  667. IWMDMStorageGlobals * This,
  668. /* [out] */ DWORD *pdwFreeLow,
  669. /* [out] */ DWORD *pdwFreeHigh);
  670. HRESULT ( STDMETHODCALLTYPE *GetTotalBad )(
  671. IWMDMStorageGlobals * This,
  672. /* [out] */ DWORD *pdwBadLow,
  673. /* [out] */ DWORD *pdwBadHigh);
  674. HRESULT ( STDMETHODCALLTYPE *GetStatus )(
  675. IWMDMStorageGlobals * This,
  676. /* [out] */ DWORD *pdwStatus);
  677. HRESULT ( STDMETHODCALLTYPE *Initialize )(
  678. IWMDMStorageGlobals * This,
  679. /* [in] */ UINT fuMode,
  680. /* [in] */ IWMDMProgress *pProgress);
  681. END_INTERFACE
  682. } IWMDMStorageGlobalsVtbl;
  683. interface IWMDMStorageGlobals
  684. {
  685. CONST_VTBL struct IWMDMStorageGlobalsVtbl *lpVtbl;
  686. };
  687. #ifdef COBJMACROS
  688. #define IWMDMStorageGlobals_QueryInterface(This,riid,ppvObject) \
  689. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  690. #define IWMDMStorageGlobals_AddRef(This) \
  691. (This)->lpVtbl -> AddRef(This)
  692. #define IWMDMStorageGlobals_Release(This) \
  693. (This)->lpVtbl -> Release(This)
  694. #define IWMDMStorageGlobals_GetCapabilities(This,pdwCapabilities) \
  695. (This)->lpVtbl -> GetCapabilities(This,pdwCapabilities)
  696. #define IWMDMStorageGlobals_GetSerialNumber(This,pSerialNum,abMac) \
  697. (This)->lpVtbl -> GetSerialNumber(This,pSerialNum,abMac)
  698. #define IWMDMStorageGlobals_GetTotalSize(This,pdwTotalSizeLow,pdwTotalSizeHigh) \
  699. (This)->lpVtbl -> GetTotalSize(This,pdwTotalSizeLow,pdwTotalSizeHigh)
  700. #define IWMDMStorageGlobals_GetTotalFree(This,pdwFreeLow,pdwFreeHigh) \
  701. (This)->lpVtbl -> GetTotalFree(This,pdwFreeLow,pdwFreeHigh)
  702. #define IWMDMStorageGlobals_GetTotalBad(This,pdwBadLow,pdwBadHigh) \
  703. (This)->lpVtbl -> GetTotalBad(This,pdwBadLow,pdwBadHigh)
  704. #define IWMDMStorageGlobals_GetStatus(This,pdwStatus) \
  705. (This)->lpVtbl -> GetStatus(This,pdwStatus)
  706. #define IWMDMStorageGlobals_Initialize(This,fuMode,pProgress) \
  707. (This)->lpVtbl -> Initialize(This,fuMode,pProgress)
  708. #endif /* COBJMACROS */
  709. #endif /* C style interface */
  710. HRESULT STDMETHODCALLTYPE IWMDMStorageGlobals_GetCapabilities_Proxy(
  711. IWMDMStorageGlobals * This,
  712. /* [out] */ DWORD *pdwCapabilities);
  713. void __RPC_STUB IWMDMStorageGlobals_GetCapabilities_Stub(
  714. IRpcStubBuffer *This,
  715. IRpcChannelBuffer *_pRpcChannelBuffer,
  716. PRPC_MESSAGE _pRpcMessage,
  717. DWORD *_pdwStubPhase);
  718. HRESULT STDMETHODCALLTYPE IWMDMStorageGlobals_GetSerialNumber_Proxy(
  719. IWMDMStorageGlobals * This,
  720. /* [out] */ PWMDMID pSerialNum,
  721. /* [out][in] */ BYTE abMac[ 8 ]);
  722. void __RPC_STUB IWMDMStorageGlobals_GetSerialNumber_Stub(
  723. IRpcStubBuffer *This,
  724. IRpcChannelBuffer *_pRpcChannelBuffer,
  725. PRPC_MESSAGE _pRpcMessage,
  726. DWORD *_pdwStubPhase);
  727. HRESULT STDMETHODCALLTYPE IWMDMStorageGlobals_GetTotalSize_Proxy(
  728. IWMDMStorageGlobals * This,
  729. /* [out] */ DWORD *pdwTotalSizeLow,
  730. /* [out] */ DWORD *pdwTotalSizeHigh);
  731. void __RPC_STUB IWMDMStorageGlobals_GetTotalSize_Stub(
  732. IRpcStubBuffer *This,
  733. IRpcChannelBuffer *_pRpcChannelBuffer,
  734. PRPC_MESSAGE _pRpcMessage,
  735. DWORD *_pdwStubPhase);
  736. HRESULT STDMETHODCALLTYPE IWMDMStorageGlobals_GetTotalFree_Proxy(
  737. IWMDMStorageGlobals * This,
  738. /* [out] */ DWORD *pdwFreeLow,
  739. /* [out] */ DWORD *pdwFreeHigh);
  740. void __RPC_STUB IWMDMStorageGlobals_GetTotalFree_Stub(
  741. IRpcStubBuffer *This,
  742. IRpcChannelBuffer *_pRpcChannelBuffer,
  743. PRPC_MESSAGE _pRpcMessage,
  744. DWORD *_pdwStubPhase);
  745. HRESULT STDMETHODCALLTYPE IWMDMStorageGlobals_GetTotalBad_Proxy(
  746. IWMDMStorageGlobals * This,
  747. /* [out] */ DWORD *pdwBadLow,
  748. /* [out] */ DWORD *pdwBadHigh);
  749. void __RPC_STUB IWMDMStorageGlobals_GetTotalBad_Stub(
  750. IRpcStubBuffer *This,
  751. IRpcChannelBuffer *_pRpcChannelBuffer,
  752. PRPC_MESSAGE _pRpcMessage,
  753. DWORD *_pdwStubPhase);
  754. HRESULT STDMETHODCALLTYPE IWMDMStorageGlobals_GetStatus_Proxy(
  755. IWMDMStorageGlobals * This,
  756. /* [out] */ DWORD *pdwStatus);
  757. void __RPC_STUB IWMDMStorageGlobals_GetStatus_Stub(
  758. IRpcStubBuffer *This,
  759. IRpcChannelBuffer *_pRpcChannelBuffer,
  760. PRPC_MESSAGE _pRpcMessage,
  761. DWORD *_pdwStubPhase);
  762. HRESULT STDMETHODCALLTYPE IWMDMStorageGlobals_Initialize_Proxy(
  763. IWMDMStorageGlobals * This,
  764. /* [in] */ UINT fuMode,
  765. /* [in] */ IWMDMProgress *pProgress);
  766. void __RPC_STUB IWMDMStorageGlobals_Initialize_Stub(
  767. IRpcStubBuffer *This,
  768. IRpcChannelBuffer *_pRpcChannelBuffer,
  769. PRPC_MESSAGE _pRpcMessage,
  770. DWORD *_pdwStubPhase);
  771. #endif /* __IWMDMStorageGlobals_INTERFACE_DEFINED__ */
  772. #ifndef __IWMDMStorage_INTERFACE_DEFINED__
  773. #define __IWMDMStorage_INTERFACE_DEFINED__
  774. /* interface IWMDMStorage */
  775. /* [unique][uuid][object] */
  776. EXTERN_C const IID IID_IWMDMStorage;
  777. #if defined(__cplusplus) && !defined(CINTERFACE)
  778. MIDL_INTERFACE("1DCB3A06-33ED-11d3-8470-00C04F79DBC0")
  779. IWMDMStorage : public IUnknown
  780. {
  781. public:
  782. virtual HRESULT STDMETHODCALLTYPE SetAttributes(
  783. /* [in] */ DWORD dwAttributes,
  784. /* [in] */ _WAVEFORMATEX *pFormat) = 0;
  785. virtual HRESULT STDMETHODCALLTYPE GetStorageGlobals(
  786. /* [out] */ IWMDMStorageGlobals **ppStorageGlobals) = 0;
  787. virtual HRESULT STDMETHODCALLTYPE GetAttributes(
  788. /* [out] */ DWORD *pdwAttributes,
  789. /* [out] */ _WAVEFORMATEX *pFormat) = 0;
  790. virtual HRESULT STDMETHODCALLTYPE GetName(
  791. /* [size_is][string][out] */ LPWSTR pwszName,
  792. /* [in] */ UINT nMaxChars) = 0;
  793. virtual HRESULT STDMETHODCALLTYPE GetDate(
  794. /* [out] */ PWMDMDATETIME pDateTimeUTC) = 0;
  795. virtual HRESULT STDMETHODCALLTYPE GetSize(
  796. /* [out] */ DWORD *pdwSizeLow,
  797. /* [out] */ DWORD *pdwSizeHigh) = 0;
  798. virtual HRESULT STDMETHODCALLTYPE GetRights(
  799. /* [size_is][size_is][out] */ PWMDMRIGHTS *ppRights,
  800. /* [out] */ UINT *pnRightsCount,
  801. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  802. virtual HRESULT STDMETHODCALLTYPE EnumStorage(
  803. /* [out] */ IWMDMEnumStorage **pEnumStorage) = 0;
  804. virtual HRESULT STDMETHODCALLTYPE SendOpaqueCommand(
  805. /* [out][in] */ OPAQUECOMMAND *pCommand) = 0;
  806. };
  807. #else /* C style interface */
  808. typedef struct IWMDMStorageVtbl
  809. {
  810. BEGIN_INTERFACE
  811. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  812. IWMDMStorage * This,
  813. /* [in] */ REFIID riid,
  814. /* [iid_is][out] */ void **ppvObject);
  815. ULONG ( STDMETHODCALLTYPE *AddRef )(
  816. IWMDMStorage * This);
  817. ULONG ( STDMETHODCALLTYPE *Release )(
  818. IWMDMStorage * This);
  819. HRESULT ( STDMETHODCALLTYPE *SetAttributes )(
  820. IWMDMStorage * This,
  821. /* [in] */ DWORD dwAttributes,
  822. /* [in] */ _WAVEFORMATEX *pFormat);
  823. HRESULT ( STDMETHODCALLTYPE *GetStorageGlobals )(
  824. IWMDMStorage * This,
  825. /* [out] */ IWMDMStorageGlobals **ppStorageGlobals);
  826. HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
  827. IWMDMStorage * This,
  828. /* [out] */ DWORD *pdwAttributes,
  829. /* [out] */ _WAVEFORMATEX *pFormat);
  830. HRESULT ( STDMETHODCALLTYPE *GetName )(
  831. IWMDMStorage * This,
  832. /* [size_is][string][out] */ LPWSTR pwszName,
  833. /* [in] */ UINT nMaxChars);
  834. HRESULT ( STDMETHODCALLTYPE *GetDate )(
  835. IWMDMStorage * This,
  836. /* [out] */ PWMDMDATETIME pDateTimeUTC);
  837. HRESULT ( STDMETHODCALLTYPE *GetSize )(
  838. IWMDMStorage * This,
  839. /* [out] */ DWORD *pdwSizeLow,
  840. /* [out] */ DWORD *pdwSizeHigh);
  841. HRESULT ( STDMETHODCALLTYPE *GetRights )(
  842. IWMDMStorage * This,
  843. /* [size_is][size_is][out] */ PWMDMRIGHTS *ppRights,
  844. /* [out] */ UINT *pnRightsCount,
  845. /* [out][in] */ BYTE abMac[ 8 ]);
  846. HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
  847. IWMDMStorage * This,
  848. /* [out] */ IWMDMEnumStorage **pEnumStorage);
  849. HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
  850. IWMDMStorage * This,
  851. /* [out][in] */ OPAQUECOMMAND *pCommand);
  852. END_INTERFACE
  853. } IWMDMStorageVtbl;
  854. interface IWMDMStorage
  855. {
  856. CONST_VTBL struct IWMDMStorageVtbl *lpVtbl;
  857. };
  858. #ifdef COBJMACROS
  859. #define IWMDMStorage_QueryInterface(This,riid,ppvObject) \
  860. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  861. #define IWMDMStorage_AddRef(This) \
  862. (This)->lpVtbl -> AddRef(This)
  863. #define IWMDMStorage_Release(This) \
  864. (This)->lpVtbl -> Release(This)
  865. #define IWMDMStorage_SetAttributes(This,dwAttributes,pFormat) \
  866. (This)->lpVtbl -> SetAttributes(This,dwAttributes,pFormat)
  867. #define IWMDMStorage_GetStorageGlobals(This,ppStorageGlobals) \
  868. (This)->lpVtbl -> GetStorageGlobals(This,ppStorageGlobals)
  869. #define IWMDMStorage_GetAttributes(This,pdwAttributes,pFormat) \
  870. (This)->lpVtbl -> GetAttributes(This,pdwAttributes,pFormat)
  871. #define IWMDMStorage_GetName(This,pwszName,nMaxChars) \
  872. (This)->lpVtbl -> GetName(This,pwszName,nMaxChars)
  873. #define IWMDMStorage_GetDate(This,pDateTimeUTC) \
  874. (This)->lpVtbl -> GetDate(This,pDateTimeUTC)
  875. #define IWMDMStorage_GetSize(This,pdwSizeLow,pdwSizeHigh) \
  876. (This)->lpVtbl -> GetSize(This,pdwSizeLow,pdwSizeHigh)
  877. #define IWMDMStorage_GetRights(This,ppRights,pnRightsCount,abMac) \
  878. (This)->lpVtbl -> GetRights(This,ppRights,pnRightsCount,abMac)
  879. #define IWMDMStorage_EnumStorage(This,pEnumStorage) \
  880. (This)->lpVtbl -> EnumStorage(This,pEnumStorage)
  881. #define IWMDMStorage_SendOpaqueCommand(This,pCommand) \
  882. (This)->lpVtbl -> SendOpaqueCommand(This,pCommand)
  883. #endif /* COBJMACROS */
  884. #endif /* C style interface */
  885. HRESULT STDMETHODCALLTYPE IWMDMStorage_SetAttributes_Proxy(
  886. IWMDMStorage * This,
  887. /* [in] */ DWORD dwAttributes,
  888. /* [in] */ _WAVEFORMATEX *pFormat);
  889. void __RPC_STUB IWMDMStorage_SetAttributes_Stub(
  890. IRpcStubBuffer *This,
  891. IRpcChannelBuffer *_pRpcChannelBuffer,
  892. PRPC_MESSAGE _pRpcMessage,
  893. DWORD *_pdwStubPhase);
  894. HRESULT STDMETHODCALLTYPE IWMDMStorage_GetStorageGlobals_Proxy(
  895. IWMDMStorage * This,
  896. /* [out] */ IWMDMStorageGlobals **ppStorageGlobals);
  897. void __RPC_STUB IWMDMStorage_GetStorageGlobals_Stub(
  898. IRpcStubBuffer *This,
  899. IRpcChannelBuffer *_pRpcChannelBuffer,
  900. PRPC_MESSAGE _pRpcMessage,
  901. DWORD *_pdwStubPhase);
  902. HRESULT STDMETHODCALLTYPE IWMDMStorage_GetAttributes_Proxy(
  903. IWMDMStorage * This,
  904. /* [out] */ DWORD *pdwAttributes,
  905. /* [out] */ _WAVEFORMATEX *pFormat);
  906. void __RPC_STUB IWMDMStorage_GetAttributes_Stub(
  907. IRpcStubBuffer *This,
  908. IRpcChannelBuffer *_pRpcChannelBuffer,
  909. PRPC_MESSAGE _pRpcMessage,
  910. DWORD *_pdwStubPhase);
  911. HRESULT STDMETHODCALLTYPE IWMDMStorage_GetName_Proxy(
  912. IWMDMStorage * This,
  913. /* [size_is][string][out] */ LPWSTR pwszName,
  914. /* [in] */ UINT nMaxChars);
  915. void __RPC_STUB IWMDMStorage_GetName_Stub(
  916. IRpcStubBuffer *This,
  917. IRpcChannelBuffer *_pRpcChannelBuffer,
  918. PRPC_MESSAGE _pRpcMessage,
  919. DWORD *_pdwStubPhase);
  920. HRESULT STDMETHODCALLTYPE IWMDMStorage_GetDate_Proxy(
  921. IWMDMStorage * This,
  922. /* [out] */ PWMDMDATETIME pDateTimeUTC);
  923. void __RPC_STUB IWMDMStorage_GetDate_Stub(
  924. IRpcStubBuffer *This,
  925. IRpcChannelBuffer *_pRpcChannelBuffer,
  926. PRPC_MESSAGE _pRpcMessage,
  927. DWORD *_pdwStubPhase);
  928. HRESULT STDMETHODCALLTYPE IWMDMStorage_GetSize_Proxy(
  929. IWMDMStorage * This,
  930. /* [out] */ DWORD *pdwSizeLow,
  931. /* [out] */ DWORD *pdwSizeHigh);
  932. void __RPC_STUB IWMDMStorage_GetSize_Stub(
  933. IRpcStubBuffer *This,
  934. IRpcChannelBuffer *_pRpcChannelBuffer,
  935. PRPC_MESSAGE _pRpcMessage,
  936. DWORD *_pdwStubPhase);
  937. HRESULT STDMETHODCALLTYPE IWMDMStorage_GetRights_Proxy(
  938. IWMDMStorage * This,
  939. /* [size_is][size_is][out] */ PWMDMRIGHTS *ppRights,
  940. /* [out] */ UINT *pnRightsCount,
  941. /* [out][in] */ BYTE abMac[ 8 ]);
  942. void __RPC_STUB IWMDMStorage_GetRights_Stub(
  943. IRpcStubBuffer *This,
  944. IRpcChannelBuffer *_pRpcChannelBuffer,
  945. PRPC_MESSAGE _pRpcMessage,
  946. DWORD *_pdwStubPhase);
  947. HRESULT STDMETHODCALLTYPE IWMDMStorage_EnumStorage_Proxy(
  948. IWMDMStorage * This,
  949. /* [out] */ IWMDMEnumStorage **pEnumStorage);
  950. void __RPC_STUB IWMDMStorage_EnumStorage_Stub(
  951. IRpcStubBuffer *This,
  952. IRpcChannelBuffer *_pRpcChannelBuffer,
  953. PRPC_MESSAGE _pRpcMessage,
  954. DWORD *_pdwStubPhase);
  955. HRESULT STDMETHODCALLTYPE IWMDMStorage_SendOpaqueCommand_Proxy(
  956. IWMDMStorage * This,
  957. /* [out][in] */ OPAQUECOMMAND *pCommand);
  958. void __RPC_STUB IWMDMStorage_SendOpaqueCommand_Stub(
  959. IRpcStubBuffer *This,
  960. IRpcChannelBuffer *_pRpcChannelBuffer,
  961. PRPC_MESSAGE _pRpcMessage,
  962. DWORD *_pdwStubPhase);
  963. #endif /* __IWMDMStorage_INTERFACE_DEFINED__ */
  964. #ifndef __IWMDMStorage2_INTERFACE_DEFINED__
  965. #define __IWMDMStorage2_INTERFACE_DEFINED__
  966. /* interface IWMDMStorage2 */
  967. /* [unique][uuid][object] */
  968. EXTERN_C const IID IID_IWMDMStorage2;
  969. #if defined(__cplusplus) && !defined(CINTERFACE)
  970. MIDL_INTERFACE("1ED5A144-5CD5-4683-9EFF-72CBDB2D9533")
  971. IWMDMStorage2 : public IWMDMStorage
  972. {
  973. public:
  974. virtual HRESULT STDMETHODCALLTYPE GetStorage(
  975. /* [string][in] */ LPCWSTR pszStorageName,
  976. /* [out] */ IWMDMStorage **ppStorage) = 0;
  977. virtual HRESULT STDMETHODCALLTYPE SetAttributes2(
  978. /* [in] */ DWORD dwAttributes,
  979. /* [in] */ DWORD dwAttributesEx,
  980. /* [in] */ _WAVEFORMATEX *pFormat,
  981. /* [in] */ _VIDEOINFOHEADER *pVideoFormat) = 0;
  982. virtual HRESULT STDMETHODCALLTYPE GetAttributes2(
  983. /* [out] */ DWORD *pdwAttributes,
  984. /* [out] */ DWORD *pdwAttributesEx,
  985. /* [out] */ _WAVEFORMATEX *pAudioFormat,
  986. /* [out] */ _VIDEOINFOHEADER *pVideoFormat) = 0;
  987. };
  988. #else /* C style interface */
  989. typedef struct IWMDMStorage2Vtbl
  990. {
  991. BEGIN_INTERFACE
  992. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  993. IWMDMStorage2 * This,
  994. /* [in] */ REFIID riid,
  995. /* [iid_is][out] */ void **ppvObject);
  996. ULONG ( STDMETHODCALLTYPE *AddRef )(
  997. IWMDMStorage2 * This);
  998. ULONG ( STDMETHODCALLTYPE *Release )(
  999. IWMDMStorage2 * This);
  1000. HRESULT ( STDMETHODCALLTYPE *SetAttributes )(
  1001. IWMDMStorage2 * This,
  1002. /* [in] */ DWORD dwAttributes,
  1003. /* [in] */ _WAVEFORMATEX *pFormat);
  1004. HRESULT ( STDMETHODCALLTYPE *GetStorageGlobals )(
  1005. IWMDMStorage2 * This,
  1006. /* [out] */ IWMDMStorageGlobals **ppStorageGlobals);
  1007. HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
  1008. IWMDMStorage2 * This,
  1009. /* [out] */ DWORD *pdwAttributes,
  1010. /* [out] */ _WAVEFORMATEX *pFormat);
  1011. HRESULT ( STDMETHODCALLTYPE *GetName )(
  1012. IWMDMStorage2 * This,
  1013. /* [size_is][string][out] */ LPWSTR pwszName,
  1014. /* [in] */ UINT nMaxChars);
  1015. HRESULT ( STDMETHODCALLTYPE *GetDate )(
  1016. IWMDMStorage2 * This,
  1017. /* [out] */ PWMDMDATETIME pDateTimeUTC);
  1018. HRESULT ( STDMETHODCALLTYPE *GetSize )(
  1019. IWMDMStorage2 * This,
  1020. /* [out] */ DWORD *pdwSizeLow,
  1021. /* [out] */ DWORD *pdwSizeHigh);
  1022. HRESULT ( STDMETHODCALLTYPE *GetRights )(
  1023. IWMDMStorage2 * This,
  1024. /* [size_is][size_is][out] */ PWMDMRIGHTS *ppRights,
  1025. /* [out] */ UINT *pnRightsCount,
  1026. /* [out][in] */ BYTE abMac[ 8 ]);
  1027. HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
  1028. IWMDMStorage2 * This,
  1029. /* [out] */ IWMDMEnumStorage **pEnumStorage);
  1030. HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
  1031. IWMDMStorage2 * This,
  1032. /* [out][in] */ OPAQUECOMMAND *pCommand);
  1033. HRESULT ( STDMETHODCALLTYPE *GetStorage )(
  1034. IWMDMStorage2 * This,
  1035. /* [string][in] */ LPCWSTR pszStorageName,
  1036. /* [out] */ IWMDMStorage **ppStorage);
  1037. HRESULT ( STDMETHODCALLTYPE *SetAttributes2 )(
  1038. IWMDMStorage2 * This,
  1039. /* [in] */ DWORD dwAttributes,
  1040. /* [in] */ DWORD dwAttributesEx,
  1041. /* [in] */ _WAVEFORMATEX *pFormat,
  1042. /* [in] */ _VIDEOINFOHEADER *pVideoFormat);
  1043. HRESULT ( STDMETHODCALLTYPE *GetAttributes2 )(
  1044. IWMDMStorage2 * This,
  1045. /* [out] */ DWORD *pdwAttributes,
  1046. /* [out] */ DWORD *pdwAttributesEx,
  1047. /* [out] */ _WAVEFORMATEX *pAudioFormat,
  1048. /* [out] */ _VIDEOINFOHEADER *pVideoFormat);
  1049. END_INTERFACE
  1050. } IWMDMStorage2Vtbl;
  1051. interface IWMDMStorage2
  1052. {
  1053. CONST_VTBL struct IWMDMStorage2Vtbl *lpVtbl;
  1054. };
  1055. #ifdef COBJMACROS
  1056. #define IWMDMStorage2_QueryInterface(This,riid,ppvObject) \
  1057. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1058. #define IWMDMStorage2_AddRef(This) \
  1059. (This)->lpVtbl -> AddRef(This)
  1060. #define IWMDMStorage2_Release(This) \
  1061. (This)->lpVtbl -> Release(This)
  1062. #define IWMDMStorage2_SetAttributes(This,dwAttributes,pFormat) \
  1063. (This)->lpVtbl -> SetAttributes(This,dwAttributes,pFormat)
  1064. #define IWMDMStorage2_GetStorageGlobals(This,ppStorageGlobals) \
  1065. (This)->lpVtbl -> GetStorageGlobals(This,ppStorageGlobals)
  1066. #define IWMDMStorage2_GetAttributes(This,pdwAttributes,pFormat) \
  1067. (This)->lpVtbl -> GetAttributes(This,pdwAttributes,pFormat)
  1068. #define IWMDMStorage2_GetName(This,pwszName,nMaxChars) \
  1069. (This)->lpVtbl -> GetName(This,pwszName,nMaxChars)
  1070. #define IWMDMStorage2_GetDate(This,pDateTimeUTC) \
  1071. (This)->lpVtbl -> GetDate(This,pDateTimeUTC)
  1072. #define IWMDMStorage2_GetSize(This,pdwSizeLow,pdwSizeHigh) \
  1073. (This)->lpVtbl -> GetSize(This,pdwSizeLow,pdwSizeHigh)
  1074. #define IWMDMStorage2_GetRights(This,ppRights,pnRightsCount,abMac) \
  1075. (This)->lpVtbl -> GetRights(This,ppRights,pnRightsCount,abMac)
  1076. #define IWMDMStorage2_EnumStorage(This,pEnumStorage) \
  1077. (This)->lpVtbl -> EnumStorage(This,pEnumStorage)
  1078. #define IWMDMStorage2_SendOpaqueCommand(This,pCommand) \
  1079. (This)->lpVtbl -> SendOpaqueCommand(This,pCommand)
  1080. #define IWMDMStorage2_GetStorage(This,pszStorageName,ppStorage) \
  1081. (This)->lpVtbl -> GetStorage(This,pszStorageName,ppStorage)
  1082. #define IWMDMStorage2_SetAttributes2(This,dwAttributes,dwAttributesEx,pFormat,pVideoFormat) \
  1083. (This)->lpVtbl -> SetAttributes2(This,dwAttributes,dwAttributesEx,pFormat,pVideoFormat)
  1084. #define IWMDMStorage2_GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) \
  1085. (This)->lpVtbl -> GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat)
  1086. #endif /* COBJMACROS */
  1087. #endif /* C style interface */
  1088. HRESULT STDMETHODCALLTYPE IWMDMStorage2_GetStorage_Proxy(
  1089. IWMDMStorage2 * This,
  1090. /* [string][in] */ LPCWSTR pszStorageName,
  1091. /* [out] */ IWMDMStorage **ppStorage);
  1092. void __RPC_STUB IWMDMStorage2_GetStorage_Stub(
  1093. IRpcStubBuffer *This,
  1094. IRpcChannelBuffer *_pRpcChannelBuffer,
  1095. PRPC_MESSAGE _pRpcMessage,
  1096. DWORD *_pdwStubPhase);
  1097. HRESULT STDMETHODCALLTYPE IWMDMStorage2_SetAttributes2_Proxy(
  1098. IWMDMStorage2 * This,
  1099. /* [in] */ DWORD dwAttributes,
  1100. /* [in] */ DWORD dwAttributesEx,
  1101. /* [in] */ _WAVEFORMATEX *pFormat,
  1102. /* [in] */ _VIDEOINFOHEADER *pVideoFormat);
  1103. void __RPC_STUB IWMDMStorage2_SetAttributes2_Stub(
  1104. IRpcStubBuffer *This,
  1105. IRpcChannelBuffer *_pRpcChannelBuffer,
  1106. PRPC_MESSAGE _pRpcMessage,
  1107. DWORD *_pdwStubPhase);
  1108. HRESULT STDMETHODCALLTYPE IWMDMStorage2_GetAttributes2_Proxy(
  1109. IWMDMStorage2 * This,
  1110. /* [out] */ DWORD *pdwAttributes,
  1111. /* [out] */ DWORD *pdwAttributesEx,
  1112. /* [out] */ _WAVEFORMATEX *pAudioFormat,
  1113. /* [out] */ _VIDEOINFOHEADER *pVideoFormat);
  1114. void __RPC_STUB IWMDMStorage2_GetAttributes2_Stub(
  1115. IRpcStubBuffer *This,
  1116. IRpcChannelBuffer *_pRpcChannelBuffer,
  1117. PRPC_MESSAGE _pRpcMessage,
  1118. DWORD *_pdwStubPhase);
  1119. #endif /* __IWMDMStorage2_INTERFACE_DEFINED__ */
  1120. #ifndef __IWMDMOperation_INTERFACE_DEFINED__
  1121. #define __IWMDMOperation_INTERFACE_DEFINED__
  1122. /* interface IWMDMOperation */
  1123. /* [unique][uuid][object] */
  1124. EXTERN_C const IID IID_IWMDMOperation;
  1125. #if defined(__cplusplus) && !defined(CINTERFACE)
  1126. MIDL_INTERFACE("1DCB3A0B-33ED-11d3-8470-00C04F79DBC0")
  1127. IWMDMOperation : public IUnknown
  1128. {
  1129. public:
  1130. virtual HRESULT STDMETHODCALLTYPE BeginRead( void) = 0;
  1131. virtual HRESULT STDMETHODCALLTYPE BeginWrite( void) = 0;
  1132. virtual HRESULT STDMETHODCALLTYPE GetObjectName(
  1133. /* [size_is][string][out] */ LPWSTR pwszName,
  1134. /* [in] */ UINT nMaxChars) = 0;
  1135. virtual HRESULT STDMETHODCALLTYPE SetObjectName(
  1136. /* [size_is][string][in] */ LPWSTR pwszName,
  1137. /* [in] */ UINT nMaxChars) = 0;
  1138. virtual HRESULT STDMETHODCALLTYPE GetObjectAttributes(
  1139. /* [out] */ DWORD *pdwAttributes,
  1140. /* [out] */ _WAVEFORMATEX *pFormat) = 0;
  1141. virtual HRESULT STDMETHODCALLTYPE SetObjectAttributes(
  1142. /* [in] */ DWORD dwAttributes,
  1143. /* [in] */ _WAVEFORMATEX *pFormat) = 0;
  1144. virtual HRESULT STDMETHODCALLTYPE GetObjectTotalSize(
  1145. /* [out] */ DWORD *pdwSize,
  1146. /* [out] */ DWORD *pdwSizeHigh) = 0;
  1147. virtual HRESULT STDMETHODCALLTYPE SetObjectTotalSize(
  1148. /* [in] */ DWORD dwSize,
  1149. /* [in] */ DWORD dwSizeHigh) = 0;
  1150. virtual HRESULT STDMETHODCALLTYPE TransferObjectData(
  1151. /* [size_is][out][in] */ BYTE *pData,
  1152. /* [out][in] */ DWORD *pdwSize,
  1153. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  1154. virtual HRESULT STDMETHODCALLTYPE End(
  1155. /* [in] */ HRESULT *phCompletionCode,
  1156. /* [in] */ IUnknown *pNewObject) = 0;
  1157. };
  1158. #else /* C style interface */
  1159. typedef struct IWMDMOperationVtbl
  1160. {
  1161. BEGIN_INTERFACE
  1162. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1163. IWMDMOperation * This,
  1164. /* [in] */ REFIID riid,
  1165. /* [iid_is][out] */ void **ppvObject);
  1166. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1167. IWMDMOperation * This);
  1168. ULONG ( STDMETHODCALLTYPE *Release )(
  1169. IWMDMOperation * This);
  1170. HRESULT ( STDMETHODCALLTYPE *BeginRead )(
  1171. IWMDMOperation * This);
  1172. HRESULT ( STDMETHODCALLTYPE *BeginWrite )(
  1173. IWMDMOperation * This);
  1174. HRESULT ( STDMETHODCALLTYPE *GetObjectName )(
  1175. IWMDMOperation * This,
  1176. /* [size_is][string][out] */ LPWSTR pwszName,
  1177. /* [in] */ UINT nMaxChars);
  1178. HRESULT ( STDMETHODCALLTYPE *SetObjectName )(
  1179. IWMDMOperation * This,
  1180. /* [size_is][string][in] */ LPWSTR pwszName,
  1181. /* [in] */ UINT nMaxChars);
  1182. HRESULT ( STDMETHODCALLTYPE *GetObjectAttributes )(
  1183. IWMDMOperation * This,
  1184. /* [out] */ DWORD *pdwAttributes,
  1185. /* [out] */ _WAVEFORMATEX *pFormat);
  1186. HRESULT ( STDMETHODCALLTYPE *SetObjectAttributes )(
  1187. IWMDMOperation * This,
  1188. /* [in] */ DWORD dwAttributes,
  1189. /* [in] */ _WAVEFORMATEX *pFormat);
  1190. HRESULT ( STDMETHODCALLTYPE *GetObjectTotalSize )(
  1191. IWMDMOperation * This,
  1192. /* [out] */ DWORD *pdwSize,
  1193. /* [out] */ DWORD *pdwSizeHigh);
  1194. HRESULT ( STDMETHODCALLTYPE *SetObjectTotalSize )(
  1195. IWMDMOperation * This,
  1196. /* [in] */ DWORD dwSize,
  1197. /* [in] */ DWORD dwSizeHigh);
  1198. HRESULT ( STDMETHODCALLTYPE *TransferObjectData )(
  1199. IWMDMOperation * This,
  1200. /* [size_is][out][in] */ BYTE *pData,
  1201. /* [out][in] */ DWORD *pdwSize,
  1202. /* [out][in] */ BYTE abMac[ 8 ]);
  1203. HRESULT ( STDMETHODCALLTYPE *End )(
  1204. IWMDMOperation * This,
  1205. /* [in] */ HRESULT *phCompletionCode,
  1206. /* [in] */ IUnknown *pNewObject);
  1207. END_INTERFACE
  1208. } IWMDMOperationVtbl;
  1209. interface IWMDMOperation
  1210. {
  1211. CONST_VTBL struct IWMDMOperationVtbl *lpVtbl;
  1212. };
  1213. #ifdef COBJMACROS
  1214. #define IWMDMOperation_QueryInterface(This,riid,ppvObject) \
  1215. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1216. #define IWMDMOperation_AddRef(This) \
  1217. (This)->lpVtbl -> AddRef(This)
  1218. #define IWMDMOperation_Release(This) \
  1219. (This)->lpVtbl -> Release(This)
  1220. #define IWMDMOperation_BeginRead(This) \
  1221. (This)->lpVtbl -> BeginRead(This)
  1222. #define IWMDMOperation_BeginWrite(This) \
  1223. (This)->lpVtbl -> BeginWrite(This)
  1224. #define IWMDMOperation_GetObjectName(This,pwszName,nMaxChars) \
  1225. (This)->lpVtbl -> GetObjectName(This,pwszName,nMaxChars)
  1226. #define IWMDMOperation_SetObjectName(This,pwszName,nMaxChars) \
  1227. (This)->lpVtbl -> SetObjectName(This,pwszName,nMaxChars)
  1228. #define IWMDMOperation_GetObjectAttributes(This,pdwAttributes,pFormat) \
  1229. (This)->lpVtbl -> GetObjectAttributes(This,pdwAttributes,pFormat)
  1230. #define IWMDMOperation_SetObjectAttributes(This,dwAttributes,pFormat) \
  1231. (This)->lpVtbl -> SetObjectAttributes(This,dwAttributes,pFormat)
  1232. #define IWMDMOperation_GetObjectTotalSize(This,pdwSize,pdwSizeHigh) \
  1233. (This)->lpVtbl -> GetObjectTotalSize(This,pdwSize,pdwSizeHigh)
  1234. #define IWMDMOperation_SetObjectTotalSize(This,dwSize,dwSizeHigh) \
  1235. (This)->lpVtbl -> SetObjectTotalSize(This,dwSize,dwSizeHigh)
  1236. #define IWMDMOperation_TransferObjectData(This,pData,pdwSize,abMac) \
  1237. (This)->lpVtbl -> TransferObjectData(This,pData,pdwSize,abMac)
  1238. #define IWMDMOperation_End(This,phCompletionCode,pNewObject) \
  1239. (This)->lpVtbl -> End(This,phCompletionCode,pNewObject)
  1240. #endif /* COBJMACROS */
  1241. #endif /* C style interface */
  1242. HRESULT STDMETHODCALLTYPE IWMDMOperation_BeginRead_Proxy(
  1243. IWMDMOperation * This);
  1244. void __RPC_STUB IWMDMOperation_BeginRead_Stub(
  1245. IRpcStubBuffer *This,
  1246. IRpcChannelBuffer *_pRpcChannelBuffer,
  1247. PRPC_MESSAGE _pRpcMessage,
  1248. DWORD *_pdwStubPhase);
  1249. HRESULT STDMETHODCALLTYPE IWMDMOperation_BeginWrite_Proxy(
  1250. IWMDMOperation * This);
  1251. void __RPC_STUB IWMDMOperation_BeginWrite_Stub(
  1252. IRpcStubBuffer *This,
  1253. IRpcChannelBuffer *_pRpcChannelBuffer,
  1254. PRPC_MESSAGE _pRpcMessage,
  1255. DWORD *_pdwStubPhase);
  1256. HRESULT STDMETHODCALLTYPE IWMDMOperation_GetObjectName_Proxy(
  1257. IWMDMOperation * This,
  1258. /* [size_is][string][out] */ LPWSTR pwszName,
  1259. /* [in] */ UINT nMaxChars);
  1260. void __RPC_STUB IWMDMOperation_GetObjectName_Stub(
  1261. IRpcStubBuffer *This,
  1262. IRpcChannelBuffer *_pRpcChannelBuffer,
  1263. PRPC_MESSAGE _pRpcMessage,
  1264. DWORD *_pdwStubPhase);
  1265. HRESULT STDMETHODCALLTYPE IWMDMOperation_SetObjectName_Proxy(
  1266. IWMDMOperation * This,
  1267. /* [size_is][string][in] */ LPWSTR pwszName,
  1268. /* [in] */ UINT nMaxChars);
  1269. void __RPC_STUB IWMDMOperation_SetObjectName_Stub(
  1270. IRpcStubBuffer *This,
  1271. IRpcChannelBuffer *_pRpcChannelBuffer,
  1272. PRPC_MESSAGE _pRpcMessage,
  1273. DWORD *_pdwStubPhase);
  1274. HRESULT STDMETHODCALLTYPE IWMDMOperation_GetObjectAttributes_Proxy(
  1275. IWMDMOperation * This,
  1276. /* [out] */ DWORD *pdwAttributes,
  1277. /* [out] */ _WAVEFORMATEX *pFormat);
  1278. void __RPC_STUB IWMDMOperation_GetObjectAttributes_Stub(
  1279. IRpcStubBuffer *This,
  1280. IRpcChannelBuffer *_pRpcChannelBuffer,
  1281. PRPC_MESSAGE _pRpcMessage,
  1282. DWORD *_pdwStubPhase);
  1283. HRESULT STDMETHODCALLTYPE IWMDMOperation_SetObjectAttributes_Proxy(
  1284. IWMDMOperation * This,
  1285. /* [in] */ DWORD dwAttributes,
  1286. /* [in] */ _WAVEFORMATEX *pFormat);
  1287. void __RPC_STUB IWMDMOperation_SetObjectAttributes_Stub(
  1288. IRpcStubBuffer *This,
  1289. IRpcChannelBuffer *_pRpcChannelBuffer,
  1290. PRPC_MESSAGE _pRpcMessage,
  1291. DWORD *_pdwStubPhase);
  1292. HRESULT STDMETHODCALLTYPE IWMDMOperation_GetObjectTotalSize_Proxy(
  1293. IWMDMOperation * This,
  1294. /* [out] */ DWORD *pdwSize,
  1295. /* [out] */ DWORD *pdwSizeHigh);
  1296. void __RPC_STUB IWMDMOperation_GetObjectTotalSize_Stub(
  1297. IRpcStubBuffer *This,
  1298. IRpcChannelBuffer *_pRpcChannelBuffer,
  1299. PRPC_MESSAGE _pRpcMessage,
  1300. DWORD *_pdwStubPhase);
  1301. HRESULT STDMETHODCALLTYPE IWMDMOperation_SetObjectTotalSize_Proxy(
  1302. IWMDMOperation * This,
  1303. /* [in] */ DWORD dwSize,
  1304. /* [in] */ DWORD dwSizeHigh);
  1305. void __RPC_STUB IWMDMOperation_SetObjectTotalSize_Stub(
  1306. IRpcStubBuffer *This,
  1307. IRpcChannelBuffer *_pRpcChannelBuffer,
  1308. PRPC_MESSAGE _pRpcMessage,
  1309. DWORD *_pdwStubPhase);
  1310. HRESULT STDMETHODCALLTYPE IWMDMOperation_TransferObjectData_Proxy(
  1311. IWMDMOperation * This,
  1312. /* [size_is][out][in] */ BYTE *pData,
  1313. /* [out][in] */ DWORD *pdwSize,
  1314. /* [out][in] */ BYTE abMac[ 8 ]);
  1315. void __RPC_STUB IWMDMOperation_TransferObjectData_Stub(
  1316. IRpcStubBuffer *This,
  1317. IRpcChannelBuffer *_pRpcChannelBuffer,
  1318. PRPC_MESSAGE _pRpcMessage,
  1319. DWORD *_pdwStubPhase);
  1320. HRESULT STDMETHODCALLTYPE IWMDMOperation_End_Proxy(
  1321. IWMDMOperation * This,
  1322. /* [in] */ HRESULT *phCompletionCode,
  1323. /* [in] */ IUnknown *pNewObject);
  1324. void __RPC_STUB IWMDMOperation_End_Stub(
  1325. IRpcStubBuffer *This,
  1326. IRpcChannelBuffer *_pRpcChannelBuffer,
  1327. PRPC_MESSAGE _pRpcMessage,
  1328. DWORD *_pdwStubPhase);
  1329. #endif /* __IWMDMOperation_INTERFACE_DEFINED__ */
  1330. #ifndef __IWMDMOperation2_INTERFACE_DEFINED__
  1331. #define __IWMDMOperation2_INTERFACE_DEFINED__
  1332. /* interface IWMDMOperation2 */
  1333. /* [unique][uuid][object] */
  1334. EXTERN_C const IID IID_IWMDMOperation2;
  1335. #if defined(__cplusplus) && !defined(CINTERFACE)
  1336. MIDL_INTERFACE("33445B48-7DF7-425c-AD8F-0FC6D82F9F75")
  1337. IWMDMOperation2 : public IWMDMOperation
  1338. {
  1339. public:
  1340. virtual HRESULT STDMETHODCALLTYPE SetObjectAttributes2(
  1341. /* [in] */ DWORD dwAttributes,
  1342. /* [in] */ DWORD dwAttributesEx,
  1343. /* [in] */ _WAVEFORMATEX *pFormat,
  1344. /* [in] */ _VIDEOINFOHEADER *pVideoFormat) = 0;
  1345. virtual HRESULT STDMETHODCALLTYPE GetObjectAttributes2(
  1346. /* [out] */ DWORD *pdwAttributes,
  1347. /* [out] */ DWORD *pdwAttributesEx,
  1348. /* [out] */ _WAVEFORMATEX *pAudioFormat,
  1349. /* [out] */ _VIDEOINFOHEADER *pVideoFormat) = 0;
  1350. };
  1351. #else /* C style interface */
  1352. typedef struct IWMDMOperation2Vtbl
  1353. {
  1354. BEGIN_INTERFACE
  1355. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1356. IWMDMOperation2 * This,
  1357. /* [in] */ REFIID riid,
  1358. /* [iid_is][out] */ void **ppvObject);
  1359. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1360. IWMDMOperation2 * This);
  1361. ULONG ( STDMETHODCALLTYPE *Release )(
  1362. IWMDMOperation2 * This);
  1363. HRESULT ( STDMETHODCALLTYPE *BeginRead )(
  1364. IWMDMOperation2 * This);
  1365. HRESULT ( STDMETHODCALLTYPE *BeginWrite )(
  1366. IWMDMOperation2 * This);
  1367. HRESULT ( STDMETHODCALLTYPE *GetObjectName )(
  1368. IWMDMOperation2 * This,
  1369. /* [size_is][string][out] */ LPWSTR pwszName,
  1370. /* [in] */ UINT nMaxChars);
  1371. HRESULT ( STDMETHODCALLTYPE *SetObjectName )(
  1372. IWMDMOperation2 * This,
  1373. /* [size_is][string][in] */ LPWSTR pwszName,
  1374. /* [in] */ UINT nMaxChars);
  1375. HRESULT ( STDMETHODCALLTYPE *GetObjectAttributes )(
  1376. IWMDMOperation2 * This,
  1377. /* [out] */ DWORD *pdwAttributes,
  1378. /* [out] */ _WAVEFORMATEX *pFormat);
  1379. HRESULT ( STDMETHODCALLTYPE *SetObjectAttributes )(
  1380. IWMDMOperation2 * This,
  1381. /* [in] */ DWORD dwAttributes,
  1382. /* [in] */ _WAVEFORMATEX *pFormat);
  1383. HRESULT ( STDMETHODCALLTYPE *GetObjectTotalSize )(
  1384. IWMDMOperation2 * This,
  1385. /* [out] */ DWORD *pdwSize,
  1386. /* [out] */ DWORD *pdwSizeHigh);
  1387. HRESULT ( STDMETHODCALLTYPE *SetObjectTotalSize )(
  1388. IWMDMOperation2 * This,
  1389. /* [in] */ DWORD dwSize,
  1390. /* [in] */ DWORD dwSizeHigh);
  1391. HRESULT ( STDMETHODCALLTYPE *TransferObjectData )(
  1392. IWMDMOperation2 * This,
  1393. /* [size_is][out][in] */ BYTE *pData,
  1394. /* [out][in] */ DWORD *pdwSize,
  1395. /* [out][in] */ BYTE abMac[ 8 ]);
  1396. HRESULT ( STDMETHODCALLTYPE *End )(
  1397. IWMDMOperation2 * This,
  1398. /* [in] */ HRESULT *phCompletionCode,
  1399. /* [in] */ IUnknown *pNewObject);
  1400. HRESULT ( STDMETHODCALLTYPE *SetObjectAttributes2 )(
  1401. IWMDMOperation2 * This,
  1402. /* [in] */ DWORD dwAttributes,
  1403. /* [in] */ DWORD dwAttributesEx,
  1404. /* [in] */ _WAVEFORMATEX *pFormat,
  1405. /* [in] */ _VIDEOINFOHEADER *pVideoFormat);
  1406. HRESULT ( STDMETHODCALLTYPE *GetObjectAttributes2 )(
  1407. IWMDMOperation2 * This,
  1408. /* [out] */ DWORD *pdwAttributes,
  1409. /* [out] */ DWORD *pdwAttributesEx,
  1410. /* [out] */ _WAVEFORMATEX *pAudioFormat,
  1411. /* [out] */ _VIDEOINFOHEADER *pVideoFormat);
  1412. END_INTERFACE
  1413. } IWMDMOperation2Vtbl;
  1414. interface IWMDMOperation2
  1415. {
  1416. CONST_VTBL struct IWMDMOperation2Vtbl *lpVtbl;
  1417. };
  1418. #ifdef COBJMACROS
  1419. #define IWMDMOperation2_QueryInterface(This,riid,ppvObject) \
  1420. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1421. #define IWMDMOperation2_AddRef(This) \
  1422. (This)->lpVtbl -> AddRef(This)
  1423. #define IWMDMOperation2_Release(This) \
  1424. (This)->lpVtbl -> Release(This)
  1425. #define IWMDMOperation2_BeginRead(This) \
  1426. (This)->lpVtbl -> BeginRead(This)
  1427. #define IWMDMOperation2_BeginWrite(This) \
  1428. (This)->lpVtbl -> BeginWrite(This)
  1429. #define IWMDMOperation2_GetObjectName(This,pwszName,nMaxChars) \
  1430. (This)->lpVtbl -> GetObjectName(This,pwszName,nMaxChars)
  1431. #define IWMDMOperation2_SetObjectName(This,pwszName,nMaxChars) \
  1432. (This)->lpVtbl -> SetObjectName(This,pwszName,nMaxChars)
  1433. #define IWMDMOperation2_GetObjectAttributes(This,pdwAttributes,pFormat) \
  1434. (This)->lpVtbl -> GetObjectAttributes(This,pdwAttributes,pFormat)
  1435. #define IWMDMOperation2_SetObjectAttributes(This,dwAttributes,pFormat) \
  1436. (This)->lpVtbl -> SetObjectAttributes(This,dwAttributes,pFormat)
  1437. #define IWMDMOperation2_GetObjectTotalSize(This,pdwSize,pdwSizeHigh) \
  1438. (This)->lpVtbl -> GetObjectTotalSize(This,pdwSize,pdwSizeHigh)
  1439. #define IWMDMOperation2_SetObjectTotalSize(This,dwSize,dwSizeHigh) \
  1440. (This)->lpVtbl -> SetObjectTotalSize(This,dwSize,dwSizeHigh)
  1441. #define IWMDMOperation2_TransferObjectData(This,pData,pdwSize,abMac) \
  1442. (This)->lpVtbl -> TransferObjectData(This,pData,pdwSize,abMac)
  1443. #define IWMDMOperation2_End(This,phCompletionCode,pNewObject) \
  1444. (This)->lpVtbl -> End(This,phCompletionCode,pNewObject)
  1445. #define IWMDMOperation2_SetObjectAttributes2(This,dwAttributes,dwAttributesEx,pFormat,pVideoFormat) \
  1446. (This)->lpVtbl -> SetObjectAttributes2(This,dwAttributes,dwAttributesEx,pFormat,pVideoFormat)
  1447. #define IWMDMOperation2_GetObjectAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) \
  1448. (This)->lpVtbl -> GetObjectAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat)
  1449. #endif /* COBJMACROS */
  1450. #endif /* C style interface */
  1451. HRESULT STDMETHODCALLTYPE IWMDMOperation2_SetObjectAttributes2_Proxy(
  1452. IWMDMOperation2 * This,
  1453. /* [in] */ DWORD dwAttributes,
  1454. /* [in] */ DWORD dwAttributesEx,
  1455. /* [in] */ _WAVEFORMATEX *pFormat,
  1456. /* [in] */ _VIDEOINFOHEADER *pVideoFormat);
  1457. void __RPC_STUB IWMDMOperation2_SetObjectAttributes2_Stub(
  1458. IRpcStubBuffer *This,
  1459. IRpcChannelBuffer *_pRpcChannelBuffer,
  1460. PRPC_MESSAGE _pRpcMessage,
  1461. DWORD *_pdwStubPhase);
  1462. HRESULT STDMETHODCALLTYPE IWMDMOperation2_GetObjectAttributes2_Proxy(
  1463. IWMDMOperation2 * This,
  1464. /* [out] */ DWORD *pdwAttributes,
  1465. /* [out] */ DWORD *pdwAttributesEx,
  1466. /* [out] */ _WAVEFORMATEX *pAudioFormat,
  1467. /* [out] */ _VIDEOINFOHEADER *pVideoFormat);
  1468. void __RPC_STUB IWMDMOperation2_GetObjectAttributes2_Stub(
  1469. IRpcStubBuffer *This,
  1470. IRpcChannelBuffer *_pRpcChannelBuffer,
  1471. PRPC_MESSAGE _pRpcMessage,
  1472. DWORD *_pdwStubPhase);
  1473. #endif /* __IWMDMOperation2_INTERFACE_DEFINED__ */
  1474. #ifndef __IWMDMProgress_INTERFACE_DEFINED__
  1475. #define __IWMDMProgress_INTERFACE_DEFINED__
  1476. /* interface IWMDMProgress */
  1477. /* [unique][uuid][object] */
  1478. EXTERN_C const IID IID_IWMDMProgress;
  1479. #if defined(__cplusplus) && !defined(CINTERFACE)
  1480. MIDL_INTERFACE("1DCB3A0C-33ED-11d3-8470-00C04F79DBC0")
  1481. IWMDMProgress : public IUnknown
  1482. {
  1483. public:
  1484. virtual HRESULT STDMETHODCALLTYPE Begin(
  1485. /* [in] */ DWORD dwEstimatedTicks) = 0;
  1486. virtual HRESULT STDMETHODCALLTYPE Progress(
  1487. /* [in] */ DWORD dwTranspiredTicks) = 0;
  1488. virtual HRESULT STDMETHODCALLTYPE End( void) = 0;
  1489. };
  1490. #else /* C style interface */
  1491. typedef struct IWMDMProgressVtbl
  1492. {
  1493. BEGIN_INTERFACE
  1494. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1495. IWMDMProgress * This,
  1496. /* [in] */ REFIID riid,
  1497. /* [iid_is][out] */ void **ppvObject);
  1498. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1499. IWMDMProgress * This);
  1500. ULONG ( STDMETHODCALLTYPE *Release )(
  1501. IWMDMProgress * This);
  1502. HRESULT ( STDMETHODCALLTYPE *Begin )(
  1503. IWMDMProgress * This,
  1504. /* [in] */ DWORD dwEstimatedTicks);
  1505. HRESULT ( STDMETHODCALLTYPE *Progress )(
  1506. IWMDMProgress * This,
  1507. /* [in] */ DWORD dwTranspiredTicks);
  1508. HRESULT ( STDMETHODCALLTYPE *End )(
  1509. IWMDMProgress * This);
  1510. END_INTERFACE
  1511. } IWMDMProgressVtbl;
  1512. interface IWMDMProgress
  1513. {
  1514. CONST_VTBL struct IWMDMProgressVtbl *lpVtbl;
  1515. };
  1516. #ifdef COBJMACROS
  1517. #define IWMDMProgress_QueryInterface(This,riid,ppvObject) \
  1518. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1519. #define IWMDMProgress_AddRef(This) \
  1520. (This)->lpVtbl -> AddRef(This)
  1521. #define IWMDMProgress_Release(This) \
  1522. (This)->lpVtbl -> Release(This)
  1523. #define IWMDMProgress_Begin(This,dwEstimatedTicks) \
  1524. (This)->lpVtbl -> Begin(This,dwEstimatedTicks)
  1525. #define IWMDMProgress_Progress(This,dwTranspiredTicks) \
  1526. (This)->lpVtbl -> Progress(This,dwTranspiredTicks)
  1527. #define IWMDMProgress_End(This) \
  1528. (This)->lpVtbl -> End(This)
  1529. #endif /* COBJMACROS */
  1530. #endif /* C style interface */
  1531. HRESULT STDMETHODCALLTYPE IWMDMProgress_Begin_Proxy(
  1532. IWMDMProgress * This,
  1533. /* [in] */ DWORD dwEstimatedTicks);
  1534. void __RPC_STUB IWMDMProgress_Begin_Stub(
  1535. IRpcStubBuffer *This,
  1536. IRpcChannelBuffer *_pRpcChannelBuffer,
  1537. PRPC_MESSAGE _pRpcMessage,
  1538. DWORD *_pdwStubPhase);
  1539. HRESULT STDMETHODCALLTYPE IWMDMProgress_Progress_Proxy(
  1540. IWMDMProgress * This,
  1541. /* [in] */ DWORD dwTranspiredTicks);
  1542. void __RPC_STUB IWMDMProgress_Progress_Stub(
  1543. IRpcStubBuffer *This,
  1544. IRpcChannelBuffer *_pRpcChannelBuffer,
  1545. PRPC_MESSAGE _pRpcMessage,
  1546. DWORD *_pdwStubPhase);
  1547. HRESULT STDMETHODCALLTYPE IWMDMProgress_End_Proxy(
  1548. IWMDMProgress * This);
  1549. void __RPC_STUB IWMDMProgress_End_Stub(
  1550. IRpcStubBuffer *This,
  1551. IRpcChannelBuffer *_pRpcChannelBuffer,
  1552. PRPC_MESSAGE _pRpcMessage,
  1553. DWORD *_pdwStubPhase);
  1554. #endif /* __IWMDMProgress_INTERFACE_DEFINED__ */
  1555. #ifndef __IWMDMProgress2_INTERFACE_DEFINED__
  1556. #define __IWMDMProgress2_INTERFACE_DEFINED__
  1557. /* interface IWMDMProgress2 */
  1558. /* [unique][uuid][object] */
  1559. EXTERN_C const IID IID_IWMDMProgress2;
  1560. #if defined(__cplusplus) && !defined(CINTERFACE)
  1561. MIDL_INTERFACE("3A43F550-B383-4e92-B04A-E6BBC660FEFC")
  1562. IWMDMProgress2 : public IWMDMProgress
  1563. {
  1564. public:
  1565. virtual HRESULT STDMETHODCALLTYPE End2(
  1566. /* [in] */ HRESULT hrCompletionCode) = 0;
  1567. };
  1568. #else /* C style interface */
  1569. typedef struct IWMDMProgress2Vtbl
  1570. {
  1571. BEGIN_INTERFACE
  1572. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1573. IWMDMProgress2 * This,
  1574. /* [in] */ REFIID riid,
  1575. /* [iid_is][out] */ void **ppvObject);
  1576. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1577. IWMDMProgress2 * This);
  1578. ULONG ( STDMETHODCALLTYPE *Release )(
  1579. IWMDMProgress2 * This);
  1580. HRESULT ( STDMETHODCALLTYPE *Begin )(
  1581. IWMDMProgress2 * This,
  1582. /* [in] */ DWORD dwEstimatedTicks);
  1583. HRESULT ( STDMETHODCALLTYPE *Progress )(
  1584. IWMDMProgress2 * This,
  1585. /* [in] */ DWORD dwTranspiredTicks);
  1586. HRESULT ( STDMETHODCALLTYPE *End )(
  1587. IWMDMProgress2 * This);
  1588. HRESULT ( STDMETHODCALLTYPE *End2 )(
  1589. IWMDMProgress2 * This,
  1590. /* [in] */ HRESULT hrCompletionCode);
  1591. END_INTERFACE
  1592. } IWMDMProgress2Vtbl;
  1593. interface IWMDMProgress2
  1594. {
  1595. CONST_VTBL struct IWMDMProgress2Vtbl *lpVtbl;
  1596. };
  1597. #ifdef COBJMACROS
  1598. #define IWMDMProgress2_QueryInterface(This,riid,ppvObject) \
  1599. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1600. #define IWMDMProgress2_AddRef(This) \
  1601. (This)->lpVtbl -> AddRef(This)
  1602. #define IWMDMProgress2_Release(This) \
  1603. (This)->lpVtbl -> Release(This)
  1604. #define IWMDMProgress2_Begin(This,dwEstimatedTicks) \
  1605. (This)->lpVtbl -> Begin(This,dwEstimatedTicks)
  1606. #define IWMDMProgress2_Progress(This,dwTranspiredTicks) \
  1607. (This)->lpVtbl -> Progress(This,dwTranspiredTicks)
  1608. #define IWMDMProgress2_End(This) \
  1609. (This)->lpVtbl -> End(This)
  1610. #define IWMDMProgress2_End2(This,hrCompletionCode) \
  1611. (This)->lpVtbl -> End2(This,hrCompletionCode)
  1612. #endif /* COBJMACROS */
  1613. #endif /* C style interface */
  1614. HRESULT STDMETHODCALLTYPE IWMDMProgress2_End2_Proxy(
  1615. IWMDMProgress2 * This,
  1616. /* [in] */ HRESULT hrCompletionCode);
  1617. void __RPC_STUB IWMDMProgress2_End2_Stub(
  1618. IRpcStubBuffer *This,
  1619. IRpcChannelBuffer *_pRpcChannelBuffer,
  1620. PRPC_MESSAGE _pRpcMessage,
  1621. DWORD *_pdwStubPhase);
  1622. #endif /* __IWMDMProgress2_INTERFACE_DEFINED__ */
  1623. #ifndef __IWMDMDevice_INTERFACE_DEFINED__
  1624. #define __IWMDMDevice_INTERFACE_DEFINED__
  1625. /* interface IWMDMDevice */
  1626. /* [unique][uuid][object] */
  1627. EXTERN_C const IID IID_IWMDMDevice;
  1628. #if defined(__cplusplus) && !defined(CINTERFACE)
  1629. MIDL_INTERFACE("1DCB3A02-33ED-11d3-8470-00C04F79DBC0")
  1630. IWMDMDevice : public IUnknown
  1631. {
  1632. public:
  1633. virtual HRESULT STDMETHODCALLTYPE GetName(
  1634. /* [size_is][string][out] */ LPWSTR pwszName,
  1635. /* [in] */ UINT nMaxChars) = 0;
  1636. virtual HRESULT STDMETHODCALLTYPE GetManufacturer(
  1637. /* [size_is][string][out] */ LPWSTR pwszName,
  1638. /* [in] */ UINT nMaxChars) = 0;
  1639. virtual HRESULT STDMETHODCALLTYPE GetVersion(
  1640. /* [out] */ DWORD *pdwVersion) = 0;
  1641. virtual HRESULT STDMETHODCALLTYPE GetType(
  1642. /* [out] */ DWORD *pdwType) = 0;
  1643. virtual HRESULT STDMETHODCALLTYPE GetSerialNumber(
  1644. /* [out] */ PWMDMID pSerialNumber,
  1645. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  1646. virtual HRESULT STDMETHODCALLTYPE GetPowerSource(
  1647. /* [out] */ DWORD *pdwPowerSource,
  1648. /* [out] */ DWORD *pdwPercentRemaining) = 0;
  1649. virtual HRESULT STDMETHODCALLTYPE GetStatus(
  1650. /* [out] */ DWORD *pdwStatus) = 0;
  1651. virtual HRESULT STDMETHODCALLTYPE GetDeviceIcon(
  1652. /* [out] */ ULONG *hIcon) = 0;
  1653. virtual HRESULT STDMETHODCALLTYPE EnumStorage(
  1654. /* [out] */ IWMDMEnumStorage **ppEnumStorage) = 0;
  1655. virtual HRESULT STDMETHODCALLTYPE GetFormatSupport(
  1656. /* [size_is][size_is][out] */ _WAVEFORMATEX **ppFormatEx,
  1657. /* [out] */ UINT *pnFormatCount,
  1658. /* [size_is][size_is][out] */ LPWSTR **pppwszMimeType,
  1659. /* [out] */ UINT *pnMimeTypeCount) = 0;
  1660. virtual HRESULT STDMETHODCALLTYPE SendOpaqueCommand(
  1661. /* [out][in] */ OPAQUECOMMAND *pCommand) = 0;
  1662. };
  1663. #else /* C style interface */
  1664. typedef struct IWMDMDeviceVtbl
  1665. {
  1666. BEGIN_INTERFACE
  1667. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1668. IWMDMDevice * This,
  1669. /* [in] */ REFIID riid,
  1670. /* [iid_is][out] */ void **ppvObject);
  1671. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1672. IWMDMDevice * This);
  1673. ULONG ( STDMETHODCALLTYPE *Release )(
  1674. IWMDMDevice * This);
  1675. HRESULT ( STDMETHODCALLTYPE *GetName )(
  1676. IWMDMDevice * This,
  1677. /* [size_is][string][out] */ LPWSTR pwszName,
  1678. /* [in] */ UINT nMaxChars);
  1679. HRESULT ( STDMETHODCALLTYPE *GetManufacturer )(
  1680. IWMDMDevice * This,
  1681. /* [size_is][string][out] */ LPWSTR pwszName,
  1682. /* [in] */ UINT nMaxChars);
  1683. HRESULT ( STDMETHODCALLTYPE *GetVersion )(
  1684. IWMDMDevice * This,
  1685. /* [out] */ DWORD *pdwVersion);
  1686. HRESULT ( STDMETHODCALLTYPE *GetType )(
  1687. IWMDMDevice * This,
  1688. /* [out] */ DWORD *pdwType);
  1689. HRESULT ( STDMETHODCALLTYPE *GetSerialNumber )(
  1690. IWMDMDevice * This,
  1691. /* [out] */ PWMDMID pSerialNumber,
  1692. /* [out][in] */ BYTE abMac[ 8 ]);
  1693. HRESULT ( STDMETHODCALLTYPE *GetPowerSource )(
  1694. IWMDMDevice * This,
  1695. /* [out] */ DWORD *pdwPowerSource,
  1696. /* [out] */ DWORD *pdwPercentRemaining);
  1697. HRESULT ( STDMETHODCALLTYPE *GetStatus )(
  1698. IWMDMDevice * This,
  1699. /* [out] */ DWORD *pdwStatus);
  1700. HRESULT ( STDMETHODCALLTYPE *GetDeviceIcon )(
  1701. IWMDMDevice * This,
  1702. /* [out] */ ULONG *hIcon);
  1703. HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
  1704. IWMDMDevice * This,
  1705. /* [out] */ IWMDMEnumStorage **ppEnumStorage);
  1706. HRESULT ( STDMETHODCALLTYPE *GetFormatSupport )(
  1707. IWMDMDevice * This,
  1708. /* [size_is][size_is][out] */ _WAVEFORMATEX **ppFormatEx,
  1709. /* [out] */ UINT *pnFormatCount,
  1710. /* [size_is][size_is][out] */ LPWSTR **pppwszMimeType,
  1711. /* [out] */ UINT *pnMimeTypeCount);
  1712. HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
  1713. IWMDMDevice * This,
  1714. /* [out][in] */ OPAQUECOMMAND *pCommand);
  1715. END_INTERFACE
  1716. } IWMDMDeviceVtbl;
  1717. interface IWMDMDevice
  1718. {
  1719. CONST_VTBL struct IWMDMDeviceVtbl *lpVtbl;
  1720. };
  1721. #ifdef COBJMACROS
  1722. #define IWMDMDevice_QueryInterface(This,riid,ppvObject) \
  1723. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1724. #define IWMDMDevice_AddRef(This) \
  1725. (This)->lpVtbl -> AddRef(This)
  1726. #define IWMDMDevice_Release(This) \
  1727. (This)->lpVtbl -> Release(This)
  1728. #define IWMDMDevice_GetName(This,pwszName,nMaxChars) \
  1729. (This)->lpVtbl -> GetName(This,pwszName,nMaxChars)
  1730. #define IWMDMDevice_GetManufacturer(This,pwszName,nMaxChars) \
  1731. (This)->lpVtbl -> GetManufacturer(This,pwszName,nMaxChars)
  1732. #define IWMDMDevice_GetVersion(This,pdwVersion) \
  1733. (This)->lpVtbl -> GetVersion(This,pdwVersion)
  1734. #define IWMDMDevice_GetType(This,pdwType) \
  1735. (This)->lpVtbl -> GetType(This,pdwType)
  1736. #define IWMDMDevice_GetSerialNumber(This,pSerialNumber,abMac) \
  1737. (This)->lpVtbl -> GetSerialNumber(This,pSerialNumber,abMac)
  1738. #define IWMDMDevice_GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) \
  1739. (This)->lpVtbl -> GetPowerSource(This,pdwPowerSource,pdwPercentRemaining)
  1740. #define IWMDMDevice_GetStatus(This,pdwStatus) \
  1741. (This)->lpVtbl -> GetStatus(This,pdwStatus)
  1742. #define IWMDMDevice_GetDeviceIcon(This,hIcon) \
  1743. (This)->lpVtbl -> GetDeviceIcon(This,hIcon)
  1744. #define IWMDMDevice_EnumStorage(This,ppEnumStorage) \
  1745. (This)->lpVtbl -> EnumStorage(This,ppEnumStorage)
  1746. #define IWMDMDevice_GetFormatSupport(This,ppFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) \
  1747. (This)->lpVtbl -> GetFormatSupport(This,ppFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount)
  1748. #define IWMDMDevice_SendOpaqueCommand(This,pCommand) \
  1749. (This)->lpVtbl -> SendOpaqueCommand(This,pCommand)
  1750. #endif /* COBJMACROS */
  1751. #endif /* C style interface */
  1752. HRESULT STDMETHODCALLTYPE IWMDMDevice_GetName_Proxy(
  1753. IWMDMDevice * This,
  1754. /* [size_is][string][out] */ LPWSTR pwszName,
  1755. /* [in] */ UINT nMaxChars);
  1756. void __RPC_STUB IWMDMDevice_GetName_Stub(
  1757. IRpcStubBuffer *This,
  1758. IRpcChannelBuffer *_pRpcChannelBuffer,
  1759. PRPC_MESSAGE _pRpcMessage,
  1760. DWORD *_pdwStubPhase);
  1761. HRESULT STDMETHODCALLTYPE IWMDMDevice_GetManufacturer_Proxy(
  1762. IWMDMDevice * This,
  1763. /* [size_is][string][out] */ LPWSTR pwszName,
  1764. /* [in] */ UINT nMaxChars);
  1765. void __RPC_STUB IWMDMDevice_GetManufacturer_Stub(
  1766. IRpcStubBuffer *This,
  1767. IRpcChannelBuffer *_pRpcChannelBuffer,
  1768. PRPC_MESSAGE _pRpcMessage,
  1769. DWORD *_pdwStubPhase);
  1770. HRESULT STDMETHODCALLTYPE IWMDMDevice_GetVersion_Proxy(
  1771. IWMDMDevice * This,
  1772. /* [out] */ DWORD *pdwVersion);
  1773. void __RPC_STUB IWMDMDevice_GetVersion_Stub(
  1774. IRpcStubBuffer *This,
  1775. IRpcChannelBuffer *_pRpcChannelBuffer,
  1776. PRPC_MESSAGE _pRpcMessage,
  1777. DWORD *_pdwStubPhase);
  1778. HRESULT STDMETHODCALLTYPE IWMDMDevice_GetType_Proxy(
  1779. IWMDMDevice * This,
  1780. /* [out] */ DWORD *pdwType);
  1781. void __RPC_STUB IWMDMDevice_GetType_Stub(
  1782. IRpcStubBuffer *This,
  1783. IRpcChannelBuffer *_pRpcChannelBuffer,
  1784. PRPC_MESSAGE _pRpcMessage,
  1785. DWORD *_pdwStubPhase);
  1786. HRESULT STDMETHODCALLTYPE IWMDMDevice_GetSerialNumber_Proxy(
  1787. IWMDMDevice * This,
  1788. /* [out] */ PWMDMID pSerialNumber,
  1789. /* [out][in] */ BYTE abMac[ 8 ]);
  1790. void __RPC_STUB IWMDMDevice_GetSerialNumber_Stub(
  1791. IRpcStubBuffer *This,
  1792. IRpcChannelBuffer *_pRpcChannelBuffer,
  1793. PRPC_MESSAGE _pRpcMessage,
  1794. DWORD *_pdwStubPhase);
  1795. HRESULT STDMETHODCALLTYPE IWMDMDevice_GetPowerSource_Proxy(
  1796. IWMDMDevice * This,
  1797. /* [out] */ DWORD *pdwPowerSource,
  1798. /* [out] */ DWORD *pdwPercentRemaining);
  1799. void __RPC_STUB IWMDMDevice_GetPowerSource_Stub(
  1800. IRpcStubBuffer *This,
  1801. IRpcChannelBuffer *_pRpcChannelBuffer,
  1802. PRPC_MESSAGE _pRpcMessage,
  1803. DWORD *_pdwStubPhase);
  1804. HRESULT STDMETHODCALLTYPE IWMDMDevice_GetStatus_Proxy(
  1805. IWMDMDevice * This,
  1806. /* [out] */ DWORD *pdwStatus);
  1807. void __RPC_STUB IWMDMDevice_GetStatus_Stub(
  1808. IRpcStubBuffer *This,
  1809. IRpcChannelBuffer *_pRpcChannelBuffer,
  1810. PRPC_MESSAGE _pRpcMessage,
  1811. DWORD *_pdwStubPhase);
  1812. HRESULT STDMETHODCALLTYPE IWMDMDevice_GetDeviceIcon_Proxy(
  1813. IWMDMDevice * This,
  1814. /* [out] */ ULONG *hIcon);
  1815. void __RPC_STUB IWMDMDevice_GetDeviceIcon_Stub(
  1816. IRpcStubBuffer *This,
  1817. IRpcChannelBuffer *_pRpcChannelBuffer,
  1818. PRPC_MESSAGE _pRpcMessage,
  1819. DWORD *_pdwStubPhase);
  1820. HRESULT STDMETHODCALLTYPE IWMDMDevice_EnumStorage_Proxy(
  1821. IWMDMDevice * This,
  1822. /* [out] */ IWMDMEnumStorage **ppEnumStorage);
  1823. void __RPC_STUB IWMDMDevice_EnumStorage_Stub(
  1824. IRpcStubBuffer *This,
  1825. IRpcChannelBuffer *_pRpcChannelBuffer,
  1826. PRPC_MESSAGE _pRpcMessage,
  1827. DWORD *_pdwStubPhase);
  1828. HRESULT STDMETHODCALLTYPE IWMDMDevice_GetFormatSupport_Proxy(
  1829. IWMDMDevice * This,
  1830. /* [size_is][size_is][out] */ _WAVEFORMATEX **ppFormatEx,
  1831. /* [out] */ UINT *pnFormatCount,
  1832. /* [size_is][size_is][out] */ LPWSTR **pppwszMimeType,
  1833. /* [out] */ UINT *pnMimeTypeCount);
  1834. void __RPC_STUB IWMDMDevice_GetFormatSupport_Stub(
  1835. IRpcStubBuffer *This,
  1836. IRpcChannelBuffer *_pRpcChannelBuffer,
  1837. PRPC_MESSAGE _pRpcMessage,
  1838. DWORD *_pdwStubPhase);
  1839. HRESULT STDMETHODCALLTYPE IWMDMDevice_SendOpaqueCommand_Proxy(
  1840. IWMDMDevice * This,
  1841. /* [out][in] */ OPAQUECOMMAND *pCommand);
  1842. void __RPC_STUB IWMDMDevice_SendOpaqueCommand_Stub(
  1843. IRpcStubBuffer *This,
  1844. IRpcChannelBuffer *_pRpcChannelBuffer,
  1845. PRPC_MESSAGE _pRpcMessage,
  1846. DWORD *_pdwStubPhase);
  1847. #endif /* __IWMDMDevice_INTERFACE_DEFINED__ */
  1848. #ifndef __IWMDMDevice2_INTERFACE_DEFINED__
  1849. #define __IWMDMDevice2_INTERFACE_DEFINED__
  1850. /* interface IWMDMDevice2 */
  1851. /* [unique][uuid][object] */
  1852. EXTERN_C const IID IID_IWMDMDevice2;
  1853. #if defined(__cplusplus) && !defined(CINTERFACE)
  1854. MIDL_INTERFACE("E34F3D37-9D67-4fc1-9252-62D28B2F8B55")
  1855. IWMDMDevice2 : public IWMDMDevice
  1856. {
  1857. public:
  1858. virtual HRESULT STDMETHODCALLTYPE GetStorage(
  1859. /* [string][in] */ LPCWSTR pszStorageName,
  1860. /* [out] */ IWMDMStorage **ppStorage) = 0;
  1861. virtual HRESULT STDMETHODCALLTYPE GetFormatSupport2(
  1862. /* [in] */ DWORD dwFlags,
  1863. /* [size_is][size_is][out] */ _WAVEFORMATEX **ppAudioFormatEx,
  1864. /* [ref][out] */ UINT *pnAudioFormatCount,
  1865. /* [size_is][size_is][out] */ _VIDEOINFOHEADER **ppVideoFormatEx,
  1866. /* [ref][out] */ UINT *pnVideoFormatCount,
  1867. /* [size_is][size_is][out] */ WMFILECAPABILITIES **ppFileType,
  1868. /* [ref][out] */ UINT *pnFileTypeCount) = 0;
  1869. virtual HRESULT STDMETHODCALLTYPE GetSpecifyPropertyPages(
  1870. /* [ref][out] */ ISpecifyPropertyPages **ppSpecifyPropPages,
  1871. /* [size_is][size_is][ref][out] */ IUnknown ***pppUnknowns,
  1872. /* [ref][out] */ ULONG *pcUnks) = 0;
  1873. virtual HRESULT STDMETHODCALLTYPE GetPnPName(
  1874. /* [size_is][out] */ LPWSTR pwszPnPName,
  1875. /* [in] */ UINT nMaxChars) = 0;
  1876. };
  1877. #else /* C style interface */
  1878. typedef struct IWMDMDevice2Vtbl
  1879. {
  1880. BEGIN_INTERFACE
  1881. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1882. IWMDMDevice2 * This,
  1883. /* [in] */ REFIID riid,
  1884. /* [iid_is][out] */ void **ppvObject);
  1885. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1886. IWMDMDevice2 * This);
  1887. ULONG ( STDMETHODCALLTYPE *Release )(
  1888. IWMDMDevice2 * This);
  1889. HRESULT ( STDMETHODCALLTYPE *GetName )(
  1890. IWMDMDevice2 * This,
  1891. /* [size_is][string][out] */ LPWSTR pwszName,
  1892. /* [in] */ UINT nMaxChars);
  1893. HRESULT ( STDMETHODCALLTYPE *GetManufacturer )(
  1894. IWMDMDevice2 * This,
  1895. /* [size_is][string][out] */ LPWSTR pwszName,
  1896. /* [in] */ UINT nMaxChars);
  1897. HRESULT ( STDMETHODCALLTYPE *GetVersion )(
  1898. IWMDMDevice2 * This,
  1899. /* [out] */ DWORD *pdwVersion);
  1900. HRESULT ( STDMETHODCALLTYPE *GetType )(
  1901. IWMDMDevice2 * This,
  1902. /* [out] */ DWORD *pdwType);
  1903. HRESULT ( STDMETHODCALLTYPE *GetSerialNumber )(
  1904. IWMDMDevice2 * This,
  1905. /* [out] */ PWMDMID pSerialNumber,
  1906. /* [out][in] */ BYTE abMac[ 8 ]);
  1907. HRESULT ( STDMETHODCALLTYPE *GetPowerSource )(
  1908. IWMDMDevice2 * This,
  1909. /* [out] */ DWORD *pdwPowerSource,
  1910. /* [out] */ DWORD *pdwPercentRemaining);
  1911. HRESULT ( STDMETHODCALLTYPE *GetStatus )(
  1912. IWMDMDevice2 * This,
  1913. /* [out] */ DWORD *pdwStatus);
  1914. HRESULT ( STDMETHODCALLTYPE *GetDeviceIcon )(
  1915. IWMDMDevice2 * This,
  1916. /* [out] */ ULONG *hIcon);
  1917. HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
  1918. IWMDMDevice2 * This,
  1919. /* [out] */ IWMDMEnumStorage **ppEnumStorage);
  1920. HRESULT ( STDMETHODCALLTYPE *GetFormatSupport )(
  1921. IWMDMDevice2 * This,
  1922. /* [size_is][size_is][out] */ _WAVEFORMATEX **ppFormatEx,
  1923. /* [out] */ UINT *pnFormatCount,
  1924. /* [size_is][size_is][out] */ LPWSTR **pppwszMimeType,
  1925. /* [out] */ UINT *pnMimeTypeCount);
  1926. HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
  1927. IWMDMDevice2 * This,
  1928. /* [out][in] */ OPAQUECOMMAND *pCommand);
  1929. HRESULT ( STDMETHODCALLTYPE *GetStorage )(
  1930. IWMDMDevice2 * This,
  1931. /* [string][in] */ LPCWSTR pszStorageName,
  1932. /* [out] */ IWMDMStorage **ppStorage);
  1933. HRESULT ( STDMETHODCALLTYPE *GetFormatSupport2 )(
  1934. IWMDMDevice2 * This,
  1935. /* [in] */ DWORD dwFlags,
  1936. /* [size_is][size_is][out] */ _WAVEFORMATEX **ppAudioFormatEx,
  1937. /* [ref][out] */ UINT *pnAudioFormatCount,
  1938. /* [size_is][size_is][out] */ _VIDEOINFOHEADER **ppVideoFormatEx,
  1939. /* [ref][out] */ UINT *pnVideoFormatCount,
  1940. /* [size_is][size_is][out] */ WMFILECAPABILITIES **ppFileType,
  1941. /* [ref][out] */ UINT *pnFileTypeCount);
  1942. HRESULT ( STDMETHODCALLTYPE *GetSpecifyPropertyPages )(
  1943. IWMDMDevice2 * This,
  1944. /* [ref][out] */ ISpecifyPropertyPages **ppSpecifyPropPages,
  1945. /* [size_is][size_is][ref][out] */ IUnknown ***pppUnknowns,
  1946. /* [ref][out] */ ULONG *pcUnks);
  1947. HRESULT ( STDMETHODCALLTYPE *GetPnPName )(
  1948. IWMDMDevice2 * This,
  1949. /* [size_is][out] */ LPWSTR pwszPnPName,
  1950. /* [in] */ UINT nMaxChars);
  1951. END_INTERFACE
  1952. } IWMDMDevice2Vtbl;
  1953. interface IWMDMDevice2
  1954. {
  1955. CONST_VTBL struct IWMDMDevice2Vtbl *lpVtbl;
  1956. };
  1957. #ifdef COBJMACROS
  1958. #define IWMDMDevice2_QueryInterface(This,riid,ppvObject) \
  1959. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1960. #define IWMDMDevice2_AddRef(This) \
  1961. (This)->lpVtbl -> AddRef(This)
  1962. #define IWMDMDevice2_Release(This) \
  1963. (This)->lpVtbl -> Release(This)
  1964. #define IWMDMDevice2_GetName(This,pwszName,nMaxChars) \
  1965. (This)->lpVtbl -> GetName(This,pwszName,nMaxChars)
  1966. #define IWMDMDevice2_GetManufacturer(This,pwszName,nMaxChars) \
  1967. (This)->lpVtbl -> GetManufacturer(This,pwszName,nMaxChars)
  1968. #define IWMDMDevice2_GetVersion(This,pdwVersion) \
  1969. (This)->lpVtbl -> GetVersion(This,pdwVersion)
  1970. #define IWMDMDevice2_GetType(This,pdwType) \
  1971. (This)->lpVtbl -> GetType(This,pdwType)
  1972. #define IWMDMDevice2_GetSerialNumber(This,pSerialNumber,abMac) \
  1973. (This)->lpVtbl -> GetSerialNumber(This,pSerialNumber,abMac)
  1974. #define IWMDMDevice2_GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) \
  1975. (This)->lpVtbl -> GetPowerSource(This,pdwPowerSource,pdwPercentRemaining)
  1976. #define IWMDMDevice2_GetStatus(This,pdwStatus) \
  1977. (This)->lpVtbl -> GetStatus(This,pdwStatus)
  1978. #define IWMDMDevice2_GetDeviceIcon(This,hIcon) \
  1979. (This)->lpVtbl -> GetDeviceIcon(This,hIcon)
  1980. #define IWMDMDevice2_EnumStorage(This,ppEnumStorage) \
  1981. (This)->lpVtbl -> EnumStorage(This,ppEnumStorage)
  1982. #define IWMDMDevice2_GetFormatSupport(This,ppFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) \
  1983. (This)->lpVtbl -> GetFormatSupport(This,ppFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount)
  1984. #define IWMDMDevice2_SendOpaqueCommand(This,pCommand) \
  1985. (This)->lpVtbl -> SendOpaqueCommand(This,pCommand)
  1986. #define IWMDMDevice2_GetStorage(This,pszStorageName,ppStorage) \
  1987. (This)->lpVtbl -> GetStorage(This,pszStorageName,ppStorage)
  1988. #define IWMDMDevice2_GetFormatSupport2(This,dwFlags,ppAudioFormatEx,pnAudioFormatCount,ppVideoFormatEx,pnVideoFormatCount,ppFileType,pnFileTypeCount) \
  1989. (This)->lpVtbl -> GetFormatSupport2(This,dwFlags,ppAudioFormatEx,pnAudioFormatCount,ppVideoFormatEx,pnVideoFormatCount,ppFileType,pnFileTypeCount)
  1990. #define IWMDMDevice2_GetSpecifyPropertyPages(This,ppSpecifyPropPages,pppUnknowns,pcUnks) \
  1991. (This)->lpVtbl -> GetSpecifyPropertyPages(This,ppSpecifyPropPages,pppUnknowns,pcUnks)
  1992. #define IWMDMDevice2_GetPnPName(This,pwszPnPName,nMaxChars) \
  1993. (This)->lpVtbl -> GetPnPName(This,pwszPnPName,nMaxChars)
  1994. #endif /* COBJMACROS */
  1995. #endif /* C style interface */
  1996. HRESULT STDMETHODCALLTYPE IWMDMDevice2_GetStorage_Proxy(
  1997. IWMDMDevice2 * This,
  1998. /* [string][in] */ LPCWSTR pszStorageName,
  1999. /* [out] */ IWMDMStorage **ppStorage);
  2000. void __RPC_STUB IWMDMDevice2_GetStorage_Stub(
  2001. IRpcStubBuffer *This,
  2002. IRpcChannelBuffer *_pRpcChannelBuffer,
  2003. PRPC_MESSAGE _pRpcMessage,
  2004. DWORD *_pdwStubPhase);
  2005. HRESULT STDMETHODCALLTYPE IWMDMDevice2_GetFormatSupport2_Proxy(
  2006. IWMDMDevice2 * This,
  2007. /* [in] */ DWORD dwFlags,
  2008. /* [size_is][size_is][out] */ _WAVEFORMATEX **ppAudioFormatEx,
  2009. /* [ref][out] */ UINT *pnAudioFormatCount,
  2010. /* [size_is][size_is][out] */ _VIDEOINFOHEADER **ppVideoFormatEx,
  2011. /* [ref][out] */ UINT *pnVideoFormatCount,
  2012. /* [size_is][size_is][out] */ WMFILECAPABILITIES **ppFileType,
  2013. /* [ref][out] */ UINT *pnFileTypeCount);
  2014. void __RPC_STUB IWMDMDevice2_GetFormatSupport2_Stub(
  2015. IRpcStubBuffer *This,
  2016. IRpcChannelBuffer *_pRpcChannelBuffer,
  2017. PRPC_MESSAGE _pRpcMessage,
  2018. DWORD *_pdwStubPhase);
  2019. HRESULT STDMETHODCALLTYPE IWMDMDevice2_GetSpecifyPropertyPages_Proxy(
  2020. IWMDMDevice2 * This,
  2021. /* [ref][out] */ ISpecifyPropertyPages **ppSpecifyPropPages,
  2022. /* [size_is][size_is][ref][out] */ IUnknown ***pppUnknowns,
  2023. /* [ref][out] */ ULONG *pcUnks);
  2024. void __RPC_STUB IWMDMDevice2_GetSpecifyPropertyPages_Stub(
  2025. IRpcStubBuffer *This,
  2026. IRpcChannelBuffer *_pRpcChannelBuffer,
  2027. PRPC_MESSAGE _pRpcMessage,
  2028. DWORD *_pdwStubPhase);
  2029. HRESULT STDMETHODCALLTYPE IWMDMDevice2_GetPnPName_Proxy(
  2030. IWMDMDevice2 * This,
  2031. /* [size_is][out] */ LPWSTR pwszPnPName,
  2032. /* [in] */ UINT nMaxChars);
  2033. void __RPC_STUB IWMDMDevice2_GetPnPName_Stub(
  2034. IRpcStubBuffer *This,
  2035. IRpcChannelBuffer *_pRpcChannelBuffer,
  2036. PRPC_MESSAGE _pRpcMessage,
  2037. DWORD *_pdwStubPhase);
  2038. #endif /* __IWMDMDevice2_INTERFACE_DEFINED__ */
  2039. #ifndef __IWMDMEnumDevice_INTERFACE_DEFINED__
  2040. #define __IWMDMEnumDevice_INTERFACE_DEFINED__
  2041. /* interface IWMDMEnumDevice */
  2042. /* [unique][uuid][object] */
  2043. EXTERN_C const IID IID_IWMDMEnumDevice;
  2044. #if defined(__cplusplus) && !defined(CINTERFACE)
  2045. MIDL_INTERFACE("1DCB3A01-33ED-11d3-8470-00C04F79DBC0")
  2046. IWMDMEnumDevice : public IUnknown
  2047. {
  2048. public:
  2049. virtual HRESULT STDMETHODCALLTYPE Next(
  2050. /* [in] */ ULONG celt,
  2051. /* [length_is][size_is][out] */ IWMDMDevice **ppDevice,
  2052. /* [out] */ ULONG *pceltFetched) = 0;
  2053. virtual HRESULT STDMETHODCALLTYPE Skip(
  2054. /* [in] */ ULONG celt,
  2055. /* [out] */ ULONG *pceltFetched) = 0;
  2056. virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  2057. virtual HRESULT STDMETHODCALLTYPE Clone(
  2058. /* [out] */ IWMDMEnumDevice **ppEnumDevice) = 0;
  2059. };
  2060. #else /* C style interface */
  2061. typedef struct IWMDMEnumDeviceVtbl
  2062. {
  2063. BEGIN_INTERFACE
  2064. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2065. IWMDMEnumDevice * This,
  2066. /* [in] */ REFIID riid,
  2067. /* [iid_is][out] */ void **ppvObject);
  2068. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2069. IWMDMEnumDevice * This);
  2070. ULONG ( STDMETHODCALLTYPE *Release )(
  2071. IWMDMEnumDevice * This);
  2072. HRESULT ( STDMETHODCALLTYPE *Next )(
  2073. IWMDMEnumDevice * This,
  2074. /* [in] */ ULONG celt,
  2075. /* [length_is][size_is][out] */ IWMDMDevice **ppDevice,
  2076. /* [out] */ ULONG *pceltFetched);
  2077. HRESULT ( STDMETHODCALLTYPE *Skip )(
  2078. IWMDMEnumDevice * This,
  2079. /* [in] */ ULONG celt,
  2080. /* [out] */ ULONG *pceltFetched);
  2081. HRESULT ( STDMETHODCALLTYPE *Reset )(
  2082. IWMDMEnumDevice * This);
  2083. HRESULT ( STDMETHODCALLTYPE *Clone )(
  2084. IWMDMEnumDevice * This,
  2085. /* [out] */ IWMDMEnumDevice **ppEnumDevice);
  2086. END_INTERFACE
  2087. } IWMDMEnumDeviceVtbl;
  2088. interface IWMDMEnumDevice
  2089. {
  2090. CONST_VTBL struct IWMDMEnumDeviceVtbl *lpVtbl;
  2091. };
  2092. #ifdef COBJMACROS
  2093. #define IWMDMEnumDevice_QueryInterface(This,riid,ppvObject) \
  2094. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2095. #define IWMDMEnumDevice_AddRef(This) \
  2096. (This)->lpVtbl -> AddRef(This)
  2097. #define IWMDMEnumDevice_Release(This) \
  2098. (This)->lpVtbl -> Release(This)
  2099. #define IWMDMEnumDevice_Next(This,celt,ppDevice,pceltFetched) \
  2100. (This)->lpVtbl -> Next(This,celt,ppDevice,pceltFetched)
  2101. #define IWMDMEnumDevice_Skip(This,celt,pceltFetched) \
  2102. (This)->lpVtbl -> Skip(This,celt,pceltFetched)
  2103. #define IWMDMEnumDevice_Reset(This) \
  2104. (This)->lpVtbl -> Reset(This)
  2105. #define IWMDMEnumDevice_Clone(This,ppEnumDevice) \
  2106. (This)->lpVtbl -> Clone(This,ppEnumDevice)
  2107. #endif /* COBJMACROS */
  2108. #endif /* C style interface */
  2109. HRESULT STDMETHODCALLTYPE IWMDMEnumDevice_Next_Proxy(
  2110. IWMDMEnumDevice * This,
  2111. /* [in] */ ULONG celt,
  2112. /* [length_is][size_is][out] */ IWMDMDevice **ppDevice,
  2113. /* [out] */ ULONG *pceltFetched);
  2114. void __RPC_STUB IWMDMEnumDevice_Next_Stub(
  2115. IRpcStubBuffer *This,
  2116. IRpcChannelBuffer *_pRpcChannelBuffer,
  2117. PRPC_MESSAGE _pRpcMessage,
  2118. DWORD *_pdwStubPhase);
  2119. HRESULT STDMETHODCALLTYPE IWMDMEnumDevice_Skip_Proxy(
  2120. IWMDMEnumDevice * This,
  2121. /* [in] */ ULONG celt,
  2122. /* [out] */ ULONG *pceltFetched);
  2123. void __RPC_STUB IWMDMEnumDevice_Skip_Stub(
  2124. IRpcStubBuffer *This,
  2125. IRpcChannelBuffer *_pRpcChannelBuffer,
  2126. PRPC_MESSAGE _pRpcMessage,
  2127. DWORD *_pdwStubPhase);
  2128. HRESULT STDMETHODCALLTYPE IWMDMEnumDevice_Reset_Proxy(
  2129. IWMDMEnumDevice * This);
  2130. void __RPC_STUB IWMDMEnumDevice_Reset_Stub(
  2131. IRpcStubBuffer *This,
  2132. IRpcChannelBuffer *_pRpcChannelBuffer,
  2133. PRPC_MESSAGE _pRpcMessage,
  2134. DWORD *_pdwStubPhase);
  2135. HRESULT STDMETHODCALLTYPE IWMDMEnumDevice_Clone_Proxy(
  2136. IWMDMEnumDevice * This,
  2137. /* [out] */ IWMDMEnumDevice **ppEnumDevice);
  2138. void __RPC_STUB IWMDMEnumDevice_Clone_Stub(
  2139. IRpcStubBuffer *This,
  2140. IRpcChannelBuffer *_pRpcChannelBuffer,
  2141. PRPC_MESSAGE _pRpcMessage,
  2142. DWORD *_pdwStubPhase);
  2143. #endif /* __IWMDMEnumDevice_INTERFACE_DEFINED__ */
  2144. #ifndef __IWMDMDeviceControl_INTERFACE_DEFINED__
  2145. #define __IWMDMDeviceControl_INTERFACE_DEFINED__
  2146. /* interface IWMDMDeviceControl */
  2147. /* [unique][uuid][object] */
  2148. EXTERN_C const IID IID_IWMDMDeviceControl;
  2149. #if defined(__cplusplus) && !defined(CINTERFACE)
  2150. MIDL_INTERFACE("1DCB3A04-33ED-11d3-8470-00C04F79DBC0")
  2151. IWMDMDeviceControl : public IUnknown
  2152. {
  2153. public:
  2154. virtual HRESULT STDMETHODCALLTYPE GetStatus(
  2155. /* [out] */ DWORD *pdwStatus) = 0;
  2156. virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
  2157. /* [out] */ DWORD *pdwCapabilitiesMask) = 0;
  2158. virtual HRESULT STDMETHODCALLTYPE Play( void) = 0;
  2159. virtual HRESULT STDMETHODCALLTYPE Record(
  2160. /* [in] */ _WAVEFORMATEX *pFormat) = 0;
  2161. virtual HRESULT STDMETHODCALLTYPE Pause( void) = 0;
  2162. virtual HRESULT STDMETHODCALLTYPE Resume( void) = 0;
  2163. virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0;
  2164. virtual HRESULT STDMETHODCALLTYPE Seek(
  2165. /* [in] */ UINT fuMode,
  2166. /* [in] */ int nOffset) = 0;
  2167. };
  2168. #else /* C style interface */
  2169. typedef struct IWMDMDeviceControlVtbl
  2170. {
  2171. BEGIN_INTERFACE
  2172. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2173. IWMDMDeviceControl * This,
  2174. /* [in] */ REFIID riid,
  2175. /* [iid_is][out] */ void **ppvObject);
  2176. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2177. IWMDMDeviceControl * This);
  2178. ULONG ( STDMETHODCALLTYPE *Release )(
  2179. IWMDMDeviceControl * This);
  2180. HRESULT ( STDMETHODCALLTYPE *GetStatus )(
  2181. IWMDMDeviceControl * This,
  2182. /* [out] */ DWORD *pdwStatus);
  2183. HRESULT ( STDMETHODCALLTYPE *GetCapabilities )(
  2184. IWMDMDeviceControl * This,
  2185. /* [out] */ DWORD *pdwCapabilitiesMask);
  2186. HRESULT ( STDMETHODCALLTYPE *Play )(
  2187. IWMDMDeviceControl * This);
  2188. HRESULT ( STDMETHODCALLTYPE *Record )(
  2189. IWMDMDeviceControl * This,
  2190. /* [in] */ _WAVEFORMATEX *pFormat);
  2191. HRESULT ( STDMETHODCALLTYPE *Pause )(
  2192. IWMDMDeviceControl * This);
  2193. HRESULT ( STDMETHODCALLTYPE *Resume )(
  2194. IWMDMDeviceControl * This);
  2195. HRESULT ( STDMETHODCALLTYPE *Stop )(
  2196. IWMDMDeviceControl * This);
  2197. HRESULT ( STDMETHODCALLTYPE *Seek )(
  2198. IWMDMDeviceControl * This,
  2199. /* [in] */ UINT fuMode,
  2200. /* [in] */ int nOffset);
  2201. END_INTERFACE
  2202. } IWMDMDeviceControlVtbl;
  2203. interface IWMDMDeviceControl
  2204. {
  2205. CONST_VTBL struct IWMDMDeviceControlVtbl *lpVtbl;
  2206. };
  2207. #ifdef COBJMACROS
  2208. #define IWMDMDeviceControl_QueryInterface(This,riid,ppvObject) \
  2209. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2210. #define IWMDMDeviceControl_AddRef(This) \
  2211. (This)->lpVtbl -> AddRef(This)
  2212. #define IWMDMDeviceControl_Release(This) \
  2213. (This)->lpVtbl -> Release(This)
  2214. #define IWMDMDeviceControl_GetStatus(This,pdwStatus) \
  2215. (This)->lpVtbl -> GetStatus(This,pdwStatus)
  2216. #define IWMDMDeviceControl_GetCapabilities(This,pdwCapabilitiesMask) \
  2217. (This)->lpVtbl -> GetCapabilities(This,pdwCapabilitiesMask)
  2218. #define IWMDMDeviceControl_Play(This) \
  2219. (This)->lpVtbl -> Play(This)
  2220. #define IWMDMDeviceControl_Record(This,pFormat) \
  2221. (This)->lpVtbl -> Record(This,pFormat)
  2222. #define IWMDMDeviceControl_Pause(This) \
  2223. (This)->lpVtbl -> Pause(This)
  2224. #define IWMDMDeviceControl_Resume(This) \
  2225. (This)->lpVtbl -> Resume(This)
  2226. #define IWMDMDeviceControl_Stop(This) \
  2227. (This)->lpVtbl -> Stop(This)
  2228. #define IWMDMDeviceControl_Seek(This,fuMode,nOffset) \
  2229. (This)->lpVtbl -> Seek(This,fuMode,nOffset)
  2230. #endif /* COBJMACROS */
  2231. #endif /* C style interface */
  2232. HRESULT STDMETHODCALLTYPE IWMDMDeviceControl_GetStatus_Proxy(
  2233. IWMDMDeviceControl * This,
  2234. /* [out] */ DWORD *pdwStatus);
  2235. void __RPC_STUB IWMDMDeviceControl_GetStatus_Stub(
  2236. IRpcStubBuffer *This,
  2237. IRpcChannelBuffer *_pRpcChannelBuffer,
  2238. PRPC_MESSAGE _pRpcMessage,
  2239. DWORD *_pdwStubPhase);
  2240. HRESULT STDMETHODCALLTYPE IWMDMDeviceControl_GetCapabilities_Proxy(
  2241. IWMDMDeviceControl * This,
  2242. /* [out] */ DWORD *pdwCapabilitiesMask);
  2243. void __RPC_STUB IWMDMDeviceControl_GetCapabilities_Stub(
  2244. IRpcStubBuffer *This,
  2245. IRpcChannelBuffer *_pRpcChannelBuffer,
  2246. PRPC_MESSAGE _pRpcMessage,
  2247. DWORD *_pdwStubPhase);
  2248. HRESULT STDMETHODCALLTYPE IWMDMDeviceControl_Play_Proxy(
  2249. IWMDMDeviceControl * This);
  2250. void __RPC_STUB IWMDMDeviceControl_Play_Stub(
  2251. IRpcStubBuffer *This,
  2252. IRpcChannelBuffer *_pRpcChannelBuffer,
  2253. PRPC_MESSAGE _pRpcMessage,
  2254. DWORD *_pdwStubPhase);
  2255. HRESULT STDMETHODCALLTYPE IWMDMDeviceControl_Record_Proxy(
  2256. IWMDMDeviceControl * This,
  2257. /* [in] */ _WAVEFORMATEX *pFormat);
  2258. void __RPC_STUB IWMDMDeviceControl_Record_Stub(
  2259. IRpcStubBuffer *This,
  2260. IRpcChannelBuffer *_pRpcChannelBuffer,
  2261. PRPC_MESSAGE _pRpcMessage,
  2262. DWORD *_pdwStubPhase);
  2263. HRESULT STDMETHODCALLTYPE IWMDMDeviceControl_Pause_Proxy(
  2264. IWMDMDeviceControl * This);
  2265. void __RPC_STUB IWMDMDeviceControl_Pause_Stub(
  2266. IRpcStubBuffer *This,
  2267. IRpcChannelBuffer *_pRpcChannelBuffer,
  2268. PRPC_MESSAGE _pRpcMessage,
  2269. DWORD *_pdwStubPhase);
  2270. HRESULT STDMETHODCALLTYPE IWMDMDeviceControl_Resume_Proxy(
  2271. IWMDMDeviceControl * This);
  2272. void __RPC_STUB IWMDMDeviceControl_Resume_Stub(
  2273. IRpcStubBuffer *This,
  2274. IRpcChannelBuffer *_pRpcChannelBuffer,
  2275. PRPC_MESSAGE _pRpcMessage,
  2276. DWORD *_pdwStubPhase);
  2277. HRESULT STDMETHODCALLTYPE IWMDMDeviceControl_Stop_Proxy(
  2278. IWMDMDeviceControl * This);
  2279. void __RPC_STUB IWMDMDeviceControl_Stop_Stub(
  2280. IRpcStubBuffer *This,
  2281. IRpcChannelBuffer *_pRpcChannelBuffer,
  2282. PRPC_MESSAGE _pRpcMessage,
  2283. DWORD *_pdwStubPhase);
  2284. HRESULT STDMETHODCALLTYPE IWMDMDeviceControl_Seek_Proxy(
  2285. IWMDMDeviceControl * This,
  2286. /* [in] */ UINT fuMode,
  2287. /* [in] */ int nOffset);
  2288. void __RPC_STUB IWMDMDeviceControl_Seek_Stub(
  2289. IRpcStubBuffer *This,
  2290. IRpcChannelBuffer *_pRpcChannelBuffer,
  2291. PRPC_MESSAGE _pRpcMessage,
  2292. DWORD *_pdwStubPhase);
  2293. #endif /* __IWMDMDeviceControl_INTERFACE_DEFINED__ */
  2294. #ifndef __IWMDMEnumStorage_INTERFACE_DEFINED__
  2295. #define __IWMDMEnumStorage_INTERFACE_DEFINED__
  2296. /* interface IWMDMEnumStorage */
  2297. /* [unique][uuid][object] */
  2298. EXTERN_C const IID IID_IWMDMEnumStorage;
  2299. #if defined(__cplusplus) && !defined(CINTERFACE)
  2300. MIDL_INTERFACE("1DCB3A05-33ED-11d3-8470-00C04F79DBC0")
  2301. IWMDMEnumStorage : public IUnknown
  2302. {
  2303. public:
  2304. virtual HRESULT STDMETHODCALLTYPE Next(
  2305. /* [in] */ ULONG celt,
  2306. /* [length_is][size_is][out] */ IWMDMStorage **ppStorage,
  2307. /* [out] */ ULONG *pceltFetched) = 0;
  2308. virtual HRESULT STDMETHODCALLTYPE Skip(
  2309. /* [in] */ ULONG celt,
  2310. /* [out] */ ULONG *pceltFetched) = 0;
  2311. virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  2312. virtual HRESULT STDMETHODCALLTYPE Clone(
  2313. /* [out] */ IWMDMEnumStorage **ppEnumStorage) = 0;
  2314. };
  2315. #else /* C style interface */
  2316. typedef struct IWMDMEnumStorageVtbl
  2317. {
  2318. BEGIN_INTERFACE
  2319. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2320. IWMDMEnumStorage * This,
  2321. /* [in] */ REFIID riid,
  2322. /* [iid_is][out] */ void **ppvObject);
  2323. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2324. IWMDMEnumStorage * This);
  2325. ULONG ( STDMETHODCALLTYPE *Release )(
  2326. IWMDMEnumStorage * This);
  2327. HRESULT ( STDMETHODCALLTYPE *Next )(
  2328. IWMDMEnumStorage * This,
  2329. /* [in] */ ULONG celt,
  2330. /* [length_is][size_is][out] */ IWMDMStorage **ppStorage,
  2331. /* [out] */ ULONG *pceltFetched);
  2332. HRESULT ( STDMETHODCALLTYPE *Skip )(
  2333. IWMDMEnumStorage * This,
  2334. /* [in] */ ULONG celt,
  2335. /* [out] */ ULONG *pceltFetched);
  2336. HRESULT ( STDMETHODCALLTYPE *Reset )(
  2337. IWMDMEnumStorage * This);
  2338. HRESULT ( STDMETHODCALLTYPE *Clone )(
  2339. IWMDMEnumStorage * This,
  2340. /* [out] */ IWMDMEnumStorage **ppEnumStorage);
  2341. END_INTERFACE
  2342. } IWMDMEnumStorageVtbl;
  2343. interface IWMDMEnumStorage
  2344. {
  2345. CONST_VTBL struct IWMDMEnumStorageVtbl *lpVtbl;
  2346. };
  2347. #ifdef COBJMACROS
  2348. #define IWMDMEnumStorage_QueryInterface(This,riid,ppvObject) \
  2349. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2350. #define IWMDMEnumStorage_AddRef(This) \
  2351. (This)->lpVtbl -> AddRef(This)
  2352. #define IWMDMEnumStorage_Release(This) \
  2353. (This)->lpVtbl -> Release(This)
  2354. #define IWMDMEnumStorage_Next(This,celt,ppStorage,pceltFetched) \
  2355. (This)->lpVtbl -> Next(This,celt,ppStorage,pceltFetched)
  2356. #define IWMDMEnumStorage_Skip(This,celt,pceltFetched) \
  2357. (This)->lpVtbl -> Skip(This,celt,pceltFetched)
  2358. #define IWMDMEnumStorage_Reset(This) \
  2359. (This)->lpVtbl -> Reset(This)
  2360. #define IWMDMEnumStorage_Clone(This,ppEnumStorage) \
  2361. (This)->lpVtbl -> Clone(This,ppEnumStorage)
  2362. #endif /* COBJMACROS */
  2363. #endif /* C style interface */
  2364. HRESULT STDMETHODCALLTYPE IWMDMEnumStorage_Next_Proxy(
  2365. IWMDMEnumStorage * This,
  2366. /* [in] */ ULONG celt,
  2367. /* [length_is][size_is][out] */ IWMDMStorage **ppStorage,
  2368. /* [out] */ ULONG *pceltFetched);
  2369. void __RPC_STUB IWMDMEnumStorage_Next_Stub(
  2370. IRpcStubBuffer *This,
  2371. IRpcChannelBuffer *_pRpcChannelBuffer,
  2372. PRPC_MESSAGE _pRpcMessage,
  2373. DWORD *_pdwStubPhase);
  2374. HRESULT STDMETHODCALLTYPE IWMDMEnumStorage_Skip_Proxy(
  2375. IWMDMEnumStorage * This,
  2376. /* [in] */ ULONG celt,
  2377. /* [out] */ ULONG *pceltFetched);
  2378. void __RPC_STUB IWMDMEnumStorage_Skip_Stub(
  2379. IRpcStubBuffer *This,
  2380. IRpcChannelBuffer *_pRpcChannelBuffer,
  2381. PRPC_MESSAGE _pRpcMessage,
  2382. DWORD *_pdwStubPhase);
  2383. HRESULT STDMETHODCALLTYPE IWMDMEnumStorage_Reset_Proxy(
  2384. IWMDMEnumStorage * This);
  2385. void __RPC_STUB IWMDMEnumStorage_Reset_Stub(
  2386. IRpcStubBuffer *This,
  2387. IRpcChannelBuffer *_pRpcChannelBuffer,
  2388. PRPC_MESSAGE _pRpcMessage,
  2389. DWORD *_pdwStubPhase);
  2390. HRESULT STDMETHODCALLTYPE IWMDMEnumStorage_Clone_Proxy(
  2391. IWMDMEnumStorage * This,
  2392. /* [out] */ IWMDMEnumStorage **ppEnumStorage);
  2393. void __RPC_STUB IWMDMEnumStorage_Clone_Stub(
  2394. IRpcStubBuffer *This,
  2395. IRpcChannelBuffer *_pRpcChannelBuffer,
  2396. PRPC_MESSAGE _pRpcMessage,
  2397. DWORD *_pdwStubPhase);
  2398. #endif /* __IWMDMEnumStorage_INTERFACE_DEFINED__ */
  2399. #ifndef __IWMDMStorageControl_INTERFACE_DEFINED__
  2400. #define __IWMDMStorageControl_INTERFACE_DEFINED__
  2401. /* interface IWMDMStorageControl */
  2402. /* [unique][uuid][object] */
  2403. EXTERN_C const IID IID_IWMDMStorageControl;
  2404. #if defined(__cplusplus) && !defined(CINTERFACE)
  2405. MIDL_INTERFACE("1DCB3A08-33ED-11d3-8470-00C04F79DBC0")
  2406. IWMDMStorageControl : public IUnknown
  2407. {
  2408. public:
  2409. virtual HRESULT STDMETHODCALLTYPE Insert(
  2410. /* [in] */ UINT fuMode,
  2411. /* [unique][in] */ LPWSTR pwszFile,
  2412. /* [in] */ IWMDMOperation *pOperation,
  2413. /* [in] */ IWMDMProgress *pProgress,
  2414. /* [out] */ IWMDMStorage **ppNewObject) = 0;
  2415. virtual HRESULT STDMETHODCALLTYPE Delete(
  2416. /* [in] */ UINT fuMode,
  2417. /* [in] */ IWMDMProgress *pProgress) = 0;
  2418. virtual HRESULT STDMETHODCALLTYPE Rename(
  2419. /* [in] */ UINT fuMode,
  2420. /* [in] */ LPWSTR pwszNewName,
  2421. /* [in] */ IWMDMProgress *pProgress) = 0;
  2422. virtual HRESULT STDMETHODCALLTYPE Read(
  2423. /* [in] */ UINT fuMode,
  2424. /* [unique][in] */ LPWSTR pwszFile,
  2425. /* [in] */ IWMDMProgress *pProgress,
  2426. /* [in] */ IWMDMOperation *pOperation) = 0;
  2427. virtual HRESULT STDMETHODCALLTYPE Move(
  2428. /* [in] */ UINT fuMode,
  2429. /* [in] */ IWMDMStorage *pTargetObject,
  2430. /* [in] */ IWMDMProgress *pProgress) = 0;
  2431. };
  2432. #else /* C style interface */
  2433. typedef struct IWMDMStorageControlVtbl
  2434. {
  2435. BEGIN_INTERFACE
  2436. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2437. IWMDMStorageControl * This,
  2438. /* [in] */ REFIID riid,
  2439. /* [iid_is][out] */ void **ppvObject);
  2440. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2441. IWMDMStorageControl * This);
  2442. ULONG ( STDMETHODCALLTYPE *Release )(
  2443. IWMDMStorageControl * This);
  2444. HRESULT ( STDMETHODCALLTYPE *Insert )(
  2445. IWMDMStorageControl * This,
  2446. /* [in] */ UINT fuMode,
  2447. /* [unique][in] */ LPWSTR pwszFile,
  2448. /* [in] */ IWMDMOperation *pOperation,
  2449. /* [in] */ IWMDMProgress *pProgress,
  2450. /* [out] */ IWMDMStorage **ppNewObject);
  2451. HRESULT ( STDMETHODCALLTYPE *Delete )(
  2452. IWMDMStorageControl * This,
  2453. /* [in] */ UINT fuMode,
  2454. /* [in] */ IWMDMProgress *pProgress);
  2455. HRESULT ( STDMETHODCALLTYPE *Rename )(
  2456. IWMDMStorageControl * This,
  2457. /* [in] */ UINT fuMode,
  2458. /* [in] */ LPWSTR pwszNewName,
  2459. /* [in] */ IWMDMProgress *pProgress);
  2460. HRESULT ( STDMETHODCALLTYPE *Read )(
  2461. IWMDMStorageControl * This,
  2462. /* [in] */ UINT fuMode,
  2463. /* [unique][in] */ LPWSTR pwszFile,
  2464. /* [in] */ IWMDMProgress *pProgress,
  2465. /* [in] */ IWMDMOperation *pOperation);
  2466. HRESULT ( STDMETHODCALLTYPE *Move )(
  2467. IWMDMStorageControl * This,
  2468. /* [in] */ UINT fuMode,
  2469. /* [in] */ IWMDMStorage *pTargetObject,
  2470. /* [in] */ IWMDMProgress *pProgress);
  2471. END_INTERFACE
  2472. } IWMDMStorageControlVtbl;
  2473. interface IWMDMStorageControl
  2474. {
  2475. CONST_VTBL struct IWMDMStorageControlVtbl *lpVtbl;
  2476. };
  2477. #ifdef COBJMACROS
  2478. #define IWMDMStorageControl_QueryInterface(This,riid,ppvObject) \
  2479. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2480. #define IWMDMStorageControl_AddRef(This) \
  2481. (This)->lpVtbl -> AddRef(This)
  2482. #define IWMDMStorageControl_Release(This) \
  2483. (This)->lpVtbl -> Release(This)
  2484. #define IWMDMStorageControl_Insert(This,fuMode,pwszFile,pOperation,pProgress,ppNewObject) \
  2485. (This)->lpVtbl -> Insert(This,fuMode,pwszFile,pOperation,pProgress,ppNewObject)
  2486. #define IWMDMStorageControl_Delete(This,fuMode,pProgress) \
  2487. (This)->lpVtbl -> Delete(This,fuMode,pProgress)
  2488. #define IWMDMStorageControl_Rename(This,fuMode,pwszNewName,pProgress) \
  2489. (This)->lpVtbl -> Rename(This,fuMode,pwszNewName,pProgress)
  2490. #define IWMDMStorageControl_Read(This,fuMode,pwszFile,pProgress,pOperation) \
  2491. (This)->lpVtbl -> Read(This,fuMode,pwszFile,pProgress,pOperation)
  2492. #define IWMDMStorageControl_Move(This,fuMode,pTargetObject,pProgress) \
  2493. (This)->lpVtbl -> Move(This,fuMode,pTargetObject,pProgress)
  2494. #endif /* COBJMACROS */
  2495. #endif /* C style interface */
  2496. HRESULT STDMETHODCALLTYPE IWMDMStorageControl_Insert_Proxy(
  2497. IWMDMStorageControl * This,
  2498. /* [in] */ UINT fuMode,
  2499. /* [unique][in] */ LPWSTR pwszFile,
  2500. /* [in] */ IWMDMOperation *pOperation,
  2501. /* [in] */ IWMDMProgress *pProgress,
  2502. /* [out] */ IWMDMStorage **ppNewObject);
  2503. void __RPC_STUB IWMDMStorageControl_Insert_Stub(
  2504. IRpcStubBuffer *This,
  2505. IRpcChannelBuffer *_pRpcChannelBuffer,
  2506. PRPC_MESSAGE _pRpcMessage,
  2507. DWORD *_pdwStubPhase);
  2508. HRESULT STDMETHODCALLTYPE IWMDMStorageControl_Delete_Proxy(
  2509. IWMDMStorageControl * This,
  2510. /* [in] */ UINT fuMode,
  2511. /* [in] */ IWMDMProgress *pProgress);
  2512. void __RPC_STUB IWMDMStorageControl_Delete_Stub(
  2513. IRpcStubBuffer *This,
  2514. IRpcChannelBuffer *_pRpcChannelBuffer,
  2515. PRPC_MESSAGE _pRpcMessage,
  2516. DWORD *_pdwStubPhase);
  2517. HRESULT STDMETHODCALLTYPE IWMDMStorageControl_Rename_Proxy(
  2518. IWMDMStorageControl * This,
  2519. /* [in] */ UINT fuMode,
  2520. /* [in] */ LPWSTR pwszNewName,
  2521. /* [in] */ IWMDMProgress *pProgress);
  2522. void __RPC_STUB IWMDMStorageControl_Rename_Stub(
  2523. IRpcStubBuffer *This,
  2524. IRpcChannelBuffer *_pRpcChannelBuffer,
  2525. PRPC_MESSAGE _pRpcMessage,
  2526. DWORD *_pdwStubPhase);
  2527. HRESULT STDMETHODCALLTYPE IWMDMStorageControl_Read_Proxy(
  2528. IWMDMStorageControl * This,
  2529. /* [in] */ UINT fuMode,
  2530. /* [unique][in] */ LPWSTR pwszFile,
  2531. /* [in] */ IWMDMProgress *pProgress,
  2532. /* [in] */ IWMDMOperation *pOperation);
  2533. void __RPC_STUB IWMDMStorageControl_Read_Stub(
  2534. IRpcStubBuffer *This,
  2535. IRpcChannelBuffer *_pRpcChannelBuffer,
  2536. PRPC_MESSAGE _pRpcMessage,
  2537. DWORD *_pdwStubPhase);
  2538. HRESULT STDMETHODCALLTYPE IWMDMStorageControl_Move_Proxy(
  2539. IWMDMStorageControl * This,
  2540. /* [in] */ UINT fuMode,
  2541. /* [in] */ IWMDMStorage *pTargetObject,
  2542. /* [in] */ IWMDMProgress *pProgress);
  2543. void __RPC_STUB IWMDMStorageControl_Move_Stub(
  2544. IRpcStubBuffer *This,
  2545. IRpcChannelBuffer *_pRpcChannelBuffer,
  2546. PRPC_MESSAGE _pRpcMessage,
  2547. DWORD *_pdwStubPhase);
  2548. #endif /* __IWMDMStorageControl_INTERFACE_DEFINED__ */
  2549. #ifndef __IWMDMStorageControl2_INTERFACE_DEFINED__
  2550. #define __IWMDMStorageControl2_INTERFACE_DEFINED__
  2551. /* interface IWMDMStorageControl2 */
  2552. /* [unique][uuid][object] */
  2553. EXTERN_C const IID IID_IWMDMStorageControl2;
  2554. #if defined(__cplusplus) && !defined(CINTERFACE)
  2555. MIDL_INTERFACE("972C2E88-BD6C-4125-8E09-84F837E637B6")
  2556. IWMDMStorageControl2 : public IWMDMStorageControl
  2557. {
  2558. public:
  2559. virtual HRESULT STDMETHODCALLTYPE Insert2(
  2560. /* [in] */ UINT fuMode,
  2561. /* [unique][in] */ LPWSTR pwszFileSource,
  2562. /* [unique][in] */ LPWSTR pwszFileDest,
  2563. /* [in] */ IWMDMOperation *pOperation,
  2564. /* [in] */ IWMDMProgress *pProgress,
  2565. /* [in] */ IUnknown *pUnknown,
  2566. /* [unique][out][in] */ IWMDMStorage **ppNewObject) = 0;
  2567. };
  2568. #else /* C style interface */
  2569. typedef struct IWMDMStorageControl2Vtbl
  2570. {
  2571. BEGIN_INTERFACE
  2572. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2573. IWMDMStorageControl2 * This,
  2574. /* [in] */ REFIID riid,
  2575. /* [iid_is][out] */ void **ppvObject);
  2576. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2577. IWMDMStorageControl2 * This);
  2578. ULONG ( STDMETHODCALLTYPE *Release )(
  2579. IWMDMStorageControl2 * This);
  2580. HRESULT ( STDMETHODCALLTYPE *Insert )(
  2581. IWMDMStorageControl2 * This,
  2582. /* [in] */ UINT fuMode,
  2583. /* [unique][in] */ LPWSTR pwszFile,
  2584. /* [in] */ IWMDMOperation *pOperation,
  2585. /* [in] */ IWMDMProgress *pProgress,
  2586. /* [out] */ IWMDMStorage **ppNewObject);
  2587. HRESULT ( STDMETHODCALLTYPE *Delete )(
  2588. IWMDMStorageControl2 * This,
  2589. /* [in] */ UINT fuMode,
  2590. /* [in] */ IWMDMProgress *pProgress);
  2591. HRESULT ( STDMETHODCALLTYPE *Rename )(
  2592. IWMDMStorageControl2 * This,
  2593. /* [in] */ UINT fuMode,
  2594. /* [in] */ LPWSTR pwszNewName,
  2595. /* [in] */ IWMDMProgress *pProgress);
  2596. HRESULT ( STDMETHODCALLTYPE *Read )(
  2597. IWMDMStorageControl2 * This,
  2598. /* [in] */ UINT fuMode,
  2599. /* [unique][in] */ LPWSTR pwszFile,
  2600. /* [in] */ IWMDMProgress *pProgress,
  2601. /* [in] */ IWMDMOperation *pOperation);
  2602. HRESULT ( STDMETHODCALLTYPE *Move )(
  2603. IWMDMStorageControl2 * This,
  2604. /* [in] */ UINT fuMode,
  2605. /* [in] */ IWMDMStorage *pTargetObject,
  2606. /* [in] */ IWMDMProgress *pProgress);
  2607. HRESULT ( STDMETHODCALLTYPE *Insert2 )(
  2608. IWMDMStorageControl2 * This,
  2609. /* [in] */ UINT fuMode,
  2610. /* [unique][in] */ LPWSTR pwszFileSource,
  2611. /* [unique][in] */ LPWSTR pwszFileDest,
  2612. /* [in] */ IWMDMOperation *pOperation,
  2613. /* [in] */ IWMDMProgress *pProgress,
  2614. /* [in] */ IUnknown *pUnknown,
  2615. /* [unique][out][in] */ IWMDMStorage **ppNewObject);
  2616. END_INTERFACE
  2617. } IWMDMStorageControl2Vtbl;
  2618. interface IWMDMStorageControl2
  2619. {
  2620. CONST_VTBL struct IWMDMStorageControl2Vtbl *lpVtbl;
  2621. };
  2622. #ifdef COBJMACROS
  2623. #define IWMDMStorageControl2_QueryInterface(This,riid,ppvObject) \
  2624. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2625. #define IWMDMStorageControl2_AddRef(This) \
  2626. (This)->lpVtbl -> AddRef(This)
  2627. #define IWMDMStorageControl2_Release(This) \
  2628. (This)->lpVtbl -> Release(This)
  2629. #define IWMDMStorageControl2_Insert(This,fuMode,pwszFile,pOperation,pProgress,ppNewObject) \
  2630. (This)->lpVtbl -> Insert(This,fuMode,pwszFile,pOperation,pProgress,ppNewObject)
  2631. #define IWMDMStorageControl2_Delete(This,fuMode,pProgress) \
  2632. (This)->lpVtbl -> Delete(This,fuMode,pProgress)
  2633. #define IWMDMStorageControl2_Rename(This,fuMode,pwszNewName,pProgress) \
  2634. (This)->lpVtbl -> Rename(This,fuMode,pwszNewName,pProgress)
  2635. #define IWMDMStorageControl2_Read(This,fuMode,pwszFile,pProgress,pOperation) \
  2636. (This)->lpVtbl -> Read(This,fuMode,pwszFile,pProgress,pOperation)
  2637. #define IWMDMStorageControl2_Move(This,fuMode,pTargetObject,pProgress) \
  2638. (This)->lpVtbl -> Move(This,fuMode,pTargetObject,pProgress)
  2639. #define IWMDMStorageControl2_Insert2(This,fuMode,pwszFileSource,pwszFileDest,pOperation,pProgress,pUnknown,ppNewObject) \
  2640. (This)->lpVtbl -> Insert2(This,fuMode,pwszFileSource,pwszFileDest,pOperation,pProgress,pUnknown,ppNewObject)
  2641. #endif /* COBJMACROS */
  2642. #endif /* C style interface */
  2643. HRESULT STDMETHODCALLTYPE IWMDMStorageControl2_Insert2_Proxy(
  2644. IWMDMStorageControl2 * This,
  2645. /* [in] */ UINT fuMode,
  2646. /* [unique][in] */ LPWSTR pwszFileSource,
  2647. /* [unique][in] */ LPWSTR pwszFileDest,
  2648. /* [in] */ IWMDMOperation *pOperation,
  2649. /* [in] */ IWMDMProgress *pProgress,
  2650. /* [in] */ IUnknown *pUnknown,
  2651. /* [unique][out][in] */ IWMDMStorage **ppNewObject);
  2652. void __RPC_STUB IWMDMStorageControl2_Insert2_Stub(
  2653. IRpcStubBuffer *This,
  2654. IRpcChannelBuffer *_pRpcChannelBuffer,
  2655. PRPC_MESSAGE _pRpcMessage,
  2656. DWORD *_pdwStubPhase);
  2657. #endif /* __IWMDMStorageControl2_INTERFACE_DEFINED__ */
  2658. #ifndef __IWMDMObjectInfo_INTERFACE_DEFINED__
  2659. #define __IWMDMObjectInfo_INTERFACE_DEFINED__
  2660. /* interface IWMDMObjectInfo */
  2661. /* [unique][uuid][object] */
  2662. EXTERN_C const IID IID_IWMDMObjectInfo;
  2663. #if defined(__cplusplus) && !defined(CINTERFACE)
  2664. MIDL_INTERFACE("1DCB3A09-33ED-11d3-8470-00C04F79DBC0")
  2665. IWMDMObjectInfo : public IUnknown
  2666. {
  2667. public:
  2668. virtual HRESULT STDMETHODCALLTYPE GetPlayLength(
  2669. /* [out] */ DWORD *pdwLength) = 0;
  2670. virtual HRESULT STDMETHODCALLTYPE SetPlayLength(
  2671. /* [in] */ DWORD dwLength) = 0;
  2672. virtual HRESULT STDMETHODCALLTYPE GetPlayOffset(
  2673. /* [out] */ DWORD *pdwOffset) = 0;
  2674. virtual HRESULT STDMETHODCALLTYPE SetPlayOffset(
  2675. /* [in] */ DWORD dwOffset) = 0;
  2676. virtual HRESULT STDMETHODCALLTYPE GetTotalLength(
  2677. /* [out] */ DWORD *pdwLength) = 0;
  2678. virtual HRESULT STDMETHODCALLTYPE GetLastPlayPosition(
  2679. /* [out] */ DWORD *pdwLastPos) = 0;
  2680. virtual HRESULT STDMETHODCALLTYPE GetLongestPlayPosition(
  2681. /* [out] */ DWORD *pdwLongestPos) = 0;
  2682. };
  2683. #else /* C style interface */
  2684. typedef struct IWMDMObjectInfoVtbl
  2685. {
  2686. BEGIN_INTERFACE
  2687. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2688. IWMDMObjectInfo * This,
  2689. /* [in] */ REFIID riid,
  2690. /* [iid_is][out] */ void **ppvObject);
  2691. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2692. IWMDMObjectInfo * This);
  2693. ULONG ( STDMETHODCALLTYPE *Release )(
  2694. IWMDMObjectInfo * This);
  2695. HRESULT ( STDMETHODCALLTYPE *GetPlayLength )(
  2696. IWMDMObjectInfo * This,
  2697. /* [out] */ DWORD *pdwLength);
  2698. HRESULT ( STDMETHODCALLTYPE *SetPlayLength )(
  2699. IWMDMObjectInfo * This,
  2700. /* [in] */ DWORD dwLength);
  2701. HRESULT ( STDMETHODCALLTYPE *GetPlayOffset )(
  2702. IWMDMObjectInfo * This,
  2703. /* [out] */ DWORD *pdwOffset);
  2704. HRESULT ( STDMETHODCALLTYPE *SetPlayOffset )(
  2705. IWMDMObjectInfo * This,
  2706. /* [in] */ DWORD dwOffset);
  2707. HRESULT ( STDMETHODCALLTYPE *GetTotalLength )(
  2708. IWMDMObjectInfo * This,
  2709. /* [out] */ DWORD *pdwLength);
  2710. HRESULT ( STDMETHODCALLTYPE *GetLastPlayPosition )(
  2711. IWMDMObjectInfo * This,
  2712. /* [out] */ DWORD *pdwLastPos);
  2713. HRESULT ( STDMETHODCALLTYPE *GetLongestPlayPosition )(
  2714. IWMDMObjectInfo * This,
  2715. /* [out] */ DWORD *pdwLongestPos);
  2716. END_INTERFACE
  2717. } IWMDMObjectInfoVtbl;
  2718. interface IWMDMObjectInfo
  2719. {
  2720. CONST_VTBL struct IWMDMObjectInfoVtbl *lpVtbl;
  2721. };
  2722. #ifdef COBJMACROS
  2723. #define IWMDMObjectInfo_QueryInterface(This,riid,ppvObject) \
  2724. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2725. #define IWMDMObjectInfo_AddRef(This) \
  2726. (This)->lpVtbl -> AddRef(This)
  2727. #define IWMDMObjectInfo_Release(This) \
  2728. (This)->lpVtbl -> Release(This)
  2729. #define IWMDMObjectInfo_GetPlayLength(This,pdwLength) \
  2730. (This)->lpVtbl -> GetPlayLength(This,pdwLength)
  2731. #define IWMDMObjectInfo_SetPlayLength(This,dwLength) \
  2732. (This)->lpVtbl -> SetPlayLength(This,dwLength)
  2733. #define IWMDMObjectInfo_GetPlayOffset(This,pdwOffset) \
  2734. (This)->lpVtbl -> GetPlayOffset(This,pdwOffset)
  2735. #define IWMDMObjectInfo_SetPlayOffset(This,dwOffset) \
  2736. (This)->lpVtbl -> SetPlayOffset(This,dwOffset)
  2737. #define IWMDMObjectInfo_GetTotalLength(This,pdwLength) \
  2738. (This)->lpVtbl -> GetTotalLength(This,pdwLength)
  2739. #define IWMDMObjectInfo_GetLastPlayPosition(This,pdwLastPos) \
  2740. (This)->lpVtbl -> GetLastPlayPosition(This,pdwLastPos)
  2741. #define IWMDMObjectInfo_GetLongestPlayPosition(This,pdwLongestPos) \
  2742. (This)->lpVtbl -> GetLongestPlayPosition(This,pdwLongestPos)
  2743. #endif /* COBJMACROS */
  2744. #endif /* C style interface */
  2745. HRESULT STDMETHODCALLTYPE IWMDMObjectInfo_GetPlayLength_Proxy(
  2746. IWMDMObjectInfo * This,
  2747. /* [out] */ DWORD *pdwLength);
  2748. void __RPC_STUB IWMDMObjectInfo_GetPlayLength_Stub(
  2749. IRpcStubBuffer *This,
  2750. IRpcChannelBuffer *_pRpcChannelBuffer,
  2751. PRPC_MESSAGE _pRpcMessage,
  2752. DWORD *_pdwStubPhase);
  2753. HRESULT STDMETHODCALLTYPE IWMDMObjectInfo_SetPlayLength_Proxy(
  2754. IWMDMObjectInfo * This,
  2755. /* [in] */ DWORD dwLength);
  2756. void __RPC_STUB IWMDMObjectInfo_SetPlayLength_Stub(
  2757. IRpcStubBuffer *This,
  2758. IRpcChannelBuffer *_pRpcChannelBuffer,
  2759. PRPC_MESSAGE _pRpcMessage,
  2760. DWORD *_pdwStubPhase);
  2761. HRESULT STDMETHODCALLTYPE IWMDMObjectInfo_GetPlayOffset_Proxy(
  2762. IWMDMObjectInfo * This,
  2763. /* [out] */ DWORD *pdwOffset);
  2764. void __RPC_STUB IWMDMObjectInfo_GetPlayOffset_Stub(
  2765. IRpcStubBuffer *This,
  2766. IRpcChannelBuffer *_pRpcChannelBuffer,
  2767. PRPC_MESSAGE _pRpcMessage,
  2768. DWORD *_pdwStubPhase);
  2769. HRESULT STDMETHODCALLTYPE IWMDMObjectInfo_SetPlayOffset_Proxy(
  2770. IWMDMObjectInfo * This,
  2771. /* [in] */ DWORD dwOffset);
  2772. void __RPC_STUB IWMDMObjectInfo_SetPlayOffset_Stub(
  2773. IRpcStubBuffer *This,
  2774. IRpcChannelBuffer *_pRpcChannelBuffer,
  2775. PRPC_MESSAGE _pRpcMessage,
  2776. DWORD *_pdwStubPhase);
  2777. HRESULT STDMETHODCALLTYPE IWMDMObjectInfo_GetTotalLength_Proxy(
  2778. IWMDMObjectInfo * This,
  2779. /* [out] */ DWORD *pdwLength);
  2780. void __RPC_STUB IWMDMObjectInfo_GetTotalLength_Stub(
  2781. IRpcStubBuffer *This,
  2782. IRpcChannelBuffer *_pRpcChannelBuffer,
  2783. PRPC_MESSAGE _pRpcMessage,
  2784. DWORD *_pdwStubPhase);
  2785. HRESULT STDMETHODCALLTYPE IWMDMObjectInfo_GetLastPlayPosition_Proxy(
  2786. IWMDMObjectInfo * This,
  2787. /* [out] */ DWORD *pdwLastPos);
  2788. void __RPC_STUB IWMDMObjectInfo_GetLastPlayPosition_Stub(
  2789. IRpcStubBuffer *This,
  2790. IRpcChannelBuffer *_pRpcChannelBuffer,
  2791. PRPC_MESSAGE _pRpcMessage,
  2792. DWORD *_pdwStubPhase);
  2793. HRESULT STDMETHODCALLTYPE IWMDMObjectInfo_GetLongestPlayPosition_Proxy(
  2794. IWMDMObjectInfo * This,
  2795. /* [out] */ DWORD *pdwLongestPos);
  2796. void __RPC_STUB IWMDMObjectInfo_GetLongestPlayPosition_Stub(
  2797. IRpcStubBuffer *This,
  2798. IRpcChannelBuffer *_pRpcChannelBuffer,
  2799. PRPC_MESSAGE _pRpcMessage,
  2800. DWORD *_pdwStubPhase);
  2801. #endif /* __IWMDMObjectInfo_INTERFACE_DEFINED__ */
  2802. #ifndef __IWMDMRevoked_INTERFACE_DEFINED__
  2803. #define __IWMDMRevoked_INTERFACE_DEFINED__
  2804. /* interface IWMDMRevoked */
  2805. /* [ref][uuid][object] */
  2806. EXTERN_C const IID IID_IWMDMRevoked;
  2807. #if defined(__cplusplus) && !defined(CINTERFACE)
  2808. MIDL_INTERFACE("EBECCEDB-88EE-4e55-B6A4-8D9F07D696AA")
  2809. IWMDMRevoked : public IUnknown
  2810. {
  2811. public:
  2812. virtual HRESULT STDMETHODCALLTYPE GetRevocationURL(
  2813. /* [size_is][size_is][string][out][in] */ LPWSTR *ppwszRevocationURL,
  2814. /* [out][in] */ DWORD *pdwBufferLen,
  2815. /* [out] */ DWORD *pdwRevokedBitFlag) = 0;
  2816. };
  2817. #else /* C style interface */
  2818. typedef struct IWMDMRevokedVtbl
  2819. {
  2820. BEGIN_INTERFACE
  2821. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2822. IWMDMRevoked * This,
  2823. /* [in] */ REFIID riid,
  2824. /* [iid_is][out] */ void **ppvObject);
  2825. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2826. IWMDMRevoked * This);
  2827. ULONG ( STDMETHODCALLTYPE *Release )(
  2828. IWMDMRevoked * This);
  2829. HRESULT ( STDMETHODCALLTYPE *GetRevocationURL )(
  2830. IWMDMRevoked * This,
  2831. /* [size_is][size_is][string][out][in] */ LPWSTR *ppwszRevocationURL,
  2832. /* [out][in] */ DWORD *pdwBufferLen,
  2833. /* [out] */ DWORD *pdwRevokedBitFlag);
  2834. END_INTERFACE
  2835. } IWMDMRevokedVtbl;
  2836. interface IWMDMRevoked
  2837. {
  2838. CONST_VTBL struct IWMDMRevokedVtbl *lpVtbl;
  2839. };
  2840. #ifdef COBJMACROS
  2841. #define IWMDMRevoked_QueryInterface(This,riid,ppvObject) \
  2842. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2843. #define IWMDMRevoked_AddRef(This) \
  2844. (This)->lpVtbl -> AddRef(This)
  2845. #define IWMDMRevoked_Release(This) \
  2846. (This)->lpVtbl -> Release(This)
  2847. #define IWMDMRevoked_GetRevocationURL(This,ppwszRevocationURL,pdwBufferLen,pdwRevokedBitFlag) \
  2848. (This)->lpVtbl -> GetRevocationURL(This,ppwszRevocationURL,pdwBufferLen,pdwRevokedBitFlag)
  2849. #endif /* COBJMACROS */
  2850. #endif /* C style interface */
  2851. HRESULT STDMETHODCALLTYPE IWMDMRevoked_GetRevocationURL_Proxy(
  2852. IWMDMRevoked * This,
  2853. /* [size_is][size_is][string][out][in] */ LPWSTR *ppwszRevocationURL,
  2854. /* [out][in] */ DWORD *pdwBufferLen,
  2855. /* [out] */ DWORD *pdwRevokedBitFlag);
  2856. void __RPC_STUB IWMDMRevoked_GetRevocationURL_Stub(
  2857. IRpcStubBuffer *This,
  2858. IRpcChannelBuffer *_pRpcChannelBuffer,
  2859. PRPC_MESSAGE _pRpcMessage,
  2860. DWORD *_pdwStubPhase);
  2861. #endif /* __IWMDMRevoked_INTERFACE_DEFINED__ */
  2862. /* interface __MIDL_itf_mswmdm_0277 */
  2863. /* [local] */
  2864. // Open Mode Flags
  2865. #define MDSP_READ 0x00000001
  2866. #define MDSP_WRITE 0x00000002
  2867. // Seek Flags
  2868. #define MDSP_SEEK_BOF 0x00000001
  2869. #define MDSP_SEEK_CUR 0x00000002
  2870. #define MDSP_SEEK_EOF 0x00000004
  2871. extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0277_v0_0_c_ifspec;
  2872. extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0277_v0_0_s_ifspec;
  2873. #ifndef __IMDServiceProvider_INTERFACE_DEFINED__
  2874. #define __IMDServiceProvider_INTERFACE_DEFINED__
  2875. /* interface IMDServiceProvider */
  2876. /* [unique][uuid][object] */
  2877. EXTERN_C const IID IID_IMDServiceProvider;
  2878. #if defined(__cplusplus) && !defined(CINTERFACE)
  2879. MIDL_INTERFACE("1DCB3A10-33ED-11d3-8470-00C04F79DBC0")
  2880. IMDServiceProvider : public IUnknown
  2881. {
  2882. public:
  2883. virtual HRESULT STDMETHODCALLTYPE GetDeviceCount(
  2884. /* [out] */ DWORD *pdwCount) = 0;
  2885. virtual HRESULT STDMETHODCALLTYPE EnumDevices(
  2886. /* [out] */ IMDSPEnumDevice **ppEnumDevice) = 0;
  2887. };
  2888. #else /* C style interface */
  2889. typedef struct IMDServiceProviderVtbl
  2890. {
  2891. BEGIN_INTERFACE
  2892. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2893. IMDServiceProvider * This,
  2894. /* [in] */ REFIID riid,
  2895. /* [iid_is][out] */ void **ppvObject);
  2896. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2897. IMDServiceProvider * This);
  2898. ULONG ( STDMETHODCALLTYPE *Release )(
  2899. IMDServiceProvider * This);
  2900. HRESULT ( STDMETHODCALLTYPE *GetDeviceCount )(
  2901. IMDServiceProvider * This,
  2902. /* [out] */ DWORD *pdwCount);
  2903. HRESULT ( STDMETHODCALLTYPE *EnumDevices )(
  2904. IMDServiceProvider * This,
  2905. /* [out] */ IMDSPEnumDevice **ppEnumDevice);
  2906. END_INTERFACE
  2907. } IMDServiceProviderVtbl;
  2908. interface IMDServiceProvider
  2909. {
  2910. CONST_VTBL struct IMDServiceProviderVtbl *lpVtbl;
  2911. };
  2912. #ifdef COBJMACROS
  2913. #define IMDServiceProvider_QueryInterface(This,riid,ppvObject) \
  2914. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2915. #define IMDServiceProvider_AddRef(This) \
  2916. (This)->lpVtbl -> AddRef(This)
  2917. #define IMDServiceProvider_Release(This) \
  2918. (This)->lpVtbl -> Release(This)
  2919. #define IMDServiceProvider_GetDeviceCount(This,pdwCount) \
  2920. (This)->lpVtbl -> GetDeviceCount(This,pdwCount)
  2921. #define IMDServiceProvider_EnumDevices(This,ppEnumDevice) \
  2922. (This)->lpVtbl -> EnumDevices(This,ppEnumDevice)
  2923. #endif /* COBJMACROS */
  2924. #endif /* C style interface */
  2925. HRESULT STDMETHODCALLTYPE IMDServiceProvider_GetDeviceCount_Proxy(
  2926. IMDServiceProvider * This,
  2927. /* [out] */ DWORD *pdwCount);
  2928. void __RPC_STUB IMDServiceProvider_GetDeviceCount_Stub(
  2929. IRpcStubBuffer *This,
  2930. IRpcChannelBuffer *_pRpcChannelBuffer,
  2931. PRPC_MESSAGE _pRpcMessage,
  2932. DWORD *_pdwStubPhase);
  2933. HRESULT STDMETHODCALLTYPE IMDServiceProvider_EnumDevices_Proxy(
  2934. IMDServiceProvider * This,
  2935. /* [out] */ IMDSPEnumDevice **ppEnumDevice);
  2936. void __RPC_STUB IMDServiceProvider_EnumDevices_Stub(
  2937. IRpcStubBuffer *This,
  2938. IRpcChannelBuffer *_pRpcChannelBuffer,
  2939. PRPC_MESSAGE _pRpcMessage,
  2940. DWORD *_pdwStubPhase);
  2941. #endif /* __IMDServiceProvider_INTERFACE_DEFINED__ */
  2942. #ifndef __IMDServiceProvider2_INTERFACE_DEFINED__
  2943. #define __IMDServiceProvider2_INTERFACE_DEFINED__
  2944. /* interface IMDServiceProvider2 */
  2945. /* [unique][uuid][object] */
  2946. EXTERN_C const IID IID_IMDServiceProvider2;
  2947. #if defined(__cplusplus) && !defined(CINTERFACE)
  2948. MIDL_INTERFACE("B2FA24B7-CDA3-4694-9862-413AE1A34819")
  2949. IMDServiceProvider2 : public IMDServiceProvider
  2950. {
  2951. public:
  2952. virtual HRESULT STDMETHODCALLTYPE GetDeviceFromPnPName(
  2953. /* [string][in] */ LPCWSTR pwszPnPName,
  2954. /* [out] */ IMDSPDevice **ppDevice) = 0;
  2955. };
  2956. #else /* C style interface */
  2957. typedef struct IMDServiceProvider2Vtbl
  2958. {
  2959. BEGIN_INTERFACE
  2960. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2961. IMDServiceProvider2 * This,
  2962. /* [in] */ REFIID riid,
  2963. /* [iid_is][out] */ void **ppvObject);
  2964. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2965. IMDServiceProvider2 * This);
  2966. ULONG ( STDMETHODCALLTYPE *Release )(
  2967. IMDServiceProvider2 * This);
  2968. HRESULT ( STDMETHODCALLTYPE *GetDeviceCount )(
  2969. IMDServiceProvider2 * This,
  2970. /* [out] */ DWORD *pdwCount);
  2971. HRESULT ( STDMETHODCALLTYPE *EnumDevices )(
  2972. IMDServiceProvider2 * This,
  2973. /* [out] */ IMDSPEnumDevice **ppEnumDevice);
  2974. HRESULT ( STDMETHODCALLTYPE *GetDeviceFromPnPName )(
  2975. IMDServiceProvider2 * This,
  2976. /* [string][in] */ LPCWSTR pwszPnPName,
  2977. /* [out] */ IMDSPDevice **ppDevice);
  2978. END_INTERFACE
  2979. } IMDServiceProvider2Vtbl;
  2980. interface IMDServiceProvider2
  2981. {
  2982. CONST_VTBL struct IMDServiceProvider2Vtbl *lpVtbl;
  2983. };
  2984. #ifdef COBJMACROS
  2985. #define IMDServiceProvider2_QueryInterface(This,riid,ppvObject) \
  2986. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2987. #define IMDServiceProvider2_AddRef(This) \
  2988. (This)->lpVtbl -> AddRef(This)
  2989. #define IMDServiceProvider2_Release(This) \
  2990. (This)->lpVtbl -> Release(This)
  2991. #define IMDServiceProvider2_GetDeviceCount(This,pdwCount) \
  2992. (This)->lpVtbl -> GetDeviceCount(This,pdwCount)
  2993. #define IMDServiceProvider2_EnumDevices(This,ppEnumDevice) \
  2994. (This)->lpVtbl -> EnumDevices(This,ppEnumDevice)
  2995. #define IMDServiceProvider2_GetDeviceFromPnPName(This,pwszPnPName,ppDevice) \
  2996. (This)->lpVtbl -> GetDeviceFromPnPName(This,pwszPnPName,ppDevice)
  2997. #endif /* COBJMACROS */
  2998. #endif /* C style interface */
  2999. HRESULT STDMETHODCALLTYPE IMDServiceProvider2_GetDeviceFromPnPName_Proxy(
  3000. IMDServiceProvider2 * This,
  3001. /* [string][in] */ LPCWSTR pwszPnPName,
  3002. /* [out] */ IMDSPDevice **ppDevice);
  3003. void __RPC_STUB IMDServiceProvider2_GetDeviceFromPnPName_Stub(
  3004. IRpcStubBuffer *This,
  3005. IRpcChannelBuffer *_pRpcChannelBuffer,
  3006. PRPC_MESSAGE _pRpcMessage,
  3007. DWORD *_pdwStubPhase);
  3008. #endif /* __IMDServiceProvider2_INTERFACE_DEFINED__ */
  3009. #ifndef __IMDSPEnumDevice_INTERFACE_DEFINED__
  3010. #define __IMDSPEnumDevice_INTERFACE_DEFINED__
  3011. /* interface IMDSPEnumDevice */
  3012. /* [unique][uuid][object] */
  3013. EXTERN_C const IID IID_IMDSPEnumDevice;
  3014. #if defined(__cplusplus) && !defined(CINTERFACE)
  3015. MIDL_INTERFACE("1DCB3A11-33ED-11d3-8470-00C04F79DBC0")
  3016. IMDSPEnumDevice : public IUnknown
  3017. {
  3018. public:
  3019. virtual HRESULT STDMETHODCALLTYPE Next(
  3020. /* [in] */ ULONG celt,
  3021. /* [length_is][size_is][out] */ IMDSPDevice **ppDevice,
  3022. /* [out] */ ULONG *pceltFetched) = 0;
  3023. virtual HRESULT STDMETHODCALLTYPE Skip(
  3024. /* [in] */ ULONG celt,
  3025. /* [out] */ ULONG *pceltFetched) = 0;
  3026. virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  3027. virtual HRESULT STDMETHODCALLTYPE Clone(
  3028. /* [out] */ IMDSPEnumDevice **ppEnumDevice) = 0;
  3029. };
  3030. #else /* C style interface */
  3031. typedef struct IMDSPEnumDeviceVtbl
  3032. {
  3033. BEGIN_INTERFACE
  3034. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3035. IMDSPEnumDevice * This,
  3036. /* [in] */ REFIID riid,
  3037. /* [iid_is][out] */ void **ppvObject);
  3038. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3039. IMDSPEnumDevice * This);
  3040. ULONG ( STDMETHODCALLTYPE *Release )(
  3041. IMDSPEnumDevice * This);
  3042. HRESULT ( STDMETHODCALLTYPE *Next )(
  3043. IMDSPEnumDevice * This,
  3044. /* [in] */ ULONG celt,
  3045. /* [length_is][size_is][out] */ IMDSPDevice **ppDevice,
  3046. /* [out] */ ULONG *pceltFetched);
  3047. HRESULT ( STDMETHODCALLTYPE *Skip )(
  3048. IMDSPEnumDevice * This,
  3049. /* [in] */ ULONG celt,
  3050. /* [out] */ ULONG *pceltFetched);
  3051. HRESULT ( STDMETHODCALLTYPE *Reset )(
  3052. IMDSPEnumDevice * This);
  3053. HRESULT ( STDMETHODCALLTYPE *Clone )(
  3054. IMDSPEnumDevice * This,
  3055. /* [out] */ IMDSPEnumDevice **ppEnumDevice);
  3056. END_INTERFACE
  3057. } IMDSPEnumDeviceVtbl;
  3058. interface IMDSPEnumDevice
  3059. {
  3060. CONST_VTBL struct IMDSPEnumDeviceVtbl *lpVtbl;
  3061. };
  3062. #ifdef COBJMACROS
  3063. #define IMDSPEnumDevice_QueryInterface(This,riid,ppvObject) \
  3064. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3065. #define IMDSPEnumDevice_AddRef(This) \
  3066. (This)->lpVtbl -> AddRef(This)
  3067. #define IMDSPEnumDevice_Release(This) \
  3068. (This)->lpVtbl -> Release(This)
  3069. #define IMDSPEnumDevice_Next(This,celt,ppDevice,pceltFetched) \
  3070. (This)->lpVtbl -> Next(This,celt,ppDevice,pceltFetched)
  3071. #define IMDSPEnumDevice_Skip(This,celt,pceltFetched) \
  3072. (This)->lpVtbl -> Skip(This,celt,pceltFetched)
  3073. #define IMDSPEnumDevice_Reset(This) \
  3074. (This)->lpVtbl -> Reset(This)
  3075. #define IMDSPEnumDevice_Clone(This,ppEnumDevice) \
  3076. (This)->lpVtbl -> Clone(This,ppEnumDevice)
  3077. #endif /* COBJMACROS */
  3078. #endif /* C style interface */
  3079. HRESULT STDMETHODCALLTYPE IMDSPEnumDevice_Next_Proxy(
  3080. IMDSPEnumDevice * This,
  3081. /* [in] */ ULONG celt,
  3082. /* [length_is][size_is][out] */ IMDSPDevice **ppDevice,
  3083. /* [out] */ ULONG *pceltFetched);
  3084. void __RPC_STUB IMDSPEnumDevice_Next_Stub(
  3085. IRpcStubBuffer *This,
  3086. IRpcChannelBuffer *_pRpcChannelBuffer,
  3087. PRPC_MESSAGE _pRpcMessage,
  3088. DWORD *_pdwStubPhase);
  3089. HRESULT STDMETHODCALLTYPE IMDSPEnumDevice_Skip_Proxy(
  3090. IMDSPEnumDevice * This,
  3091. /* [in] */ ULONG celt,
  3092. /* [out] */ ULONG *pceltFetched);
  3093. void __RPC_STUB IMDSPEnumDevice_Skip_Stub(
  3094. IRpcStubBuffer *This,
  3095. IRpcChannelBuffer *_pRpcChannelBuffer,
  3096. PRPC_MESSAGE _pRpcMessage,
  3097. DWORD *_pdwStubPhase);
  3098. HRESULT STDMETHODCALLTYPE IMDSPEnumDevice_Reset_Proxy(
  3099. IMDSPEnumDevice * This);
  3100. void __RPC_STUB IMDSPEnumDevice_Reset_Stub(
  3101. IRpcStubBuffer *This,
  3102. IRpcChannelBuffer *_pRpcChannelBuffer,
  3103. PRPC_MESSAGE _pRpcMessage,
  3104. DWORD *_pdwStubPhase);
  3105. HRESULT STDMETHODCALLTYPE IMDSPEnumDevice_Clone_Proxy(
  3106. IMDSPEnumDevice * This,
  3107. /* [out] */ IMDSPEnumDevice **ppEnumDevice);
  3108. void __RPC_STUB IMDSPEnumDevice_Clone_Stub(
  3109. IRpcStubBuffer *This,
  3110. IRpcChannelBuffer *_pRpcChannelBuffer,
  3111. PRPC_MESSAGE _pRpcMessage,
  3112. DWORD *_pdwStubPhase);
  3113. #endif /* __IMDSPEnumDevice_INTERFACE_DEFINED__ */
  3114. #ifndef __IMDSPDevice_INTERFACE_DEFINED__
  3115. #define __IMDSPDevice_INTERFACE_DEFINED__
  3116. /* interface IMDSPDevice */
  3117. /* [unique][uuid][object] */
  3118. EXTERN_C const IID IID_IMDSPDevice;
  3119. #if defined(__cplusplus) && !defined(CINTERFACE)
  3120. MIDL_INTERFACE("1DCB3A12-33ED-11d3-8470-00C04F79DBC0")
  3121. IMDSPDevice : public IUnknown
  3122. {
  3123. public:
  3124. virtual HRESULT STDMETHODCALLTYPE GetName(
  3125. /* [size_is][string][out] */ LPWSTR pwszName,
  3126. /* [in] */ UINT nMaxChars) = 0;
  3127. virtual HRESULT STDMETHODCALLTYPE GetManufacturer(
  3128. /* [size_is][string][out] */ LPWSTR pwszName,
  3129. /* [in] */ UINT nMaxChars) = 0;
  3130. virtual HRESULT STDMETHODCALLTYPE GetVersion(
  3131. /* [out] */ DWORD *pdwVersion) = 0;
  3132. virtual HRESULT STDMETHODCALLTYPE GetType(
  3133. /* [out] */ DWORD *pdwType) = 0;
  3134. virtual HRESULT STDMETHODCALLTYPE GetSerialNumber(
  3135. /* [out] */ PWMDMID pSerialNumber,
  3136. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  3137. virtual HRESULT STDMETHODCALLTYPE GetPowerSource(
  3138. /* [out] */ DWORD *pdwPowerSource,
  3139. /* [out] */ DWORD *pdwPercentRemaining) = 0;
  3140. virtual HRESULT STDMETHODCALLTYPE GetStatus(
  3141. /* [out] */ DWORD *pdwStatus) = 0;
  3142. virtual HRESULT STDMETHODCALLTYPE GetDeviceIcon(
  3143. /* [out] */ ULONG *hIcon) = 0;
  3144. virtual HRESULT STDMETHODCALLTYPE EnumStorage(
  3145. /* [out] */ IMDSPEnumStorage **ppEnumStorage) = 0;
  3146. virtual HRESULT STDMETHODCALLTYPE GetFormatSupport(
  3147. /* [size_is][size_is][out] */ _WAVEFORMATEX **pFormatEx,
  3148. /* [out] */ UINT *pnFormatCount,
  3149. /* [size_is][size_is][out] */ LPWSTR **pppwszMimeType,
  3150. /* [out] */ UINT *pnMimeTypeCount) = 0;
  3151. virtual HRESULT STDMETHODCALLTYPE SendOpaqueCommand(
  3152. /* [out][in] */ OPAQUECOMMAND *pCommand) = 0;
  3153. };
  3154. #else /* C style interface */
  3155. typedef struct IMDSPDeviceVtbl
  3156. {
  3157. BEGIN_INTERFACE
  3158. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3159. IMDSPDevice * This,
  3160. /* [in] */ REFIID riid,
  3161. /* [iid_is][out] */ void **ppvObject);
  3162. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3163. IMDSPDevice * This);
  3164. ULONG ( STDMETHODCALLTYPE *Release )(
  3165. IMDSPDevice * This);
  3166. HRESULT ( STDMETHODCALLTYPE *GetName )(
  3167. IMDSPDevice * This,
  3168. /* [size_is][string][out] */ LPWSTR pwszName,
  3169. /* [in] */ UINT nMaxChars);
  3170. HRESULT ( STDMETHODCALLTYPE *GetManufacturer )(
  3171. IMDSPDevice * This,
  3172. /* [size_is][string][out] */ LPWSTR pwszName,
  3173. /* [in] */ UINT nMaxChars);
  3174. HRESULT ( STDMETHODCALLTYPE *GetVersion )(
  3175. IMDSPDevice * This,
  3176. /* [out] */ DWORD *pdwVersion);
  3177. HRESULT ( STDMETHODCALLTYPE *GetType )(
  3178. IMDSPDevice * This,
  3179. /* [out] */ DWORD *pdwType);
  3180. HRESULT ( STDMETHODCALLTYPE *GetSerialNumber )(
  3181. IMDSPDevice * This,
  3182. /* [out] */ PWMDMID pSerialNumber,
  3183. /* [out][in] */ BYTE abMac[ 8 ]);
  3184. HRESULT ( STDMETHODCALLTYPE *GetPowerSource )(
  3185. IMDSPDevice * This,
  3186. /* [out] */ DWORD *pdwPowerSource,
  3187. /* [out] */ DWORD *pdwPercentRemaining);
  3188. HRESULT ( STDMETHODCALLTYPE *GetStatus )(
  3189. IMDSPDevice * This,
  3190. /* [out] */ DWORD *pdwStatus);
  3191. HRESULT ( STDMETHODCALLTYPE *GetDeviceIcon )(
  3192. IMDSPDevice * This,
  3193. /* [out] */ ULONG *hIcon);
  3194. HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
  3195. IMDSPDevice * This,
  3196. /* [out] */ IMDSPEnumStorage **ppEnumStorage);
  3197. HRESULT ( STDMETHODCALLTYPE *GetFormatSupport )(
  3198. IMDSPDevice * This,
  3199. /* [size_is][size_is][out] */ _WAVEFORMATEX **pFormatEx,
  3200. /* [out] */ UINT *pnFormatCount,
  3201. /* [size_is][size_is][out] */ LPWSTR **pppwszMimeType,
  3202. /* [out] */ UINT *pnMimeTypeCount);
  3203. HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
  3204. IMDSPDevice * This,
  3205. /* [out][in] */ OPAQUECOMMAND *pCommand);
  3206. END_INTERFACE
  3207. } IMDSPDeviceVtbl;
  3208. interface IMDSPDevice
  3209. {
  3210. CONST_VTBL struct IMDSPDeviceVtbl *lpVtbl;
  3211. };
  3212. #ifdef COBJMACROS
  3213. #define IMDSPDevice_QueryInterface(This,riid,ppvObject) \
  3214. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3215. #define IMDSPDevice_AddRef(This) \
  3216. (This)->lpVtbl -> AddRef(This)
  3217. #define IMDSPDevice_Release(This) \
  3218. (This)->lpVtbl -> Release(This)
  3219. #define IMDSPDevice_GetName(This,pwszName,nMaxChars) \
  3220. (This)->lpVtbl -> GetName(This,pwszName,nMaxChars)
  3221. #define IMDSPDevice_GetManufacturer(This,pwszName,nMaxChars) \
  3222. (This)->lpVtbl -> GetManufacturer(This,pwszName,nMaxChars)
  3223. #define IMDSPDevice_GetVersion(This,pdwVersion) \
  3224. (This)->lpVtbl -> GetVersion(This,pdwVersion)
  3225. #define IMDSPDevice_GetType(This,pdwType) \
  3226. (This)->lpVtbl -> GetType(This,pdwType)
  3227. #define IMDSPDevice_GetSerialNumber(This,pSerialNumber,abMac) \
  3228. (This)->lpVtbl -> GetSerialNumber(This,pSerialNumber,abMac)
  3229. #define IMDSPDevice_GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) \
  3230. (This)->lpVtbl -> GetPowerSource(This,pdwPowerSource,pdwPercentRemaining)
  3231. #define IMDSPDevice_GetStatus(This,pdwStatus) \
  3232. (This)->lpVtbl -> GetStatus(This,pdwStatus)
  3233. #define IMDSPDevice_GetDeviceIcon(This,hIcon) \
  3234. (This)->lpVtbl -> GetDeviceIcon(This,hIcon)
  3235. #define IMDSPDevice_EnumStorage(This,ppEnumStorage) \
  3236. (This)->lpVtbl -> EnumStorage(This,ppEnumStorage)
  3237. #define IMDSPDevice_GetFormatSupport(This,pFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) \
  3238. (This)->lpVtbl -> GetFormatSupport(This,pFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount)
  3239. #define IMDSPDevice_SendOpaqueCommand(This,pCommand) \
  3240. (This)->lpVtbl -> SendOpaqueCommand(This,pCommand)
  3241. #endif /* COBJMACROS */
  3242. #endif /* C style interface */
  3243. HRESULT STDMETHODCALLTYPE IMDSPDevice_GetName_Proxy(
  3244. IMDSPDevice * This,
  3245. /* [size_is][string][out] */ LPWSTR pwszName,
  3246. /* [in] */ UINT nMaxChars);
  3247. void __RPC_STUB IMDSPDevice_GetName_Stub(
  3248. IRpcStubBuffer *This,
  3249. IRpcChannelBuffer *_pRpcChannelBuffer,
  3250. PRPC_MESSAGE _pRpcMessage,
  3251. DWORD *_pdwStubPhase);
  3252. HRESULT STDMETHODCALLTYPE IMDSPDevice_GetManufacturer_Proxy(
  3253. IMDSPDevice * This,
  3254. /* [size_is][string][out] */ LPWSTR pwszName,
  3255. /* [in] */ UINT nMaxChars);
  3256. void __RPC_STUB IMDSPDevice_GetManufacturer_Stub(
  3257. IRpcStubBuffer *This,
  3258. IRpcChannelBuffer *_pRpcChannelBuffer,
  3259. PRPC_MESSAGE _pRpcMessage,
  3260. DWORD *_pdwStubPhase);
  3261. HRESULT STDMETHODCALLTYPE IMDSPDevice_GetVersion_Proxy(
  3262. IMDSPDevice * This,
  3263. /* [out] */ DWORD *pdwVersion);
  3264. void __RPC_STUB IMDSPDevice_GetVersion_Stub(
  3265. IRpcStubBuffer *This,
  3266. IRpcChannelBuffer *_pRpcChannelBuffer,
  3267. PRPC_MESSAGE _pRpcMessage,
  3268. DWORD *_pdwStubPhase);
  3269. HRESULT STDMETHODCALLTYPE IMDSPDevice_GetType_Proxy(
  3270. IMDSPDevice * This,
  3271. /* [out] */ DWORD *pdwType);
  3272. void __RPC_STUB IMDSPDevice_GetType_Stub(
  3273. IRpcStubBuffer *This,
  3274. IRpcChannelBuffer *_pRpcChannelBuffer,
  3275. PRPC_MESSAGE _pRpcMessage,
  3276. DWORD *_pdwStubPhase);
  3277. HRESULT STDMETHODCALLTYPE IMDSPDevice_GetSerialNumber_Proxy(
  3278. IMDSPDevice * This,
  3279. /* [out] */ PWMDMID pSerialNumber,
  3280. /* [out][in] */ BYTE abMac[ 8 ]);
  3281. void __RPC_STUB IMDSPDevice_GetSerialNumber_Stub(
  3282. IRpcStubBuffer *This,
  3283. IRpcChannelBuffer *_pRpcChannelBuffer,
  3284. PRPC_MESSAGE _pRpcMessage,
  3285. DWORD *_pdwStubPhase);
  3286. HRESULT STDMETHODCALLTYPE IMDSPDevice_GetPowerSource_Proxy(
  3287. IMDSPDevice * This,
  3288. /* [out] */ DWORD *pdwPowerSource,
  3289. /* [out] */ DWORD *pdwPercentRemaining);
  3290. void __RPC_STUB IMDSPDevice_GetPowerSource_Stub(
  3291. IRpcStubBuffer *This,
  3292. IRpcChannelBuffer *_pRpcChannelBuffer,
  3293. PRPC_MESSAGE _pRpcMessage,
  3294. DWORD *_pdwStubPhase);
  3295. HRESULT STDMETHODCALLTYPE IMDSPDevice_GetStatus_Proxy(
  3296. IMDSPDevice * This,
  3297. /* [out] */ DWORD *pdwStatus);
  3298. void __RPC_STUB IMDSPDevice_GetStatus_Stub(
  3299. IRpcStubBuffer *This,
  3300. IRpcChannelBuffer *_pRpcChannelBuffer,
  3301. PRPC_MESSAGE _pRpcMessage,
  3302. DWORD *_pdwStubPhase);
  3303. HRESULT STDMETHODCALLTYPE IMDSPDevice_GetDeviceIcon_Proxy(
  3304. IMDSPDevice * This,
  3305. /* [out] */ ULONG *hIcon);
  3306. void __RPC_STUB IMDSPDevice_GetDeviceIcon_Stub(
  3307. IRpcStubBuffer *This,
  3308. IRpcChannelBuffer *_pRpcChannelBuffer,
  3309. PRPC_MESSAGE _pRpcMessage,
  3310. DWORD *_pdwStubPhase);
  3311. HRESULT STDMETHODCALLTYPE IMDSPDevice_EnumStorage_Proxy(
  3312. IMDSPDevice * This,
  3313. /* [out] */ IMDSPEnumStorage **ppEnumStorage);
  3314. void __RPC_STUB IMDSPDevice_EnumStorage_Stub(
  3315. IRpcStubBuffer *This,
  3316. IRpcChannelBuffer *_pRpcChannelBuffer,
  3317. PRPC_MESSAGE _pRpcMessage,
  3318. DWORD *_pdwStubPhase);
  3319. HRESULT STDMETHODCALLTYPE IMDSPDevice_GetFormatSupport_Proxy(
  3320. IMDSPDevice * This,
  3321. /* [size_is][size_is][out] */ _WAVEFORMATEX **pFormatEx,
  3322. /* [out] */ UINT *pnFormatCount,
  3323. /* [size_is][size_is][out] */ LPWSTR **pppwszMimeType,
  3324. /* [out] */ UINT *pnMimeTypeCount);
  3325. void __RPC_STUB IMDSPDevice_GetFormatSupport_Stub(
  3326. IRpcStubBuffer *This,
  3327. IRpcChannelBuffer *_pRpcChannelBuffer,
  3328. PRPC_MESSAGE _pRpcMessage,
  3329. DWORD *_pdwStubPhase);
  3330. HRESULT STDMETHODCALLTYPE IMDSPDevice_SendOpaqueCommand_Proxy(
  3331. IMDSPDevice * This,
  3332. /* [out][in] */ OPAQUECOMMAND *pCommand);
  3333. void __RPC_STUB IMDSPDevice_SendOpaqueCommand_Stub(
  3334. IRpcStubBuffer *This,
  3335. IRpcChannelBuffer *_pRpcChannelBuffer,
  3336. PRPC_MESSAGE _pRpcMessage,
  3337. DWORD *_pdwStubPhase);
  3338. #endif /* __IMDSPDevice_INTERFACE_DEFINED__ */
  3339. #ifndef __IMDSPDevice2_INTERFACE_DEFINED__
  3340. #define __IMDSPDevice2_INTERFACE_DEFINED__
  3341. /* interface IMDSPDevice2 */
  3342. /* [unique][uuid][object] */
  3343. EXTERN_C const IID IID_IMDSPDevice2;
  3344. #if defined(__cplusplus) && !defined(CINTERFACE)
  3345. MIDL_INTERFACE("420D16AD-C97D-4e00-82AA-00E9F4335DDD")
  3346. IMDSPDevice2 : public IMDSPDevice
  3347. {
  3348. public:
  3349. virtual HRESULT STDMETHODCALLTYPE GetStorage(
  3350. /* [string][in] */ LPCWSTR pszStorageName,
  3351. /* [out] */ IMDSPStorage **ppStorage) = 0;
  3352. virtual HRESULT STDMETHODCALLTYPE GetFormatSupport2(
  3353. /* [in] */ DWORD dwFlags,
  3354. /* [size_is][size_is][out] */ _WAVEFORMATEX **ppAudioFormatEx,
  3355. /* [ref][out] */ UINT *pnAudioFormatCount,
  3356. /* [size_is][size_is][out] */ _VIDEOINFOHEADER **ppVideoFormatEx,
  3357. /* [ref][out] */ UINT *pnVideoFormatCount,
  3358. /* [size_is][size_is][out] */ WMFILECAPABILITIES **ppFileType,
  3359. /* [ref][out] */ UINT *pnFileTypeCount) = 0;
  3360. virtual HRESULT STDMETHODCALLTYPE GetSpecifyPropertyPages(
  3361. /* [ref][out] */ ISpecifyPropertyPages **ppSpecifyPropPages,
  3362. /* [size_is][size_is][ref][out] */ IUnknown ***pppUnknowns,
  3363. /* [ref][out] */ ULONG *pcUnks) = 0;
  3364. virtual HRESULT STDMETHODCALLTYPE GetPnPName(
  3365. /* [size_is][out] */ LPWSTR pwszPnPName,
  3366. /* [in] */ UINT nMaxChars) = 0;
  3367. };
  3368. #else /* C style interface */
  3369. typedef struct IMDSPDevice2Vtbl
  3370. {
  3371. BEGIN_INTERFACE
  3372. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3373. IMDSPDevice2 * This,
  3374. /* [in] */ REFIID riid,
  3375. /* [iid_is][out] */ void **ppvObject);
  3376. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3377. IMDSPDevice2 * This);
  3378. ULONG ( STDMETHODCALLTYPE *Release )(
  3379. IMDSPDevice2 * This);
  3380. HRESULT ( STDMETHODCALLTYPE *GetName )(
  3381. IMDSPDevice2 * This,
  3382. /* [size_is][string][out] */ LPWSTR pwszName,
  3383. /* [in] */ UINT nMaxChars);
  3384. HRESULT ( STDMETHODCALLTYPE *GetManufacturer )(
  3385. IMDSPDevice2 * This,
  3386. /* [size_is][string][out] */ LPWSTR pwszName,
  3387. /* [in] */ UINT nMaxChars);
  3388. HRESULT ( STDMETHODCALLTYPE *GetVersion )(
  3389. IMDSPDevice2 * This,
  3390. /* [out] */ DWORD *pdwVersion);
  3391. HRESULT ( STDMETHODCALLTYPE *GetType )(
  3392. IMDSPDevice2 * This,
  3393. /* [out] */ DWORD *pdwType);
  3394. HRESULT ( STDMETHODCALLTYPE *GetSerialNumber )(
  3395. IMDSPDevice2 * This,
  3396. /* [out] */ PWMDMID pSerialNumber,
  3397. /* [out][in] */ BYTE abMac[ 8 ]);
  3398. HRESULT ( STDMETHODCALLTYPE *GetPowerSource )(
  3399. IMDSPDevice2 * This,
  3400. /* [out] */ DWORD *pdwPowerSource,
  3401. /* [out] */ DWORD *pdwPercentRemaining);
  3402. HRESULT ( STDMETHODCALLTYPE *GetStatus )(
  3403. IMDSPDevice2 * This,
  3404. /* [out] */ DWORD *pdwStatus);
  3405. HRESULT ( STDMETHODCALLTYPE *GetDeviceIcon )(
  3406. IMDSPDevice2 * This,
  3407. /* [out] */ ULONG *hIcon);
  3408. HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
  3409. IMDSPDevice2 * This,
  3410. /* [out] */ IMDSPEnumStorage **ppEnumStorage);
  3411. HRESULT ( STDMETHODCALLTYPE *GetFormatSupport )(
  3412. IMDSPDevice2 * This,
  3413. /* [size_is][size_is][out] */ _WAVEFORMATEX **pFormatEx,
  3414. /* [out] */ UINT *pnFormatCount,
  3415. /* [size_is][size_is][out] */ LPWSTR **pppwszMimeType,
  3416. /* [out] */ UINT *pnMimeTypeCount);
  3417. HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
  3418. IMDSPDevice2 * This,
  3419. /* [out][in] */ OPAQUECOMMAND *pCommand);
  3420. HRESULT ( STDMETHODCALLTYPE *GetStorage )(
  3421. IMDSPDevice2 * This,
  3422. /* [string][in] */ LPCWSTR pszStorageName,
  3423. /* [out] */ IMDSPStorage **ppStorage);
  3424. HRESULT ( STDMETHODCALLTYPE *GetFormatSupport2 )(
  3425. IMDSPDevice2 * This,
  3426. /* [in] */ DWORD dwFlags,
  3427. /* [size_is][size_is][out] */ _WAVEFORMATEX **ppAudioFormatEx,
  3428. /* [ref][out] */ UINT *pnAudioFormatCount,
  3429. /* [size_is][size_is][out] */ _VIDEOINFOHEADER **ppVideoFormatEx,
  3430. /* [ref][out] */ UINT *pnVideoFormatCount,
  3431. /* [size_is][size_is][out] */ WMFILECAPABILITIES **ppFileType,
  3432. /* [ref][out] */ UINT *pnFileTypeCount);
  3433. HRESULT ( STDMETHODCALLTYPE *GetSpecifyPropertyPages )(
  3434. IMDSPDevice2 * This,
  3435. /* [ref][out] */ ISpecifyPropertyPages **ppSpecifyPropPages,
  3436. /* [size_is][size_is][ref][out] */ IUnknown ***pppUnknowns,
  3437. /* [ref][out] */ ULONG *pcUnks);
  3438. HRESULT ( STDMETHODCALLTYPE *GetPnPName )(
  3439. IMDSPDevice2 * This,
  3440. /* [size_is][out] */ LPWSTR pwszPnPName,
  3441. /* [in] */ UINT nMaxChars);
  3442. END_INTERFACE
  3443. } IMDSPDevice2Vtbl;
  3444. interface IMDSPDevice2
  3445. {
  3446. CONST_VTBL struct IMDSPDevice2Vtbl *lpVtbl;
  3447. };
  3448. #ifdef COBJMACROS
  3449. #define IMDSPDevice2_QueryInterface(This,riid,ppvObject) \
  3450. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3451. #define IMDSPDevice2_AddRef(This) \
  3452. (This)->lpVtbl -> AddRef(This)
  3453. #define IMDSPDevice2_Release(This) \
  3454. (This)->lpVtbl -> Release(This)
  3455. #define IMDSPDevice2_GetName(This,pwszName,nMaxChars) \
  3456. (This)->lpVtbl -> GetName(This,pwszName,nMaxChars)
  3457. #define IMDSPDevice2_GetManufacturer(This,pwszName,nMaxChars) \
  3458. (This)->lpVtbl -> GetManufacturer(This,pwszName,nMaxChars)
  3459. #define IMDSPDevice2_GetVersion(This,pdwVersion) \
  3460. (This)->lpVtbl -> GetVersion(This,pdwVersion)
  3461. #define IMDSPDevice2_GetType(This,pdwType) \
  3462. (This)->lpVtbl -> GetType(This,pdwType)
  3463. #define IMDSPDevice2_GetSerialNumber(This,pSerialNumber,abMac) \
  3464. (This)->lpVtbl -> GetSerialNumber(This,pSerialNumber,abMac)
  3465. #define IMDSPDevice2_GetPowerSource(This,pdwPowerSource,pdwPercentRemaining) \
  3466. (This)->lpVtbl -> GetPowerSource(This,pdwPowerSource,pdwPercentRemaining)
  3467. #define IMDSPDevice2_GetStatus(This,pdwStatus) \
  3468. (This)->lpVtbl -> GetStatus(This,pdwStatus)
  3469. #define IMDSPDevice2_GetDeviceIcon(This,hIcon) \
  3470. (This)->lpVtbl -> GetDeviceIcon(This,hIcon)
  3471. #define IMDSPDevice2_EnumStorage(This,ppEnumStorage) \
  3472. (This)->lpVtbl -> EnumStorage(This,ppEnumStorage)
  3473. #define IMDSPDevice2_GetFormatSupport(This,pFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount) \
  3474. (This)->lpVtbl -> GetFormatSupport(This,pFormatEx,pnFormatCount,pppwszMimeType,pnMimeTypeCount)
  3475. #define IMDSPDevice2_SendOpaqueCommand(This,pCommand) \
  3476. (This)->lpVtbl -> SendOpaqueCommand(This,pCommand)
  3477. #define IMDSPDevice2_GetStorage(This,pszStorageName,ppStorage) \
  3478. (This)->lpVtbl -> GetStorage(This,pszStorageName,ppStorage)
  3479. #define IMDSPDevice2_GetFormatSupport2(This,dwFlags,ppAudioFormatEx,pnAudioFormatCount,ppVideoFormatEx,pnVideoFormatCount,ppFileType,pnFileTypeCount) \
  3480. (This)->lpVtbl -> GetFormatSupport2(This,dwFlags,ppAudioFormatEx,pnAudioFormatCount,ppVideoFormatEx,pnVideoFormatCount,ppFileType,pnFileTypeCount)
  3481. #define IMDSPDevice2_GetSpecifyPropertyPages(This,ppSpecifyPropPages,pppUnknowns,pcUnks) \
  3482. (This)->lpVtbl -> GetSpecifyPropertyPages(This,ppSpecifyPropPages,pppUnknowns,pcUnks)
  3483. #define IMDSPDevice2_GetPnPName(This,pwszPnPName,nMaxChars) \
  3484. (This)->lpVtbl -> GetPnPName(This,pwszPnPName,nMaxChars)
  3485. #endif /* COBJMACROS */
  3486. #endif /* C style interface */
  3487. HRESULT STDMETHODCALLTYPE IMDSPDevice2_GetStorage_Proxy(
  3488. IMDSPDevice2 * This,
  3489. /* [string][in] */ LPCWSTR pszStorageName,
  3490. /* [out] */ IMDSPStorage **ppStorage);
  3491. void __RPC_STUB IMDSPDevice2_GetStorage_Stub(
  3492. IRpcStubBuffer *This,
  3493. IRpcChannelBuffer *_pRpcChannelBuffer,
  3494. PRPC_MESSAGE _pRpcMessage,
  3495. DWORD *_pdwStubPhase);
  3496. HRESULT STDMETHODCALLTYPE IMDSPDevice2_GetFormatSupport2_Proxy(
  3497. IMDSPDevice2 * This,
  3498. /* [in] */ DWORD dwFlags,
  3499. /* [size_is][size_is][out] */ _WAVEFORMATEX **ppAudioFormatEx,
  3500. /* [ref][out] */ UINT *pnAudioFormatCount,
  3501. /* [size_is][size_is][out] */ _VIDEOINFOHEADER **ppVideoFormatEx,
  3502. /* [ref][out] */ UINT *pnVideoFormatCount,
  3503. /* [size_is][size_is][out] */ WMFILECAPABILITIES **ppFileType,
  3504. /* [ref][out] */ UINT *pnFileTypeCount);
  3505. void __RPC_STUB IMDSPDevice2_GetFormatSupport2_Stub(
  3506. IRpcStubBuffer *This,
  3507. IRpcChannelBuffer *_pRpcChannelBuffer,
  3508. PRPC_MESSAGE _pRpcMessage,
  3509. DWORD *_pdwStubPhase);
  3510. HRESULT STDMETHODCALLTYPE IMDSPDevice2_GetSpecifyPropertyPages_Proxy(
  3511. IMDSPDevice2 * This,
  3512. /* [ref][out] */ ISpecifyPropertyPages **ppSpecifyPropPages,
  3513. /* [size_is][size_is][ref][out] */ IUnknown ***pppUnknowns,
  3514. /* [ref][out] */ ULONG *pcUnks);
  3515. void __RPC_STUB IMDSPDevice2_GetSpecifyPropertyPages_Stub(
  3516. IRpcStubBuffer *This,
  3517. IRpcChannelBuffer *_pRpcChannelBuffer,
  3518. PRPC_MESSAGE _pRpcMessage,
  3519. DWORD *_pdwStubPhase);
  3520. HRESULT STDMETHODCALLTYPE IMDSPDevice2_GetPnPName_Proxy(
  3521. IMDSPDevice2 * This,
  3522. /* [size_is][out] */ LPWSTR pwszPnPName,
  3523. /* [in] */ UINT nMaxChars);
  3524. void __RPC_STUB IMDSPDevice2_GetPnPName_Stub(
  3525. IRpcStubBuffer *This,
  3526. IRpcChannelBuffer *_pRpcChannelBuffer,
  3527. PRPC_MESSAGE _pRpcMessage,
  3528. DWORD *_pdwStubPhase);
  3529. #endif /* __IMDSPDevice2_INTERFACE_DEFINED__ */
  3530. #ifndef __IMDSPDeviceControl_INTERFACE_DEFINED__
  3531. #define __IMDSPDeviceControl_INTERFACE_DEFINED__
  3532. /* interface IMDSPDeviceControl */
  3533. /* [unique][uuid][object] */
  3534. EXTERN_C const IID IID_IMDSPDeviceControl;
  3535. #if defined(__cplusplus) && !defined(CINTERFACE)
  3536. MIDL_INTERFACE("1DCB3A14-33ED-11d3-8470-00C04F79DBC0")
  3537. IMDSPDeviceControl : public IUnknown
  3538. {
  3539. public:
  3540. virtual HRESULT STDMETHODCALLTYPE GetDCStatus(
  3541. /* [out] */ DWORD *pdwStatus) = 0;
  3542. virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
  3543. /* [out] */ DWORD *pdwCapabilitiesMask) = 0;
  3544. virtual HRESULT STDMETHODCALLTYPE Play( void) = 0;
  3545. virtual HRESULT STDMETHODCALLTYPE Record(
  3546. /* [in] */ _WAVEFORMATEX *pFormat) = 0;
  3547. virtual HRESULT STDMETHODCALLTYPE Pause( void) = 0;
  3548. virtual HRESULT STDMETHODCALLTYPE Resume( void) = 0;
  3549. virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0;
  3550. virtual HRESULT STDMETHODCALLTYPE Seek(
  3551. /* [in] */ UINT fuMode,
  3552. /* [in] */ int nOffset) = 0;
  3553. };
  3554. #else /* C style interface */
  3555. typedef struct IMDSPDeviceControlVtbl
  3556. {
  3557. BEGIN_INTERFACE
  3558. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3559. IMDSPDeviceControl * This,
  3560. /* [in] */ REFIID riid,
  3561. /* [iid_is][out] */ void **ppvObject);
  3562. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3563. IMDSPDeviceControl * This);
  3564. ULONG ( STDMETHODCALLTYPE *Release )(
  3565. IMDSPDeviceControl * This);
  3566. HRESULT ( STDMETHODCALLTYPE *GetDCStatus )(
  3567. IMDSPDeviceControl * This,
  3568. /* [out] */ DWORD *pdwStatus);
  3569. HRESULT ( STDMETHODCALLTYPE *GetCapabilities )(
  3570. IMDSPDeviceControl * This,
  3571. /* [out] */ DWORD *pdwCapabilitiesMask);
  3572. HRESULT ( STDMETHODCALLTYPE *Play )(
  3573. IMDSPDeviceControl * This);
  3574. HRESULT ( STDMETHODCALLTYPE *Record )(
  3575. IMDSPDeviceControl * This,
  3576. /* [in] */ _WAVEFORMATEX *pFormat);
  3577. HRESULT ( STDMETHODCALLTYPE *Pause )(
  3578. IMDSPDeviceControl * This);
  3579. HRESULT ( STDMETHODCALLTYPE *Resume )(
  3580. IMDSPDeviceControl * This);
  3581. HRESULT ( STDMETHODCALLTYPE *Stop )(
  3582. IMDSPDeviceControl * This);
  3583. HRESULT ( STDMETHODCALLTYPE *Seek )(
  3584. IMDSPDeviceControl * This,
  3585. /* [in] */ UINT fuMode,
  3586. /* [in] */ int nOffset);
  3587. END_INTERFACE
  3588. } IMDSPDeviceControlVtbl;
  3589. interface IMDSPDeviceControl
  3590. {
  3591. CONST_VTBL struct IMDSPDeviceControlVtbl *lpVtbl;
  3592. };
  3593. #ifdef COBJMACROS
  3594. #define IMDSPDeviceControl_QueryInterface(This,riid,ppvObject) \
  3595. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3596. #define IMDSPDeviceControl_AddRef(This) \
  3597. (This)->lpVtbl -> AddRef(This)
  3598. #define IMDSPDeviceControl_Release(This) \
  3599. (This)->lpVtbl -> Release(This)
  3600. #define IMDSPDeviceControl_GetDCStatus(This,pdwStatus) \
  3601. (This)->lpVtbl -> GetDCStatus(This,pdwStatus)
  3602. #define IMDSPDeviceControl_GetCapabilities(This,pdwCapabilitiesMask) \
  3603. (This)->lpVtbl -> GetCapabilities(This,pdwCapabilitiesMask)
  3604. #define IMDSPDeviceControl_Play(This) \
  3605. (This)->lpVtbl -> Play(This)
  3606. #define IMDSPDeviceControl_Record(This,pFormat) \
  3607. (This)->lpVtbl -> Record(This,pFormat)
  3608. #define IMDSPDeviceControl_Pause(This) \
  3609. (This)->lpVtbl -> Pause(This)
  3610. #define IMDSPDeviceControl_Resume(This) \
  3611. (This)->lpVtbl -> Resume(This)
  3612. #define IMDSPDeviceControl_Stop(This) \
  3613. (This)->lpVtbl -> Stop(This)
  3614. #define IMDSPDeviceControl_Seek(This,fuMode,nOffset) \
  3615. (This)->lpVtbl -> Seek(This,fuMode,nOffset)
  3616. #endif /* COBJMACROS */
  3617. #endif /* C style interface */
  3618. HRESULT STDMETHODCALLTYPE IMDSPDeviceControl_GetDCStatus_Proxy(
  3619. IMDSPDeviceControl * This,
  3620. /* [out] */ DWORD *pdwStatus);
  3621. void __RPC_STUB IMDSPDeviceControl_GetDCStatus_Stub(
  3622. IRpcStubBuffer *This,
  3623. IRpcChannelBuffer *_pRpcChannelBuffer,
  3624. PRPC_MESSAGE _pRpcMessage,
  3625. DWORD *_pdwStubPhase);
  3626. HRESULT STDMETHODCALLTYPE IMDSPDeviceControl_GetCapabilities_Proxy(
  3627. IMDSPDeviceControl * This,
  3628. /* [out] */ DWORD *pdwCapabilitiesMask);
  3629. void __RPC_STUB IMDSPDeviceControl_GetCapabilities_Stub(
  3630. IRpcStubBuffer *This,
  3631. IRpcChannelBuffer *_pRpcChannelBuffer,
  3632. PRPC_MESSAGE _pRpcMessage,
  3633. DWORD *_pdwStubPhase);
  3634. HRESULT STDMETHODCALLTYPE IMDSPDeviceControl_Play_Proxy(
  3635. IMDSPDeviceControl * This);
  3636. void __RPC_STUB IMDSPDeviceControl_Play_Stub(
  3637. IRpcStubBuffer *This,
  3638. IRpcChannelBuffer *_pRpcChannelBuffer,
  3639. PRPC_MESSAGE _pRpcMessage,
  3640. DWORD *_pdwStubPhase);
  3641. HRESULT STDMETHODCALLTYPE IMDSPDeviceControl_Record_Proxy(
  3642. IMDSPDeviceControl * This,
  3643. /* [in] */ _WAVEFORMATEX *pFormat);
  3644. void __RPC_STUB IMDSPDeviceControl_Record_Stub(
  3645. IRpcStubBuffer *This,
  3646. IRpcChannelBuffer *_pRpcChannelBuffer,
  3647. PRPC_MESSAGE _pRpcMessage,
  3648. DWORD *_pdwStubPhase);
  3649. HRESULT STDMETHODCALLTYPE IMDSPDeviceControl_Pause_Proxy(
  3650. IMDSPDeviceControl * This);
  3651. void __RPC_STUB IMDSPDeviceControl_Pause_Stub(
  3652. IRpcStubBuffer *This,
  3653. IRpcChannelBuffer *_pRpcChannelBuffer,
  3654. PRPC_MESSAGE _pRpcMessage,
  3655. DWORD *_pdwStubPhase);
  3656. HRESULT STDMETHODCALLTYPE IMDSPDeviceControl_Resume_Proxy(
  3657. IMDSPDeviceControl * This);
  3658. void __RPC_STUB IMDSPDeviceControl_Resume_Stub(
  3659. IRpcStubBuffer *This,
  3660. IRpcChannelBuffer *_pRpcChannelBuffer,
  3661. PRPC_MESSAGE _pRpcMessage,
  3662. DWORD *_pdwStubPhase);
  3663. HRESULT STDMETHODCALLTYPE IMDSPDeviceControl_Stop_Proxy(
  3664. IMDSPDeviceControl * This);
  3665. void __RPC_STUB IMDSPDeviceControl_Stop_Stub(
  3666. IRpcStubBuffer *This,
  3667. IRpcChannelBuffer *_pRpcChannelBuffer,
  3668. PRPC_MESSAGE _pRpcMessage,
  3669. DWORD *_pdwStubPhase);
  3670. HRESULT STDMETHODCALLTYPE IMDSPDeviceControl_Seek_Proxy(
  3671. IMDSPDeviceControl * This,
  3672. /* [in] */ UINT fuMode,
  3673. /* [in] */ int nOffset);
  3674. void __RPC_STUB IMDSPDeviceControl_Seek_Stub(
  3675. IRpcStubBuffer *This,
  3676. IRpcChannelBuffer *_pRpcChannelBuffer,
  3677. PRPC_MESSAGE _pRpcMessage,
  3678. DWORD *_pdwStubPhase);
  3679. #endif /* __IMDSPDeviceControl_INTERFACE_DEFINED__ */
  3680. #ifndef __IMDSPEnumStorage_INTERFACE_DEFINED__
  3681. #define __IMDSPEnumStorage_INTERFACE_DEFINED__
  3682. /* interface IMDSPEnumStorage */
  3683. /* [unique][uuid][object] */
  3684. EXTERN_C const IID IID_IMDSPEnumStorage;
  3685. #if defined(__cplusplus) && !defined(CINTERFACE)
  3686. MIDL_INTERFACE("1DCB3A15-33ED-11d3-8470-00C04F79DBC0")
  3687. IMDSPEnumStorage : public IUnknown
  3688. {
  3689. public:
  3690. virtual HRESULT STDMETHODCALLTYPE Next(
  3691. /* [in] */ ULONG celt,
  3692. /* [length_is][size_is][out] */ IMDSPStorage **ppStorage,
  3693. /* [out] */ ULONG *pceltFetched) = 0;
  3694. virtual HRESULT STDMETHODCALLTYPE Skip(
  3695. /* [in] */ ULONG celt,
  3696. /* [out] */ ULONG *pceltFetched) = 0;
  3697. virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  3698. virtual HRESULT STDMETHODCALLTYPE Clone(
  3699. /* [out] */ IMDSPEnumStorage **ppEnumStorage) = 0;
  3700. };
  3701. #else /* C style interface */
  3702. typedef struct IMDSPEnumStorageVtbl
  3703. {
  3704. BEGIN_INTERFACE
  3705. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3706. IMDSPEnumStorage * This,
  3707. /* [in] */ REFIID riid,
  3708. /* [iid_is][out] */ void **ppvObject);
  3709. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3710. IMDSPEnumStorage * This);
  3711. ULONG ( STDMETHODCALLTYPE *Release )(
  3712. IMDSPEnumStorage * This);
  3713. HRESULT ( STDMETHODCALLTYPE *Next )(
  3714. IMDSPEnumStorage * This,
  3715. /* [in] */ ULONG celt,
  3716. /* [length_is][size_is][out] */ IMDSPStorage **ppStorage,
  3717. /* [out] */ ULONG *pceltFetched);
  3718. HRESULT ( STDMETHODCALLTYPE *Skip )(
  3719. IMDSPEnumStorage * This,
  3720. /* [in] */ ULONG celt,
  3721. /* [out] */ ULONG *pceltFetched);
  3722. HRESULT ( STDMETHODCALLTYPE *Reset )(
  3723. IMDSPEnumStorage * This);
  3724. HRESULT ( STDMETHODCALLTYPE *Clone )(
  3725. IMDSPEnumStorage * This,
  3726. /* [out] */ IMDSPEnumStorage **ppEnumStorage);
  3727. END_INTERFACE
  3728. } IMDSPEnumStorageVtbl;
  3729. interface IMDSPEnumStorage
  3730. {
  3731. CONST_VTBL struct IMDSPEnumStorageVtbl *lpVtbl;
  3732. };
  3733. #ifdef COBJMACROS
  3734. #define IMDSPEnumStorage_QueryInterface(This,riid,ppvObject) \
  3735. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3736. #define IMDSPEnumStorage_AddRef(This) \
  3737. (This)->lpVtbl -> AddRef(This)
  3738. #define IMDSPEnumStorage_Release(This) \
  3739. (This)->lpVtbl -> Release(This)
  3740. #define IMDSPEnumStorage_Next(This,celt,ppStorage,pceltFetched) \
  3741. (This)->lpVtbl -> Next(This,celt,ppStorage,pceltFetched)
  3742. #define IMDSPEnumStorage_Skip(This,celt,pceltFetched) \
  3743. (This)->lpVtbl -> Skip(This,celt,pceltFetched)
  3744. #define IMDSPEnumStorage_Reset(This) \
  3745. (This)->lpVtbl -> Reset(This)
  3746. #define IMDSPEnumStorage_Clone(This,ppEnumStorage) \
  3747. (This)->lpVtbl -> Clone(This,ppEnumStorage)
  3748. #endif /* COBJMACROS */
  3749. #endif /* C style interface */
  3750. HRESULT STDMETHODCALLTYPE IMDSPEnumStorage_Next_Proxy(
  3751. IMDSPEnumStorage * This,
  3752. /* [in] */ ULONG celt,
  3753. /* [length_is][size_is][out] */ IMDSPStorage **ppStorage,
  3754. /* [out] */ ULONG *pceltFetched);
  3755. void __RPC_STUB IMDSPEnumStorage_Next_Stub(
  3756. IRpcStubBuffer *This,
  3757. IRpcChannelBuffer *_pRpcChannelBuffer,
  3758. PRPC_MESSAGE _pRpcMessage,
  3759. DWORD *_pdwStubPhase);
  3760. HRESULT STDMETHODCALLTYPE IMDSPEnumStorage_Skip_Proxy(
  3761. IMDSPEnumStorage * This,
  3762. /* [in] */ ULONG celt,
  3763. /* [out] */ ULONG *pceltFetched);
  3764. void __RPC_STUB IMDSPEnumStorage_Skip_Stub(
  3765. IRpcStubBuffer *This,
  3766. IRpcChannelBuffer *_pRpcChannelBuffer,
  3767. PRPC_MESSAGE _pRpcMessage,
  3768. DWORD *_pdwStubPhase);
  3769. HRESULT STDMETHODCALLTYPE IMDSPEnumStorage_Reset_Proxy(
  3770. IMDSPEnumStorage * This);
  3771. void __RPC_STUB IMDSPEnumStorage_Reset_Stub(
  3772. IRpcStubBuffer *This,
  3773. IRpcChannelBuffer *_pRpcChannelBuffer,
  3774. PRPC_MESSAGE _pRpcMessage,
  3775. DWORD *_pdwStubPhase);
  3776. HRESULT STDMETHODCALLTYPE IMDSPEnumStorage_Clone_Proxy(
  3777. IMDSPEnumStorage * This,
  3778. /* [out] */ IMDSPEnumStorage **ppEnumStorage);
  3779. void __RPC_STUB IMDSPEnumStorage_Clone_Stub(
  3780. IRpcStubBuffer *This,
  3781. IRpcChannelBuffer *_pRpcChannelBuffer,
  3782. PRPC_MESSAGE _pRpcMessage,
  3783. DWORD *_pdwStubPhase);
  3784. #endif /* __IMDSPEnumStorage_INTERFACE_DEFINED__ */
  3785. #ifndef __IMDSPStorage_INTERFACE_DEFINED__
  3786. #define __IMDSPStorage_INTERFACE_DEFINED__
  3787. /* interface IMDSPStorage */
  3788. /* [unique][uuid][object] */
  3789. EXTERN_C const IID IID_IMDSPStorage;
  3790. #if defined(__cplusplus) && !defined(CINTERFACE)
  3791. MIDL_INTERFACE("1DCB3A16-33ED-11d3-8470-00C04F79DBC0")
  3792. IMDSPStorage : public IUnknown
  3793. {
  3794. public:
  3795. virtual HRESULT STDMETHODCALLTYPE SetAttributes(
  3796. /* [in] */ DWORD dwAttributes,
  3797. /* [in] */ _WAVEFORMATEX *pFormat) = 0;
  3798. virtual HRESULT STDMETHODCALLTYPE GetStorageGlobals(
  3799. /* [out] */ IMDSPStorageGlobals **ppStorageGlobals) = 0;
  3800. virtual HRESULT STDMETHODCALLTYPE GetAttributes(
  3801. /* [out] */ DWORD *pdwAttributes,
  3802. /* [out] */ _WAVEFORMATEX *pFormat) = 0;
  3803. virtual HRESULT STDMETHODCALLTYPE GetName(
  3804. /* [size_is][string][out] */ LPWSTR pwszName,
  3805. /* [in] */ UINT nMaxChars) = 0;
  3806. virtual HRESULT STDMETHODCALLTYPE GetDate(
  3807. /* [out] */ PWMDMDATETIME pDateTimeUTC) = 0;
  3808. virtual HRESULT STDMETHODCALLTYPE GetSize(
  3809. /* [out] */ DWORD *pdwSizeLow,
  3810. /* [out] */ DWORD *pdwSizeHigh) = 0;
  3811. virtual HRESULT STDMETHODCALLTYPE GetRights(
  3812. /* [size_is][size_is][out] */ PWMDMRIGHTS *ppRights,
  3813. /* [out] */ UINT *pnRightsCount,
  3814. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  3815. virtual HRESULT STDMETHODCALLTYPE CreateStorage(
  3816. /* [in] */ DWORD dwAttributes,
  3817. /* [unique][in] */ _WAVEFORMATEX *pFormat,
  3818. /* [in] */ LPWSTR pwszName,
  3819. /* [out] */ IMDSPStorage **ppNewStorage) = 0;
  3820. virtual HRESULT STDMETHODCALLTYPE EnumStorage(
  3821. /* [out] */ IMDSPEnumStorage **ppEnumStorage) = 0;
  3822. virtual HRESULT STDMETHODCALLTYPE SendOpaqueCommand(
  3823. /* [out][in] */ OPAQUECOMMAND *pCommand) = 0;
  3824. };
  3825. #else /* C style interface */
  3826. typedef struct IMDSPStorageVtbl
  3827. {
  3828. BEGIN_INTERFACE
  3829. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  3830. IMDSPStorage * This,
  3831. /* [in] */ REFIID riid,
  3832. /* [iid_is][out] */ void **ppvObject);
  3833. ULONG ( STDMETHODCALLTYPE *AddRef )(
  3834. IMDSPStorage * This);
  3835. ULONG ( STDMETHODCALLTYPE *Release )(
  3836. IMDSPStorage * This);
  3837. HRESULT ( STDMETHODCALLTYPE *SetAttributes )(
  3838. IMDSPStorage * This,
  3839. /* [in] */ DWORD dwAttributes,
  3840. /* [in] */ _WAVEFORMATEX *pFormat);
  3841. HRESULT ( STDMETHODCALLTYPE *GetStorageGlobals )(
  3842. IMDSPStorage * This,
  3843. /* [out] */ IMDSPStorageGlobals **ppStorageGlobals);
  3844. HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
  3845. IMDSPStorage * This,
  3846. /* [out] */ DWORD *pdwAttributes,
  3847. /* [out] */ _WAVEFORMATEX *pFormat);
  3848. HRESULT ( STDMETHODCALLTYPE *GetName )(
  3849. IMDSPStorage * This,
  3850. /* [size_is][string][out] */ LPWSTR pwszName,
  3851. /* [in] */ UINT nMaxChars);
  3852. HRESULT ( STDMETHODCALLTYPE *GetDate )(
  3853. IMDSPStorage * This,
  3854. /* [out] */ PWMDMDATETIME pDateTimeUTC);
  3855. HRESULT ( STDMETHODCALLTYPE *GetSize )(
  3856. IMDSPStorage * This,
  3857. /* [out] */ DWORD *pdwSizeLow,
  3858. /* [out] */ DWORD *pdwSizeHigh);
  3859. HRESULT ( STDMETHODCALLTYPE *GetRights )(
  3860. IMDSPStorage * This,
  3861. /* [size_is][size_is][out] */ PWMDMRIGHTS *ppRights,
  3862. /* [out] */ UINT *pnRightsCount,
  3863. /* [out][in] */ BYTE abMac[ 8 ]);
  3864. HRESULT ( STDMETHODCALLTYPE *CreateStorage )(
  3865. IMDSPStorage * This,
  3866. /* [in] */ DWORD dwAttributes,
  3867. /* [unique][in] */ _WAVEFORMATEX *pFormat,
  3868. /* [in] */ LPWSTR pwszName,
  3869. /* [out] */ IMDSPStorage **ppNewStorage);
  3870. HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
  3871. IMDSPStorage * This,
  3872. /* [out] */ IMDSPEnumStorage **ppEnumStorage);
  3873. HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
  3874. IMDSPStorage * This,
  3875. /* [out][in] */ OPAQUECOMMAND *pCommand);
  3876. END_INTERFACE
  3877. } IMDSPStorageVtbl;
  3878. interface IMDSPStorage
  3879. {
  3880. CONST_VTBL struct IMDSPStorageVtbl *lpVtbl;
  3881. };
  3882. #ifdef COBJMACROS
  3883. #define IMDSPStorage_QueryInterface(This,riid,ppvObject) \
  3884. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3885. #define IMDSPStorage_AddRef(This) \
  3886. (This)->lpVtbl -> AddRef(This)
  3887. #define IMDSPStorage_Release(This) \
  3888. (This)->lpVtbl -> Release(This)
  3889. #define IMDSPStorage_SetAttributes(This,dwAttributes,pFormat) \
  3890. (This)->lpVtbl -> SetAttributes(This,dwAttributes,pFormat)
  3891. #define IMDSPStorage_GetStorageGlobals(This,ppStorageGlobals) \
  3892. (This)->lpVtbl -> GetStorageGlobals(This,ppStorageGlobals)
  3893. #define IMDSPStorage_GetAttributes(This,pdwAttributes,pFormat) \
  3894. (This)->lpVtbl -> GetAttributes(This,pdwAttributes,pFormat)
  3895. #define IMDSPStorage_GetName(This,pwszName,nMaxChars) \
  3896. (This)->lpVtbl -> GetName(This,pwszName,nMaxChars)
  3897. #define IMDSPStorage_GetDate(This,pDateTimeUTC) \
  3898. (This)->lpVtbl -> GetDate(This,pDateTimeUTC)
  3899. #define IMDSPStorage_GetSize(This,pdwSizeLow,pdwSizeHigh) \
  3900. (This)->lpVtbl -> GetSize(This,pdwSizeLow,pdwSizeHigh)
  3901. #define IMDSPStorage_GetRights(This,ppRights,pnRightsCount,abMac) \
  3902. (This)->lpVtbl -> GetRights(This,ppRights,pnRightsCount,abMac)
  3903. #define IMDSPStorage_CreateStorage(This,dwAttributes,pFormat,pwszName,ppNewStorage) \
  3904. (This)->lpVtbl -> CreateStorage(This,dwAttributes,pFormat,pwszName,ppNewStorage)
  3905. #define IMDSPStorage_EnumStorage(This,ppEnumStorage) \
  3906. (This)->lpVtbl -> EnumStorage(This,ppEnumStorage)
  3907. #define IMDSPStorage_SendOpaqueCommand(This,pCommand) \
  3908. (This)->lpVtbl -> SendOpaqueCommand(This,pCommand)
  3909. #endif /* COBJMACROS */
  3910. #endif /* C style interface */
  3911. HRESULT STDMETHODCALLTYPE IMDSPStorage_SetAttributes_Proxy(
  3912. IMDSPStorage * This,
  3913. /* [in] */ DWORD dwAttributes,
  3914. /* [in] */ _WAVEFORMATEX *pFormat);
  3915. void __RPC_STUB IMDSPStorage_SetAttributes_Stub(
  3916. IRpcStubBuffer *This,
  3917. IRpcChannelBuffer *_pRpcChannelBuffer,
  3918. PRPC_MESSAGE _pRpcMessage,
  3919. DWORD *_pdwStubPhase);
  3920. HRESULT STDMETHODCALLTYPE IMDSPStorage_GetStorageGlobals_Proxy(
  3921. IMDSPStorage * This,
  3922. /* [out] */ IMDSPStorageGlobals **ppStorageGlobals);
  3923. void __RPC_STUB IMDSPStorage_GetStorageGlobals_Stub(
  3924. IRpcStubBuffer *This,
  3925. IRpcChannelBuffer *_pRpcChannelBuffer,
  3926. PRPC_MESSAGE _pRpcMessage,
  3927. DWORD *_pdwStubPhase);
  3928. HRESULT STDMETHODCALLTYPE IMDSPStorage_GetAttributes_Proxy(
  3929. IMDSPStorage * This,
  3930. /* [out] */ DWORD *pdwAttributes,
  3931. /* [out] */ _WAVEFORMATEX *pFormat);
  3932. void __RPC_STUB IMDSPStorage_GetAttributes_Stub(
  3933. IRpcStubBuffer *This,
  3934. IRpcChannelBuffer *_pRpcChannelBuffer,
  3935. PRPC_MESSAGE _pRpcMessage,
  3936. DWORD *_pdwStubPhase);
  3937. HRESULT STDMETHODCALLTYPE IMDSPStorage_GetName_Proxy(
  3938. IMDSPStorage * This,
  3939. /* [size_is][string][out] */ LPWSTR pwszName,
  3940. /* [in] */ UINT nMaxChars);
  3941. void __RPC_STUB IMDSPStorage_GetName_Stub(
  3942. IRpcStubBuffer *This,
  3943. IRpcChannelBuffer *_pRpcChannelBuffer,
  3944. PRPC_MESSAGE _pRpcMessage,
  3945. DWORD *_pdwStubPhase);
  3946. HRESULT STDMETHODCALLTYPE IMDSPStorage_GetDate_Proxy(
  3947. IMDSPStorage * This,
  3948. /* [out] */ PWMDMDATETIME pDateTimeUTC);
  3949. void __RPC_STUB IMDSPStorage_GetDate_Stub(
  3950. IRpcStubBuffer *This,
  3951. IRpcChannelBuffer *_pRpcChannelBuffer,
  3952. PRPC_MESSAGE _pRpcMessage,
  3953. DWORD *_pdwStubPhase);
  3954. HRESULT STDMETHODCALLTYPE IMDSPStorage_GetSize_Proxy(
  3955. IMDSPStorage * This,
  3956. /* [out] */ DWORD *pdwSizeLow,
  3957. /* [out] */ DWORD *pdwSizeHigh);
  3958. void __RPC_STUB IMDSPStorage_GetSize_Stub(
  3959. IRpcStubBuffer *This,
  3960. IRpcChannelBuffer *_pRpcChannelBuffer,
  3961. PRPC_MESSAGE _pRpcMessage,
  3962. DWORD *_pdwStubPhase);
  3963. HRESULT STDMETHODCALLTYPE IMDSPStorage_GetRights_Proxy(
  3964. IMDSPStorage * This,
  3965. /* [size_is][size_is][out] */ PWMDMRIGHTS *ppRights,
  3966. /* [out] */ UINT *pnRightsCount,
  3967. /* [out][in] */ BYTE abMac[ 8 ]);
  3968. void __RPC_STUB IMDSPStorage_GetRights_Stub(
  3969. IRpcStubBuffer *This,
  3970. IRpcChannelBuffer *_pRpcChannelBuffer,
  3971. PRPC_MESSAGE _pRpcMessage,
  3972. DWORD *_pdwStubPhase);
  3973. HRESULT STDMETHODCALLTYPE IMDSPStorage_CreateStorage_Proxy(
  3974. IMDSPStorage * This,
  3975. /* [in] */ DWORD dwAttributes,
  3976. /* [unique][in] */ _WAVEFORMATEX *pFormat,
  3977. /* [in] */ LPWSTR pwszName,
  3978. /* [out] */ IMDSPStorage **ppNewStorage);
  3979. void __RPC_STUB IMDSPStorage_CreateStorage_Stub(
  3980. IRpcStubBuffer *This,
  3981. IRpcChannelBuffer *_pRpcChannelBuffer,
  3982. PRPC_MESSAGE _pRpcMessage,
  3983. DWORD *_pdwStubPhase);
  3984. HRESULT STDMETHODCALLTYPE IMDSPStorage_EnumStorage_Proxy(
  3985. IMDSPStorage * This,
  3986. /* [out] */ IMDSPEnumStorage **ppEnumStorage);
  3987. void __RPC_STUB IMDSPStorage_EnumStorage_Stub(
  3988. IRpcStubBuffer *This,
  3989. IRpcChannelBuffer *_pRpcChannelBuffer,
  3990. PRPC_MESSAGE _pRpcMessage,
  3991. DWORD *_pdwStubPhase);
  3992. HRESULT STDMETHODCALLTYPE IMDSPStorage_SendOpaqueCommand_Proxy(
  3993. IMDSPStorage * This,
  3994. /* [out][in] */ OPAQUECOMMAND *pCommand);
  3995. void __RPC_STUB IMDSPStorage_SendOpaqueCommand_Stub(
  3996. IRpcStubBuffer *This,
  3997. IRpcChannelBuffer *_pRpcChannelBuffer,
  3998. PRPC_MESSAGE _pRpcMessage,
  3999. DWORD *_pdwStubPhase);
  4000. #endif /* __IMDSPStorage_INTERFACE_DEFINED__ */
  4001. #ifndef __IMDSPStorage2_INTERFACE_DEFINED__
  4002. #define __IMDSPStorage2_INTERFACE_DEFINED__
  4003. /* interface IMDSPStorage2 */
  4004. /* [unique][uuid][object] */
  4005. EXTERN_C const IID IID_IMDSPStorage2;
  4006. #if defined(__cplusplus) && !defined(CINTERFACE)
  4007. MIDL_INTERFACE("0A5E07A5-6454-4451-9C36-1C6AE7E2B1D6")
  4008. IMDSPStorage2 : public IMDSPStorage
  4009. {
  4010. public:
  4011. virtual HRESULT STDMETHODCALLTYPE GetStorage(
  4012. /* [string][in] */ LPCWSTR pszStorageName,
  4013. /* [out] */ IMDSPStorage **ppStorage) = 0;
  4014. virtual HRESULT STDMETHODCALLTYPE CreateStorage2(
  4015. /* [in] */ DWORD dwAttributes,
  4016. /* [in] */ DWORD dwAttributesEx,
  4017. /* [unique][in] */ _WAVEFORMATEX *pAudioFormat,
  4018. /* [unique][in] */ _VIDEOINFOHEADER *pVideoFormat,
  4019. /* [in] */ LPWSTR pwszName,
  4020. /* [in] */ ULONGLONG qwFileSize,
  4021. /* [out] */ IMDSPStorage **ppNewStorage) = 0;
  4022. virtual HRESULT STDMETHODCALLTYPE SetAttributes2(
  4023. /* [in] */ DWORD dwAttributes,
  4024. /* [in] */ DWORD dwAttributesEx,
  4025. /* [in] */ _WAVEFORMATEX *pAudioFormat,
  4026. /* [in] */ _VIDEOINFOHEADER *pVideoFormat) = 0;
  4027. virtual HRESULT STDMETHODCALLTYPE GetAttributes2(
  4028. /* [out] */ DWORD *pdwAttributes,
  4029. /* [out] */ DWORD *pdwAttributesEx,
  4030. /* [out] */ _WAVEFORMATEX *pAudioFormat,
  4031. /* [out] */ _VIDEOINFOHEADER *pVideoFormat) = 0;
  4032. };
  4033. #else /* C style interface */
  4034. typedef struct IMDSPStorage2Vtbl
  4035. {
  4036. BEGIN_INTERFACE
  4037. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4038. IMDSPStorage2 * This,
  4039. /* [in] */ REFIID riid,
  4040. /* [iid_is][out] */ void **ppvObject);
  4041. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4042. IMDSPStorage2 * This);
  4043. ULONG ( STDMETHODCALLTYPE *Release )(
  4044. IMDSPStorage2 * This);
  4045. HRESULT ( STDMETHODCALLTYPE *SetAttributes )(
  4046. IMDSPStorage2 * This,
  4047. /* [in] */ DWORD dwAttributes,
  4048. /* [in] */ _WAVEFORMATEX *pFormat);
  4049. HRESULT ( STDMETHODCALLTYPE *GetStorageGlobals )(
  4050. IMDSPStorage2 * This,
  4051. /* [out] */ IMDSPStorageGlobals **ppStorageGlobals);
  4052. HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
  4053. IMDSPStorage2 * This,
  4054. /* [out] */ DWORD *pdwAttributes,
  4055. /* [out] */ _WAVEFORMATEX *pFormat);
  4056. HRESULT ( STDMETHODCALLTYPE *GetName )(
  4057. IMDSPStorage2 * This,
  4058. /* [size_is][string][out] */ LPWSTR pwszName,
  4059. /* [in] */ UINT nMaxChars);
  4060. HRESULT ( STDMETHODCALLTYPE *GetDate )(
  4061. IMDSPStorage2 * This,
  4062. /* [out] */ PWMDMDATETIME pDateTimeUTC);
  4063. HRESULT ( STDMETHODCALLTYPE *GetSize )(
  4064. IMDSPStorage2 * This,
  4065. /* [out] */ DWORD *pdwSizeLow,
  4066. /* [out] */ DWORD *pdwSizeHigh);
  4067. HRESULT ( STDMETHODCALLTYPE *GetRights )(
  4068. IMDSPStorage2 * This,
  4069. /* [size_is][size_is][out] */ PWMDMRIGHTS *ppRights,
  4070. /* [out] */ UINT *pnRightsCount,
  4071. /* [out][in] */ BYTE abMac[ 8 ]);
  4072. HRESULT ( STDMETHODCALLTYPE *CreateStorage )(
  4073. IMDSPStorage2 * This,
  4074. /* [in] */ DWORD dwAttributes,
  4075. /* [unique][in] */ _WAVEFORMATEX *pFormat,
  4076. /* [in] */ LPWSTR pwszName,
  4077. /* [out] */ IMDSPStorage **ppNewStorage);
  4078. HRESULT ( STDMETHODCALLTYPE *EnumStorage )(
  4079. IMDSPStorage2 * This,
  4080. /* [out] */ IMDSPEnumStorage **ppEnumStorage);
  4081. HRESULT ( STDMETHODCALLTYPE *SendOpaqueCommand )(
  4082. IMDSPStorage2 * This,
  4083. /* [out][in] */ OPAQUECOMMAND *pCommand);
  4084. HRESULT ( STDMETHODCALLTYPE *GetStorage )(
  4085. IMDSPStorage2 * This,
  4086. /* [string][in] */ LPCWSTR pszStorageName,
  4087. /* [out] */ IMDSPStorage **ppStorage);
  4088. HRESULT ( STDMETHODCALLTYPE *CreateStorage2 )(
  4089. IMDSPStorage2 * This,
  4090. /* [in] */ DWORD dwAttributes,
  4091. /* [in] */ DWORD dwAttributesEx,
  4092. /* [unique][in] */ _WAVEFORMATEX *pAudioFormat,
  4093. /* [unique][in] */ _VIDEOINFOHEADER *pVideoFormat,
  4094. /* [in] */ LPWSTR pwszName,
  4095. /* [in] */ ULONGLONG qwFileSize,
  4096. /* [out] */ IMDSPStorage **ppNewStorage);
  4097. HRESULT ( STDMETHODCALLTYPE *SetAttributes2 )(
  4098. IMDSPStorage2 * This,
  4099. /* [in] */ DWORD dwAttributes,
  4100. /* [in] */ DWORD dwAttributesEx,
  4101. /* [in] */ _WAVEFORMATEX *pAudioFormat,
  4102. /* [in] */ _VIDEOINFOHEADER *pVideoFormat);
  4103. HRESULT ( STDMETHODCALLTYPE *GetAttributes2 )(
  4104. IMDSPStorage2 * This,
  4105. /* [out] */ DWORD *pdwAttributes,
  4106. /* [out] */ DWORD *pdwAttributesEx,
  4107. /* [out] */ _WAVEFORMATEX *pAudioFormat,
  4108. /* [out] */ _VIDEOINFOHEADER *pVideoFormat);
  4109. END_INTERFACE
  4110. } IMDSPStorage2Vtbl;
  4111. interface IMDSPStorage2
  4112. {
  4113. CONST_VTBL struct IMDSPStorage2Vtbl *lpVtbl;
  4114. };
  4115. #ifdef COBJMACROS
  4116. #define IMDSPStorage2_QueryInterface(This,riid,ppvObject) \
  4117. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4118. #define IMDSPStorage2_AddRef(This) \
  4119. (This)->lpVtbl -> AddRef(This)
  4120. #define IMDSPStorage2_Release(This) \
  4121. (This)->lpVtbl -> Release(This)
  4122. #define IMDSPStorage2_SetAttributes(This,dwAttributes,pFormat) \
  4123. (This)->lpVtbl -> SetAttributes(This,dwAttributes,pFormat)
  4124. #define IMDSPStorage2_GetStorageGlobals(This,ppStorageGlobals) \
  4125. (This)->lpVtbl -> GetStorageGlobals(This,ppStorageGlobals)
  4126. #define IMDSPStorage2_GetAttributes(This,pdwAttributes,pFormat) \
  4127. (This)->lpVtbl -> GetAttributes(This,pdwAttributes,pFormat)
  4128. #define IMDSPStorage2_GetName(This,pwszName,nMaxChars) \
  4129. (This)->lpVtbl -> GetName(This,pwszName,nMaxChars)
  4130. #define IMDSPStorage2_GetDate(This,pDateTimeUTC) \
  4131. (This)->lpVtbl -> GetDate(This,pDateTimeUTC)
  4132. #define IMDSPStorage2_GetSize(This,pdwSizeLow,pdwSizeHigh) \
  4133. (This)->lpVtbl -> GetSize(This,pdwSizeLow,pdwSizeHigh)
  4134. #define IMDSPStorage2_GetRights(This,ppRights,pnRightsCount,abMac) \
  4135. (This)->lpVtbl -> GetRights(This,ppRights,pnRightsCount,abMac)
  4136. #define IMDSPStorage2_CreateStorage(This,dwAttributes,pFormat,pwszName,ppNewStorage) \
  4137. (This)->lpVtbl -> CreateStorage(This,dwAttributes,pFormat,pwszName,ppNewStorage)
  4138. #define IMDSPStorage2_EnumStorage(This,ppEnumStorage) \
  4139. (This)->lpVtbl -> EnumStorage(This,ppEnumStorage)
  4140. #define IMDSPStorage2_SendOpaqueCommand(This,pCommand) \
  4141. (This)->lpVtbl -> SendOpaqueCommand(This,pCommand)
  4142. #define IMDSPStorage2_GetStorage(This,pszStorageName,ppStorage) \
  4143. (This)->lpVtbl -> GetStorage(This,pszStorageName,ppStorage)
  4144. #define IMDSPStorage2_CreateStorage2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat,pwszName,qwFileSize,ppNewStorage) \
  4145. (This)->lpVtbl -> CreateStorage2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat,pwszName,qwFileSize,ppNewStorage)
  4146. #define IMDSPStorage2_SetAttributes2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat) \
  4147. (This)->lpVtbl -> SetAttributes2(This,dwAttributes,dwAttributesEx,pAudioFormat,pVideoFormat)
  4148. #define IMDSPStorage2_GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat) \
  4149. (This)->lpVtbl -> GetAttributes2(This,pdwAttributes,pdwAttributesEx,pAudioFormat,pVideoFormat)
  4150. #endif /* COBJMACROS */
  4151. #endif /* C style interface */
  4152. HRESULT STDMETHODCALLTYPE IMDSPStorage2_GetStorage_Proxy(
  4153. IMDSPStorage2 * This,
  4154. /* [string][in] */ LPCWSTR pszStorageName,
  4155. /* [out] */ IMDSPStorage **ppStorage);
  4156. void __RPC_STUB IMDSPStorage2_GetStorage_Stub(
  4157. IRpcStubBuffer *This,
  4158. IRpcChannelBuffer *_pRpcChannelBuffer,
  4159. PRPC_MESSAGE _pRpcMessage,
  4160. DWORD *_pdwStubPhase);
  4161. HRESULT STDMETHODCALLTYPE IMDSPStorage2_CreateStorage2_Proxy(
  4162. IMDSPStorage2 * This,
  4163. /* [in] */ DWORD dwAttributes,
  4164. /* [in] */ DWORD dwAttributesEx,
  4165. /* [unique][in] */ _WAVEFORMATEX *pAudioFormat,
  4166. /* [unique][in] */ _VIDEOINFOHEADER *pVideoFormat,
  4167. /* [in] */ LPWSTR pwszName,
  4168. /* [in] */ ULONGLONG qwFileSize,
  4169. /* [out] */ IMDSPStorage **ppNewStorage);
  4170. void __RPC_STUB IMDSPStorage2_CreateStorage2_Stub(
  4171. IRpcStubBuffer *This,
  4172. IRpcChannelBuffer *_pRpcChannelBuffer,
  4173. PRPC_MESSAGE _pRpcMessage,
  4174. DWORD *_pdwStubPhase);
  4175. HRESULT STDMETHODCALLTYPE IMDSPStorage2_SetAttributes2_Proxy(
  4176. IMDSPStorage2 * This,
  4177. /* [in] */ DWORD dwAttributes,
  4178. /* [in] */ DWORD dwAttributesEx,
  4179. /* [in] */ _WAVEFORMATEX *pAudioFormat,
  4180. /* [in] */ _VIDEOINFOHEADER *pVideoFormat);
  4181. void __RPC_STUB IMDSPStorage2_SetAttributes2_Stub(
  4182. IRpcStubBuffer *This,
  4183. IRpcChannelBuffer *_pRpcChannelBuffer,
  4184. PRPC_MESSAGE _pRpcMessage,
  4185. DWORD *_pdwStubPhase);
  4186. HRESULT STDMETHODCALLTYPE IMDSPStorage2_GetAttributes2_Proxy(
  4187. IMDSPStorage2 * This,
  4188. /* [out] */ DWORD *pdwAttributes,
  4189. /* [out] */ DWORD *pdwAttributesEx,
  4190. /* [out] */ _WAVEFORMATEX *pAudioFormat,
  4191. /* [out] */ _VIDEOINFOHEADER *pVideoFormat);
  4192. void __RPC_STUB IMDSPStorage2_GetAttributes2_Stub(
  4193. IRpcStubBuffer *This,
  4194. IRpcChannelBuffer *_pRpcChannelBuffer,
  4195. PRPC_MESSAGE _pRpcMessage,
  4196. DWORD *_pdwStubPhase);
  4197. #endif /* __IMDSPStorage2_INTERFACE_DEFINED__ */
  4198. #ifndef __IMDSPStorageGlobals_INTERFACE_DEFINED__
  4199. #define __IMDSPStorageGlobals_INTERFACE_DEFINED__
  4200. /* interface IMDSPStorageGlobals */
  4201. /* [unique][uuid][object] */
  4202. EXTERN_C const IID IID_IMDSPStorageGlobals;
  4203. #if defined(__cplusplus) && !defined(CINTERFACE)
  4204. MIDL_INTERFACE("1DCB3A17-33ED-11d3-8470-00C04F79DBC0")
  4205. IMDSPStorageGlobals : public IUnknown
  4206. {
  4207. public:
  4208. virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
  4209. /* [out] */ DWORD *pdwCapabilities) = 0;
  4210. virtual HRESULT STDMETHODCALLTYPE GetSerialNumber(
  4211. /* [out] */ PWMDMID pSerialNum,
  4212. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  4213. virtual HRESULT STDMETHODCALLTYPE GetTotalSize(
  4214. /* [out] */ DWORD *pdwTotalSizeLow,
  4215. /* [out] */ DWORD *pdwTotalSizeHigh) = 0;
  4216. virtual HRESULT STDMETHODCALLTYPE GetTotalFree(
  4217. /* [out] */ DWORD *pdwFreeLow,
  4218. /* [out] */ DWORD *pdwFreeHigh) = 0;
  4219. virtual HRESULT STDMETHODCALLTYPE GetTotalBad(
  4220. /* [out] */ DWORD *pdwBadLow,
  4221. /* [out] */ DWORD *pdwBadHigh) = 0;
  4222. virtual HRESULT STDMETHODCALLTYPE GetStatus(
  4223. /* [out] */ DWORD *pdwStatus) = 0;
  4224. virtual HRESULT STDMETHODCALLTYPE Initialize(
  4225. /* [in] */ UINT fuMode,
  4226. /* [in] */ IWMDMProgress *pProgress) = 0;
  4227. virtual HRESULT STDMETHODCALLTYPE GetDevice(
  4228. /* [out] */ IMDSPDevice **ppDevice) = 0;
  4229. virtual HRESULT STDMETHODCALLTYPE GetRootStorage(
  4230. /* [out] */ IMDSPStorage **ppRoot) = 0;
  4231. };
  4232. #else /* C style interface */
  4233. typedef struct IMDSPStorageGlobalsVtbl
  4234. {
  4235. BEGIN_INTERFACE
  4236. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4237. IMDSPStorageGlobals * This,
  4238. /* [in] */ REFIID riid,
  4239. /* [iid_is][out] */ void **ppvObject);
  4240. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4241. IMDSPStorageGlobals * This);
  4242. ULONG ( STDMETHODCALLTYPE *Release )(
  4243. IMDSPStorageGlobals * This);
  4244. HRESULT ( STDMETHODCALLTYPE *GetCapabilities )(
  4245. IMDSPStorageGlobals * This,
  4246. /* [out] */ DWORD *pdwCapabilities);
  4247. HRESULT ( STDMETHODCALLTYPE *GetSerialNumber )(
  4248. IMDSPStorageGlobals * This,
  4249. /* [out] */ PWMDMID pSerialNum,
  4250. /* [out][in] */ BYTE abMac[ 8 ]);
  4251. HRESULT ( STDMETHODCALLTYPE *GetTotalSize )(
  4252. IMDSPStorageGlobals * This,
  4253. /* [out] */ DWORD *pdwTotalSizeLow,
  4254. /* [out] */ DWORD *pdwTotalSizeHigh);
  4255. HRESULT ( STDMETHODCALLTYPE *GetTotalFree )(
  4256. IMDSPStorageGlobals * This,
  4257. /* [out] */ DWORD *pdwFreeLow,
  4258. /* [out] */ DWORD *pdwFreeHigh);
  4259. HRESULT ( STDMETHODCALLTYPE *GetTotalBad )(
  4260. IMDSPStorageGlobals * This,
  4261. /* [out] */ DWORD *pdwBadLow,
  4262. /* [out] */ DWORD *pdwBadHigh);
  4263. HRESULT ( STDMETHODCALLTYPE *GetStatus )(
  4264. IMDSPStorageGlobals * This,
  4265. /* [out] */ DWORD *pdwStatus);
  4266. HRESULT ( STDMETHODCALLTYPE *Initialize )(
  4267. IMDSPStorageGlobals * This,
  4268. /* [in] */ UINT fuMode,
  4269. /* [in] */ IWMDMProgress *pProgress);
  4270. HRESULT ( STDMETHODCALLTYPE *GetDevice )(
  4271. IMDSPStorageGlobals * This,
  4272. /* [out] */ IMDSPDevice **ppDevice);
  4273. HRESULT ( STDMETHODCALLTYPE *GetRootStorage )(
  4274. IMDSPStorageGlobals * This,
  4275. /* [out] */ IMDSPStorage **ppRoot);
  4276. END_INTERFACE
  4277. } IMDSPStorageGlobalsVtbl;
  4278. interface IMDSPStorageGlobals
  4279. {
  4280. CONST_VTBL struct IMDSPStorageGlobalsVtbl *lpVtbl;
  4281. };
  4282. #ifdef COBJMACROS
  4283. #define IMDSPStorageGlobals_QueryInterface(This,riid,ppvObject) \
  4284. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4285. #define IMDSPStorageGlobals_AddRef(This) \
  4286. (This)->lpVtbl -> AddRef(This)
  4287. #define IMDSPStorageGlobals_Release(This) \
  4288. (This)->lpVtbl -> Release(This)
  4289. #define IMDSPStorageGlobals_GetCapabilities(This,pdwCapabilities) \
  4290. (This)->lpVtbl -> GetCapabilities(This,pdwCapabilities)
  4291. #define IMDSPStorageGlobals_GetSerialNumber(This,pSerialNum,abMac) \
  4292. (This)->lpVtbl -> GetSerialNumber(This,pSerialNum,abMac)
  4293. #define IMDSPStorageGlobals_GetTotalSize(This,pdwTotalSizeLow,pdwTotalSizeHigh) \
  4294. (This)->lpVtbl -> GetTotalSize(This,pdwTotalSizeLow,pdwTotalSizeHigh)
  4295. #define IMDSPStorageGlobals_GetTotalFree(This,pdwFreeLow,pdwFreeHigh) \
  4296. (This)->lpVtbl -> GetTotalFree(This,pdwFreeLow,pdwFreeHigh)
  4297. #define IMDSPStorageGlobals_GetTotalBad(This,pdwBadLow,pdwBadHigh) \
  4298. (This)->lpVtbl -> GetTotalBad(This,pdwBadLow,pdwBadHigh)
  4299. #define IMDSPStorageGlobals_GetStatus(This,pdwStatus) \
  4300. (This)->lpVtbl -> GetStatus(This,pdwStatus)
  4301. #define IMDSPStorageGlobals_Initialize(This,fuMode,pProgress) \
  4302. (This)->lpVtbl -> Initialize(This,fuMode,pProgress)
  4303. #define IMDSPStorageGlobals_GetDevice(This,ppDevice) \
  4304. (This)->lpVtbl -> GetDevice(This,ppDevice)
  4305. #define IMDSPStorageGlobals_GetRootStorage(This,ppRoot) \
  4306. (This)->lpVtbl -> GetRootStorage(This,ppRoot)
  4307. #endif /* COBJMACROS */
  4308. #endif /* C style interface */
  4309. HRESULT STDMETHODCALLTYPE IMDSPStorageGlobals_GetCapabilities_Proxy(
  4310. IMDSPStorageGlobals * This,
  4311. /* [out] */ DWORD *pdwCapabilities);
  4312. void __RPC_STUB IMDSPStorageGlobals_GetCapabilities_Stub(
  4313. IRpcStubBuffer *This,
  4314. IRpcChannelBuffer *_pRpcChannelBuffer,
  4315. PRPC_MESSAGE _pRpcMessage,
  4316. DWORD *_pdwStubPhase);
  4317. HRESULT STDMETHODCALLTYPE IMDSPStorageGlobals_GetSerialNumber_Proxy(
  4318. IMDSPStorageGlobals * This,
  4319. /* [out] */ PWMDMID pSerialNum,
  4320. /* [out][in] */ BYTE abMac[ 8 ]);
  4321. void __RPC_STUB IMDSPStorageGlobals_GetSerialNumber_Stub(
  4322. IRpcStubBuffer *This,
  4323. IRpcChannelBuffer *_pRpcChannelBuffer,
  4324. PRPC_MESSAGE _pRpcMessage,
  4325. DWORD *_pdwStubPhase);
  4326. HRESULT STDMETHODCALLTYPE IMDSPStorageGlobals_GetTotalSize_Proxy(
  4327. IMDSPStorageGlobals * This,
  4328. /* [out] */ DWORD *pdwTotalSizeLow,
  4329. /* [out] */ DWORD *pdwTotalSizeHigh);
  4330. void __RPC_STUB IMDSPStorageGlobals_GetTotalSize_Stub(
  4331. IRpcStubBuffer *This,
  4332. IRpcChannelBuffer *_pRpcChannelBuffer,
  4333. PRPC_MESSAGE _pRpcMessage,
  4334. DWORD *_pdwStubPhase);
  4335. HRESULT STDMETHODCALLTYPE IMDSPStorageGlobals_GetTotalFree_Proxy(
  4336. IMDSPStorageGlobals * This,
  4337. /* [out] */ DWORD *pdwFreeLow,
  4338. /* [out] */ DWORD *pdwFreeHigh);
  4339. void __RPC_STUB IMDSPStorageGlobals_GetTotalFree_Stub(
  4340. IRpcStubBuffer *This,
  4341. IRpcChannelBuffer *_pRpcChannelBuffer,
  4342. PRPC_MESSAGE _pRpcMessage,
  4343. DWORD *_pdwStubPhase);
  4344. HRESULT STDMETHODCALLTYPE IMDSPStorageGlobals_GetTotalBad_Proxy(
  4345. IMDSPStorageGlobals * This,
  4346. /* [out] */ DWORD *pdwBadLow,
  4347. /* [out] */ DWORD *pdwBadHigh);
  4348. void __RPC_STUB IMDSPStorageGlobals_GetTotalBad_Stub(
  4349. IRpcStubBuffer *This,
  4350. IRpcChannelBuffer *_pRpcChannelBuffer,
  4351. PRPC_MESSAGE _pRpcMessage,
  4352. DWORD *_pdwStubPhase);
  4353. HRESULT STDMETHODCALLTYPE IMDSPStorageGlobals_GetStatus_Proxy(
  4354. IMDSPStorageGlobals * This,
  4355. /* [out] */ DWORD *pdwStatus);
  4356. void __RPC_STUB IMDSPStorageGlobals_GetStatus_Stub(
  4357. IRpcStubBuffer *This,
  4358. IRpcChannelBuffer *_pRpcChannelBuffer,
  4359. PRPC_MESSAGE _pRpcMessage,
  4360. DWORD *_pdwStubPhase);
  4361. HRESULT STDMETHODCALLTYPE IMDSPStorageGlobals_Initialize_Proxy(
  4362. IMDSPStorageGlobals * This,
  4363. /* [in] */ UINT fuMode,
  4364. /* [in] */ IWMDMProgress *pProgress);
  4365. void __RPC_STUB IMDSPStorageGlobals_Initialize_Stub(
  4366. IRpcStubBuffer *This,
  4367. IRpcChannelBuffer *_pRpcChannelBuffer,
  4368. PRPC_MESSAGE _pRpcMessage,
  4369. DWORD *_pdwStubPhase);
  4370. HRESULT STDMETHODCALLTYPE IMDSPStorageGlobals_GetDevice_Proxy(
  4371. IMDSPStorageGlobals * This,
  4372. /* [out] */ IMDSPDevice **ppDevice);
  4373. void __RPC_STUB IMDSPStorageGlobals_GetDevice_Stub(
  4374. IRpcStubBuffer *This,
  4375. IRpcChannelBuffer *_pRpcChannelBuffer,
  4376. PRPC_MESSAGE _pRpcMessage,
  4377. DWORD *_pdwStubPhase);
  4378. HRESULT STDMETHODCALLTYPE IMDSPStorageGlobals_GetRootStorage_Proxy(
  4379. IMDSPStorageGlobals * This,
  4380. /* [out] */ IMDSPStorage **ppRoot);
  4381. void __RPC_STUB IMDSPStorageGlobals_GetRootStorage_Stub(
  4382. IRpcStubBuffer *This,
  4383. IRpcChannelBuffer *_pRpcChannelBuffer,
  4384. PRPC_MESSAGE _pRpcMessage,
  4385. DWORD *_pdwStubPhase);
  4386. #endif /* __IMDSPStorageGlobals_INTERFACE_DEFINED__ */
  4387. #ifndef __IMDSPObjectInfo_INTERFACE_DEFINED__
  4388. #define __IMDSPObjectInfo_INTERFACE_DEFINED__
  4389. /* interface IMDSPObjectInfo */
  4390. /* [unique][uuid][object] */
  4391. EXTERN_C const IID IID_IMDSPObjectInfo;
  4392. #if defined(__cplusplus) && !defined(CINTERFACE)
  4393. MIDL_INTERFACE("1DCB3A19-33ED-11d3-8470-00C04F79DBC0")
  4394. IMDSPObjectInfo : public IUnknown
  4395. {
  4396. public:
  4397. virtual HRESULT STDMETHODCALLTYPE GetPlayLength(
  4398. /* [out] */ DWORD *pdwLength) = 0;
  4399. virtual HRESULT STDMETHODCALLTYPE SetPlayLength(
  4400. /* [in] */ DWORD dwLength) = 0;
  4401. virtual HRESULT STDMETHODCALLTYPE GetPlayOffset(
  4402. /* [out] */ DWORD *pdwOffset) = 0;
  4403. virtual HRESULT STDMETHODCALLTYPE SetPlayOffset(
  4404. /* [in] */ DWORD dwOffset) = 0;
  4405. virtual HRESULT STDMETHODCALLTYPE GetTotalLength(
  4406. /* [out] */ DWORD *pdwLength) = 0;
  4407. virtual HRESULT STDMETHODCALLTYPE GetLastPlayPosition(
  4408. /* [out] */ DWORD *pdwLastPos) = 0;
  4409. virtual HRESULT STDMETHODCALLTYPE GetLongestPlayPosition(
  4410. /* [out] */ DWORD *pdwLongestPos) = 0;
  4411. };
  4412. #else /* C style interface */
  4413. typedef struct IMDSPObjectInfoVtbl
  4414. {
  4415. BEGIN_INTERFACE
  4416. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4417. IMDSPObjectInfo * This,
  4418. /* [in] */ REFIID riid,
  4419. /* [iid_is][out] */ void **ppvObject);
  4420. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4421. IMDSPObjectInfo * This);
  4422. ULONG ( STDMETHODCALLTYPE *Release )(
  4423. IMDSPObjectInfo * This);
  4424. HRESULT ( STDMETHODCALLTYPE *GetPlayLength )(
  4425. IMDSPObjectInfo * This,
  4426. /* [out] */ DWORD *pdwLength);
  4427. HRESULT ( STDMETHODCALLTYPE *SetPlayLength )(
  4428. IMDSPObjectInfo * This,
  4429. /* [in] */ DWORD dwLength);
  4430. HRESULT ( STDMETHODCALLTYPE *GetPlayOffset )(
  4431. IMDSPObjectInfo * This,
  4432. /* [out] */ DWORD *pdwOffset);
  4433. HRESULT ( STDMETHODCALLTYPE *SetPlayOffset )(
  4434. IMDSPObjectInfo * This,
  4435. /* [in] */ DWORD dwOffset);
  4436. HRESULT ( STDMETHODCALLTYPE *GetTotalLength )(
  4437. IMDSPObjectInfo * This,
  4438. /* [out] */ DWORD *pdwLength);
  4439. HRESULT ( STDMETHODCALLTYPE *GetLastPlayPosition )(
  4440. IMDSPObjectInfo * This,
  4441. /* [out] */ DWORD *pdwLastPos);
  4442. HRESULT ( STDMETHODCALLTYPE *GetLongestPlayPosition )(
  4443. IMDSPObjectInfo * This,
  4444. /* [out] */ DWORD *pdwLongestPos);
  4445. END_INTERFACE
  4446. } IMDSPObjectInfoVtbl;
  4447. interface IMDSPObjectInfo
  4448. {
  4449. CONST_VTBL struct IMDSPObjectInfoVtbl *lpVtbl;
  4450. };
  4451. #ifdef COBJMACROS
  4452. #define IMDSPObjectInfo_QueryInterface(This,riid,ppvObject) \
  4453. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4454. #define IMDSPObjectInfo_AddRef(This) \
  4455. (This)->lpVtbl -> AddRef(This)
  4456. #define IMDSPObjectInfo_Release(This) \
  4457. (This)->lpVtbl -> Release(This)
  4458. #define IMDSPObjectInfo_GetPlayLength(This,pdwLength) \
  4459. (This)->lpVtbl -> GetPlayLength(This,pdwLength)
  4460. #define IMDSPObjectInfo_SetPlayLength(This,dwLength) \
  4461. (This)->lpVtbl -> SetPlayLength(This,dwLength)
  4462. #define IMDSPObjectInfo_GetPlayOffset(This,pdwOffset) \
  4463. (This)->lpVtbl -> GetPlayOffset(This,pdwOffset)
  4464. #define IMDSPObjectInfo_SetPlayOffset(This,dwOffset) \
  4465. (This)->lpVtbl -> SetPlayOffset(This,dwOffset)
  4466. #define IMDSPObjectInfo_GetTotalLength(This,pdwLength) \
  4467. (This)->lpVtbl -> GetTotalLength(This,pdwLength)
  4468. #define IMDSPObjectInfo_GetLastPlayPosition(This,pdwLastPos) \
  4469. (This)->lpVtbl -> GetLastPlayPosition(This,pdwLastPos)
  4470. #define IMDSPObjectInfo_GetLongestPlayPosition(This,pdwLongestPos) \
  4471. (This)->lpVtbl -> GetLongestPlayPosition(This,pdwLongestPos)
  4472. #endif /* COBJMACROS */
  4473. #endif /* C style interface */
  4474. HRESULT STDMETHODCALLTYPE IMDSPObjectInfo_GetPlayLength_Proxy(
  4475. IMDSPObjectInfo * This,
  4476. /* [out] */ DWORD *pdwLength);
  4477. void __RPC_STUB IMDSPObjectInfo_GetPlayLength_Stub(
  4478. IRpcStubBuffer *This,
  4479. IRpcChannelBuffer *_pRpcChannelBuffer,
  4480. PRPC_MESSAGE _pRpcMessage,
  4481. DWORD *_pdwStubPhase);
  4482. HRESULT STDMETHODCALLTYPE IMDSPObjectInfo_SetPlayLength_Proxy(
  4483. IMDSPObjectInfo * This,
  4484. /* [in] */ DWORD dwLength);
  4485. void __RPC_STUB IMDSPObjectInfo_SetPlayLength_Stub(
  4486. IRpcStubBuffer *This,
  4487. IRpcChannelBuffer *_pRpcChannelBuffer,
  4488. PRPC_MESSAGE _pRpcMessage,
  4489. DWORD *_pdwStubPhase);
  4490. HRESULT STDMETHODCALLTYPE IMDSPObjectInfo_GetPlayOffset_Proxy(
  4491. IMDSPObjectInfo * This,
  4492. /* [out] */ DWORD *pdwOffset);
  4493. void __RPC_STUB IMDSPObjectInfo_GetPlayOffset_Stub(
  4494. IRpcStubBuffer *This,
  4495. IRpcChannelBuffer *_pRpcChannelBuffer,
  4496. PRPC_MESSAGE _pRpcMessage,
  4497. DWORD *_pdwStubPhase);
  4498. HRESULT STDMETHODCALLTYPE IMDSPObjectInfo_SetPlayOffset_Proxy(
  4499. IMDSPObjectInfo * This,
  4500. /* [in] */ DWORD dwOffset);
  4501. void __RPC_STUB IMDSPObjectInfo_SetPlayOffset_Stub(
  4502. IRpcStubBuffer *This,
  4503. IRpcChannelBuffer *_pRpcChannelBuffer,
  4504. PRPC_MESSAGE _pRpcMessage,
  4505. DWORD *_pdwStubPhase);
  4506. HRESULT STDMETHODCALLTYPE IMDSPObjectInfo_GetTotalLength_Proxy(
  4507. IMDSPObjectInfo * This,
  4508. /* [out] */ DWORD *pdwLength);
  4509. void __RPC_STUB IMDSPObjectInfo_GetTotalLength_Stub(
  4510. IRpcStubBuffer *This,
  4511. IRpcChannelBuffer *_pRpcChannelBuffer,
  4512. PRPC_MESSAGE _pRpcMessage,
  4513. DWORD *_pdwStubPhase);
  4514. HRESULT STDMETHODCALLTYPE IMDSPObjectInfo_GetLastPlayPosition_Proxy(
  4515. IMDSPObjectInfo * This,
  4516. /* [out] */ DWORD *pdwLastPos);
  4517. void __RPC_STUB IMDSPObjectInfo_GetLastPlayPosition_Stub(
  4518. IRpcStubBuffer *This,
  4519. IRpcChannelBuffer *_pRpcChannelBuffer,
  4520. PRPC_MESSAGE _pRpcMessage,
  4521. DWORD *_pdwStubPhase);
  4522. HRESULT STDMETHODCALLTYPE IMDSPObjectInfo_GetLongestPlayPosition_Proxy(
  4523. IMDSPObjectInfo * This,
  4524. /* [out] */ DWORD *pdwLongestPos);
  4525. void __RPC_STUB IMDSPObjectInfo_GetLongestPlayPosition_Stub(
  4526. IRpcStubBuffer *This,
  4527. IRpcChannelBuffer *_pRpcChannelBuffer,
  4528. PRPC_MESSAGE _pRpcMessage,
  4529. DWORD *_pdwStubPhase);
  4530. #endif /* __IMDSPObjectInfo_INTERFACE_DEFINED__ */
  4531. #ifndef __IMDSPObject_INTERFACE_DEFINED__
  4532. #define __IMDSPObject_INTERFACE_DEFINED__
  4533. /* interface IMDSPObject */
  4534. /* [unique][uuid][object] */
  4535. EXTERN_C const IID IID_IMDSPObject;
  4536. #if defined(__cplusplus) && !defined(CINTERFACE)
  4537. MIDL_INTERFACE("1DCB3A18-33ED-11d3-8470-00C04F79DBC0")
  4538. IMDSPObject : public IUnknown
  4539. {
  4540. public:
  4541. virtual HRESULT STDMETHODCALLTYPE Open(
  4542. /* [in] */ UINT fuMode) = 0;
  4543. virtual HRESULT STDMETHODCALLTYPE Read(
  4544. /* [size_is][out] */ BYTE *pData,
  4545. /* [out][in] */ DWORD *pdwSize,
  4546. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  4547. virtual HRESULT STDMETHODCALLTYPE Write(
  4548. /* [size_is][in] */ BYTE *pData,
  4549. /* [out][in] */ DWORD *pdwSize,
  4550. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  4551. virtual HRESULT STDMETHODCALLTYPE Delete(
  4552. /* [in] */ UINT fuMode,
  4553. /* [in] */ IWMDMProgress *pProgress) = 0;
  4554. virtual HRESULT STDMETHODCALLTYPE Seek(
  4555. /* [in] */ UINT fuFlags,
  4556. /* [in] */ DWORD dwOffset) = 0;
  4557. virtual HRESULT STDMETHODCALLTYPE Rename(
  4558. /* [in] */ LPWSTR pwszNewName,
  4559. /* [in] */ IWMDMProgress *pProgress) = 0;
  4560. virtual HRESULT STDMETHODCALLTYPE Move(
  4561. /* [in] */ UINT fuMode,
  4562. /* [in] */ IWMDMProgress *pProgress,
  4563. /* [in] */ IMDSPStorage *pTarget) = 0;
  4564. virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
  4565. };
  4566. #else /* C style interface */
  4567. typedef struct IMDSPObjectVtbl
  4568. {
  4569. BEGIN_INTERFACE
  4570. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4571. IMDSPObject * This,
  4572. /* [in] */ REFIID riid,
  4573. /* [iid_is][out] */ void **ppvObject);
  4574. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4575. IMDSPObject * This);
  4576. ULONG ( STDMETHODCALLTYPE *Release )(
  4577. IMDSPObject * This);
  4578. HRESULT ( STDMETHODCALLTYPE *Open )(
  4579. IMDSPObject * This,
  4580. /* [in] */ UINT fuMode);
  4581. HRESULT ( STDMETHODCALLTYPE *Read )(
  4582. IMDSPObject * This,
  4583. /* [size_is][out] */ BYTE *pData,
  4584. /* [out][in] */ DWORD *pdwSize,
  4585. /* [out][in] */ BYTE abMac[ 8 ]);
  4586. HRESULT ( STDMETHODCALLTYPE *Write )(
  4587. IMDSPObject * This,
  4588. /* [size_is][in] */ BYTE *pData,
  4589. /* [out][in] */ DWORD *pdwSize,
  4590. /* [out][in] */ BYTE abMac[ 8 ]);
  4591. HRESULT ( STDMETHODCALLTYPE *Delete )(
  4592. IMDSPObject * This,
  4593. /* [in] */ UINT fuMode,
  4594. /* [in] */ IWMDMProgress *pProgress);
  4595. HRESULT ( STDMETHODCALLTYPE *Seek )(
  4596. IMDSPObject * This,
  4597. /* [in] */ UINT fuFlags,
  4598. /* [in] */ DWORD dwOffset);
  4599. HRESULT ( STDMETHODCALLTYPE *Rename )(
  4600. IMDSPObject * This,
  4601. /* [in] */ LPWSTR pwszNewName,
  4602. /* [in] */ IWMDMProgress *pProgress);
  4603. HRESULT ( STDMETHODCALLTYPE *Move )(
  4604. IMDSPObject * This,
  4605. /* [in] */ UINT fuMode,
  4606. /* [in] */ IWMDMProgress *pProgress,
  4607. /* [in] */ IMDSPStorage *pTarget);
  4608. HRESULT ( STDMETHODCALLTYPE *Close )(
  4609. IMDSPObject * This);
  4610. END_INTERFACE
  4611. } IMDSPObjectVtbl;
  4612. interface IMDSPObject
  4613. {
  4614. CONST_VTBL struct IMDSPObjectVtbl *lpVtbl;
  4615. };
  4616. #ifdef COBJMACROS
  4617. #define IMDSPObject_QueryInterface(This,riid,ppvObject) \
  4618. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4619. #define IMDSPObject_AddRef(This) \
  4620. (This)->lpVtbl -> AddRef(This)
  4621. #define IMDSPObject_Release(This) \
  4622. (This)->lpVtbl -> Release(This)
  4623. #define IMDSPObject_Open(This,fuMode) \
  4624. (This)->lpVtbl -> Open(This,fuMode)
  4625. #define IMDSPObject_Read(This,pData,pdwSize,abMac) \
  4626. (This)->lpVtbl -> Read(This,pData,pdwSize,abMac)
  4627. #define IMDSPObject_Write(This,pData,pdwSize,abMac) \
  4628. (This)->lpVtbl -> Write(This,pData,pdwSize,abMac)
  4629. #define IMDSPObject_Delete(This,fuMode,pProgress) \
  4630. (This)->lpVtbl -> Delete(This,fuMode,pProgress)
  4631. #define IMDSPObject_Seek(This,fuFlags,dwOffset) \
  4632. (This)->lpVtbl -> Seek(This,fuFlags,dwOffset)
  4633. #define IMDSPObject_Rename(This,pwszNewName,pProgress) \
  4634. (This)->lpVtbl -> Rename(This,pwszNewName,pProgress)
  4635. #define IMDSPObject_Move(This,fuMode,pProgress,pTarget) \
  4636. (This)->lpVtbl -> Move(This,fuMode,pProgress,pTarget)
  4637. #define IMDSPObject_Close(This) \
  4638. (This)->lpVtbl -> Close(This)
  4639. #endif /* COBJMACROS */
  4640. #endif /* C style interface */
  4641. HRESULT STDMETHODCALLTYPE IMDSPObject_Open_Proxy(
  4642. IMDSPObject * This,
  4643. /* [in] */ UINT fuMode);
  4644. void __RPC_STUB IMDSPObject_Open_Stub(
  4645. IRpcStubBuffer *This,
  4646. IRpcChannelBuffer *_pRpcChannelBuffer,
  4647. PRPC_MESSAGE _pRpcMessage,
  4648. DWORD *_pdwStubPhase);
  4649. HRESULT STDMETHODCALLTYPE IMDSPObject_Read_Proxy(
  4650. IMDSPObject * This,
  4651. /* [size_is][out] */ BYTE *pData,
  4652. /* [out][in] */ DWORD *pdwSize,
  4653. /* [out][in] */ BYTE abMac[ 8 ]);
  4654. void __RPC_STUB IMDSPObject_Read_Stub(
  4655. IRpcStubBuffer *This,
  4656. IRpcChannelBuffer *_pRpcChannelBuffer,
  4657. PRPC_MESSAGE _pRpcMessage,
  4658. DWORD *_pdwStubPhase);
  4659. HRESULT STDMETHODCALLTYPE IMDSPObject_Write_Proxy(
  4660. IMDSPObject * This,
  4661. /* [size_is][in] */ BYTE *pData,
  4662. /* [out][in] */ DWORD *pdwSize,
  4663. /* [out][in] */ BYTE abMac[ 8 ]);
  4664. void __RPC_STUB IMDSPObject_Write_Stub(
  4665. IRpcStubBuffer *This,
  4666. IRpcChannelBuffer *_pRpcChannelBuffer,
  4667. PRPC_MESSAGE _pRpcMessage,
  4668. DWORD *_pdwStubPhase);
  4669. HRESULT STDMETHODCALLTYPE IMDSPObject_Delete_Proxy(
  4670. IMDSPObject * This,
  4671. /* [in] */ UINT fuMode,
  4672. /* [in] */ IWMDMProgress *pProgress);
  4673. void __RPC_STUB IMDSPObject_Delete_Stub(
  4674. IRpcStubBuffer *This,
  4675. IRpcChannelBuffer *_pRpcChannelBuffer,
  4676. PRPC_MESSAGE _pRpcMessage,
  4677. DWORD *_pdwStubPhase);
  4678. HRESULT STDMETHODCALLTYPE IMDSPObject_Seek_Proxy(
  4679. IMDSPObject * This,
  4680. /* [in] */ UINT fuFlags,
  4681. /* [in] */ DWORD dwOffset);
  4682. void __RPC_STUB IMDSPObject_Seek_Stub(
  4683. IRpcStubBuffer *This,
  4684. IRpcChannelBuffer *_pRpcChannelBuffer,
  4685. PRPC_MESSAGE _pRpcMessage,
  4686. DWORD *_pdwStubPhase);
  4687. HRESULT STDMETHODCALLTYPE IMDSPObject_Rename_Proxy(
  4688. IMDSPObject * This,
  4689. /* [in] */ LPWSTR pwszNewName,
  4690. /* [in] */ IWMDMProgress *pProgress);
  4691. void __RPC_STUB IMDSPObject_Rename_Stub(
  4692. IRpcStubBuffer *This,
  4693. IRpcChannelBuffer *_pRpcChannelBuffer,
  4694. PRPC_MESSAGE _pRpcMessage,
  4695. DWORD *_pdwStubPhase);
  4696. HRESULT STDMETHODCALLTYPE IMDSPObject_Move_Proxy(
  4697. IMDSPObject * This,
  4698. /* [in] */ UINT fuMode,
  4699. /* [in] */ IWMDMProgress *pProgress,
  4700. /* [in] */ IMDSPStorage *pTarget);
  4701. void __RPC_STUB IMDSPObject_Move_Stub(
  4702. IRpcStubBuffer *This,
  4703. IRpcChannelBuffer *_pRpcChannelBuffer,
  4704. PRPC_MESSAGE _pRpcMessage,
  4705. DWORD *_pdwStubPhase);
  4706. HRESULT STDMETHODCALLTYPE IMDSPObject_Close_Proxy(
  4707. IMDSPObject * This);
  4708. void __RPC_STUB IMDSPObject_Close_Stub(
  4709. IRpcStubBuffer *This,
  4710. IRpcChannelBuffer *_pRpcChannelBuffer,
  4711. PRPC_MESSAGE _pRpcMessage,
  4712. DWORD *_pdwStubPhase);
  4713. #endif /* __IMDSPObject_INTERFACE_DEFINED__ */
  4714. #ifndef __IMDSPRevoked_INTERFACE_DEFINED__
  4715. #define __IMDSPRevoked_INTERFACE_DEFINED__
  4716. /* interface IMDSPRevoked */
  4717. /* [unique][uuid][object] */
  4718. EXTERN_C const IID IID_IMDSPRevoked;
  4719. #if defined(__cplusplus) && !defined(CINTERFACE)
  4720. MIDL_INTERFACE("A4E8F2D4-3F31-464d-B53D-4FC335998184")
  4721. IMDSPRevoked : public IUnknown
  4722. {
  4723. public:
  4724. virtual HRESULT STDMETHODCALLTYPE GetRevocationURL(
  4725. /* [size_is][size_is][string][out][in] */ LPWSTR *ppwszRevocationURL,
  4726. /* [out][in] */ DWORD *pdwBufferLen) = 0;
  4727. };
  4728. #else /* C style interface */
  4729. typedef struct IMDSPRevokedVtbl
  4730. {
  4731. BEGIN_INTERFACE
  4732. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4733. IMDSPRevoked * This,
  4734. /* [in] */ REFIID riid,
  4735. /* [iid_is][out] */ void **ppvObject);
  4736. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4737. IMDSPRevoked * This);
  4738. ULONG ( STDMETHODCALLTYPE *Release )(
  4739. IMDSPRevoked * This);
  4740. HRESULT ( STDMETHODCALLTYPE *GetRevocationURL )(
  4741. IMDSPRevoked * This,
  4742. /* [size_is][size_is][string][out][in] */ LPWSTR *ppwszRevocationURL,
  4743. /* [out][in] */ DWORD *pdwBufferLen);
  4744. END_INTERFACE
  4745. } IMDSPRevokedVtbl;
  4746. interface IMDSPRevoked
  4747. {
  4748. CONST_VTBL struct IMDSPRevokedVtbl *lpVtbl;
  4749. };
  4750. #ifdef COBJMACROS
  4751. #define IMDSPRevoked_QueryInterface(This,riid,ppvObject) \
  4752. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4753. #define IMDSPRevoked_AddRef(This) \
  4754. (This)->lpVtbl -> AddRef(This)
  4755. #define IMDSPRevoked_Release(This) \
  4756. (This)->lpVtbl -> Release(This)
  4757. #define IMDSPRevoked_GetRevocationURL(This,ppwszRevocationURL,pdwBufferLen) \
  4758. (This)->lpVtbl -> GetRevocationURL(This,ppwszRevocationURL,pdwBufferLen)
  4759. #endif /* COBJMACROS */
  4760. #endif /* C style interface */
  4761. HRESULT STDMETHODCALLTYPE IMDSPRevoked_GetRevocationURL_Proxy(
  4762. IMDSPRevoked * This,
  4763. /* [size_is][size_is][string][out][in] */ LPWSTR *ppwszRevocationURL,
  4764. /* [out][in] */ DWORD *pdwBufferLen);
  4765. void __RPC_STUB IMDSPRevoked_GetRevocationURL_Stub(
  4766. IRpcStubBuffer *This,
  4767. IRpcChannelBuffer *_pRpcChannelBuffer,
  4768. PRPC_MESSAGE _pRpcMessage,
  4769. DWORD *_pdwStubPhase);
  4770. #endif /* __IMDSPRevoked_INTERFACE_DEFINED__ */
  4771. /* interface __MIDL_itf_mswmdm_0290 */
  4772. /* [local] */
  4773. // SCP Data Flags
  4774. #define WMDM_SCP_EXAMINE_EXTENSION 0x00000001L
  4775. #define WMDM_SCP_EXAMINE_DATA 0x00000002L
  4776. #define WMDM_SCP_DECIDE_DATA 0x00000008L
  4777. #define WMDM_SCP_PROTECTED_OUTPUT 0x00000010L
  4778. #define WMDM_SCP_UNPROTECTED_OUTPUT 0x00000020L
  4779. #define WMDM_SCP_RIGHTS_DATA 0x00000040L
  4780. // SCP Transfer Flags
  4781. #define WMDM_SCP_TRANSFER_OBJECTDATA 0x00000020L
  4782. #define WMDM_SCP_NO_MORE_CHANGES 0x00000040L
  4783. extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0290_v0_0_c_ifspec;
  4784. extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0290_v0_0_s_ifspec;
  4785. #ifndef __ISCPSecureAuthenticate_INTERFACE_DEFINED__
  4786. #define __ISCPSecureAuthenticate_INTERFACE_DEFINED__
  4787. /* interface ISCPSecureAuthenticate */
  4788. /* [unique][uuid][object] */
  4789. EXTERN_C const IID IID_ISCPSecureAuthenticate;
  4790. #if defined(__cplusplus) && !defined(CINTERFACE)
  4791. MIDL_INTERFACE("1DCB3A0F-33ED-11d3-8470-00C04F79DBC0")
  4792. ISCPSecureAuthenticate : public IUnknown
  4793. {
  4794. public:
  4795. virtual HRESULT STDMETHODCALLTYPE GetSecureQuery(
  4796. /* [out] */ ISCPSecureQuery **ppSecureQuery) = 0;
  4797. };
  4798. #else /* C style interface */
  4799. typedef struct ISCPSecureAuthenticateVtbl
  4800. {
  4801. BEGIN_INTERFACE
  4802. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4803. ISCPSecureAuthenticate * This,
  4804. /* [in] */ REFIID riid,
  4805. /* [iid_is][out] */ void **ppvObject);
  4806. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4807. ISCPSecureAuthenticate * This);
  4808. ULONG ( STDMETHODCALLTYPE *Release )(
  4809. ISCPSecureAuthenticate * This);
  4810. HRESULT ( STDMETHODCALLTYPE *GetSecureQuery )(
  4811. ISCPSecureAuthenticate * This,
  4812. /* [out] */ ISCPSecureQuery **ppSecureQuery);
  4813. END_INTERFACE
  4814. } ISCPSecureAuthenticateVtbl;
  4815. interface ISCPSecureAuthenticate
  4816. {
  4817. CONST_VTBL struct ISCPSecureAuthenticateVtbl *lpVtbl;
  4818. };
  4819. #ifdef COBJMACROS
  4820. #define ISCPSecureAuthenticate_QueryInterface(This,riid,ppvObject) \
  4821. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4822. #define ISCPSecureAuthenticate_AddRef(This) \
  4823. (This)->lpVtbl -> AddRef(This)
  4824. #define ISCPSecureAuthenticate_Release(This) \
  4825. (This)->lpVtbl -> Release(This)
  4826. #define ISCPSecureAuthenticate_GetSecureQuery(This,ppSecureQuery) \
  4827. (This)->lpVtbl -> GetSecureQuery(This,ppSecureQuery)
  4828. #endif /* COBJMACROS */
  4829. #endif /* C style interface */
  4830. HRESULT STDMETHODCALLTYPE ISCPSecureAuthenticate_GetSecureQuery_Proxy(
  4831. ISCPSecureAuthenticate * This,
  4832. /* [out] */ ISCPSecureQuery **ppSecureQuery);
  4833. void __RPC_STUB ISCPSecureAuthenticate_GetSecureQuery_Stub(
  4834. IRpcStubBuffer *This,
  4835. IRpcChannelBuffer *_pRpcChannelBuffer,
  4836. PRPC_MESSAGE _pRpcMessage,
  4837. DWORD *_pdwStubPhase);
  4838. #endif /* __ISCPSecureAuthenticate_INTERFACE_DEFINED__ */
  4839. #ifndef __ISCPSecureQuery_INTERFACE_DEFINED__
  4840. #define __ISCPSecureQuery_INTERFACE_DEFINED__
  4841. /* interface ISCPSecureQuery */
  4842. /* [unique][uuid][object] */
  4843. EXTERN_C const IID IID_ISCPSecureQuery;
  4844. #if defined(__cplusplus) && !defined(CINTERFACE)
  4845. MIDL_INTERFACE("1DCB3A0D-33ED-11d3-8470-00C04F79DBC0")
  4846. ISCPSecureQuery : public IUnknown
  4847. {
  4848. public:
  4849. virtual HRESULT STDMETHODCALLTYPE GetDataDemands(
  4850. /* [out] */ UINT *pfuFlags,
  4851. /* [out] */ DWORD *pdwMinRightsData,
  4852. /* [out] */ DWORD *pdwMinExamineData,
  4853. /* [out] */ DWORD *pdwMinDecideData,
  4854. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  4855. virtual HRESULT STDMETHODCALLTYPE ExamineData(
  4856. /* [in] */ UINT fuFlags,
  4857. /* [unique][string][in] */ LPWSTR pwszExtension,
  4858. /* [size_is][in] */ BYTE *pData,
  4859. /* [in] */ DWORD dwSize,
  4860. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  4861. virtual HRESULT STDMETHODCALLTYPE MakeDecision(
  4862. /* [in] */ UINT fuFlags,
  4863. /* [size_is][in] */ BYTE *pData,
  4864. /* [in] */ DWORD dwSize,
  4865. /* [in] */ DWORD dwAppSec,
  4866. /* [size_is][in] */ BYTE *pbSPSessionKey,
  4867. /* [in] */ DWORD dwSessionKeyLen,
  4868. /* [in] */ IMDSPStorageGlobals *pStorageGlobals,
  4869. /* [out] */ ISCPSecureExchange **ppExchange,
  4870. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  4871. virtual HRESULT STDMETHODCALLTYPE GetRights(
  4872. /* [size_is][in] */ BYTE *pData,
  4873. /* [in] */ DWORD dwSize,
  4874. /* [size_is][in] */ BYTE *pbSPSessionKey,
  4875. /* [in] */ DWORD dwSessionKeyLen,
  4876. /* [in] */ IMDSPStorageGlobals *pStgGlobals,
  4877. /* [size_is][size_is][out] */ PWMDMRIGHTS *ppRights,
  4878. /* [out] */ UINT *pnRightsCount,
  4879. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  4880. };
  4881. #else /* C style interface */
  4882. typedef struct ISCPSecureQueryVtbl
  4883. {
  4884. BEGIN_INTERFACE
  4885. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  4886. ISCPSecureQuery * This,
  4887. /* [in] */ REFIID riid,
  4888. /* [iid_is][out] */ void **ppvObject);
  4889. ULONG ( STDMETHODCALLTYPE *AddRef )(
  4890. ISCPSecureQuery * This);
  4891. ULONG ( STDMETHODCALLTYPE *Release )(
  4892. ISCPSecureQuery * This);
  4893. HRESULT ( STDMETHODCALLTYPE *GetDataDemands )(
  4894. ISCPSecureQuery * This,
  4895. /* [out] */ UINT *pfuFlags,
  4896. /* [out] */ DWORD *pdwMinRightsData,
  4897. /* [out] */ DWORD *pdwMinExamineData,
  4898. /* [out] */ DWORD *pdwMinDecideData,
  4899. /* [out][in] */ BYTE abMac[ 8 ]);
  4900. HRESULT ( STDMETHODCALLTYPE *ExamineData )(
  4901. ISCPSecureQuery * This,
  4902. /* [in] */ UINT fuFlags,
  4903. /* [unique][string][in] */ LPWSTR pwszExtension,
  4904. /* [size_is][in] */ BYTE *pData,
  4905. /* [in] */ DWORD dwSize,
  4906. /* [out][in] */ BYTE abMac[ 8 ]);
  4907. HRESULT ( STDMETHODCALLTYPE *MakeDecision )(
  4908. ISCPSecureQuery * This,
  4909. /* [in] */ UINT fuFlags,
  4910. /* [size_is][in] */ BYTE *pData,
  4911. /* [in] */ DWORD dwSize,
  4912. /* [in] */ DWORD dwAppSec,
  4913. /* [size_is][in] */ BYTE *pbSPSessionKey,
  4914. /* [in] */ DWORD dwSessionKeyLen,
  4915. /* [in] */ IMDSPStorageGlobals *pStorageGlobals,
  4916. /* [out] */ ISCPSecureExchange **ppExchange,
  4917. /* [out][in] */ BYTE abMac[ 8 ]);
  4918. HRESULT ( STDMETHODCALLTYPE *GetRights )(
  4919. ISCPSecureQuery * This,
  4920. /* [size_is][in] */ BYTE *pData,
  4921. /* [in] */ DWORD dwSize,
  4922. /* [size_is][in] */ BYTE *pbSPSessionKey,
  4923. /* [in] */ DWORD dwSessionKeyLen,
  4924. /* [in] */ IMDSPStorageGlobals *pStgGlobals,
  4925. /* [size_is][size_is][out] */ PWMDMRIGHTS *ppRights,
  4926. /* [out] */ UINT *pnRightsCount,
  4927. /* [out][in] */ BYTE abMac[ 8 ]);
  4928. END_INTERFACE
  4929. } ISCPSecureQueryVtbl;
  4930. interface ISCPSecureQuery
  4931. {
  4932. CONST_VTBL struct ISCPSecureQueryVtbl *lpVtbl;
  4933. };
  4934. #ifdef COBJMACROS
  4935. #define ISCPSecureQuery_QueryInterface(This,riid,ppvObject) \
  4936. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  4937. #define ISCPSecureQuery_AddRef(This) \
  4938. (This)->lpVtbl -> AddRef(This)
  4939. #define ISCPSecureQuery_Release(This) \
  4940. (This)->lpVtbl -> Release(This)
  4941. #define ISCPSecureQuery_GetDataDemands(This,pfuFlags,pdwMinRightsData,pdwMinExamineData,pdwMinDecideData,abMac) \
  4942. (This)->lpVtbl -> GetDataDemands(This,pfuFlags,pdwMinRightsData,pdwMinExamineData,pdwMinDecideData,abMac)
  4943. #define ISCPSecureQuery_ExamineData(This,fuFlags,pwszExtension,pData,dwSize,abMac) \
  4944. (This)->lpVtbl -> ExamineData(This,fuFlags,pwszExtension,pData,dwSize,abMac)
  4945. #define ISCPSecureQuery_MakeDecision(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,ppExchange,abMac) \
  4946. (This)->lpVtbl -> MakeDecision(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,ppExchange,abMac)
  4947. #define ISCPSecureQuery_GetRights(This,pData,dwSize,pbSPSessionKey,dwSessionKeyLen,pStgGlobals,ppRights,pnRightsCount,abMac) \
  4948. (This)->lpVtbl -> GetRights(This,pData,dwSize,pbSPSessionKey,dwSessionKeyLen,pStgGlobals,ppRights,pnRightsCount,abMac)
  4949. #endif /* COBJMACROS */
  4950. #endif /* C style interface */
  4951. HRESULT STDMETHODCALLTYPE ISCPSecureQuery_GetDataDemands_Proxy(
  4952. ISCPSecureQuery * This,
  4953. /* [out] */ UINT *pfuFlags,
  4954. /* [out] */ DWORD *pdwMinRightsData,
  4955. /* [out] */ DWORD *pdwMinExamineData,
  4956. /* [out] */ DWORD *pdwMinDecideData,
  4957. /* [out][in] */ BYTE abMac[ 8 ]);
  4958. void __RPC_STUB ISCPSecureQuery_GetDataDemands_Stub(
  4959. IRpcStubBuffer *This,
  4960. IRpcChannelBuffer *_pRpcChannelBuffer,
  4961. PRPC_MESSAGE _pRpcMessage,
  4962. DWORD *_pdwStubPhase);
  4963. HRESULT STDMETHODCALLTYPE ISCPSecureQuery_ExamineData_Proxy(
  4964. ISCPSecureQuery * This,
  4965. /* [in] */ UINT fuFlags,
  4966. /* [unique][string][in] */ LPWSTR pwszExtension,
  4967. /* [size_is][in] */ BYTE *pData,
  4968. /* [in] */ DWORD dwSize,
  4969. /* [out][in] */ BYTE abMac[ 8 ]);
  4970. void __RPC_STUB ISCPSecureQuery_ExamineData_Stub(
  4971. IRpcStubBuffer *This,
  4972. IRpcChannelBuffer *_pRpcChannelBuffer,
  4973. PRPC_MESSAGE _pRpcMessage,
  4974. DWORD *_pdwStubPhase);
  4975. HRESULT STDMETHODCALLTYPE ISCPSecureQuery_MakeDecision_Proxy(
  4976. ISCPSecureQuery * This,
  4977. /* [in] */ UINT fuFlags,
  4978. /* [size_is][in] */ BYTE *pData,
  4979. /* [in] */ DWORD dwSize,
  4980. /* [in] */ DWORD dwAppSec,
  4981. /* [size_is][in] */ BYTE *pbSPSessionKey,
  4982. /* [in] */ DWORD dwSessionKeyLen,
  4983. /* [in] */ IMDSPStorageGlobals *pStorageGlobals,
  4984. /* [out] */ ISCPSecureExchange **ppExchange,
  4985. /* [out][in] */ BYTE abMac[ 8 ]);
  4986. void __RPC_STUB ISCPSecureQuery_MakeDecision_Stub(
  4987. IRpcStubBuffer *This,
  4988. IRpcChannelBuffer *_pRpcChannelBuffer,
  4989. PRPC_MESSAGE _pRpcMessage,
  4990. DWORD *_pdwStubPhase);
  4991. HRESULT STDMETHODCALLTYPE ISCPSecureQuery_GetRights_Proxy(
  4992. ISCPSecureQuery * This,
  4993. /* [size_is][in] */ BYTE *pData,
  4994. /* [in] */ DWORD dwSize,
  4995. /* [size_is][in] */ BYTE *pbSPSessionKey,
  4996. /* [in] */ DWORD dwSessionKeyLen,
  4997. /* [in] */ IMDSPStorageGlobals *pStgGlobals,
  4998. /* [size_is][size_is][out] */ PWMDMRIGHTS *ppRights,
  4999. /* [out] */ UINT *pnRightsCount,
  5000. /* [out][in] */ BYTE abMac[ 8 ]);
  5001. void __RPC_STUB ISCPSecureQuery_GetRights_Stub(
  5002. IRpcStubBuffer *This,
  5003. IRpcChannelBuffer *_pRpcChannelBuffer,
  5004. PRPC_MESSAGE _pRpcMessage,
  5005. DWORD *_pdwStubPhase);
  5006. #endif /* __ISCPSecureQuery_INTERFACE_DEFINED__ */
  5007. #ifndef __ISCPSecureQuery2_INTERFACE_DEFINED__
  5008. #define __ISCPSecureQuery2_INTERFACE_DEFINED__
  5009. /* interface ISCPSecureQuery2 */
  5010. /* [unique][uuid][object] */
  5011. EXTERN_C const IID IID_ISCPSecureQuery2;
  5012. #if defined(__cplusplus) && !defined(CINTERFACE)
  5013. MIDL_INTERFACE("EBE17E25-4FD7-4632-AF46-6D93D4FCC72E")
  5014. ISCPSecureQuery2 : public ISCPSecureQuery
  5015. {
  5016. public:
  5017. virtual HRESULT STDMETHODCALLTYPE MakeDecision2(
  5018. /* [in] */ UINT fuFlags,
  5019. /* [size_is][in] */ BYTE *pData,
  5020. /* [in] */ DWORD dwSize,
  5021. /* [in] */ DWORD dwAppSec,
  5022. /* [size_is][in] */ BYTE *pbSPSessionKey,
  5023. /* [in] */ DWORD dwSessionKeyLen,
  5024. /* [in] */ IMDSPStorageGlobals *pStorageGlobals,
  5025. /* [size_is][in] */ BYTE *pAppCertApp,
  5026. /* [in] */ DWORD dwAppCertAppLen,
  5027. /* [size_is][in] */ BYTE *pAppCertSP,
  5028. /* [in] */ DWORD dwAppCertSPLen,
  5029. /* [size_is][size_is][string][out][in] */ LPWSTR *pszRevocationURL,
  5030. /* [ref][out][in] */ DWORD *pdwRevocationURLLen,
  5031. /* [out] */ DWORD *pdwRevocationBitFlag,
  5032. /* [unique][out][in] */ ULONGLONG *pqwFileSize,
  5033. /* [in] */ IUnknown *pUnknown,
  5034. /* [out] */ ISCPSecureExchange **ppExchange,
  5035. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  5036. };
  5037. #else /* C style interface */
  5038. typedef struct ISCPSecureQuery2Vtbl
  5039. {
  5040. BEGIN_INTERFACE
  5041. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  5042. ISCPSecureQuery2 * This,
  5043. /* [in] */ REFIID riid,
  5044. /* [iid_is][out] */ void **ppvObject);
  5045. ULONG ( STDMETHODCALLTYPE *AddRef )(
  5046. ISCPSecureQuery2 * This);
  5047. ULONG ( STDMETHODCALLTYPE *Release )(
  5048. ISCPSecureQuery2 * This);
  5049. HRESULT ( STDMETHODCALLTYPE *GetDataDemands )(
  5050. ISCPSecureQuery2 * This,
  5051. /* [out] */ UINT *pfuFlags,
  5052. /* [out] */ DWORD *pdwMinRightsData,
  5053. /* [out] */ DWORD *pdwMinExamineData,
  5054. /* [out] */ DWORD *pdwMinDecideData,
  5055. /* [out][in] */ BYTE abMac[ 8 ]);
  5056. HRESULT ( STDMETHODCALLTYPE *ExamineData )(
  5057. ISCPSecureQuery2 * This,
  5058. /* [in] */ UINT fuFlags,
  5059. /* [unique][string][in] */ LPWSTR pwszExtension,
  5060. /* [size_is][in] */ BYTE *pData,
  5061. /* [in] */ DWORD dwSize,
  5062. /* [out][in] */ BYTE abMac[ 8 ]);
  5063. HRESULT ( STDMETHODCALLTYPE *MakeDecision )(
  5064. ISCPSecureQuery2 * This,
  5065. /* [in] */ UINT fuFlags,
  5066. /* [size_is][in] */ BYTE *pData,
  5067. /* [in] */ DWORD dwSize,
  5068. /* [in] */ DWORD dwAppSec,
  5069. /* [size_is][in] */ BYTE *pbSPSessionKey,
  5070. /* [in] */ DWORD dwSessionKeyLen,
  5071. /* [in] */ IMDSPStorageGlobals *pStorageGlobals,
  5072. /* [out] */ ISCPSecureExchange **ppExchange,
  5073. /* [out][in] */ BYTE abMac[ 8 ]);
  5074. HRESULT ( STDMETHODCALLTYPE *GetRights )(
  5075. ISCPSecureQuery2 * This,
  5076. /* [size_is][in] */ BYTE *pData,
  5077. /* [in] */ DWORD dwSize,
  5078. /* [size_is][in] */ BYTE *pbSPSessionKey,
  5079. /* [in] */ DWORD dwSessionKeyLen,
  5080. /* [in] */ IMDSPStorageGlobals *pStgGlobals,
  5081. /* [size_is][size_is][out] */ PWMDMRIGHTS *ppRights,
  5082. /* [out] */ UINT *pnRightsCount,
  5083. /* [out][in] */ BYTE abMac[ 8 ]);
  5084. HRESULT ( STDMETHODCALLTYPE *MakeDecision2 )(
  5085. ISCPSecureQuery2 * This,
  5086. /* [in] */ UINT fuFlags,
  5087. /* [size_is][in] */ BYTE *pData,
  5088. /* [in] */ DWORD dwSize,
  5089. /* [in] */ DWORD dwAppSec,
  5090. /* [size_is][in] */ BYTE *pbSPSessionKey,
  5091. /* [in] */ DWORD dwSessionKeyLen,
  5092. /* [in] */ IMDSPStorageGlobals *pStorageGlobals,
  5093. /* [size_is][in] */ BYTE *pAppCertApp,
  5094. /* [in] */ DWORD dwAppCertAppLen,
  5095. /* [size_is][in] */ BYTE *pAppCertSP,
  5096. /* [in] */ DWORD dwAppCertSPLen,
  5097. /* [size_is][size_is][string][out][in] */ LPWSTR *pszRevocationURL,
  5098. /* [ref][out][in] */ DWORD *pdwRevocationURLLen,
  5099. /* [out] */ DWORD *pdwRevocationBitFlag,
  5100. /* [unique][out][in] */ ULONGLONG *pqwFileSize,
  5101. /* [in] */ IUnknown *pUnknown,
  5102. /* [out] */ ISCPSecureExchange **ppExchange,
  5103. /* [out][in] */ BYTE abMac[ 8 ]);
  5104. END_INTERFACE
  5105. } ISCPSecureQuery2Vtbl;
  5106. interface ISCPSecureQuery2
  5107. {
  5108. CONST_VTBL struct ISCPSecureQuery2Vtbl *lpVtbl;
  5109. };
  5110. #ifdef COBJMACROS
  5111. #define ISCPSecureQuery2_QueryInterface(This,riid,ppvObject) \
  5112. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  5113. #define ISCPSecureQuery2_AddRef(This) \
  5114. (This)->lpVtbl -> AddRef(This)
  5115. #define ISCPSecureQuery2_Release(This) \
  5116. (This)->lpVtbl -> Release(This)
  5117. #define ISCPSecureQuery2_GetDataDemands(This,pfuFlags,pdwMinRightsData,pdwMinExamineData,pdwMinDecideData,abMac) \
  5118. (This)->lpVtbl -> GetDataDemands(This,pfuFlags,pdwMinRightsData,pdwMinExamineData,pdwMinDecideData,abMac)
  5119. #define ISCPSecureQuery2_ExamineData(This,fuFlags,pwszExtension,pData,dwSize,abMac) \
  5120. (This)->lpVtbl -> ExamineData(This,fuFlags,pwszExtension,pData,dwSize,abMac)
  5121. #define ISCPSecureQuery2_MakeDecision(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,ppExchange,abMac) \
  5122. (This)->lpVtbl -> MakeDecision(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,ppExchange,abMac)
  5123. #define ISCPSecureQuery2_GetRights(This,pData,dwSize,pbSPSessionKey,dwSessionKeyLen,pStgGlobals,ppRights,pnRightsCount,abMac) \
  5124. (This)->lpVtbl -> GetRights(This,pData,dwSize,pbSPSessionKey,dwSessionKeyLen,pStgGlobals,ppRights,pnRightsCount,abMac)
  5125. #define ISCPSecureQuery2_MakeDecision2(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,pAppCertApp,dwAppCertAppLen,pAppCertSP,dwAppCertSPLen,pszRevocationURL,pdwRevocationURLLen,pdwRevocationBitFlag,pqwFileSize,pUnknown,ppExchange,abMac) \
  5126. (This)->lpVtbl -> MakeDecision2(This,fuFlags,pData,dwSize,dwAppSec,pbSPSessionKey,dwSessionKeyLen,pStorageGlobals,pAppCertApp,dwAppCertAppLen,pAppCertSP,dwAppCertSPLen,pszRevocationURL,pdwRevocationURLLen,pdwRevocationBitFlag,pqwFileSize,pUnknown,ppExchange,abMac)
  5127. #endif /* COBJMACROS */
  5128. #endif /* C style interface */
  5129. HRESULT STDMETHODCALLTYPE ISCPSecureQuery2_MakeDecision2_Proxy(
  5130. ISCPSecureQuery2 * This,
  5131. /* [in] */ UINT fuFlags,
  5132. /* [size_is][in] */ BYTE *pData,
  5133. /* [in] */ DWORD dwSize,
  5134. /* [in] */ DWORD dwAppSec,
  5135. /* [size_is][in] */ BYTE *pbSPSessionKey,
  5136. /* [in] */ DWORD dwSessionKeyLen,
  5137. /* [in] */ IMDSPStorageGlobals *pStorageGlobals,
  5138. /* [size_is][in] */ BYTE *pAppCertApp,
  5139. /* [in] */ DWORD dwAppCertAppLen,
  5140. /* [size_is][in] */ BYTE *pAppCertSP,
  5141. /* [in] */ DWORD dwAppCertSPLen,
  5142. /* [size_is][size_is][string][out][in] */ LPWSTR *pszRevocationURL,
  5143. /* [ref][out][in] */ DWORD *pdwRevocationURLLen,
  5144. /* [out] */ DWORD *pdwRevocationBitFlag,
  5145. /* [unique][out][in] */ ULONGLONG *pqwFileSize,
  5146. /* [in] */ IUnknown *pUnknown,
  5147. /* [out] */ ISCPSecureExchange **ppExchange,
  5148. /* [out][in] */ BYTE abMac[ 8 ]);
  5149. void __RPC_STUB ISCPSecureQuery2_MakeDecision2_Stub(
  5150. IRpcStubBuffer *This,
  5151. IRpcChannelBuffer *_pRpcChannelBuffer,
  5152. PRPC_MESSAGE _pRpcMessage,
  5153. DWORD *_pdwStubPhase);
  5154. #endif /* __ISCPSecureQuery2_INTERFACE_DEFINED__ */
  5155. #ifndef __ISCPSecureExchange_INTERFACE_DEFINED__
  5156. #define __ISCPSecureExchange_INTERFACE_DEFINED__
  5157. /* interface ISCPSecureExchange */
  5158. /* [unique][uuid][object] */
  5159. EXTERN_C const IID IID_ISCPSecureExchange;
  5160. #if defined(__cplusplus) && !defined(CINTERFACE)
  5161. MIDL_INTERFACE("1DCB3A0E-33ED-11d3-8470-00C04F79DBC0")
  5162. ISCPSecureExchange : public IUnknown
  5163. {
  5164. public:
  5165. virtual HRESULT STDMETHODCALLTYPE TransferContainerData(
  5166. /* [size_is][in] */ BYTE *pData,
  5167. /* [in] */ DWORD dwSize,
  5168. /* [out] */ UINT *pfuReadyFlags,
  5169. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  5170. virtual HRESULT STDMETHODCALLTYPE ObjectData(
  5171. /* [size_is][out] */ BYTE *pData,
  5172. /* [out][in] */ DWORD *pdwSize,
  5173. /* [out][in] */ BYTE abMac[ 8 ]) = 0;
  5174. virtual HRESULT STDMETHODCALLTYPE TransferComplete( void) = 0;
  5175. };
  5176. #else /* C style interface */
  5177. typedef struct ISCPSecureExchangeVtbl
  5178. {
  5179. BEGIN_INTERFACE
  5180. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  5181. ISCPSecureExchange * This,
  5182. /* [in] */ REFIID riid,
  5183. /* [iid_is][out] */ void **ppvObject);
  5184. ULONG ( STDMETHODCALLTYPE *AddRef )(
  5185. ISCPSecureExchange * This);
  5186. ULONG ( STDMETHODCALLTYPE *Release )(
  5187. ISCPSecureExchange * This);
  5188. HRESULT ( STDMETHODCALLTYPE *TransferContainerData )(
  5189. ISCPSecureExchange * This,
  5190. /* [size_is][in] */ BYTE *pData,
  5191. /* [in] */ DWORD dwSize,
  5192. /* [out] */ UINT *pfuReadyFlags,
  5193. /* [out][in] */ BYTE abMac[ 8 ]);
  5194. HRESULT ( STDMETHODCALLTYPE *ObjectData )(
  5195. ISCPSecureExchange * This,
  5196. /* [size_is][out] */ BYTE *pData,
  5197. /* [out][in] */ DWORD *pdwSize,
  5198. /* [out][in] */ BYTE abMac[ 8 ]);
  5199. HRESULT ( STDMETHODCALLTYPE *TransferComplete )(
  5200. ISCPSecureExchange * This);
  5201. END_INTERFACE
  5202. } ISCPSecureExchangeVtbl;
  5203. interface ISCPSecureExchange
  5204. {
  5205. CONST_VTBL struct ISCPSecureExchangeVtbl *lpVtbl;
  5206. };
  5207. #ifdef COBJMACROS
  5208. #define ISCPSecureExchange_QueryInterface(This,riid,ppvObject) \
  5209. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  5210. #define ISCPSecureExchange_AddRef(This) \
  5211. (This)->lpVtbl -> AddRef(This)
  5212. #define ISCPSecureExchange_Release(This) \
  5213. (This)->lpVtbl -> Release(This)
  5214. #define ISCPSecureExchange_TransferContainerData(This,pData,dwSize,pfuReadyFlags,abMac) \
  5215. (This)->lpVtbl -> TransferContainerData(This,pData,dwSize,pfuReadyFlags,abMac)
  5216. #define ISCPSecureExchange_ObjectData(This,pData,pdwSize,abMac) \
  5217. (This)->lpVtbl -> ObjectData(This,pData,pdwSize,abMac)
  5218. #define ISCPSecureExchange_TransferComplete(This) \
  5219. (This)->lpVtbl -> TransferComplete(This)
  5220. #endif /* COBJMACROS */
  5221. #endif /* C style interface */
  5222. HRESULT STDMETHODCALLTYPE ISCPSecureExchange_TransferContainerData_Proxy(
  5223. ISCPSecureExchange * This,
  5224. /* [size_is][in] */ BYTE *pData,
  5225. /* [in] */ DWORD dwSize,
  5226. /* [out] */ UINT *pfuReadyFlags,
  5227. /* [out][in] */ BYTE abMac[ 8 ]);
  5228. void __RPC_STUB ISCPSecureExchange_TransferContainerData_Stub(
  5229. IRpcStubBuffer *This,
  5230. IRpcChannelBuffer *_pRpcChannelBuffer,
  5231. PRPC_MESSAGE _pRpcMessage,
  5232. DWORD *_pdwStubPhase);
  5233. HRESULT STDMETHODCALLTYPE ISCPSecureExchange_ObjectData_Proxy(
  5234. ISCPSecureExchange * This,
  5235. /* [size_is][out] */ BYTE *pData,
  5236. /* [out][in] */ DWORD *pdwSize,
  5237. /* [out][in] */ BYTE abMac[ 8 ]);
  5238. void __RPC_STUB ISCPSecureExchange_ObjectData_Stub(
  5239. IRpcStubBuffer *This,
  5240. IRpcChannelBuffer *_pRpcChannelBuffer,
  5241. PRPC_MESSAGE _pRpcMessage,
  5242. DWORD *_pdwStubPhase);
  5243. HRESULT STDMETHODCALLTYPE ISCPSecureExchange_TransferComplete_Proxy(
  5244. ISCPSecureExchange * This);
  5245. void __RPC_STUB ISCPSecureExchange_TransferComplete_Stub(
  5246. IRpcStubBuffer *This,
  5247. IRpcChannelBuffer *_pRpcChannelBuffer,
  5248. PRPC_MESSAGE _pRpcMessage,
  5249. DWORD *_pdwStubPhase);
  5250. #endif /* __ISCPSecureExchange_INTERFACE_DEFINED__ */
  5251. /* interface __MIDL_itf_mswmdm_0294 */
  5252. /* [local] */
  5253. #define SAC_MAC_LEN 8
  5254. extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0294_v0_0_c_ifspec;
  5255. extern RPC_IF_HANDLE __MIDL_itf_mswmdm_0294_v0_0_s_ifspec;
  5256. #ifndef __IComponentAuthenticate_INTERFACE_DEFINED__
  5257. #define __IComponentAuthenticate_INTERFACE_DEFINED__
  5258. /* interface IComponentAuthenticate */
  5259. /* [unique][uuid][object] */
  5260. EXTERN_C const IID IID_IComponentAuthenticate;
  5261. #if defined(__cplusplus) && !defined(CINTERFACE)
  5262. MIDL_INTERFACE("A9889C00-6D2B-11d3-8496-00C04F79DBC0")
  5263. IComponentAuthenticate : public IUnknown
  5264. {
  5265. public:
  5266. virtual HRESULT STDMETHODCALLTYPE SACAuth(
  5267. /* [in] */ DWORD dwProtocolID,
  5268. /* [in] */ DWORD dwPass,
  5269. /* [size_is][in] */ BYTE *pbDataIn,
  5270. /* [in] */ DWORD dwDataInLen,
  5271. /* [size_is][size_is][out] */ BYTE **ppbDataOut,
  5272. /* [out] */ DWORD *pdwDataOutLen) = 0;
  5273. virtual HRESULT STDMETHODCALLTYPE SACGetProtocols(
  5274. /* [size_is][size_is][out] */ DWORD **ppdwProtocols,
  5275. /* [out] */ DWORD *pdwProtocolCount) = 0;
  5276. };
  5277. #else /* C style interface */
  5278. typedef struct IComponentAuthenticateVtbl
  5279. {
  5280. BEGIN_INTERFACE
  5281. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  5282. IComponentAuthenticate * This,
  5283. /* [in] */ REFIID riid,
  5284. /* [iid_is][out] */ void **ppvObject);
  5285. ULONG ( STDMETHODCALLTYPE *AddRef )(
  5286. IComponentAuthenticate * This);
  5287. ULONG ( STDMETHODCALLTYPE *Release )(
  5288. IComponentAuthenticate * This);
  5289. HRESULT ( STDMETHODCALLTYPE *SACAuth )(
  5290. IComponentAuthenticate * This,
  5291. /* [in] */ DWORD dwProtocolID,
  5292. /* [in] */ DWORD dwPass,
  5293. /* [size_is][in] */ BYTE *pbDataIn,
  5294. /* [in] */ DWORD dwDataInLen,
  5295. /* [size_is][size_is][out] */ BYTE **ppbDataOut,
  5296. /* [out] */ DWORD *pdwDataOutLen);
  5297. HRESULT ( STDMETHODCALLTYPE *SACGetProtocols )(
  5298. IComponentAuthenticate * This,
  5299. /* [size_is][size_is][out] */ DWORD **ppdwProtocols,
  5300. /* [out] */ DWORD *pdwProtocolCount);
  5301. END_INTERFACE
  5302. } IComponentAuthenticateVtbl;
  5303. interface IComponentAuthenticate
  5304. {
  5305. CONST_VTBL struct IComponentAuthenticateVtbl *lpVtbl;
  5306. };
  5307. #ifdef COBJMACROS
  5308. #define IComponentAuthenticate_QueryInterface(This,riid,ppvObject) \
  5309. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  5310. #define IComponentAuthenticate_AddRef(This) \
  5311. (This)->lpVtbl -> AddRef(This)
  5312. #define IComponentAuthenticate_Release(This) \
  5313. (This)->lpVtbl -> Release(This)
  5314. #define IComponentAuthenticate_SACAuth(This,dwProtocolID,dwPass,pbDataIn,dwDataInLen,ppbDataOut,pdwDataOutLen) \
  5315. (This)->lpVtbl -> SACAuth(This,dwProtocolID,dwPass,pbDataIn,dwDataInLen,ppbDataOut,pdwDataOutLen)
  5316. #define IComponentAuthenticate_SACGetProtocols(This,ppdwProtocols,pdwProtocolCount) \
  5317. (This)->lpVtbl -> SACGetProtocols(This,ppdwProtocols,pdwProtocolCount)
  5318. #endif /* COBJMACROS */
  5319. #endif /* C style interface */
  5320. HRESULT STDMETHODCALLTYPE IComponentAuthenticate_SACAuth_Proxy(
  5321. IComponentAuthenticate * This,
  5322. /* [in] */ DWORD dwProtocolID,
  5323. /* [in] */ DWORD dwPass,
  5324. /* [size_is][in] */ BYTE *pbDataIn,
  5325. /* [in] */ DWORD dwDataInLen,
  5326. /* [size_is][size_is][out] */ BYTE **ppbDataOut,
  5327. /* [out] */ DWORD *pdwDataOutLen);
  5328. void __RPC_STUB IComponentAuthenticate_SACAuth_Stub(
  5329. IRpcStubBuffer *This,
  5330. IRpcChannelBuffer *_pRpcChannelBuffer,
  5331. PRPC_MESSAGE _pRpcMessage,
  5332. DWORD *_pdwStubPhase);
  5333. HRESULT STDMETHODCALLTYPE IComponentAuthenticate_SACGetProtocols_Proxy(
  5334. IComponentAuthenticate * This,
  5335. /* [size_is][size_is][out] */ DWORD **ppdwProtocols,
  5336. /* [out] */ DWORD *pdwProtocolCount);
  5337. void __RPC_STUB IComponentAuthenticate_SACGetProtocols_Stub(
  5338. IRpcStubBuffer *This,
  5339. IRpcChannelBuffer *_pRpcChannelBuffer,
  5340. PRPC_MESSAGE _pRpcMessage,
  5341. DWORD *_pdwStubPhase);
  5342. #endif /* __IComponentAuthenticate_INTERFACE_DEFINED__ */
  5343. #ifndef __MSWMDMLib_LIBRARY_DEFINED__
  5344. #define __MSWMDMLib_LIBRARY_DEFINED__
  5345. /* library MSWMDMLib */
  5346. /* [helpstring][version][uuid] */
  5347. EXTERN_C const IID LIBID_MSWMDMLib;
  5348. EXTERN_C const CLSID CLSID_MediaDevMgrClassFactory;
  5349. #ifdef __cplusplus
  5350. class DECLSPEC_UUID("50040C1D-BDBF-4924-B873-F14D6C5BFD66")
  5351. MediaDevMgrClassFactory;
  5352. #endif
  5353. EXTERN_C const CLSID CLSID_MediaDevMgr;
  5354. #ifdef __cplusplus
  5355. class DECLSPEC_UUID("25BAAD81-3560-11D3-8471-00C04F79DBC0")
  5356. MediaDevMgr;
  5357. #endif
  5358. EXTERN_C const CLSID CLSID_WMDMDevice;
  5359. #ifdef __cplusplus
  5360. class DECLSPEC_UUID("807B3CDF-357A-11d3-8471-00C04F79DBC0")
  5361. WMDMDevice;
  5362. #endif
  5363. EXTERN_C const CLSID CLSID_WMDMStorage;
  5364. #ifdef __cplusplus
  5365. class DECLSPEC_UUID("807B3CE0-357A-11d3-8471-00C04F79DBC0")
  5366. WMDMStorage;
  5367. #endif
  5368. EXTERN_C const CLSID CLSID_WMDMStorageGlobal;
  5369. #ifdef __cplusplus
  5370. class DECLSPEC_UUID("807B3CE1-357A-11d3-8471-00C04F79DBC0")
  5371. WMDMStorageGlobal;
  5372. #endif
  5373. EXTERN_C const CLSID CLSID_WMDMDeviceEnum;
  5374. #ifdef __cplusplus
  5375. class DECLSPEC_UUID("430E35AF-3971-11D3-8474-00C04F79DBC0")
  5376. WMDMDeviceEnum;
  5377. #endif
  5378. EXTERN_C const CLSID CLSID_WMDMStorageEnum;
  5379. #ifdef __cplusplus
  5380. class DECLSPEC_UUID("EB401A3B-3AF7-11d3-8474-00C04F79DBC0")
  5381. WMDMStorageEnum;
  5382. #endif
  5383. #endif /* __MSWMDMLib_LIBRARY_DEFINED__ */
  5384. /* Additional Prototypes for ALL interfaces */
  5385. /* end of Additional Prototypes */
  5386. #ifdef __cplusplus
  5387. }
  5388. #endif
  5389. #endif