fusion.h 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938
  1. /*** Autogenerated by WIDL 7.7 from include/fusion.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __fusion_h__
  14. #define __fusion_h__
  15. /* Forward declarations */
  16. #ifndef __IAssemblyCache_FWD_DEFINED__
  17. #define __IAssemblyCache_FWD_DEFINED__
  18. typedef interface IAssemblyCache IAssemblyCache;
  19. #ifdef __cplusplus
  20. interface IAssemblyCache;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IAssemblyCacheItem_FWD_DEFINED__
  24. #define __IAssemblyCacheItem_FWD_DEFINED__
  25. typedef interface IAssemblyCacheItem IAssemblyCacheItem;
  26. #ifdef __cplusplus
  27. interface IAssemblyCacheItem;
  28. #endif /* __cplusplus */
  29. #endif
  30. #ifndef __IAssemblyName_FWD_DEFINED__
  31. #define __IAssemblyName_FWD_DEFINED__
  32. typedef interface IAssemblyName IAssemblyName;
  33. #ifdef __cplusplus
  34. interface IAssemblyName;
  35. #endif /* __cplusplus */
  36. #endif
  37. #ifndef __IAssemblyEnum_FWD_DEFINED__
  38. #define __IAssemblyEnum_FWD_DEFINED__
  39. typedef interface IAssemblyEnum IAssemblyEnum;
  40. #ifdef __cplusplus
  41. interface IAssemblyEnum;
  42. #endif /* __cplusplus */
  43. #endif
  44. #ifndef __IInstallReferenceItem_FWD_DEFINED__
  45. #define __IInstallReferenceItem_FWD_DEFINED__
  46. typedef interface IInstallReferenceItem IInstallReferenceItem;
  47. #ifdef __cplusplus
  48. interface IInstallReferenceItem;
  49. #endif /* __cplusplus */
  50. #endif
  51. #ifndef __IInstallReferenceEnum_FWD_DEFINED__
  52. #define __IInstallReferenceEnum_FWD_DEFINED__
  53. typedef interface IInstallReferenceEnum IInstallReferenceEnum;
  54. #ifdef __cplusplus
  55. interface IInstallReferenceEnum;
  56. #endif /* __cplusplus */
  57. #endif
  58. /* Headers for imported files */
  59. #include <objidl.h>
  60. #ifdef __cplusplus
  61. extern "C" {
  62. #endif
  63. #ifndef __IAssemblyCache_FWD_DEFINED__
  64. #define __IAssemblyCache_FWD_DEFINED__
  65. typedef interface IAssemblyCache IAssemblyCache;
  66. #ifdef __cplusplus
  67. interface IAssemblyCache;
  68. #endif /* __cplusplus */
  69. #endif
  70. #ifndef __IAssemblyCacheItem_FWD_DEFINED__
  71. #define __IAssemblyCacheItem_FWD_DEFINED__
  72. typedef interface IAssemblyCacheItem IAssemblyCacheItem;
  73. #ifdef __cplusplus
  74. interface IAssemblyCacheItem;
  75. #endif /* __cplusplus */
  76. #endif
  77. #ifndef __IAssemblyEnum_FWD_DEFINED__
  78. #define __IAssemblyEnum_FWD_DEFINED__
  79. typedef interface IAssemblyEnum IAssemblyEnum;
  80. #ifdef __cplusplus
  81. interface IAssemblyEnum;
  82. #endif /* __cplusplus */
  83. #endif
  84. #ifndef __IAssemblyName_FWD_DEFINED__
  85. #define __IAssemblyName_FWD_DEFINED__
  86. typedef interface IAssemblyName IAssemblyName;
  87. #ifdef __cplusplus
  88. interface IAssemblyName;
  89. #endif /* __cplusplus */
  90. #endif
  91. typedef enum __WIDL_fusion_generated_name_0000000E {
  92. ASM_CACHE_ZAP = 0x1,
  93. ASM_CACHE_GAC = 0x2,
  94. ASM_CACHE_DOWNLOAD = 0x4,
  95. ASM_CACHE_ROOT = 0x8,
  96. ASM_CACHE_ROOT_EX = 0x80
  97. } ASM_CACHE_FLAGS;
  98. typedef enum __WIDL_fusion_generated_name_0000000F {
  99. peNone = 0x0,
  100. peMSIL = 0x1,
  101. peI386 = 0x2,
  102. peIA64 = 0x3,
  103. peAMD64 = 0x4,
  104. peARM = 0x5,
  105. peInvalid = 0xffffffff
  106. } PEKIND;
  107. typedef enum _tagAssemblyComparisonResult {
  108. ACR_Unknown = 0,
  109. ACR_EquivalentFullMatch = 1,
  110. ACR_EquivalentWeakNamed = 2,
  111. ACR_EquivalentFXUnified = 3,
  112. ACR_EquivalentUnified = 4,
  113. ACR_NonEquivalentVersion = 5,
  114. ACR_NonEquivalent = 6,
  115. ACR_EquivalentPartialMatch = 7,
  116. ACR_EquivalentPartialWeakNamed = 8,
  117. ACR_EquivalentPartialUnified = 9,
  118. ACR_EquivalentPartialFXUnified = 10,
  119. ACR_NonEquivalentPartialVersion = 11
  120. } AssemblyComparisonResult;
  121. /*****************************************************************************
  122. * IAssemblyCache interface
  123. */
  124. #ifndef __IAssemblyCache_INTERFACE_DEFINED__
  125. #define __IAssemblyCache_INTERFACE_DEFINED__
  126. typedef struct _FUSION_INSTALL_REFERENCE_ {
  127. DWORD cbSize;
  128. DWORD dwFlags;
  129. GUID guidScheme;
  130. LPCWSTR szIdentifier;
  131. LPCWSTR szNonCannonicalData;
  132. } FUSION_INSTALL_REFERENCE;
  133. typedef struct _FUSION_INSTALL_REFERENCE_ *LPFUSION_INSTALL_REFERENCE;
  134. typedef const FUSION_INSTALL_REFERENCE *LPCFUSION_INSTALL_REFERENCE;
  135. typedef struct _ASSEMBLY_INFO {
  136. ULONG cbAssemblyInfo;
  137. DWORD dwAssemblyFlags;
  138. ULARGE_INTEGER uliAssemblySizeInKB;
  139. LPWSTR pszCurrentAssemblyPathBuf;
  140. ULONG cchBuf;
  141. } ASSEMBLY_INFO;
  142. #define IASSEMBLYCACHE_INSTALL_FLAG_REFRESH 0x00000001
  143. #define IASSEMBLYCACHE_INSTALL_FLAG_FORCE_REFRESH 0x00000002
  144. #define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_UNINSTALLED 1
  145. #define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_STILL_IN_USE 2
  146. #define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_ALREADY_UNINSTALLED 3
  147. #define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_DELETE_PENDING 4
  148. #define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_HAS_INSTALL_REFERENCES 5
  149. #define IASSEMBLYCACHE_UNINSTALL_DISPOSITION_REFERENCE_NOT_FOUND 6
  150. #define QUERYASMINFO_FLAG_VALIDATE 0x00000001
  151. #define QUERYASMINFO_FLAG_GETSIZE 0x00000002
  152. #define ASSEMBLYINFO_FLAG_INSTALLED 0x00000001
  153. #define ASSEMBLYINFO_FLAG_PAYLOADRESIDENT 0x00000002
  154. DEFINE_GUID(IID_IAssemblyCache, 0xe707dcde, 0xd1cd, 0x11d2, 0xba,0xb9, 0x00,0xc0,0x4f,0x8e,0xce,0xae);
  155. #if defined(__cplusplus) && !defined(CINTERFACE)
  156. MIDL_INTERFACE("e707dcde-d1cd-11d2-bab9-00c04f8eceae")
  157. IAssemblyCache : public IUnknown
  158. {
  159. virtual HRESULT STDMETHODCALLTYPE UninstallAssembly(
  160. DWORD dwFlags,
  161. LPCWSTR pszAssemblyName,
  162. LPCFUSION_INSTALL_REFERENCE pRefData,
  163. ULONG *pulDisposition) = 0;
  164. virtual HRESULT STDMETHODCALLTYPE QueryAssemblyInfo(
  165. DWORD dwFlags,
  166. LPCWSTR pszAssemblyName,
  167. ASSEMBLY_INFO *pAsmInfo) = 0;
  168. virtual HRESULT STDMETHODCALLTYPE CreateAssemblyCacheItem(
  169. DWORD dwFlags,
  170. PVOID pvReserved,
  171. IAssemblyCacheItem **ppAsmItem,
  172. LPCWSTR pszAssemblyName) = 0;
  173. virtual HRESULT STDMETHODCALLTYPE CreateAssemblyScavenger(
  174. IUnknown **ppUnkReserved) = 0;
  175. virtual HRESULT STDMETHODCALLTYPE InstallAssembly(
  176. DWORD dwFlags,
  177. LPCWSTR pszManifestFilePath,
  178. LPCFUSION_INSTALL_REFERENCE pRefData) = 0;
  179. };
  180. #ifdef __CRT_UUID_DECL
  181. __CRT_UUID_DECL(IAssemblyCache, 0xe707dcde, 0xd1cd, 0x11d2, 0xba,0xb9, 0x00,0xc0,0x4f,0x8e,0xce,0xae)
  182. #endif
  183. #else
  184. typedef struct IAssemblyCacheVtbl {
  185. BEGIN_INTERFACE
  186. /*** IUnknown methods ***/
  187. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  188. IAssemblyCache *This,
  189. REFIID riid,
  190. void **ppvObject);
  191. ULONG (STDMETHODCALLTYPE *AddRef)(
  192. IAssemblyCache *This);
  193. ULONG (STDMETHODCALLTYPE *Release)(
  194. IAssemblyCache *This);
  195. /*** IAssemblyCache methods ***/
  196. HRESULT (STDMETHODCALLTYPE *UninstallAssembly)(
  197. IAssemblyCache *This,
  198. DWORD dwFlags,
  199. LPCWSTR pszAssemblyName,
  200. LPCFUSION_INSTALL_REFERENCE pRefData,
  201. ULONG *pulDisposition);
  202. HRESULT (STDMETHODCALLTYPE *QueryAssemblyInfo)(
  203. IAssemblyCache *This,
  204. DWORD dwFlags,
  205. LPCWSTR pszAssemblyName,
  206. ASSEMBLY_INFO *pAsmInfo);
  207. HRESULT (STDMETHODCALLTYPE *CreateAssemblyCacheItem)(
  208. IAssemblyCache *This,
  209. DWORD dwFlags,
  210. PVOID pvReserved,
  211. IAssemblyCacheItem **ppAsmItem,
  212. LPCWSTR pszAssemblyName);
  213. HRESULT (STDMETHODCALLTYPE *CreateAssemblyScavenger)(
  214. IAssemblyCache *This,
  215. IUnknown **ppUnkReserved);
  216. HRESULT (STDMETHODCALLTYPE *InstallAssembly)(
  217. IAssemblyCache *This,
  218. DWORD dwFlags,
  219. LPCWSTR pszManifestFilePath,
  220. LPCFUSION_INSTALL_REFERENCE pRefData);
  221. END_INTERFACE
  222. } IAssemblyCacheVtbl;
  223. interface IAssemblyCache {
  224. CONST_VTBL IAssemblyCacheVtbl* lpVtbl;
  225. };
  226. #ifdef COBJMACROS
  227. #ifndef WIDL_C_INLINE_WRAPPERS
  228. /*** IUnknown methods ***/
  229. #define IAssemblyCache_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  230. #define IAssemblyCache_AddRef(This) (This)->lpVtbl->AddRef(This)
  231. #define IAssemblyCache_Release(This) (This)->lpVtbl->Release(This)
  232. /*** IAssemblyCache methods ***/
  233. #define IAssemblyCache_UninstallAssembly(This,dwFlags,pszAssemblyName,pRefData,pulDisposition) (This)->lpVtbl->UninstallAssembly(This,dwFlags,pszAssemblyName,pRefData,pulDisposition)
  234. #define IAssemblyCache_QueryAssemblyInfo(This,dwFlags,pszAssemblyName,pAsmInfo) (This)->lpVtbl->QueryAssemblyInfo(This,dwFlags,pszAssemblyName,pAsmInfo)
  235. #define IAssemblyCache_CreateAssemblyCacheItem(This,dwFlags,pvReserved,ppAsmItem,pszAssemblyName) (This)->lpVtbl->CreateAssemblyCacheItem(This,dwFlags,pvReserved,ppAsmItem,pszAssemblyName)
  236. #define IAssemblyCache_CreateAssemblyScavenger(This,ppUnkReserved) (This)->lpVtbl->CreateAssemblyScavenger(This,ppUnkReserved)
  237. #define IAssemblyCache_InstallAssembly(This,dwFlags,pszManifestFilePath,pRefData) (This)->lpVtbl->InstallAssembly(This,dwFlags,pszManifestFilePath,pRefData)
  238. #else
  239. /*** IUnknown methods ***/
  240. static FORCEINLINE HRESULT IAssemblyCache_QueryInterface(IAssemblyCache* This,REFIID riid,void **ppvObject) {
  241. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  242. }
  243. static FORCEINLINE ULONG IAssemblyCache_AddRef(IAssemblyCache* This) {
  244. return This->lpVtbl->AddRef(This);
  245. }
  246. static FORCEINLINE ULONG IAssemblyCache_Release(IAssemblyCache* This) {
  247. return This->lpVtbl->Release(This);
  248. }
  249. /*** IAssemblyCache methods ***/
  250. static FORCEINLINE HRESULT IAssemblyCache_UninstallAssembly(IAssemblyCache* This,DWORD dwFlags,LPCWSTR pszAssemblyName,LPCFUSION_INSTALL_REFERENCE pRefData,ULONG *pulDisposition) {
  251. return This->lpVtbl->UninstallAssembly(This,dwFlags,pszAssemblyName,pRefData,pulDisposition);
  252. }
  253. static FORCEINLINE HRESULT IAssemblyCache_QueryAssemblyInfo(IAssemblyCache* This,DWORD dwFlags,LPCWSTR pszAssemblyName,ASSEMBLY_INFO *pAsmInfo) {
  254. return This->lpVtbl->QueryAssemblyInfo(This,dwFlags,pszAssemblyName,pAsmInfo);
  255. }
  256. static FORCEINLINE HRESULT IAssemblyCache_CreateAssemblyCacheItem(IAssemblyCache* This,DWORD dwFlags,PVOID pvReserved,IAssemblyCacheItem **ppAsmItem,LPCWSTR pszAssemblyName) {
  257. return This->lpVtbl->CreateAssemblyCacheItem(This,dwFlags,pvReserved,ppAsmItem,pszAssemblyName);
  258. }
  259. static FORCEINLINE HRESULT IAssemblyCache_CreateAssemblyScavenger(IAssemblyCache* This,IUnknown **ppUnkReserved) {
  260. return This->lpVtbl->CreateAssemblyScavenger(This,ppUnkReserved);
  261. }
  262. static FORCEINLINE HRESULT IAssemblyCache_InstallAssembly(IAssemblyCache* This,DWORD dwFlags,LPCWSTR pszManifestFilePath,LPCFUSION_INSTALL_REFERENCE pRefData) {
  263. return This->lpVtbl->InstallAssembly(This,dwFlags,pszManifestFilePath,pRefData);
  264. }
  265. #endif
  266. #endif
  267. #endif
  268. #endif /* __IAssemblyCache_INTERFACE_DEFINED__ */
  269. /*****************************************************************************
  270. * IAssemblyCacheItem interface
  271. */
  272. #ifndef __IAssemblyCacheItem_INTERFACE_DEFINED__
  273. #define __IAssemblyCacheItem_INTERFACE_DEFINED__
  274. #define STREAM_FORMAT_COMPLIB_MODULE 0
  275. #define STREAM_FORMAT_COMPLIB_MANIFEST 1
  276. #define STREAM_FORMAT_WIN32_MODULE 2
  277. #define STREAM_FORMAT_WIN32_MANIFEST 4
  278. #define IASSEMBLYCACHEITEM_COMMIT_FLAG_REFRESH 0x00000001
  279. #define IASSEMBLYCACHEITEM_COMMIT_FLAG_FORCE_REFRESH 0x00000002
  280. #define IASSEMBLYCACHEITEM_COMMIT_DISPOSITION_INSTALLED 1
  281. #define IASSEMBLYCACHEITEM_COMMIT_DISPOSITION_REFRESHED 2
  282. #define IASSEMBLYCACHEITEM_COMMIT_DISPOSITION_ALREADY_INSTALLED 3
  283. DEFINE_GUID(IID_IAssemblyCacheItem, 0x9e3aaeb4, 0xd1cd, 0x11d2, 0xba,0xb9, 0x00,0xc0,0x4f,0x8e,0xce,0xae);
  284. #if defined(__cplusplus) && !defined(CINTERFACE)
  285. MIDL_INTERFACE("9e3aaeb4-d1cd-11d2-bab9-00c04f8eceae")
  286. IAssemblyCacheItem : public IUnknown
  287. {
  288. virtual HRESULT STDMETHODCALLTYPE CreateStream(
  289. DWORD dwFlags,
  290. LPCWSTR pszStreamName,
  291. DWORD dwFormat,
  292. DWORD dwFormatFlags,
  293. IStream **ppIStream,
  294. ULARGE_INTEGER *puliMaxSize) = 0;
  295. virtual HRESULT STDMETHODCALLTYPE Commit(
  296. DWORD dwFlags,
  297. ULONG *pulDisposition) = 0;
  298. virtual HRESULT STDMETHODCALLTYPE AbortItem(
  299. ) = 0;
  300. };
  301. #ifdef __CRT_UUID_DECL
  302. __CRT_UUID_DECL(IAssemblyCacheItem, 0x9e3aaeb4, 0xd1cd, 0x11d2, 0xba,0xb9, 0x00,0xc0,0x4f,0x8e,0xce,0xae)
  303. #endif
  304. #else
  305. typedef struct IAssemblyCacheItemVtbl {
  306. BEGIN_INTERFACE
  307. /*** IUnknown methods ***/
  308. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  309. IAssemblyCacheItem *This,
  310. REFIID riid,
  311. void **ppvObject);
  312. ULONG (STDMETHODCALLTYPE *AddRef)(
  313. IAssemblyCacheItem *This);
  314. ULONG (STDMETHODCALLTYPE *Release)(
  315. IAssemblyCacheItem *This);
  316. /*** IAssemblyCacheItem methods ***/
  317. HRESULT (STDMETHODCALLTYPE *CreateStream)(
  318. IAssemblyCacheItem *This,
  319. DWORD dwFlags,
  320. LPCWSTR pszStreamName,
  321. DWORD dwFormat,
  322. DWORD dwFormatFlags,
  323. IStream **ppIStream,
  324. ULARGE_INTEGER *puliMaxSize);
  325. HRESULT (STDMETHODCALLTYPE *Commit)(
  326. IAssemblyCacheItem *This,
  327. DWORD dwFlags,
  328. ULONG *pulDisposition);
  329. HRESULT (STDMETHODCALLTYPE *AbortItem)(
  330. IAssemblyCacheItem *This);
  331. END_INTERFACE
  332. } IAssemblyCacheItemVtbl;
  333. interface IAssemblyCacheItem {
  334. CONST_VTBL IAssemblyCacheItemVtbl* lpVtbl;
  335. };
  336. #ifdef COBJMACROS
  337. #ifndef WIDL_C_INLINE_WRAPPERS
  338. /*** IUnknown methods ***/
  339. #define IAssemblyCacheItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  340. #define IAssemblyCacheItem_AddRef(This) (This)->lpVtbl->AddRef(This)
  341. #define IAssemblyCacheItem_Release(This) (This)->lpVtbl->Release(This)
  342. /*** IAssemblyCacheItem methods ***/
  343. #define IAssemblyCacheItem_CreateStream(This,dwFlags,pszStreamName,dwFormat,dwFormatFlags,ppIStream,puliMaxSize) (This)->lpVtbl->CreateStream(This,dwFlags,pszStreamName,dwFormat,dwFormatFlags,ppIStream,puliMaxSize)
  344. #define IAssemblyCacheItem_Commit(This,dwFlags,pulDisposition) (This)->lpVtbl->Commit(This,dwFlags,pulDisposition)
  345. #define IAssemblyCacheItem_AbortItem(This) (This)->lpVtbl->AbortItem(This)
  346. #else
  347. /*** IUnknown methods ***/
  348. static FORCEINLINE HRESULT IAssemblyCacheItem_QueryInterface(IAssemblyCacheItem* This,REFIID riid,void **ppvObject) {
  349. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  350. }
  351. static FORCEINLINE ULONG IAssemblyCacheItem_AddRef(IAssemblyCacheItem* This) {
  352. return This->lpVtbl->AddRef(This);
  353. }
  354. static FORCEINLINE ULONG IAssemblyCacheItem_Release(IAssemblyCacheItem* This) {
  355. return This->lpVtbl->Release(This);
  356. }
  357. /*** IAssemblyCacheItem methods ***/
  358. static FORCEINLINE HRESULT IAssemblyCacheItem_CreateStream(IAssemblyCacheItem* This,DWORD dwFlags,LPCWSTR pszStreamName,DWORD dwFormat,DWORD dwFormatFlags,IStream **ppIStream,ULARGE_INTEGER *puliMaxSize) {
  359. return This->lpVtbl->CreateStream(This,dwFlags,pszStreamName,dwFormat,dwFormatFlags,ppIStream,puliMaxSize);
  360. }
  361. static FORCEINLINE HRESULT IAssemblyCacheItem_Commit(IAssemblyCacheItem* This,DWORD dwFlags,ULONG *pulDisposition) {
  362. return This->lpVtbl->Commit(This,dwFlags,pulDisposition);
  363. }
  364. static FORCEINLINE HRESULT IAssemblyCacheItem_AbortItem(IAssemblyCacheItem* This) {
  365. return This->lpVtbl->AbortItem(This);
  366. }
  367. #endif
  368. #endif
  369. #endif
  370. #endif /* __IAssemblyCacheItem_INTERFACE_DEFINED__ */
  371. /*****************************************************************************
  372. * IAssemblyName interface
  373. */
  374. #ifndef __IAssemblyName_INTERFACE_DEFINED__
  375. #define __IAssemblyName_INTERFACE_DEFINED__
  376. typedef IAssemblyName *LPASSEMBLYNAME;
  377. typedef enum __WIDL_fusion_generated_name_00000010 {
  378. CANOF_PARSE_DISPLAY_NAME = 0x1,
  379. CANOF_SET_DEFAULT_VALUES = 0x2,
  380. CANOF_VERIFY_FRIEND_ASSEMBLYNAME = 0x4,
  381. CANOF_PARSE_FRIEND_DISPLAY_NAME = CANOF_PARSE_DISPLAY_NAME | CANOF_VERIFY_FRIEND_ASSEMBLYNAME
  382. } CREATE_ASM_NAME_OBJ_FLAGS;
  383. typedef enum __WIDL_fusion_generated_name_00000011 {
  384. ASM_NAME_PUBLIC_KEY = 0,
  385. ASM_NAME_PUBLIC_KEY_TOKEN = 1,
  386. ASM_NAME_HASH_VALUE = 2,
  387. ASM_NAME_NAME = 3,
  388. ASM_NAME_MAJOR_VERSION = 4,
  389. ASM_NAME_MINOR_VERSION = 5,
  390. ASM_NAME_BUILD_NUMBER = 6,
  391. ASM_NAME_REVISION_NUMBER = 7,
  392. ASM_NAME_CULTURE = 8,
  393. ASM_NAME_PROCESSOR_ID_ARRAY = 9,
  394. ASM_NAME_OSINFO_ARRAY = 10,
  395. ASM_NAME_HASH_ALGID = 11,
  396. ASM_NAME_ALIAS = 12,
  397. ASM_NAME_CODEBASE_URL = 13,
  398. ASM_NAME_CODEBASE_LASTMOD = 14,
  399. ASM_NAME_NULL_PUBLIC_KEY = 15,
  400. ASM_NAME_NULL_PUBLIC_KEY_TOKEN = 16,
  401. ASM_NAME_CUSTOM = 17,
  402. ASM_NAME_NULL_CUSTOM = 18,
  403. ASM_NAME_MVID = 19,
  404. ASM_NAME_FILE_MAJOR_VERSION = 20,
  405. ASM_NAME_FILE_MINOR_VERSION = 21,
  406. ASM_NAME_FILE_BUILD_NUMBER = 22,
  407. ASM_NAME_FILE_REVISION_NUMBER = 23,
  408. ASM_NAME_RETARGET = 24,
  409. ASM_NAME_SIGNATURE_BLOB = 25,
  410. ASM_NAME_CONFIG_MASK = 26,
  411. ASM_NAME_ARCHITECTURE = 27,
  412. ASM_NAME_MAX_PARAMS = 28
  413. } ASM_NAME;
  414. typedef enum __WIDL_fusion_generated_name_00000012 {
  415. ASM_DISPLAYF_VERSION = 0x1,
  416. ASM_DISPLAYF_CULTURE = 0x2,
  417. ASM_DISPLAYF_PUBLIC_KEY_TOKEN = 0x4,
  418. ASM_DISPLAYF_PUBLIC_KEY = 0x8,
  419. ASM_DISPLAYF_CUSTOM = 0x10,
  420. ASM_DISPLAYF_PROCESSORARCHITECTURE = 0x20,
  421. ASM_DISPLAYF_LANGUAGEID = 0x40,
  422. ASM_DISPLAYF_RETARGET = 0x80,
  423. ASM_DISPLAYF_CONFIG_MASK = 0x100,
  424. ASM_DISPLAYF_MVID = 0x200,
  425. ASM_DISPLAYF_FULL = (((ASM_DISPLAYF_VERSION | ASM_DISPLAYF_CULTURE) | ASM_DISPLAYF_PUBLIC_KEY_TOKEN) | ASM_DISPLAYF_RETARGET) | ASM_DISPLAYF_PROCESSORARCHITECTURE
  426. } ASM_DISPLAY_FLAGS;
  427. typedef enum __WIDL_fusion_generated_name_00000013 {
  428. ASM_CMPF_NAME = 0x1,
  429. ASM_CMPF_MAJOR_VERSION = 0x2,
  430. ASM_CMPF_MINOR_VERSION = 0x4,
  431. ASM_CMPF_BUILD_NUMBER = 0x8,
  432. ASM_CMPF_REVISION_NUMBER = 0x10,
  433. ASM_CMPF_VERSION = ((ASM_CMPF_MAJOR_VERSION | ASM_CMPF_MINOR_VERSION) | ASM_CMPF_BUILD_NUMBER) | ASM_CMPF_REVISION_NUMBER,
  434. ASM_CMPF_PUBLIC_KEY_TOKEN = 0x20,
  435. ASM_CMPF_CULTURE = 0x40,
  436. ASM_CMPF_CUSTOM = 0x80,
  437. ASM_CMPF_DEFAULT = 0x100,
  438. ASM_CMPF_RETARGET = 0x200,
  439. ASM_CMPF_ARCHITECTURE = 0x400,
  440. ASM_CMPF_CONFIG_MASK = 0x800,
  441. ASM_CMPF_MVID = 0x1000,
  442. ASM_CMPF_SIGNATURE = 0x2000,
  443. ASM_CMPF_IL_ALL = ((ASM_CMPF_NAME | ASM_CMPF_VERSION) | ASM_CMPF_PUBLIC_KEY_TOKEN) | ASM_CMPF_CULTURE,
  444. ASM_CMPF_IL_NO_VERSION = (ASM_CMPF_NAME | ASM_CMPF_PUBLIC_KEY_TOKEN) | ASM_CMPF_CULTURE
  445. } ASM_CMP_FLAGS;
  446. DEFINE_GUID(IID_IAssemblyName, 0xcd193bc0, 0xb4bc, 0x11d2, 0x98,0x33, 0x00,0xc0,0x4f,0xc3,0x1d,0x2e);
  447. #if defined(__cplusplus) && !defined(CINTERFACE)
  448. MIDL_INTERFACE("cd193bc0-b4bc-11d2-9833-00c04fc31d2e")
  449. IAssemblyName : public IUnknown
  450. {
  451. virtual HRESULT STDMETHODCALLTYPE SetProperty(
  452. DWORD PropertyId,
  453. LPVOID pvProperty,
  454. DWORD cbProperty) = 0;
  455. virtual HRESULT STDMETHODCALLTYPE GetProperty(
  456. DWORD PropertyId,
  457. LPVOID pvProperty,
  458. LPDWORD pcbProperty) = 0;
  459. virtual HRESULT STDMETHODCALLTYPE Finalize(
  460. ) = 0;
  461. virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
  462. LPOLESTR szDisplayName,
  463. LPDWORD pccDisplayName,
  464. DWORD dwDisplayFlags) = 0;
  465. virtual HRESULT STDMETHODCALLTYPE Reserved(
  466. REFIID refIID,
  467. IUnknown *pUnkReserved1,
  468. IUnknown *pUnkReserved2,
  469. LPCOLESTR szReserved,
  470. LONGLONG llReserved,
  471. LPVOID pvReserved,
  472. DWORD cbReserved,
  473. LPVOID *ppReserved) = 0;
  474. virtual HRESULT STDMETHODCALLTYPE GetName(
  475. LPDWORD lpcwBuffer,
  476. WCHAR *pwzName) = 0;
  477. virtual HRESULT STDMETHODCALLTYPE GetVersion(
  478. LPDWORD pdwVersionHi,
  479. LPDWORD pdwVersionLow) = 0;
  480. virtual HRESULT STDMETHODCALLTYPE IsEqual(
  481. IAssemblyName *pName,
  482. DWORD dwCmpFlags) = 0;
  483. virtual HRESULT STDMETHODCALLTYPE Clone(
  484. IAssemblyName **pName) = 0;
  485. };
  486. #ifdef __CRT_UUID_DECL
  487. __CRT_UUID_DECL(IAssemblyName, 0xcd193bc0, 0xb4bc, 0x11d2, 0x98,0x33, 0x00,0xc0,0x4f,0xc3,0x1d,0x2e)
  488. #endif
  489. #else
  490. typedef struct IAssemblyNameVtbl {
  491. BEGIN_INTERFACE
  492. /*** IUnknown methods ***/
  493. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  494. IAssemblyName *This,
  495. REFIID riid,
  496. void **ppvObject);
  497. ULONG (STDMETHODCALLTYPE *AddRef)(
  498. IAssemblyName *This);
  499. ULONG (STDMETHODCALLTYPE *Release)(
  500. IAssemblyName *This);
  501. /*** IAssemblyName methods ***/
  502. HRESULT (STDMETHODCALLTYPE *SetProperty)(
  503. IAssemblyName *This,
  504. DWORD PropertyId,
  505. LPVOID pvProperty,
  506. DWORD cbProperty);
  507. HRESULT (STDMETHODCALLTYPE *GetProperty)(
  508. IAssemblyName *This,
  509. DWORD PropertyId,
  510. LPVOID pvProperty,
  511. LPDWORD pcbProperty);
  512. HRESULT (STDMETHODCALLTYPE *Finalize)(
  513. IAssemblyName *This);
  514. HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
  515. IAssemblyName *This,
  516. LPOLESTR szDisplayName,
  517. LPDWORD pccDisplayName,
  518. DWORD dwDisplayFlags);
  519. HRESULT (STDMETHODCALLTYPE *Reserved)(
  520. IAssemblyName *This,
  521. REFIID refIID,
  522. IUnknown *pUnkReserved1,
  523. IUnknown *pUnkReserved2,
  524. LPCOLESTR szReserved,
  525. LONGLONG llReserved,
  526. LPVOID pvReserved,
  527. DWORD cbReserved,
  528. LPVOID *ppReserved);
  529. HRESULT (STDMETHODCALLTYPE *GetName)(
  530. IAssemblyName *This,
  531. LPDWORD lpcwBuffer,
  532. WCHAR *pwzName);
  533. HRESULT (STDMETHODCALLTYPE *GetVersion)(
  534. IAssemblyName *This,
  535. LPDWORD pdwVersionHi,
  536. LPDWORD pdwVersionLow);
  537. HRESULT (STDMETHODCALLTYPE *IsEqual)(
  538. IAssemblyName *This,
  539. IAssemblyName *pName,
  540. DWORD dwCmpFlags);
  541. HRESULT (STDMETHODCALLTYPE *Clone)(
  542. IAssemblyName *This,
  543. IAssemblyName **pName);
  544. END_INTERFACE
  545. } IAssemblyNameVtbl;
  546. interface IAssemblyName {
  547. CONST_VTBL IAssemblyNameVtbl* lpVtbl;
  548. };
  549. #ifdef COBJMACROS
  550. #ifndef WIDL_C_INLINE_WRAPPERS
  551. /*** IUnknown methods ***/
  552. #define IAssemblyName_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  553. #define IAssemblyName_AddRef(This) (This)->lpVtbl->AddRef(This)
  554. #define IAssemblyName_Release(This) (This)->lpVtbl->Release(This)
  555. /*** IAssemblyName methods ***/
  556. #define IAssemblyName_SetProperty(This,PropertyId,pvProperty,cbProperty) (This)->lpVtbl->SetProperty(This,PropertyId,pvProperty,cbProperty)
  557. #define IAssemblyName_GetProperty(This,PropertyId,pvProperty,pcbProperty) (This)->lpVtbl->GetProperty(This,PropertyId,pvProperty,pcbProperty)
  558. #define IAssemblyName_Finalize(This) (This)->lpVtbl->Finalize(This)
  559. #define IAssemblyName_GetDisplayName(This,szDisplayName,pccDisplayName,dwDisplayFlags) (This)->lpVtbl->GetDisplayName(This,szDisplayName,pccDisplayName,dwDisplayFlags)
  560. #define IAssemblyName_Reserved(This,refIID,pUnkReserved1,pUnkReserved2,szReserved,llReserved,pvReserved,cbReserved,ppReserved) (This)->lpVtbl->Reserved(This,refIID,pUnkReserved1,pUnkReserved2,szReserved,llReserved,pvReserved,cbReserved,ppReserved)
  561. #define IAssemblyName_GetName(This,lpcwBuffer,pwzName) (This)->lpVtbl->GetName(This,lpcwBuffer,pwzName)
  562. #define IAssemblyName_GetVersion(This,pdwVersionHi,pdwVersionLow) (This)->lpVtbl->GetVersion(This,pdwVersionHi,pdwVersionLow)
  563. #define IAssemblyName_IsEqual(This,pName,dwCmpFlags) (This)->lpVtbl->IsEqual(This,pName,dwCmpFlags)
  564. #define IAssemblyName_Clone(This,pName) (This)->lpVtbl->Clone(This,pName)
  565. #else
  566. /*** IUnknown methods ***/
  567. static FORCEINLINE HRESULT IAssemblyName_QueryInterface(IAssemblyName* This,REFIID riid,void **ppvObject) {
  568. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  569. }
  570. static FORCEINLINE ULONG IAssemblyName_AddRef(IAssemblyName* This) {
  571. return This->lpVtbl->AddRef(This);
  572. }
  573. static FORCEINLINE ULONG IAssemblyName_Release(IAssemblyName* This) {
  574. return This->lpVtbl->Release(This);
  575. }
  576. /*** IAssemblyName methods ***/
  577. static FORCEINLINE HRESULT IAssemblyName_SetProperty(IAssemblyName* This,DWORD PropertyId,LPVOID pvProperty,DWORD cbProperty) {
  578. return This->lpVtbl->SetProperty(This,PropertyId,pvProperty,cbProperty);
  579. }
  580. static FORCEINLINE HRESULT IAssemblyName_GetProperty(IAssemblyName* This,DWORD PropertyId,LPVOID pvProperty,LPDWORD pcbProperty) {
  581. return This->lpVtbl->GetProperty(This,PropertyId,pvProperty,pcbProperty);
  582. }
  583. static FORCEINLINE HRESULT IAssemblyName_Finalize(IAssemblyName* This) {
  584. return This->lpVtbl->Finalize(This);
  585. }
  586. static FORCEINLINE HRESULT IAssemblyName_GetDisplayName(IAssemblyName* This,LPOLESTR szDisplayName,LPDWORD pccDisplayName,DWORD dwDisplayFlags) {
  587. return This->lpVtbl->GetDisplayName(This,szDisplayName,pccDisplayName,dwDisplayFlags);
  588. }
  589. static FORCEINLINE HRESULT IAssemblyName_Reserved(IAssemblyName* This,REFIID refIID,IUnknown *pUnkReserved1,IUnknown *pUnkReserved2,LPCOLESTR szReserved,LONGLONG llReserved,LPVOID pvReserved,DWORD cbReserved,LPVOID *ppReserved) {
  590. return This->lpVtbl->Reserved(This,refIID,pUnkReserved1,pUnkReserved2,szReserved,llReserved,pvReserved,cbReserved,ppReserved);
  591. }
  592. static FORCEINLINE HRESULT IAssemblyName_GetName(IAssemblyName* This,LPDWORD lpcwBuffer,WCHAR *pwzName) {
  593. return This->lpVtbl->GetName(This,lpcwBuffer,pwzName);
  594. }
  595. static FORCEINLINE HRESULT IAssemblyName_GetVersion(IAssemblyName* This,LPDWORD pdwVersionHi,LPDWORD pdwVersionLow) {
  596. return This->lpVtbl->GetVersion(This,pdwVersionHi,pdwVersionLow);
  597. }
  598. static FORCEINLINE HRESULT IAssemblyName_IsEqual(IAssemblyName* This,IAssemblyName *pName,DWORD dwCmpFlags) {
  599. return This->lpVtbl->IsEqual(This,pName,dwCmpFlags);
  600. }
  601. static FORCEINLINE HRESULT IAssemblyName_Clone(IAssemblyName* This,IAssemblyName **pName) {
  602. return This->lpVtbl->Clone(This,pName);
  603. }
  604. #endif
  605. #endif
  606. #endif
  607. #endif /* __IAssemblyName_INTERFACE_DEFINED__ */
  608. /*****************************************************************************
  609. * IAssemblyEnum interface
  610. */
  611. #ifndef __IAssemblyEnum_INTERFACE_DEFINED__
  612. #define __IAssemblyEnum_INTERFACE_DEFINED__
  613. DEFINE_GUID(IID_IAssemblyEnum, 0x21b8916c, 0xf28e, 0x11d2, 0xa4,0x73, 0x00,0xc0,0x4f,0x8e,0xf4,0x48);
  614. #if defined(__cplusplus) && !defined(CINTERFACE)
  615. MIDL_INTERFACE("21b8916c-f28e-11d2-a473-00c04f8ef448")
  616. IAssemblyEnum : public IUnknown
  617. {
  618. virtual HRESULT STDMETHODCALLTYPE GetNextAssembly(
  619. LPVOID pvReserved,
  620. IAssemblyName **ppName,
  621. DWORD dwFlags) = 0;
  622. virtual HRESULT STDMETHODCALLTYPE Reset(
  623. ) = 0;
  624. virtual HRESULT STDMETHODCALLTYPE Clone(
  625. IAssemblyEnum **ppEnum) = 0;
  626. };
  627. #ifdef __CRT_UUID_DECL
  628. __CRT_UUID_DECL(IAssemblyEnum, 0x21b8916c, 0xf28e, 0x11d2, 0xa4,0x73, 0x00,0xc0,0x4f,0x8e,0xf4,0x48)
  629. #endif
  630. #else
  631. typedef struct IAssemblyEnumVtbl {
  632. BEGIN_INTERFACE
  633. /*** IUnknown methods ***/
  634. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  635. IAssemblyEnum *This,
  636. REFIID riid,
  637. void **ppvObject);
  638. ULONG (STDMETHODCALLTYPE *AddRef)(
  639. IAssemblyEnum *This);
  640. ULONG (STDMETHODCALLTYPE *Release)(
  641. IAssemblyEnum *This);
  642. /*** IAssemblyEnum methods ***/
  643. HRESULT (STDMETHODCALLTYPE *GetNextAssembly)(
  644. IAssemblyEnum *This,
  645. LPVOID pvReserved,
  646. IAssemblyName **ppName,
  647. DWORD dwFlags);
  648. HRESULT (STDMETHODCALLTYPE *Reset)(
  649. IAssemblyEnum *This);
  650. HRESULT (STDMETHODCALLTYPE *Clone)(
  651. IAssemblyEnum *This,
  652. IAssemblyEnum **ppEnum);
  653. END_INTERFACE
  654. } IAssemblyEnumVtbl;
  655. interface IAssemblyEnum {
  656. CONST_VTBL IAssemblyEnumVtbl* lpVtbl;
  657. };
  658. #ifdef COBJMACROS
  659. #ifndef WIDL_C_INLINE_WRAPPERS
  660. /*** IUnknown methods ***/
  661. #define IAssemblyEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  662. #define IAssemblyEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
  663. #define IAssemblyEnum_Release(This) (This)->lpVtbl->Release(This)
  664. /*** IAssemblyEnum methods ***/
  665. #define IAssemblyEnum_GetNextAssembly(This,pvReserved,ppName,dwFlags) (This)->lpVtbl->GetNextAssembly(This,pvReserved,ppName,dwFlags)
  666. #define IAssemblyEnum_Reset(This) (This)->lpVtbl->Reset(This)
  667. #define IAssemblyEnum_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
  668. #else
  669. /*** IUnknown methods ***/
  670. static FORCEINLINE HRESULT IAssemblyEnum_QueryInterface(IAssemblyEnum* This,REFIID riid,void **ppvObject) {
  671. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  672. }
  673. static FORCEINLINE ULONG IAssemblyEnum_AddRef(IAssemblyEnum* This) {
  674. return This->lpVtbl->AddRef(This);
  675. }
  676. static FORCEINLINE ULONG IAssemblyEnum_Release(IAssemblyEnum* This) {
  677. return This->lpVtbl->Release(This);
  678. }
  679. /*** IAssemblyEnum methods ***/
  680. static FORCEINLINE HRESULT IAssemblyEnum_GetNextAssembly(IAssemblyEnum* This,LPVOID pvReserved,IAssemblyName **ppName,DWORD dwFlags) {
  681. return This->lpVtbl->GetNextAssembly(This,pvReserved,ppName,dwFlags);
  682. }
  683. static FORCEINLINE HRESULT IAssemblyEnum_Reset(IAssemblyEnum* This) {
  684. return This->lpVtbl->Reset(This);
  685. }
  686. static FORCEINLINE HRESULT IAssemblyEnum_Clone(IAssemblyEnum* This,IAssemblyEnum **ppEnum) {
  687. return This->lpVtbl->Clone(This,ppEnum);
  688. }
  689. #endif
  690. #endif
  691. #endif
  692. #endif /* __IAssemblyEnum_INTERFACE_DEFINED__ */
  693. /*****************************************************************************
  694. * IInstallReferenceItem interface
  695. */
  696. #ifndef __IInstallReferenceItem_INTERFACE_DEFINED__
  697. #define __IInstallReferenceItem_INTERFACE_DEFINED__
  698. DEFINE_GUID(IID_IInstallReferenceItem, 0x582dac66, 0xe678, 0x449f, 0xab,0xa6, 0x6f,0xaa,0xec,0x8a,0x93,0x94);
  699. #if defined(__cplusplus) && !defined(CINTERFACE)
  700. MIDL_INTERFACE("582dac66-e678-449f-aba6-6faaec8a9394")
  701. IInstallReferenceItem : public IUnknown
  702. {
  703. };
  704. #ifdef __CRT_UUID_DECL
  705. __CRT_UUID_DECL(IInstallReferenceItem, 0x582dac66, 0xe678, 0x449f, 0xab,0xa6, 0x6f,0xaa,0xec,0x8a,0x93,0x94)
  706. #endif
  707. #else
  708. typedef struct IInstallReferenceItemVtbl {
  709. BEGIN_INTERFACE
  710. /*** IUnknown methods ***/
  711. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  712. IInstallReferenceItem *This,
  713. REFIID riid,
  714. void **ppvObject);
  715. ULONG (STDMETHODCALLTYPE *AddRef)(
  716. IInstallReferenceItem *This);
  717. ULONG (STDMETHODCALLTYPE *Release)(
  718. IInstallReferenceItem *This);
  719. END_INTERFACE
  720. } IInstallReferenceItemVtbl;
  721. interface IInstallReferenceItem {
  722. CONST_VTBL IInstallReferenceItemVtbl* lpVtbl;
  723. };
  724. #ifdef COBJMACROS
  725. #ifndef WIDL_C_INLINE_WRAPPERS
  726. /*** IUnknown methods ***/
  727. #define IInstallReferenceItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  728. #define IInstallReferenceItem_AddRef(This) (This)->lpVtbl->AddRef(This)
  729. #define IInstallReferenceItem_Release(This) (This)->lpVtbl->Release(This)
  730. #else
  731. /*** IUnknown methods ***/
  732. static FORCEINLINE HRESULT IInstallReferenceItem_QueryInterface(IInstallReferenceItem* This,REFIID riid,void **ppvObject) {
  733. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  734. }
  735. static FORCEINLINE ULONG IInstallReferenceItem_AddRef(IInstallReferenceItem* This) {
  736. return This->lpVtbl->AddRef(This);
  737. }
  738. static FORCEINLINE ULONG IInstallReferenceItem_Release(IInstallReferenceItem* This) {
  739. return This->lpVtbl->Release(This);
  740. }
  741. #endif
  742. #endif
  743. #endif
  744. #endif /* __IInstallReferenceItem_INTERFACE_DEFINED__ */
  745. /*****************************************************************************
  746. * IInstallReferenceEnum interface
  747. */
  748. #ifndef __IInstallReferenceEnum_INTERFACE_DEFINED__
  749. #define __IInstallReferenceEnum_INTERFACE_DEFINED__
  750. DEFINE_GUID(IID_IInstallReferenceEnum, 0x56b1a988, 0x7c0c, 0x4aa2, 0x86,0x39, 0xc3,0xeb,0x5a,0x90,0x22,0x6f);
  751. #if defined(__cplusplus) && !defined(CINTERFACE)
  752. MIDL_INTERFACE("56b1a988-7c0c-4aa2-8639-c3eb5a90226f")
  753. IInstallReferenceEnum : public IUnknown
  754. {
  755. };
  756. #ifdef __CRT_UUID_DECL
  757. __CRT_UUID_DECL(IInstallReferenceEnum, 0x56b1a988, 0x7c0c, 0x4aa2, 0x86,0x39, 0xc3,0xeb,0x5a,0x90,0x22,0x6f)
  758. #endif
  759. #else
  760. typedef struct IInstallReferenceEnumVtbl {
  761. BEGIN_INTERFACE
  762. /*** IUnknown methods ***/
  763. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  764. IInstallReferenceEnum *This,
  765. REFIID riid,
  766. void **ppvObject);
  767. ULONG (STDMETHODCALLTYPE *AddRef)(
  768. IInstallReferenceEnum *This);
  769. ULONG (STDMETHODCALLTYPE *Release)(
  770. IInstallReferenceEnum *This);
  771. END_INTERFACE
  772. } IInstallReferenceEnumVtbl;
  773. interface IInstallReferenceEnum {
  774. CONST_VTBL IInstallReferenceEnumVtbl* lpVtbl;
  775. };
  776. #ifdef COBJMACROS
  777. #ifndef WIDL_C_INLINE_WRAPPERS
  778. /*** IUnknown methods ***/
  779. #define IInstallReferenceEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  780. #define IInstallReferenceEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
  781. #define IInstallReferenceEnum_Release(This) (This)->lpVtbl->Release(This)
  782. #else
  783. /*** IUnknown methods ***/
  784. static FORCEINLINE HRESULT IInstallReferenceEnum_QueryInterface(IInstallReferenceEnum* This,REFIID riid,void **ppvObject) {
  785. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  786. }
  787. static FORCEINLINE ULONG IInstallReferenceEnum_AddRef(IInstallReferenceEnum* This) {
  788. return This->lpVtbl->AddRef(This);
  789. }
  790. static FORCEINLINE ULONG IInstallReferenceEnum_Release(IInstallReferenceEnum* This) {
  791. return This->lpVtbl->Release(This);
  792. }
  793. #endif
  794. #endif
  795. #endif
  796. #endif /* __IInstallReferenceEnum_INTERFACE_DEFINED__ */
  797. HRESULT WINAPI ClearDownloadCache(void);
  798. HRESULT WINAPI CompareAssemblyIdentity(LPCWSTR,WINBOOL,LPCWSTR,WINBOOL,WINBOOL*,AssemblyComparisonResult*);
  799. HRESULT WINAPI CreateAssemblyCache(IAssemblyCache**,DWORD);
  800. HRESULT WINAPI CreateAssemblyEnum(IAssemblyEnum**,IUnknown*,IAssemblyName*,DWORD,LPVOID);
  801. HRESULT WINAPI CreateAssemblyNameObject(LPASSEMBLYNAME*,LPCWSTR,DWORD,LPVOID);
  802. HRESULT WINAPI CreateInstallReferenceEnum(IInstallReferenceEnum**,IAssemblyName*,DWORD,LPVOID);
  803. HRESULT WINAPI GetAssemblyIdentityFromFile(LPCWSTR,REFIID,IUnknown**);
  804. HRESULT WINAPI GetCachePath(ASM_CACHE_FLAGS,LPWSTR,PDWORD);
  805. /* Begin additional prototypes for all interfaces */
  806. /* End additional prototypes */
  807. #ifdef __cplusplus
  808. }
  809. #endif
  810. #endif /* __fusion_h__ */