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