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.

628 lines
19 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992-2001.
  5. //
  6. // File: fusenet.idl
  7. //
  8. // Contents: Fusion Installer Interfaces
  9. //
  10. // Classes:
  11. //
  12. // Functions:
  13. //
  14. //
  15. //----------------------------------------------------------------------------
  16. cpp_quote("//=--------------------------------------------------------------------------=")
  17. cpp_quote("// fusenet.h")
  18. cpp_quote("//=--------------------------------------------------------------------------=")
  19. cpp_quote("// (C) Copyright 1995-2001 Microsoft Corporation. All Rights Reserved.")
  20. cpp_quote("//")
  21. cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
  22. cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
  23. cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
  24. cpp_quote("// PARTICULAR PURPOSE.")
  25. cpp_quote("//=--------------------------------------------------------------------------=")
  26. cpp_quote("")
  27. cpp_quote("#pragma comment(lib,\"uuid.lib\")")
  28. cpp_quote("")
  29. cpp_quote("//---------------------------------------------------------------------------=")
  30. cpp_quote("// Fusenet Interfaces.")
  31. cpp_quote("")
  32. import "objidl.idl";
  33. import "oleidl.idl";
  34. //import "bgcopy.idl";
  35. import "bits.idl";
  36. cpp_quote("class CDebugLog;")
  37. interface IAssemblyIdentity;
  38. interface IAssemblyManifestImport;
  39. interface IAssemblyCacheImport;
  40. interface IAssemblyCacheEmit;
  41. interface IAssemblyDownload;
  42. cpp_quote("#include <fusion.h>")
  43. cpp_quote("EXTERN_C const IID IID_IAssemblyIdentity;")
  44. cpp_quote("EXTERN_C const IID IID_IAssemblyManifestImport;")
  45. cpp_quote("EXTERN_C const IID IID_IAssemblyManifestEmit;")
  46. cpp_quote("EXTERN_C const IID IID_IAssemblyCacheImport;")
  47. cpp_quote("EXTERN_C const IID IID_IAssemblyCacheEmit;")
  48. cpp_quote("EXTERN_C const IID IID_IAssemblyCacheEnum;")
  49. cpp_quote("EXTERN_C const IID IID_IAssemblyDownload;")
  50. cpp_quote("EXTERN_C const IID IID_IManifestInfo;")
  51. cpp_quote("EXTERN_C const IID IID_IManifestData;")
  52. cpp_quote("EXTERN_C const IID IID_IPatchingInfo;")
  53. cpp_quote("#define DEVMODE // define devMode - devSync")
  54. ///////////////////////////////////////////////////////////////////////////////
  55. //
  56. // IAssemblyIdentity
  57. //
  58. ///////////////////////////////////////////////////////////////////////////////
  59. [
  60. local,
  61. object,
  62. uuid(aaa1257d-a56c-4383-9b4a-c868eda7ca42),
  63. pointer_default(unique)
  64. ]
  65. interface IAssemblyIdentity: IUnknown
  66. {
  67. typedef [unique] IAssemblyIdentity *LPASSEMBLY_IDENTITY;
  68. typedef enum
  69. {
  70. ASMID_DISPLAYNAME_NOMANGLING= 0,
  71. ASMID_DISPLAYNAME_WILDCARDED,
  72. ASMID_DISPLAYNAME_MAX
  73. } ASMID_DISPLAYNAME_FLAGS;
  74. HRESULT SetAttribute(
  75. [in] LPCOLESTR pwzName,
  76. [in] LPCOLESTR pwzValue,
  77. [in] DWORD ccValue);
  78. HRESULT GetAttribute(
  79. [in] LPCOLESTR pwzName,
  80. [out] LPOLESTR *ppwzValue,
  81. [out] LPDWORD pccValue);
  82. HRESULT GetDisplayName(
  83. [in] DWORD dwFlags,
  84. [out] LPOLESTR *ppwzDisplayName,
  85. [out] LPDWORD pccDisplayName);
  86. HRESULT GetCLRDisplayName(
  87. [in] DWORD dwFlags,
  88. [out] LPOLESTR *ppwzDisplayName,
  89. [out] LPDWORD pccDisplayName);
  90. HRESULT IsEqual(
  91. [in] IAssemblyIdentity *pAssemblyId);
  92. }
  93. ///////////////////////////////////////////////////////////////////////////////
  94. //
  95. // IManifestInfo
  96. //
  97. ///////////////////////////////////////////////////////////////////////////////
  98. [
  99. local,
  100. object,
  101. uuid(b9309cc3-e522-4d58-b5c7-dee5b1763114),
  102. pointer_default(unique)
  103. ]
  104. interface IManifestInfo: IUnknown
  105. {
  106. typedef [unique] IManifestInfo *LPMANIFEST_INFO;
  107. enum
  108. {
  109. MAN_INFO_ASM_FILE_NAME=0,
  110. MAN_INFO_ASM_FILE_HASH,
  111. MAN_INFO_ASM_FILE_SIZE,
  112. MAN_INFO_ASM_FILE_MAX
  113. };
  114. enum
  115. {
  116. MAN_INFO_APPLICATION_FRIENDLYNAME=0,
  117. MAN_INFO_APPLICATION_ENTRYPOINT,
  118. MAN_INFO_APPLICATION_ENTRYIMAGETYPE,
  119. MAN_INFO_APPLICATION_ICONFILE,
  120. MAN_INFO_APPLICATION_ICONINDEX,
  121. MAN_INFO_APPLICATION_SHOWCOMMAND,
  122. MAN_INFO_APPLICATION_HOTKEY,
  123. MAN_INFO_APPLICATION_ASSEMBLYNAME,
  124. MAN_INFO_APPLICATION_ASSEMBLYCLASS,
  125. MAN_INFO_APPLICATION_ASSEMBLYMETHOD,
  126. MAN_INFO_APPLICATION_ASSEMBLYARGS,
  127. MAN_INFO_APPLICATION_MAX
  128. };
  129. enum
  130. {
  131. MAN_INFO_SUBSCRIPTION_SYNCHRONIZE_INTERVAL=0,
  132. MAN_INFO_SUBSCRIPTION_INTERVAL_UNIT,
  133. MAN_INFO_SUBSCRIPTION_SYNCHRONIZE_EVENT,
  134. MAN_INFO_SUBSCRIPTION_EVENT_DEMAND_CONNECTION,
  135. MAN_INFO_SUBSCRIPTION_MAX
  136. };
  137. enum
  138. {
  139. MAN_INFO_DEPENDENT_ASM_CODEBASE=0,
  140. MAN_INFO_DEPENDENT_ASM_TYPE,
  141. MAN_INFO_DEPENDENT_ASM_ID,
  142. MAN_INFO_DEPENDANT_ASM_MAX
  143. };
  144. enum
  145. {
  146. MAN_INFO_SOURCE_ASM_ID=0,
  147. MAN_INFO_SOURCE_ASM_PATCH_UTIL,
  148. MAN_INFO_SOURCE_ASM_DIR,
  149. MAN_INFO_SOURCE_ASM_INSTALL_DIR,
  150. MAN_INFO_SOURCE_ASM_TEMP_DIR,
  151. MAN_INFO_SOURCE_ASM_MAX
  152. };
  153. enum
  154. {
  155. MAN_INFO_PATCH_INFO_SOURCE=0,
  156. MAN_INFO_PATCH_INFO_TARGET,
  157. MAN_INFO_PATCH_INFO_PATCH,
  158. MAN_INFO_PATCH_INFO_MAX
  159. };
  160. typedef enum
  161. {
  162. MAN_INFO_FILE=0,
  163. MAN_INFO_APPLICATION,
  164. MAN_INFO_SUBSCRIPTION,
  165. MAN_INFO_DEPENDTANT_ASM,
  166. MAN_INFO_SOURCE_ASM,
  167. MAN_INFO_PATCH_INFO,
  168. MAN_INFO_MAX
  169. } MAN_INFO;
  170. typedef enum
  171. {
  172. MAN_INFO_FLAG_UNDEF=0,
  173. MAN_INFO_FLAG_IUNKNOWN_PTR,
  174. MAN_INFO_FLAG_LPWSTR,
  175. MAN_INFO_FLAG_DWORD,
  176. MAN_INFO_FLAG_ENUM,
  177. MAN_INFO_FLAG_BOOL,
  178. MAN_INFO_FLAG_MAX
  179. } MAN_INFO_FLAGS;
  180. enum {MAX_MAN_INFO_PROPERTIES=MAN_INFO_APPLICATION_MAX};
  181. HRESULT Set(
  182. [in] DWORD PropertyId,
  183. [in] LPVOID pvProperty,
  184. [in] DWORD cbProperty,
  185. [in] DWORD type);
  186. HRESULT Get(
  187. [in] DWORD dwPropertyId,
  188. [out] LPVOID *pvProperty,
  189. [out] DWORD *pcbProperty,
  190. [out] DWORD *pType);
  191. HRESULT IsEqual(
  192. [in] IManifestInfo *pManifestInfo);
  193. HRESULT GetType(
  194. [out] DWORD *pdwType);
  195. }
  196. ///////////////////////////////////////////////////////////////////////////////
  197. //
  198. // IManifestData
  199. //
  200. ///////////////////////////////////////////////////////////////////////////////
  201. [
  202. local,
  203. object,
  204. uuid(8a423759-b438-4fdd-92cd-e09fed4830ef),
  205. pointer_default(unique)
  206. ]
  207. interface IManifestData: IUnknown
  208. {
  209. typedef [unique] IManifestData *LPMANIFEST_DATA;
  210. typedef enum
  211. {
  212. MAN_DATA_TYPE_UNDEF=0,
  213. MAN_DATA_TYPE_LPWSTR,
  214. MAN_DATA_TYPE_DWORD,
  215. MAN_DATA_TYPE_ENUM,
  216. MAN_DATA_TYPE_BOOL,
  217. MAN_DATA_TYPE_IUNKNOWN_PTR,
  218. MAN_DATA_TYPE_MAX
  219. } MAN_DATA_TYPES;
  220. HRESULT Set(
  221. [in] LPCWSTR pwzPropertyId,
  222. [in] LPVOID pvProperty,
  223. [in] DWORD cbProperty,
  224. [in] DWORD dwType);
  225. HRESULT Get(
  226. [in] LPCWSTR pwzPropertyId,
  227. [out] LPVOID *ppvProperty,
  228. [out] DWORD *pcbProperty,
  229. [out] DWORD *pdwType);
  230. HRESULT GetType(
  231. [out] LPWSTR *ppwzType);
  232. }
  233. ///////////////////////////////////////////////////////////////////////////////
  234. //
  235. // IPatchingUtil
  236. //
  237. ///////////////////////////////////////////////////////////////////////////////
  238. [
  239. local,
  240. object,
  241. uuid(e460c1ba-e601-48e4-a926-fea8033ab199),
  242. pointer_default(unique)
  243. ]
  244. interface IPatchingUtil: IUnknown
  245. {
  246. typedef [unique] IPatchingUtil *LPPATCHING_INTERFACE;
  247. HRESULT MatchTarget(
  248. [in] LPWSTR pwzTarget,
  249. [out] IManifestInfo **ppPatchInfo);
  250. HRESULT MatchPatch(
  251. [in] LPWSTR pwzPatch,
  252. [out] IManifestInfo **ppPatchInfo);
  253. }
  254. ///////////////////////////////////////////////////////////////////////////////
  255. //
  256. // IAssemblyManifestImport
  257. //
  258. ///////////////////////////////////////////////////////////////////////////////
  259. [
  260. local,
  261. object,
  262. uuid(696fb37f-da64-4175-94e7-fdc8234539c4),
  263. pointer_default(unique)
  264. ]
  265. interface IAssemblyManifestImport: IUnknown
  266. {
  267. typedef [unique] IAssemblyManifestImport *LPASSEMBLY_MANIFEST_IMPORT;
  268. typedef enum
  269. {
  270. MANIFEST_TYPE_UNKNOWN= 0,
  271. MANIFEST_TYPE_DESKTOP,
  272. MANIFEST_TYPE_SUBSCRIPTION,
  273. MANIFEST_TYPE_APPLICATION,
  274. MANIFEST_TYPE_COMPONENT,
  275. MANIFEST_TYPE_CONTAINER,
  276. MANIFEST_TYPE_MAX
  277. } MANIFEST_TYPE;
  278. // dependent asm info enum
  279. typedef enum
  280. {
  281. DEPENDENT_ASM_INSTALL_TYPE_NORMAL= 0, //default
  282. DEPENDENT_ASM_INSTALL_TYPE_REQUIRED,
  283. DEPENDENT_ASM_INSTALL_TYPE_DEVSYNC,
  284. DEPENDENT_ASM_INSTALL_TYPE_MAX
  285. } DEPENDENT_ASM_INSTALL_TYPE;
  286. // subscription info enums
  287. typedef enum
  288. {
  289. SUBSCRIPTION_INTERVAL_UNIT_HOURS= 0, //default
  290. SUBSCRIPTION_INTERVAL_UNIT_MINUTES,
  291. SUBSCRIPTION_INTERVAL_UNIT_DAYS,
  292. SUBSCRIPTION_INTERVAL_UNIT_MAX
  293. } SUBSCRIPTION_INTERVAL_UNIT;
  294. typedef enum
  295. {
  296. SUBSCRIPTION_SYNC_EVENT_NONE= 0, //default
  297. SUBSCRIPTION_SYNC_EVENT_ON_APP_STARTUP,
  298. SUBSCRIPTION_SYNC_EVENT_MAX
  299. } SUBSCRIPTION_SYNC_EVENT;
  300. HRESULT GetAssemblyIdentity(
  301. [out] IAssemblyIdentity **ppAssemblyId);
  302. HRESULT GetManifestApplicationInfo(
  303. [out] IManifestInfo **ppAppInfo);
  304. HRESULT GetSubscriptionInfo(
  305. [out] IManifestInfo **ppSubsInfo);
  306. HRESULT GetNextPlatform(
  307. [in] DWORD nIndex,
  308. [out] IManifestData **ppPlatformInfo);
  309. HRESULT GetNextFile(
  310. [in] DWORD nIndex,
  311. [out] IManifestInfo **ppAssemblyFile);
  312. HRESULT QueryFile(
  313. [in] LPCOLESTR pwzFileName,
  314. [out] IManifestInfo **ppAssemblyFile);
  315. HRESULT GetNextAssembly(
  316. [in] DWORD nIndex,
  317. [out] IManifestInfo**ppDependAsm);
  318. HRESULT ReportManifestType(
  319. [out] DWORD *pdwType);
  320. }
  321. ///////////////////////////////////////////////////////////////////////////////
  322. //
  323. // IAssemblyManifestEmit
  324. //
  325. ///////////////////////////////////////////////////////////////////////////////
  326. [
  327. local,
  328. object,
  329. uuid(f022ef5f-61dc-489b-b321-4d6f2b910890),
  330. pointer_default(unique)
  331. ]
  332. interface IAssemblyManifestEmit: IUnknown
  333. {
  334. typedef [unique] IAssemblyManifestEmit *LPASSEMBLY_MANIFEST_EMIT;
  335. HRESULT ImportManifestInfo(
  336. [in] LPASSEMBLY_MANIFEST_IMPORT pManImport);
  337. HRESULT SetDependencySubscription(
  338. [in] LPASSEMBLY_MANIFEST_IMPORT pManImport,
  339. [in] LPWSTR pwzManifestUrl);
  340. HRESULT Commit();
  341. }
  342. ///////////////////////////////////////////////////////////////////////////////
  343. //
  344. // IAssemblyCacheImport
  345. //
  346. ///////////////////////////////////////////////////////////////////////////////
  347. [
  348. local,
  349. object,
  350. uuid(c920b164-33e0-4c61-b595-eca4cdb04f12),
  351. pointer_default(unique)
  352. ]
  353. interface IAssemblyCacheImport: IUnknown
  354. {
  355. typedef [unique] IAssemblyCacheImport *LPASSEMBLY_CACHE_IMPORT;
  356. typedef enum
  357. {
  358. CACHEIMP_CREATE_NULL= 0,
  359. CACHEIMP_CREATE_RETRIEVE,
  360. CACHEIMP_CREATE_RETRIEVE_MAX,
  361. CACHEIMP_CREATE_RESOLVE_REF,
  362. CACHEIMP_CREATE_RESOLVE_REF_EX,
  363. CACHEIMP_CREATE_MAX,
  364. } CACHEIMP_CREATE_FLAGS;
  365. HRESULT GetManifestImport(
  366. [out] IAssemblyManifestImport **ppManifestImport);
  367. HRESULT GetManifestFilePath(
  368. [out] LPOLESTR *ppwzFilePath,
  369. [in, out] LPDWORD pccFilePath);
  370. HRESULT GetManifestFileDir(
  371. [out] LPOLESTR *ppwzFileDir,
  372. [in, out] LPDWORD pccFileDir);
  373. HRESULT GetAssemblyIdentity(
  374. [out] IAssemblyIdentity **ppAssemblyId);
  375. HRESULT GetDisplayName(
  376. [out] LPOLESTR *ppwzDisplayName,
  377. [in, out] LPDWORD pccDisplayName);
  378. HRESULT FindExistMatching(
  379. [in] IManifestInfo *pAssemblyFileInfo,
  380. [out] LPOLESTR *ppwzPath);
  381. }
  382. ///////////////////////////////////////////////////////////////////////////////
  383. //
  384. // IAssemblyCacheEmit
  385. //
  386. ///////////////////////////////////////////////////////////////////////////////
  387. [
  388. local,
  389. object,
  390. uuid(83d6b9ac-eff9-45a3-8361-7c41df1f9f85),
  391. pointer_default(unique)
  392. ]
  393. interface IAssemblyCacheEmit: IUnknown
  394. {
  395. typedef [unique] IAssemblyCacheEmit *LPASSEMBLY_CACHE_EMIT;
  396. HRESULT GetManifestImport(
  397. [out] IAssemblyManifestImport **ppManifestImport);
  398. HRESULT GetManifestFilePath(
  399. [out] LPOLESTR *ppwzFilePath,
  400. [in, out] LPDWORD pccFilePath);
  401. HRESULT GetManifestFileDir(
  402. [out] LPOLESTR *ppwzFilePath,
  403. [in, out] LPDWORD pccFilePath);
  404. HRESULT GetDisplayName(
  405. [out] LPOLESTR *ppwzDisplayName,
  406. [in, out] LPDWORD pccDisplayName);
  407. HRESULT GetAssemblyIdentity(
  408. [out] IAssemblyIdentity **ppAssemblyId);
  409. HRESULT CopyFile(
  410. [in] LPOLESTR pwzSourceFilePath,
  411. [in] LPOLESTR pwzFileName,
  412. [in] DWORD dwFlags);
  413. HRESULT Commit(
  414. [in] DWORD dwFlags);
  415. }
  416. ///////////////////////////////////////////////////////////////////////////////
  417. //
  418. // IAssemblyCacheEnum
  419. //
  420. ///////////////////////////////////////////////////////////////////////////////
  421. [
  422. local,
  423. object,
  424. uuid(48a5b677-f800-494f-b19b-795d30699385),
  425. pointer_default(unique)
  426. ]
  427. interface IAssemblyCacheEnum: IUnknown
  428. {
  429. typedef [unique] IAssemblyCacheEnum *LPASSEMBLY_CACHE_ENUM;
  430. typedef enum
  431. {
  432. CACHEENUM_RETRIEVE_ALL= 0,
  433. CACHEENUM_RETRIEVE_VISIBLE,
  434. CACHEENUM_RETRIEVE_MAX,
  435. } CACHEENUM_RETRIEVE_FLAGS;
  436. HRESULT GetNext(
  437. [out] IAssemblyCacheImport** ppAsmCache);
  438. HRESULT Reset();
  439. HRESULT GetCount(
  440. [out] LPDWORD pdwCount);
  441. }
  442. ///////////////////////////////////////////////////////////////////////////////
  443. //
  444. // IAssemblyBindSink
  445. //
  446. ///////////////////////////////////////////////////////////////////////////////
  447. [
  448. local,
  449. object,
  450. uuid(af0bc960-0b9a-11d3-95ca-00a024a85b51),
  451. pointer_default(unique)
  452. ]
  453. interface IAssemblyBindSink : IUnknown
  454. {
  455. typedef [unique] IAssemblyBindSink *LPASSEMBLY_BIND_SINK;
  456. typedef enum
  457. {
  458. ASM_NOTIFICATION_START,
  459. ASM_NOTIFICATION_PROGRESS,
  460. ASM_NOTIFICATION_ABORT,
  461. ASM_NOTIFICATION_ERROR,
  462. ASM_NOTIFICATION_SUBSCRIPTION_MANIFEST,
  463. ASM_NOTIFICATION_APPLICATION_MANIFEST,
  464. ASM_NOTIFICATION_DONE
  465. } ASM_NOTIFICATION;
  466. HRESULT OnProgress(
  467. [in] DWORD dwNotification,
  468. [in] HRESULT hrNotification,
  469. [in] LPCWSTR szNotification,
  470. [in] DWORD dwProgress,
  471. [in] DWORD dwProgressMax,
  472. [in] IUnknown *pUnk);
  473. }
  474. cpp_quote("#ifdef DEVMODE")
  475. cpp_quote("#define DOWNLOAD_DEVMODE 0x10")
  476. cpp_quote("#endif")
  477. ///////////////////////////////////////////////////////////////////////////////
  478. //
  479. // IAssemblyDownload
  480. //
  481. ///////////////////////////////////////////////////////////////////////////////
  482. [
  483. local,
  484. object,
  485. uuid(8a249b36-6132-4238-8871-a267029382a8),
  486. pointer_default(unique)
  487. ]
  488. interface IAssemblyDownload: IBackgroundCopyCallback
  489. {
  490. typedef [unique] IAssemblyDownload *LPASSEMBLY_DOWNLOAD;
  491. typedef enum
  492. {
  493. DOWNLOAD_FLAGS_NO_NOTIFICATION = 0x0,
  494. DOWNLOAD_FLAGS_PROGRESS_UI = 0x1,
  495. DOWNLOAD_FLAGS_NOTIFY_BINDSINK =0x2
  496. } ASM_DOWNLOAD;
  497. HRESULT DownloadManifestAndDependencies(
  498. [in] LPWSTR pwzApplicationManifestUrl,
  499. [in] IAssemblyBindSink *pBindSink,
  500. [in] DWORD dwFlags);
  501. HRESULT CancelDownload();
  502. }
  503. ///////////////////////////////////////////////////////////////////////////////
  504. //
  505. // Platform detection APIs
  506. //
  507. ///////////////////////////////////////////////////////////////////////////////
  508. typedef struct
  509. {
  510. LPWSTR pwzName;
  511. LPWSTR pwzURL;
  512. } TPLATFORM_INFO;
  513. typedef TPLATFORM_INFO* LPTPLATFORM_INFO;
  514. #pragma midl_echo("STDAPI CheckPlatformRequirements(LPASSEMBLY_MANIFEST_IMPORT pManifestImport, LPDWORD pdwNumMissingPlatforms, LPTPLATFORM_INFO* pptPlatform);")
  515. #pragma midl_echo("STDAPI CheckPlatformRequirementsEx(LPASSEMBLY_MANIFEST_IMPORT pManifestImport, CDebugLog* pDbgLog, LPDWORD pdwNumMissingPlatforms, LPTPLATFORM_INFO* pptPlatform);")
  516. #pragma midl_echo("STDAPI CreateFusionAssemblyCacheEx (IAssemblyCache **ppFusionAsmCache);")
  517. #pragma midl_echo("STDAPI CreateAssemblyIdentity(LPASSEMBLY_IDENTITY *ppAssemblyId, DWORD dwFlags);")
  518. #pragma midl_echo("STDAPI CreateAssemblyIdentityEx(LPASSEMBLY_IDENTITY *ppAssemblyId, DWORD dwFlags, LPWSTR wzDisplayName);")
  519. #pragma midl_echo("STDAPI CloneAssemblyIdentity(LPASSEMBLY_IDENTITY pSrcAssemblyId, LPASSEMBLY_IDENTITY *ppDestAssemblyId);")
  520. #pragma midl_echo("STDAPI CreateAssemblyManifestImport(LPASSEMBLY_MANIFEST_IMPORT *ppAssemblyManifestImport, LPCOLESTR szPath, CDebugLog *pDbgLog, DWORD dwFlags);")
  521. #pragma midl_echo("STDAPI CreateAssemblyManifestImportFromXMLStream(LPASSEMBLY_MANIFEST_IMPORT *ppAssemblyManifestImport, IStream* piStream, CDebugLog * pDbgLog, DWORD dwFlags);")
  522. #pragma midl_echo("STDAPI CreateAssemblyManifestEmit(LPASSEMBLY_MANIFEST_EMIT* ppEmit, LPCOLESTR pwzManifestFilePath, MANIFEST_TYPE eType);")
  523. #pragma midl_echo("STDAPI CreateAssemblyCacheImport(LPASSEMBLY_CACHE_IMPORT *ppAssemblyCacheImport, LPASSEMBLY_IDENTITY pAssemblyIdentity, DWORD dwFlags);")
  524. #pragma midl_echo("STDAPI CreateAssemblyCacheEmit(LPASSEMBLY_CACHE_EMIT *ppAssemblyCacheEmit, LPASSEMBLY_CACHE_EMIT pAssemblyCacheEmit, DWORD dwFlags);")
  525. #pragma midl_echo("STDAPI CreateAssemblyDownload(IAssemblyDownload** ppDownload, CDebugLog *pDbgLog, DWORD dwFlags); ")
  526. #pragma midl_echo("STDAPI CreateManifestInfo(DWORD dwId, LPMANIFEST_INFO* ppManifestInfo);")
  527. #pragma midl_echo("STDAPI CreateManifestData(LPCWSTR pwzDataType, LPMANIFEST_DATA* ppManifestData);")
  528. #pragma midl_echo("STDAPI CreateAssemblyCacheEnum( LPASSEMBLY_CACHE_ENUM *ppAssemblyCacheEnum, LPASSEMBLY_IDENTITY pAssemblyIdentity, DWORD dwFlags);")