alink.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. #ifndef __alink_h__
  2. #define __alink_h__
  3. #include <winapifamily.h>
  4. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  5. typedef enum _AssemblyOptions {
  6. optAssemTitle = 0,
  7. optAssemDescription,
  8. optAssemConfig,
  9. optAssemOS,
  10. optAssemProcessor,
  11. optAssemLocale,
  12. optAssemVersion,
  13. optAssemCompany,
  14. optAssemProduct,
  15. optAssemProductVersion,
  16. optAssemCopyright,
  17. optAssemTrademark,
  18. optAssemKeyFile,
  19. optAssemKeyName,
  20. optAssemAlgID,
  21. optAssemFlags,
  22. optAssemHalfSign,
  23. optAssemFileVersion,
  24. optAssemSatelliteVer,
  25. optAssemSignaturePublicKey,
  26. optLastAssemOption
  27. } AssemblyOptions;
  28. typedef enum _AssemblyFlags {
  29. afNone = 0x00000000,
  30. afInMemory = 0x00000001,
  31. afCleanModules = 0x00000002,
  32. afNoRefHash = 0x00000004,
  33. afNoDupTypeCheck = 0x00000008,
  34. afDupeCheckTypeFwds = 0x00000010,
  35. } AssemblyFlags;
  36. EXTERN_GUID (CLSID_AssemblyLinker, 0xf7e02368, 0xa7f4, 0x471f, 0x8c, 0x5e, 0x98, 0x39, 0xed, 0x57, 0xcb, 0x5e);
  37. EXTERN_GUID (IID_IALink, 0xc8e77f39, 0x3604, 0x4fd4, 0x85, 0xcf, 0x38, 0xbd, 0xeb, 0x23, 0x3a, 0xd4);
  38. EXTERN_GUID (IID_IALink2, 0xc8e77f39, 0x3604, 0x4fd4, 0x85, 0xcf, 0x38, 0xbd, 0xeb, 0x23, 0x3a, 0xd5);
  39. EXTERN_GUID (IID_IALink3, 0x22d4f7a0, 0x65, 0x43dd, 0x8e, 0xaf, 0xb9, 0xfb, 0x90, 0x1d, 0x82, 0x23);
  40. #define AssemblyIsUBM ((mdAssembly) mdAssemblyNil)
  41. #define MAX_IDENT_LEN 2048
  42. #ifndef HALINKENUM
  43. #define HALINKENUM void *
  44. #endif
  45. #undef INTERFACE
  46. #define INTERFACE IALink
  47. DECLARE_INTERFACE_ (IALink, IUnknown) {
  48. BEGIN_INTERFACE
  49. #ifndef __cplusplus
  50. /* IUnknown methods */
  51. STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
  52. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  53. STDMETHOD_(ULONG, Release)(THIS) PURE;
  54. #endif
  55. STDMETHOD (Init) (IMetaDataDispenserEx *pDispenser, IMetaDataError *pErrorHandler) PURE;
  56. STDMETHOD (ImportFile) (LPCWSTR pszFilename, LPCWSTR pszTargetName, WINBOOL fSmartImport, mdToken *pImportToken, IMetaDataAssemblyImport **ppAssemblyScope, DWORD *pdwCountOfScopes) PURE;
  57. STDMETHOD (SetAssemblyFile) (LPCWSTR pszFilename, IMetaDataEmit *pEmitter, AssemblyFlags afFlags, mdAssembly *pAssemblyID) PURE;
  58. STDMETHOD (AddFile) (mdAssembly AssemblyID, LPCWSTR pszFilename, DWORD dwFlags, IMetaDataEmit *pEmitter, mdFile *pFileToken) PURE;
  59. STDMETHOD (AddImport) (mdAssembly AssemblyID, mdToken ImportToken, DWORD dwFlags, mdFile *pFileToken) PURE;
  60. STDMETHOD (GetScope) (mdAssembly AssemblyID, mdToken FileToken, DWORD dwScope, IMetaDataImport **ppImportScope) PURE;
  61. STDMETHOD (GetAssemblyRefHash) (mdToken FileToken, const void **ppvHash, DWORD *pcbHash) PURE;
  62. STDMETHOD (ImportTypes) (mdAssembly AssemblyID, mdToken FileToken, DWORD dwScope, HALINKENUM *phEnum, IMetaDataImport **ppImportScope, DWORD *pdwCountOfTypes) PURE;
  63. STDMETHOD (EnumCustomAttributes) (HALINKENUM hEnum, mdToken tkType, mdCustomAttribute rCustomValues[], ULONG cMax, ULONG *pcCustomValues) PURE;
  64. STDMETHOD (EnumImportTypes) (HALINKENUM hEnum, DWORD dwMax, mdTypeDef aTypeDefs[], DWORD *pdwCount) PURE;
  65. STDMETHOD (CloseEnum) (HALINKENUM hEnum) PURE;
  66. STDMETHOD (ExportType) (mdAssembly AssemblyID, mdToken FileToken, mdTypeDef TypeToken, LPCWSTR pszTypename, DWORD dwFlags, mdExportedType *pType) PURE;
  67. STDMETHOD (ExportNestedType) (mdAssembly AssemblyID, mdToken FileToken, mdTypeDef TypeToken, mdExportedType ParentType, LPCWSTR pszTypename, DWORD dwFlags, mdExportedType *pType) PURE;
  68. STDMETHOD (EmbedResource) (mdAssembly AssemblyID, mdToken FileToken, LPCWSTR pszResourceName, DWORD dwOffset, DWORD dwFlags) PURE;
  69. STDMETHOD (LinkResource) (mdAssembly AssemblyID, LPCWSTR pszFileName, LPCWSTR pszNewLocation, LPCWSTR pszResourceName, DWORD dwFlags) PURE;
  70. STDMETHOD (GetResolutionScope) (mdAssembly AssemblyID, mdToken FileToken, mdToken TargetFile, mdToken *pScope) PURE;
  71. STDMETHOD (SetAssemblyProps) (mdAssembly AssemblyID, mdToken FileToken, AssemblyOptions Option, VARIANT Value) PURE;
  72. STDMETHOD (EmitAssemblyCustomAttribute) (mdAssembly AssemblyID, mdToken FileToken, mdToken tkType, void const *pCustomValue, DWORD cbCustomValue, WINBOOL bSecurity, WINBOOL bAllowMulti) PURE;
  73. STDMETHOD (GetWin32ResBlob) (mdAssembly AssemblyID, mdToken FileToken, WINBOOL fDll, LPCWSTR pszIconFile, const void **ppResBlob, DWORD *pcbResBlob) PURE;
  74. STDMETHOD (FreeWin32ResBlob) (const void **ppResBlob) PURE;
  75. STDMETHOD (EmitManifest) (mdAssembly AssemblyID, DWORD *pdwReserveSize, mdAssembly *ptkManifest) PURE;
  76. STDMETHOD (PreCloseAssembly) (mdAssembly AssemblyID) PURE;
  77. STDMETHOD (CloseAssembly) (mdAssembly AssemblyID) PURE;
  78. STDMETHOD (EndMerge) (mdAssembly AssemblyID) PURE;
  79. STDMETHOD (SetNonAssemblyFlags) (AssemblyFlags afFlags) PURE;
  80. STDMETHOD (ImportFile2) (LPCWSTR pszFilename, LPCWSTR pszTargetName, IMetaDataAssemblyImport *pAssemblyScopeIn, WINBOOL fSmartImport, mdToken *pImportToken, IMetaDataAssemblyImport **ppAssemblyScope, DWORD *pdwCountOfScopes) PURE;
  81. STDMETHOD (ExportTypeForwarder) (mdAssemblyRef tkAssemblyRef, LPCWSTR pszTypename, DWORD dwFlags, mdExportedType *pType) PURE;
  82. STDMETHOD (ExportNestedTypeForwarder) (mdAssembly AssemblyID, mdToken FileToken, mdTypeDef TypeToken, mdExportedType ParentType, LPCWSTR pszTypename, DWORD dwFlags, mdExportedType *pType) PURE;
  83. END_INTERFACE
  84. };
  85. __CRT_UUID_DECL (IALink, 0xc8e77f39, 0x3604, 0x4fd4, 0x85, 0xcf, 0x38, 0xbd, 0xeb, 0x23, 0x3a, 0xd4);
  86. #undef INTERFACE
  87. #define INTERFACE IALink2
  88. DECLARE_INTERFACE_ (IALink2, IALink) {
  89. #ifndef __cplusplus
  90. /* IUnknown methods */
  91. STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
  92. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  93. STDMETHOD_(ULONG, Release)(THIS) PURE;
  94. /* IALink */
  95. STDMETHOD (Init) (IMetaDataDispenserEx *pDispenser, IMetaDataError *pErrorHandler) PURE;
  96. STDMETHOD (ImportFile) (LPCWSTR pszFilename, LPCWSTR pszTargetName, WINBOOL fSmartImport, mdToken *pImportToken, IMetaDataAssemblyImport **ppAssemblyScope, DWORD *pdwCountOfScopes) PURE;
  97. STDMETHOD (SetAssemblyFile) (LPCWSTR pszFilename, IMetaDataEmit *pEmitter, AssemblyFlags afFlags, mdAssembly *pAssemblyID) PURE;
  98. STDMETHOD (AddFile) (mdAssembly AssemblyID, LPCWSTR pszFilename, DWORD dwFlags, IMetaDataEmit *pEmitter, mdFile *pFileToken) PURE;
  99. STDMETHOD (AddImport) (mdAssembly AssemblyID, mdToken ImportToken, DWORD dwFlags, mdFile *pFileToken) PURE;
  100. STDMETHOD (GetScope) (mdAssembly AssemblyID, mdToken FileToken, DWORD dwScope, IMetaDataImport **ppImportScope) PURE;
  101. STDMETHOD (GetAssemblyRefHash) (mdToken FileToken, const void **ppvHash, DWORD *pcbHash) PURE;
  102. STDMETHOD (ImportTypes) (mdAssembly AssemblyID, mdToken FileToken, DWORD dwScope, HALINKENUM *phEnum, IMetaDataImport **ppImportScope, DWORD *pdwCountOfTypes) PURE;
  103. STDMETHOD (EnumCustomAttributes) (HALINKENUM hEnum, mdToken tkType, mdCustomAttribute rCustomValues[], ULONG cMax, ULONG *pcCustomValues) PURE;
  104. STDMETHOD (EnumImportTypes) (HALINKENUM hEnum, DWORD dwMax, mdTypeDef aTypeDefs[], DWORD *pdwCount) PURE;
  105. STDMETHOD (CloseEnum) (HALINKENUM hEnum) PURE;
  106. STDMETHOD (ExportType) (mdAssembly AssemblyID, mdToken FileToken, mdTypeDef TypeToken, LPCWSTR pszTypename, DWORD dwFlags, mdExportedType *pType) PURE;
  107. STDMETHOD (ExportNestedType) (mdAssembly AssemblyID, mdToken FileToken, mdTypeDef TypeToken, mdExportedType ParentType, LPCWSTR pszTypename, DWORD dwFlags, mdExportedType *pType) PURE;
  108. STDMETHOD (EmbedResource) (mdAssembly AssemblyID, mdToken FileToken, LPCWSTR pszResourceName, DWORD dwOffset, DWORD dwFlags) PURE;
  109. STDMETHOD (LinkResource) (mdAssembly AssemblyID, LPCWSTR pszFileName, LPCWSTR pszNewLocation, LPCWSTR pszResourceName, DWORD dwFlags) PURE;
  110. STDMETHOD (GetResolutionScope) (mdAssembly AssemblyID, mdToken FileToken, mdToken TargetFile, mdToken *pScope) PURE;
  111. STDMETHOD (SetAssemblyProps) (mdAssembly AssemblyID, mdToken FileToken, AssemblyOptions Option, VARIANT Value) PURE;
  112. STDMETHOD (EmitAssemblyCustomAttribute) (mdAssembly AssemblyID, mdToken FileToken, mdToken tkType, void const *pCustomValue, DWORD cbCustomValue, WINBOOL bSecurity, WINBOOL bAllowMulti) PURE;
  113. STDMETHOD (GetWin32ResBlob) (mdAssembly AssemblyID, mdToken FileToken, WINBOOL fDll, LPCWSTR pszIconFile, const void **ppResBlob, DWORD *pcbResBlob) PURE;
  114. STDMETHOD (FreeWin32ResBlob) (const void **ppResBlob) PURE;
  115. STDMETHOD (EmitManifest) (mdAssembly AssemblyID, DWORD *pdwReserveSize, mdAssembly *ptkManifest) PURE;
  116. STDMETHOD (PreCloseAssembly) (mdAssembly AssemblyID) PURE;
  117. STDMETHOD (CloseAssembly) (mdAssembly AssemblyID) PURE;
  118. STDMETHOD (EndMerge) (mdAssembly AssemblyID) PURE;
  119. STDMETHOD (SetNonAssemblyFlags) (AssemblyFlags afFlags) PURE;
  120. STDMETHOD (ImportFile2) (LPCWSTR pszFilename, LPCWSTR pszTargetName, IMetaDataAssemblyImport *pAssemblyScopeIn, WINBOOL fSmartImport, mdToken *pImportToken, IMetaDataAssemblyImport **ppAssemblyScope, DWORD *pdwCountOfScopes) PURE;
  121. STDMETHOD (ExportTypeForwarder) (mdAssemblyRef tkAssemblyRef, LPCWSTR pszTypename, DWORD dwFlags, mdExportedType *pType) PURE;
  122. STDMETHOD (ExportNestedTypeForwarder) (mdAssembly AssemblyID, mdToken FileToken, mdTypeDef TypeToken, mdExportedType ParentType, LPCWSTR pszTypename, DWORD dwFlags, mdExportedType *pType) PURE;
  123. #endif
  124. STDMETHOD (SetAssemblyFile2) (LPCWSTR pszFilename, IMetaDataEmit2 *pEmitter, AssemblyFlags afFlags, mdAssembly *pAssemblyID) PURE;
  125. STDMETHOD (AddFile2) (mdAssembly AssemblyID, LPCWSTR pszFilename, DWORD dwFlags, IMetaDataEmit2 *pEmitter, mdFile *pFileToken) PURE;
  126. STDMETHOD (GetScope2) (mdAssembly AssemblyID, mdToken FileToken, DWORD dwScope, IMetaDataImport2 **ppImportScope) PURE;
  127. STDMETHOD (ImportTypes2) (mdAssembly AssemblyID, mdToken FileToken, DWORD dwScope, HALINKENUM *phEnum, IMetaDataImport2 **ppImportScope, DWORD *pdwCountOfTypes) PURE;
  128. STDMETHOD (GetFileDef) (mdAssembly AssemblyID, mdFile TargetFile, mdFile *pScope) PURE;
  129. STDMETHOD (GetPublicKeyToken) (LPCWSTR pszKeyFile, LPCWSTR pszKeyContainer, void *pvPublicKeyToken, DWORD *pcbPublicKeyToken) PURE;
  130. STDMETHOD (EmitInternalExportedTypes) (mdAssembly AssemblyID) PURE;
  131. STDMETHOD (ImportFileEx) (LPCWSTR pszFilename, LPCWSTR pszTargetName, WINBOOL fSmartImport, DWORD dwOpenFlags, mdToken *pImportToken, IMetaDataAssemblyImport **ppAssemblyScope, DWORD *pdwCountOfScopes) PURE;
  132. STDMETHOD (ImportFileEx2) (LPCWSTR pszFilename, LPCWSTR pszTargetName, IMetaDataAssemblyImport *pAssemblyScopeIn, WINBOOL fSmartImport, DWORD dwOpenFlags, mdToken *pImportToken, IMetaDataAssemblyImport **ppAssemblyScope, DWORD *pdwCountOfScopes) PURE;
  133. STDMETHOD (SetPEKind) (mdAssembly AssemblyID, mdToken FileToken, DWORD dwPEKind, DWORD dwMachine) PURE;
  134. STDMETHOD (EmitAssembly) (mdAssembly AssemblyID) PURE;
  135. };
  136. __CRT_UUID_DECL (IALink2, 0xc8e77f39, 0x3604, 0x4fd4, 0x85, 0xcf, 0x38, 0xbd, 0xeb, 0x23, 0x3a, 0xd5);
  137. #undef INTERFACE
  138. #define INTERFACE IALink3
  139. DECLARE_INTERFACE_ (IALink3, IALink2) {
  140. #ifndef __cplusplus
  141. /* IUnknown methods */
  142. STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
  143. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  144. STDMETHOD_(ULONG, Release)(THIS) PURE;
  145. /* IALink */
  146. STDMETHOD (Init) (IMetaDataDispenserEx *pDispenser, IMetaDataError *pErrorHandler) PURE;
  147. STDMETHOD (ImportFile) (LPCWSTR pszFilename, LPCWSTR pszTargetName, WINBOOL fSmartImport, mdToken *pImportToken, IMetaDataAssemblyImport **ppAssemblyScope, DWORD *pdwCountOfScopes) PURE;
  148. STDMETHOD (SetAssemblyFile) (LPCWSTR pszFilename, IMetaDataEmit *pEmitter, AssemblyFlags afFlags, mdAssembly *pAssemblyID) PURE;
  149. STDMETHOD (AddFile) (mdAssembly AssemblyID, LPCWSTR pszFilename, DWORD dwFlags, IMetaDataEmit *pEmitter, mdFile *pFileToken) PURE;
  150. STDMETHOD (AddImport) (mdAssembly AssemblyID, mdToken ImportToken, DWORD dwFlags, mdFile *pFileToken) PURE;
  151. STDMETHOD (GetScope) (mdAssembly AssemblyID, mdToken FileToken, DWORD dwScope, IMetaDataImport **ppImportScope) PURE;
  152. STDMETHOD (GetAssemblyRefHash) (mdToken FileToken, const void **ppvHash, DWORD *pcbHash) PURE;
  153. STDMETHOD (ImportTypes) (mdAssembly AssemblyID, mdToken FileToken, DWORD dwScope, HALINKENUM *phEnum, IMetaDataImport **ppImportScope, DWORD *pdwCountOfTypes) PURE;
  154. STDMETHOD (EnumCustomAttributes) (HALINKENUM hEnum, mdToken tkType, mdCustomAttribute rCustomValues[], ULONG cMax, ULONG *pcCustomValues) PURE;
  155. STDMETHOD (EnumImportTypes) (HALINKENUM hEnum, DWORD dwMax, mdTypeDef aTypeDefs[], DWORD *pdwCount) PURE;
  156. STDMETHOD (CloseEnum) (HALINKENUM hEnum) PURE;
  157. STDMETHOD (ExportType) (mdAssembly AssemblyID, mdToken FileToken, mdTypeDef TypeToken, LPCWSTR pszTypename, DWORD dwFlags, mdExportedType *pType) PURE;
  158. STDMETHOD (ExportNestedType) (mdAssembly AssemblyID, mdToken FileToken, mdTypeDef TypeToken, mdExportedType ParentType, LPCWSTR pszTypename, DWORD dwFlags, mdExportedType *pType) PURE;
  159. STDMETHOD (EmbedResource) (mdAssembly AssemblyID, mdToken FileToken, LPCWSTR pszResourceName, DWORD dwOffset, DWORD dwFlags) PURE;
  160. STDMETHOD (LinkResource) (mdAssembly AssemblyID, LPCWSTR pszFileName, LPCWSTR pszNewLocation, LPCWSTR pszResourceName, DWORD dwFlags) PURE;
  161. STDMETHOD (GetResolutionScope) (mdAssembly AssemblyID, mdToken FileToken, mdToken TargetFile, mdToken *pScope) PURE;
  162. STDMETHOD (SetAssemblyProps) (mdAssembly AssemblyID, mdToken FileToken, AssemblyOptions Option, VARIANT Value) PURE;
  163. STDMETHOD (EmitAssemblyCustomAttribute) (mdAssembly AssemblyID, mdToken FileToken, mdToken tkType, void const *pCustomValue, DWORD cbCustomValue, WINBOOL bSecurity, WINBOOL bAllowMulti) PURE;
  164. STDMETHOD (GetWin32ResBlob) (mdAssembly AssemblyID, mdToken FileToken, WINBOOL fDll, LPCWSTR pszIconFile, const void **ppResBlob, DWORD *pcbResBlob) PURE;
  165. STDMETHOD (FreeWin32ResBlob) (const void **ppResBlob) PURE;
  166. STDMETHOD (EmitManifest) (mdAssembly AssemblyID, DWORD *pdwReserveSize, mdAssembly *ptkManifest) PURE;
  167. STDMETHOD (PreCloseAssembly) (mdAssembly AssemblyID) PURE;
  168. STDMETHOD (CloseAssembly) (mdAssembly AssemblyID) PURE;
  169. STDMETHOD (EndMerge) (mdAssembly AssemblyID) PURE;
  170. STDMETHOD (SetNonAssemblyFlags) (AssemblyFlags afFlags) PURE;
  171. STDMETHOD (ImportFile2) (LPCWSTR pszFilename, LPCWSTR pszTargetName, IMetaDataAssemblyImport *pAssemblyScopeIn, WINBOOL fSmartImport, mdToken *pImportToken, IMetaDataAssemblyImport **ppAssemblyScope, DWORD *pdwCountOfScopes) PURE;
  172. STDMETHOD (ExportTypeForwarder) (mdAssemblyRef tkAssemblyRef, LPCWSTR pszTypename, DWORD dwFlags, mdExportedType *pType) PURE;
  173. STDMETHOD (ExportNestedTypeForwarder) (mdAssembly AssemblyID, mdToken FileToken, mdTypeDef TypeToken, mdExportedType ParentType, LPCWSTR pszTypename, DWORD dwFlags, mdExportedType *pType) PURE;
  174. /* IALink2 */
  175. STDMETHOD (SetAssemblyFile2) (LPCWSTR pszFilename, IMetaDataEmit2 *pEmitter, AssemblyFlags afFlags, mdAssembly *pAssemblyID) PURE;
  176. STDMETHOD (AddFile2) (mdAssembly AssemblyID, LPCWSTR pszFilename, DWORD dwFlags, IMetaDataEmit2 *pEmitter, mdFile *pFileToken) PURE;
  177. STDMETHOD (GetScope2) (mdAssembly AssemblyID, mdToken FileToken, DWORD dwScope, IMetaDataImport2 **ppImportScope) PURE;
  178. STDMETHOD (ImportTypes2) (mdAssembly AssemblyID, mdToken FileToken, DWORD dwScope, HALINKENUM *phEnum, IMetaDataImport2 **ppImportScope, DWORD *pdwCountOfTypes) PURE;
  179. STDMETHOD (GetFileDef) (mdAssembly AssemblyID, mdFile TargetFile, mdFile *pScope) PURE;
  180. STDMETHOD (GetPublicKeyToken) (LPCWSTR pszKeyFile, LPCWSTR pszKeyContainer, void *pvPublicKeyToken, DWORD *pcbPublicKeyToken) PURE;
  181. STDMETHOD (EmitInternalExportedTypes) (mdAssembly AssemblyID) PURE;
  182. STDMETHOD (ImportFileEx) (LPCWSTR pszFilename, LPCWSTR pszTargetName, WINBOOL fSmartImport, DWORD dwOpenFlags, mdToken *pImportToken, IMetaDataAssemblyImport **ppAssemblyScope, DWORD *pdwCountOfScopes) PURE;
  183. STDMETHOD (ImportFileEx2) (LPCWSTR pszFilename, LPCWSTR pszTargetName, IMetaDataAssemblyImport *pAssemblyScopeIn, WINBOOL fSmartImport, DWORD dwOpenFlags, mdToken *pImportToken, IMetaDataAssemblyImport **ppAssemblyScope, DWORD *pdwCountOfScopes) PURE;
  184. STDMETHOD (SetPEKind) (mdAssembly AssemblyID, mdToken FileToken, DWORD dwPEKind, DWORD dwMachine) PURE;
  185. STDMETHOD (EmitAssembly) (mdAssembly AssemblyID) PURE;
  186. #endif
  187. STDMETHOD (SetManifestFile) (LPCWSTR pszFile) PURE;
  188. };
  189. __CRT_UUID_DECL (IALink3, 0x22d4f7a0, 0x65, 0x43dd, 0x8e, 0xaf, 0xb9, 0xfb, 0x90, 0x1d, 0x82, 0x23);
  190. #undef INTERFACE
  191. #ifdef __cplusplus
  192. extern "C" {
  193. #endif
  194. HRESULT WINAPI CreateALink (REFIID riid, IUnknown **ppInterface);
  195. HINSTANCE WINAPI GetALinkMessageDll ();
  196. #ifdef __cplusplus
  197. }
  198. #endif
  199. #endif
  200. #endif