1 | /**
|
---|
2 | * This file has no copyright assigned and is placed in the Public Domain.
|
---|
3 | * This file is part of the mingw-w64 runtime package.
|
---|
4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
---|
5 | */
|
---|
6 | #ifndef _CORREG_H_
|
---|
7 | #define _CORREG_H_
|
---|
8 |
|
---|
9 | #include <ole2.h>
|
---|
10 |
|
---|
11 | #ifdef __cplusplus
|
---|
12 | extern "C" {
|
---|
13 | #endif
|
---|
14 |
|
---|
15 | #include <pshpack1.h>
|
---|
16 |
|
---|
17 | #ifndef NODLLIMPORT
|
---|
18 | #define DLLIMPORT __declspec(dllimport)
|
---|
19 | #else
|
---|
20 | #define DLLIMPORT
|
---|
21 | #endif
|
---|
22 |
|
---|
23 | #if !defined(_META_DATA_NO_SCOPE_) || defined(_META_DATA_SCOPE_WRAPPER_)
|
---|
24 |
|
---|
25 | STDAPI CoGetCor(REFIID riid,void **ppv);
|
---|
26 | #endif
|
---|
27 |
|
---|
28 | STDAPI CoInitializeCor(DWORD fFlags);
|
---|
29 | STDAPI_(void) CoUninitializeCor(void);
|
---|
30 |
|
---|
31 | typedef INT_PTR mdScope;
|
---|
32 | #define mdScopeNil ((mdScope)0)
|
---|
33 |
|
---|
34 | typedef INT_PTR mdToken;
|
---|
35 | typedef INT_PTR mdModule;
|
---|
36 | typedef INT_PTR mdTypeDef;
|
---|
37 | typedef INT_PTR mdInterfaceImpl;
|
---|
38 | typedef INT_PTR mdTypeRef;
|
---|
39 | typedef INT_PTR mdNamespace;
|
---|
40 | typedef INT_PTR mdCustomValue;
|
---|
41 | typedef INT_PTR mdResource;
|
---|
42 | typedef INT_PTR mdCocatdef;
|
---|
43 | typedef INT_PTR mdCocatImpl;
|
---|
44 | typedef INT_PTR mdMimeTypeImpl;
|
---|
45 | typedef INT_PTR mdFormatImpl;
|
---|
46 | typedef INT_PTR mdProgID;
|
---|
47 | typedef INT_PTR mdRoleCheck;
|
---|
48 | typedef unsigned __LONG32 RID;
|
---|
49 |
|
---|
50 | enum CorRegTokenType {
|
---|
51 | mdtTypeDef = 0x00000000,mdtInterfaceImpl = 0x01000000,mdtTypeRef = 0x03000000,mdtNamespace = 0x06000000,mdtCustomValue = 0x07000000,
|
---|
52 | mdtResource = 0x0B000000,mdtCocatImpl = 0x0D000000,mdtMimeTypeImpl = 0x0E000000,mdtFormatImpl = 0x0F000000,mdtProgID = 0x10000000,
|
---|
53 | mdtRoleCheck = 0x11000000,mdtModule = 0x14000000
|
---|
54 | };
|
---|
55 |
|
---|
56 | #define RidToToken(rid,tktype) ((rid) |= (tktype))
|
---|
57 | #define TokenFromRid(rid,tktype) ((rid) | (tktype))
|
---|
58 | #define RidFromToken(tk) ((RID) ((tk) & 0x00ffffff))
|
---|
59 | #define TypeFromToken(tk) ((tk) & 0xff000000)
|
---|
60 |
|
---|
61 | #define mdTokenNil ((mdToken)0)
|
---|
62 | #define mdModuleNil ((mdModule)mdtModule)
|
---|
63 | #define mdTypeDefNil ((mdTypeDef)mdtTypeDef)
|
---|
64 | #define mdInterfaceImplNil ((mdInterfaceImpl)mdtInterfaceImpl)
|
---|
65 | #define mdTypeRefNil ((mdTypeRef)mdtTypeRef)
|
---|
66 | #define mdNamespaceNil ((mdNamespace)mdtNamespace)
|
---|
67 | #define mdCustomValueNil ((mdCustomValue)mdtCustomValue)
|
---|
68 | #define mdResourceNil ((mdResource)mdtResource)
|
---|
69 | #define mdCocatImplNil ((mdCocatImpl)mdtCocatImpl)
|
---|
70 | #define mdMimeTypeImplNil ((mdMimeTypeImpl)mdtMimeTypeImpl)
|
---|
71 | #define mdFormatImplNil ((mdFormatImpl)mdtFormatImpl)
|
---|
72 | #define mdProgIDNil ((mdProgID)mdtProgID)
|
---|
73 | #define mdRoleCheckNil ((mdRoleCheck)mdtRoleCheck)
|
---|
74 |
|
---|
75 | enum CorRegTypeAttr {
|
---|
76 | tdPublic = 0x0001,tdLayoutMask = 0x0006,tdAutoLayout = 0x0000,tdLayoutSequential = 0x0002,tdExplicitLayout = 0x0004,tdWrapperClass = 0x0008,
|
---|
77 | tdFinal = 0x0010,tdISSCompat = 0x0020,tdStringFormatMask = 0x00c0,tdAnsiClass = 0x0000,tdUnicodeClass = 0x0040,tdAutoClass = 0x0080,
|
---|
78 | tdValueClass = 0x0100,tdInterface = 0x0200,tdAbstract = 0x0400,tdImport = 0x1000,tdRecord = 0x2000,tdEnum = 0x4000,tdReserved1 = 0x0800
|
---|
79 | };
|
---|
80 |
|
---|
81 | enum CorImplementType {
|
---|
82 | itImplements = 0x0000,itEvents = 0x0001,itRequires = 0x0002,itInherits = 0x0004
|
---|
83 | };
|
---|
84 |
|
---|
85 | enum CorClassActivateAttr {
|
---|
86 | caaDeferCreate = 0x0001,caaAppObject = 0x0002,caaFixedIfaceSet = 0x0004,caaIndependentlyCreateable = 0x0100,caaPredefined = 0x0200,
|
---|
87 | caaLoadBalancing = 0x0c00,caaLBNotSupported = 0x0400,caaLBSupported = 0x0800,caaLBNotSpecified = 0x0000,caaObjectPooling = 0x3000,
|
---|
88 | caaOPNotSupported = 0x1000,caaOPSupported = 0x2000,caaOPNotSpecified = 0x0000,caaJITActivation = 0xc000,caaJANotSupported = 0x4000,
|
---|
89 | caaJASupported = 0x8000,caaJANotSpecified = 0x0000
|
---|
90 | };
|
---|
91 |
|
---|
92 | enum CorIfaceSvcAttr {
|
---|
93 | mlNone = 0x0001,mlAutomation = 0x0002,mlProxyStub = 0x0004,mlDeferrable = 0x0018,mlDeferNotSupported = 0x0008,mlDeferSupported = 0x0010,
|
---|
94 | mlDeferNotSpecified = 0x0000
|
---|
95 | };
|
---|
96 |
|
---|
97 | enum CocatImplAttr {
|
---|
98 | catiaImplements = 0x0001,catiaRequires = 0x0002
|
---|
99 | };
|
---|
100 |
|
---|
101 | enum CorModuleExportAttr {
|
---|
102 | moUsesGetLastError = 0x0001
|
---|
103 | };
|
---|
104 |
|
---|
105 | enum CorModuleRegAttr {
|
---|
106 | rmaCustomReg = 0x0001
|
---|
107 | };
|
---|
108 |
|
---|
109 | enum CorRegFormatAttr {
|
---|
110 | rfaSupportsFormat = 0x0001,rfaConvertsFromFormat = 0x0002,rfaConvertsToFormat = 0x0003,rfaDefaultFormat = 0x0004,rfaIsFileExt = 0x0005,
|
---|
111 | rfaIsFileType = 0x0006,rfaIsDataFormat = 0x0007
|
---|
112 | };
|
---|
113 |
|
---|
114 | enum CorSynchAttr {
|
---|
115 | sySupported = 0x0001,syRequired = 0x0002,syRequiresNew = 0x0004,syNotSupported = 0x0008,syThreadAffinity = 0x0010
|
---|
116 | };
|
---|
117 |
|
---|
118 | enum CorThreadingAttr {
|
---|
119 | taMain = 0x0001,taSTA = 0x0002,taMTA = 0x0004,taNeutral = 0x0008,taBoth = 0x0010
|
---|
120 | };
|
---|
121 |
|
---|
122 | enum CorXactionAttr {
|
---|
123 | xaSupported = 0x0001,xaRequired = 0x0002,xaRequiresNew = 0x0004,xaNotSupported = 0x0008,xaNoVote = 0x0010
|
---|
124 | };
|
---|
125 |
|
---|
126 | enum CorRoleCheckAttr {
|
---|
127 | rcChecksFor = 0x0001
|
---|
128 | };
|
---|
129 |
|
---|
130 | typedef void *HCORENUM;
|
---|
131 |
|
---|
132 | #ifndef _CORSAVESIZE_DEFINED_
|
---|
133 | #define _CORSAVESIZE_DEFINED_
|
---|
134 | typedef enum CorSaveSize {
|
---|
135 | cssAccurate = 0x0000,cssQuick = 0x0001
|
---|
136 | } CorSaveSize;
|
---|
137 | #endif
|
---|
138 |
|
---|
139 | #define MAX_CLASS_NAME 255
|
---|
140 | #define MAX_PACKAGE_NAME 255
|
---|
141 |
|
---|
142 | __MINGW_EXTENSION typedef unsigned __int64 CLASSVERSION;
|
---|
143 |
|
---|
144 | #ifndef DECLSPEC_SELECT_ANY
|
---|
145 | #define DECLSPEC_SELECT_ANY __declspec(selectany)
|
---|
146 | #endif
|
---|
147 |
|
---|
148 | EXTERN_GUID (CLSID_Cor, 0xbee00010,0xee77,0x11d0,0xa0,0x15,0x00,0xc0,0x4f,0xbb,0xb8,0x84);
|
---|
149 | EXTERN_GUID (CLSID_CorMetaDataDispenser,0xe5cb7a31,0x7512,0x11d2,0x89,0xce,0x0,0x80,0xc7,0x92,0xe5,0xd8);
|
---|
150 | EXTERN_GUID (CLSID_CorMetaDataDispenserReg,0x435755ff,0x7397,0x11d2,0x97,0x71,0x0,0xa0,0xc9,0xb4,0xd5,0xc);
|
---|
151 | EXTERN_GUID (CLSID_CorMetaDataReg,0x87f3a1f5,0x7397,0x11d2,0x97,0x71,0x0,0xa0,0xc9,0xb4,0xd5,0xc);
|
---|
152 | EXTERN_GUID (IID_IMetaDataInternal,0x2d601bb,0xc5b9,0x11d1,0x93,0xf9,0x0,0x0,0xf8,0x8,0x34,0x60);
|
---|
153 | EXTERN_GUID (IID_IMetaDataEmitTemp,0xad93d71d,0xe1f2,0x11d1,0x94,0x9,0x0,0x0,0xf8,0x8,0x34,0x60);
|
---|
154 |
|
---|
155 | struct IMetaDataRegEmit;
|
---|
156 | struct IMetaDataRegImport;
|
---|
157 | struct IMetaDataDispenser;
|
---|
158 |
|
---|
159 | EXTERN_GUID (IID_IMemory,0x6a3ea8a,0x225,0x11d1,0xbf,0x72,0x0,0xc0,0x4f,0xc3,0x1e,0x12);
|
---|
160 |
|
---|
161 | #undef INTERFACE
|
---|
162 | #define INTERFACE IMemory
|
---|
163 | DECLARE_INTERFACE_(IMemory,IUnknown) {
|
---|
164 | #ifndef __cplusplus
|
---|
165 | STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
|
---|
166 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
167 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
168 | #endif
|
---|
169 | STDMETHOD(GetMemory)(THIS_ void **pMem,ULONG *iSize) PURE;
|
---|
170 | STDMETHOD(SetMemory)(THIS_ void *pMem,ULONG iSize) PURE;
|
---|
171 | };
|
---|
172 |
|
---|
173 | EXTERN_GUID (IID_IMetaDataError,0xb81ff171,0x20f3,0x11d2,0x8d,0xcc,0x0,0xa0,0xc9,0xb0,0x9c,0x19);
|
---|
174 |
|
---|
175 | #undef INTERFACE
|
---|
176 | #define INTERFACE IMetaDataError
|
---|
177 | DECLARE_INTERFACE_(IMetaDataError,IUnknown) {
|
---|
178 | #ifndef __cplusplus
|
---|
179 | STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
|
---|
180 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
181 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
182 | #endif
|
---|
183 | STDMETHOD(OnError)(THIS_ HRESULT hrError,mdToken token) PURE;
|
---|
184 | };
|
---|
185 |
|
---|
186 | EXTERN_GUID (IID_IMapToken,0x6a3ea8b,0x225,0x11d1,0xbf,0x72,0x0,0xc0,0x4f,0xc3,0x1e,0x12);
|
---|
187 |
|
---|
188 | #undef INTERFACE
|
---|
189 | #define INTERFACE IMapToken
|
---|
190 | DECLARE_INTERFACE_(IMapToken,IUnknown) {
|
---|
191 | #ifndef __cplusplus
|
---|
192 | STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
|
---|
193 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
194 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
195 | #endif
|
---|
196 | STDMETHOD(Map)(THIS_ ULONG tkImp,ULONG tkEmit) PURE;
|
---|
197 | };
|
---|
198 |
|
---|
199 | EXTERN_GUID (IID_IMetaDataDispenser,0x809c652e,0x7396,0x11d2,0x97,0x71,0x0,0xa0,0xc9,0xb4,0xd5,0xc);
|
---|
200 |
|
---|
201 | #undef INTERFACE
|
---|
202 | #define INTERFACE IMetaDataDispenser
|
---|
203 | DECLARE_INTERFACE_(IMetaDataDispenser,IUnknown) {
|
---|
204 | #ifndef __cplusplus
|
---|
205 | STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
|
---|
206 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
207 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
208 | #endif
|
---|
209 | STDMETHOD(DefineScope)(THIS_ REFCLSID rclsid,DWORD dwCreateFlags,REFIID riid,IUnknown **ppIUnk) PURE;
|
---|
210 | STDMETHOD(OpenScope)(THIS_ LPCWSTR szScope,DWORD dwOpenFlags,REFIID riid,IUnknown **ppIUnk) PURE;
|
---|
211 | STDMETHOD(OpenScopeOnStream)(THIS_ IStream *pIStream,DWORD dwOpenFlags,REFIID riid,IUnknown **ppIUnk) PURE;
|
---|
212 | STDMETHOD(OpenScopeOnMemory)(THIS_ LPCVOID pData,ULONG cbData,DWORD dwOpenFlags,REFIID riid,IUnknown **ppIUnk) PURE;
|
---|
213 | };
|
---|
214 |
|
---|
215 | #if defined(_META_DATA_NO_SCOPE_) || defined(_META_DATA_SCOPE_WRAPPER_)
|
---|
216 | EXTERN_GUID (IID_IMetaDataRegEmit,0x601c95b9,0x7398,0x11d2,0x97,0x71,0x0,0xa0,0xc9,0xb4,0xd5,0xc);
|
---|
217 | EXTERN_GUID (IID_IMetaDataRegEmitOld,0xf28f419b,0x62ca,0x11d2,0x8f,0x2c,0x0,0xa0,0xc9,0xa6,0x18,0x6d);
|
---|
218 |
|
---|
219 | #undef INTERFACE
|
---|
220 | #define INTERFACE IMetaDataRegEmit
|
---|
221 | DECLARE_INTERFACE_(IMetaDataRegEmit,IUnknown) {
|
---|
222 | #ifndef __cplusplus
|
---|
223 | STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
|
---|
224 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
225 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
226 | #endif
|
---|
227 | STDMETHOD(SetModuleProps)(THIS_ LPCWSTR szName,const GUID *ppid,LCID lcid) PURE;
|
---|
228 | STDMETHOD(Save)(THIS_ LPCWSTR szFile,DWORD dwSaveFlags) PURE;
|
---|
229 | STDMETHOD(SaveToStream)(THIS_ IStream *pIStream,DWORD dwSaveFlags) PURE;
|
---|
230 | STDMETHOD(GetSaveSize)(THIS_ CorSaveSize fSave,DWORD *pdwSaveSize) PURE;
|
---|
231 | STDMETHOD(Merge)(THIS_ IMetaDataRegImport *pImport,IMapToken *pIMap) PURE;
|
---|
232 | STDMETHOD(DefineCustomValueAsBlob)(THIS_ mdToken tkObj,LPCWSTR szName,void const *pCustomValue,ULONG cbCustomValue,mdCustomValue *pcv) PURE;
|
---|
233 | STDMETHOD(DefineTypeDef)(THIS_ LPCWSTR szNamespace,LPCWSTR szTypeDef,const GUID *pguid,CLASSVERSION *pVer,DWORD dwTypeDefFlags,mdToken tkExtends,DWORD dwExtendsFlags,mdToken rtkImplements[],mdToken rtkEvents[],mdTypeDef *ptd) PURE;
|
---|
234 | STDMETHOD(SetTypeDefProps)(THIS_ mdTypeDef td,CLASSVERSION *pVer,DWORD dwTypeDefFlags,mdToken tkExtends,DWORD dwExtendsFlags,mdToken rtkImplements[],mdToken rtkEvents[]) PURE;
|
---|
235 | STDMETHOD(SetClassSvcsContext)(THIS_ mdTypeDef td,DWORD dwClassActivateAttr,DWORD dwClassThreadAttr,DWORD dwXactionAttr,DWORD dwSynchAttr) PURE;
|
---|
236 | STDMETHOD(DefineTypeRefByGUID)(THIS_ GUID *pguid,mdTypeRef *ptr) PURE;
|
---|
237 | STDMETHOD(SetModuleReg)(THIS_ DWORD dwModuleRegAttr,const GUID *pguid) PURE;
|
---|
238 | STDMETHOD(SetClassReg)(THIS_ mdTypeDef td,LPCWSTR szProgID,LPCWSTR szVIProgID,LPCWSTR szIconURL,ULONG ulIconResource,LPCWSTR szSmallIconURL,ULONG ulSmallIconResource,LPCWSTR szDefaultDispName) PURE;
|
---|
239 | STDMETHOD(SetIfaceReg)(THIS_ mdTypeDef td,DWORD dwIfaceSvcs,const GUID *proxyStub) PURE;
|
---|
240 | STDMETHOD(SetCategoryImpl)(THIS_ mdTypeDef td,GUID rGuidCoCatImpl[],GUID rGuidCoCatReqd[]) PURE;
|
---|
241 | STDMETHOD(SetRedirectProgID)(THIS_ mdTypeDef td,LPCWSTR rszRedirectProgID[]) PURE;
|
---|
242 | STDMETHOD(SetMimeTypeImpl)(THIS_ mdTypeDef td,LPCWSTR rszMimeType[]) PURE;
|
---|
243 | STDMETHOD(SetFormatImpl)(THIS_ mdTypeDef td,LPCWSTR rszFormatSupported[],LPCWSTR rszFormatConvertsFrom[],LPCWSTR rszFormatConvertsTo[],LPCWSTR rszFormatDefault[],LPCWSTR rszFileExt[],LPCWSTR rszFileType[]) PURE;
|
---|
244 | STDMETHOD(SetRoleCheck)(THIS_ mdToken tk,LPCWSTR rszName[],DWORD rdwRoleFlags[]) PURE;
|
---|
245 | STDMETHOD(SetHandler)(THIS_ IUnknown *pUnk) PURE;
|
---|
246 | };
|
---|
247 | #endif
|
---|
248 |
|
---|
249 | #if !defined(_META_DATA_NO_SCOPE_)
|
---|
250 | #if !defined(_META_DATA_SCOPE_WRAPPER_)
|
---|
251 | EXTERN_GUID (IID_IMetaDataRegEmit,0xf28f419b,0x62ca,0x11d2,0x8f,0x2c,0x0,0xa0,0xc9,0xa6,0x18,0x6d);
|
---|
252 | #endif
|
---|
253 |
|
---|
254 | #undef INTERFACE
|
---|
255 | #if defined(_META_DATA_SCOPE_WRAPPER_)
|
---|
256 | #define INTERFACE IMetaDataRegEmitOld
|
---|
257 | #else
|
---|
258 | #define INTERFACE IMetaDataRegEmit
|
---|
259 | #endif
|
---|
260 | DECLARE_INTERFACE_(INTERFACE,IUnknown) {
|
---|
261 | #ifndef __cplusplus
|
---|
262 | STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
|
---|
263 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
264 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
265 | #endif
|
---|
266 | STDMETHOD(DefineScope)(THIS_ DWORD dwCreateFlags,mdScope *pscope) PURE;
|
---|
267 | STDMETHOD(SetModuleProps)(THIS_ mdScope scope,LPCWSTR szName,const GUID *ppid,LCID lcid) PURE;
|
---|
268 | STDMETHOD(Save)(THIS_ mdScope es,LPCWSTR szFile,DWORD dwSaveFlags) PURE;
|
---|
269 | STDMETHOD(SaveToStream)(THIS_ mdScope es,IStream *pIStream,DWORD dwSaveFlags) PURE;
|
---|
270 | STDMETHOD(GetSaveSize)(THIS_ mdScope es,CorSaveSize fSave,DWORD *pdwSaveSize) PURE;
|
---|
271 | STDMETHOD_(void,Close)(THIS_ mdScope scope) PURE;
|
---|
272 | STDMETHOD(Merge)(THIS_ mdScope scEmit,mdScope scImport,IMapToken *pIMap) PURE;
|
---|
273 | STDMETHOD(DefineCustomValueAsBlob)(THIS_ mdScope es,mdToken tkObj,LPCWSTR szName,void const *pCustomValue,ULONG cbCustomValue,mdCustomValue *pcv) PURE;
|
---|
274 | STDMETHOD(DefineTypeDef)(THIS_ mdScope es,LPCWSTR szNamespace,LPCWSTR szTypeDef,const GUID *pguid,CLASSVERSION *pVer,DWORD dwTypeDefFlags,mdToken tkExtends,DWORD dwExtendsFlags,mdToken rtkImplements[],mdToken rtkEvents[],mdTypeDef *ptd) PURE;
|
---|
275 | STDMETHOD(SetTypeDefProps)(THIS_ mdScope es,mdTypeDef td,CLASSVERSION *pVer,DWORD dwTypeDefFlags,mdToken tkExtends,DWORD dwExtendsFlags,mdToken rtkImplements[],mdToken rtkEvents[]) PURE;
|
---|
276 | STDMETHOD(SetClassSvcsContext)(THIS_ mdScope es,mdTypeDef td,DWORD dwClassActivateAttr,DWORD dwClassThreadAttr,DWORD dwXactionAttr,DWORD dwSynchAttr) PURE;
|
---|
277 | STDMETHOD(DefineTypeRefByGUID)(THIS_ mdScope sc,GUID *pguid,mdTypeRef *ptr) PURE;
|
---|
278 | STDMETHOD(SetModuleReg)(THIS_ mdScope es,DWORD dwModuleRegAttr,const GUID *pguid) PURE;
|
---|
279 | STDMETHOD(SetClassReg)(THIS_ mdScope es,mdTypeDef td,LPCWSTR szProgID,LPCWSTR szVIProgID,LPCWSTR szIconURL,ULONG ulIconResource,LPCWSTR szSmallIconURL,ULONG ulSmallIconResource,LPCWSTR szDefaultDispName) PURE;
|
---|
280 | STDMETHOD(SetIfaceReg)(THIS_ mdScope es,mdTypeDef td,DWORD dwIfaceSvcs,const GUID *proxyStub) PURE;
|
---|
281 | STDMETHOD(SetCategoryImpl)(THIS_ mdScope es,mdTypeDef td,GUID rGuidCoCatImpl[],GUID rGuidCoCatReqd[]) PURE;
|
---|
282 | STDMETHOD(SetRedirectProgID)(THIS_ mdScope es,mdTypeDef td,LPCWSTR rszRedirectProgID[]) PURE;
|
---|
283 | STDMETHOD(SetMimeTypeImpl)(THIS_ mdScope es,mdTypeDef td,LPCWSTR rszMimeType[]) PURE;
|
---|
284 | STDMETHOD(SetFormatImpl)(THIS_ mdScope es,mdTypeDef td,LPCWSTR rszFormatSupported[],LPCWSTR rszFormatConvertsFrom[],LPCWSTR rszFormatConvertsTo[],LPCWSTR rszFormatDefault[],LPCWSTR rszFileExt[],LPCWSTR rszFileType[]) PURE;
|
---|
285 | STDMETHOD(SetRoleCheck)(THIS_ mdScope es,mdToken tk,LPCWSTR rszName[],DWORD rdwRoleFlags[]) PURE;
|
---|
286 | STDMETHOD(SetHandler)(THIS_ mdScope sc,IUnknown *pUnk) PURE;
|
---|
287 | };
|
---|
288 | #endif
|
---|
289 |
|
---|
290 | #if defined(_META_DATA_NO_SCOPE_) || defined(_META_DATA_SCOPE_WRAPPER_)
|
---|
291 | EXTERN_GUID (IID_IMetaDataRegImport, 0x4398b4fd,0x7399,0x11d2,0x97,0x71,0x0,0xa0,0xc9,0xb4,0xd5,0xc);
|
---|
292 | EXTERN_GUID (IID_IMetaDataRegImportOld, 0xf28f419a,0x62ca,0x11d2,0x8f,0x2c,0x0,0xa0,0xc9,0xa6,0x18,0x6d);
|
---|
293 |
|
---|
294 | #undef INTERFACE
|
---|
295 | #define INTERFACE IMetaDataRegImport
|
---|
296 | DECLARE_INTERFACE_(IMetaDataRegImport,IUnknown) {
|
---|
297 | #ifndef __cplusplus
|
---|
298 | STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
|
---|
299 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
300 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
301 | #endif
|
---|
302 | STDMETHOD_(void,CloseEnum)(THIS_ HCORENUM hEnum) PURE;
|
---|
303 | STDMETHOD(CountEnum)(THIS_ HCORENUM hEnum,ULONG *pulCount) PURE;
|
---|
304 | STDMETHOD(ResetEnum)(THIS_ HCORENUM hEnum,ULONG ulPos) PURE;
|
---|
305 | STDMETHOD(EnumTypeDefs)(THIS_ HCORENUM *phEnum,mdTypeDef rTypeDefs[],ULONG cMax,ULONG *pcTypeDefs) PURE;
|
---|
306 | STDMETHOD(EnumInterfaceImpls)(THIS_ HCORENUM *phEnum,mdTypeDef td,mdInterfaceImpl rImpls[],ULONG cMax,ULONG *pcImpls) PURE;
|
---|
307 | STDMETHOD(EnumTypeRefs)(THIS_ HCORENUM *phEnum,mdTypeRef rTypeRefs[],ULONG cMax,ULONG *pcTypeRefs) PURE;
|
---|
308 | STDMETHOD(EnumCustomValues)(THIS_ HCORENUM *phEnum,mdToken tk,mdCustomValue rCustomValues[],ULONG cMax,ULONG *pcCustomValues) PURE;
|
---|
309 | STDMETHOD(EnumResources)(THIS_ HCORENUM *phEnum,mdResource rResources[],ULONG cMax,ULONG *pcResources) PURE;
|
---|
310 | STDMETHOD(EnumCategoryImpls)(THIS_ HCORENUM *phEnum,mdTypeDef td,mdCocatImpl rCocatImpls[],ULONG cMax,ULONG *pcCocatImpls) PURE;
|
---|
311 | STDMETHOD(EnumRedirectProgIDs)(THIS_ HCORENUM *phEnum,mdTypeDef td,mdProgID rRedirectProgIDs[],ULONG cMax,ULONG *pcRedirectProgIDs) PURE;
|
---|
312 | STDMETHOD(EnumMimeTypeImpls)(THIS_ HCORENUM *phEnum,mdTypeDef td,mdMimeTypeImpl rMimeTypeImpls[],ULONG cMax,ULONG *pcMimeTypeImpls) PURE;
|
---|
313 | STDMETHOD(EnumFormatImpls)(THIS_ HCORENUM *phEnum,mdTypeDef td,mdFormatImpl rFormatImpls[],ULONG cMax,ULONG *pcFormatImpls) PURE;
|
---|
314 | STDMETHOD(EnumRoleChecks)(THIS_ HCORENUM *phEnum,mdToken tk,mdRoleCheck rRoleChecks[],ULONG cMax,ULONG *pcRoleChecks) PURE;
|
---|
315 | STDMETHOD(FindTypeDefByName)(THIS_ LPCWSTR szNamespace,LPCWSTR szTypeDef,mdTypeDef *ptd) PURE;
|
---|
316 | STDMETHOD(FindTypeDefByGUID)(THIS_ const GUID *pguid,mdTypeDef *ptd) PURE;
|
---|
317 | STDMETHOD(FindCustomValue)(THIS_ mdToken tk,LPCWSTR szName,mdCustomValue *pcv,DWORD *pdwValueType) PURE;
|
---|
318 | STDMETHOD(GetScopeProps)(THIS_ LPWSTR szName,ULONG cchName,ULONG *pchName,GUID *ppid,GUID *pmvid,LCID *pLcid) PURE;
|
---|
319 | STDMETHOD(GetModuleFromScope)(THIS_ mdModule *pmd) PURE;
|
---|
320 | STDMETHOD(GetTypeDefProps)(THIS_ mdTypeDef td,LPWSTR szNamespace,ULONG cchNamespace,ULONG *pchNamespace,LPWSTR szTypeDef,ULONG cchTypeDef,ULONG *pchTypeDef,GUID *pguid,CLASSVERSION *pver,DWORD *pdwTypeDefFlags,mdToken *ptkExtends,DWORD *pdwExtendsFlags) PURE;
|
---|
321 | STDMETHOD(GetClassSvcsContext)(THIS_ mdTypeDef td,DWORD *pdwClassActivateAttr,DWORD *pdwThreadAttr,DWORD *pdwXactonAttr,DWORD *pdwSynchAttr) PURE;
|
---|
322 | STDMETHOD(GetInterfaceImplProps)(THIS_ mdInterfaceImpl iiImpl,mdTypeDef *pClass,mdToken *ptkIface,DWORD *pdwFlags) PURE;
|
---|
323 | STDMETHOD(GetCustomValueProps)(THIS_ mdCustomValue cv,LPWSTR szName,ULONG cchName,ULONG *pchName,DWORD *pdwValueType) PURE;
|
---|
324 | STDMETHOD(GetCustomValueAsBlob)(THIS_ mdCustomValue cv,void const **ppBlob,ULONG *pcbSize) PURE;
|
---|
325 | STDMETHOD(GetTypeRefProps)(THIS_ mdTypeRef tr,LPWSTR szTypeRef,ULONG cchTypeRef,ULONG *pchTypeRef,GUID *pGuid,DWORD *pdwBind) PURE;
|
---|
326 | STDMETHOD(GetModuleRegProps)(THIS_ DWORD *pModuleRegAttr,GUID *pguid) PURE;
|
---|
327 | STDMETHOD(GetClassRegProps)(THIS_ mdTypeDef td,LPWSTR szProgid,ULONG cchProgid,ULONG *pchProgid,LPWSTR szVIProgid,ULONG cchVIProgid,ULONG *pchVIProgid,LPWSTR szIconURL,ULONG cchIconURL,ULONG *pchIconURL,ULONG *pIconResource,LPWSTR szSmallIconURL,ULONG cchSmallIconURL,ULONG *pchSmallIconURL,ULONG *pSmallIconResource,LPWSTR szDefaultDispname,ULONG cchDefaultDispname,ULONG *pchDefaultDispname) PURE;
|
---|
328 | STDMETHOD(GetIfaceRegProps)(THIS_ mdTypeDef td,DWORD *pdwIfaceSvcs,GUID *pProxyStub) PURE;
|
---|
329 | STDMETHOD(GetResourceProps)(THIS_ mdResource rs,LPWSTR szURL,ULONG cchURL,ULONG *pchURL) PURE;
|
---|
330 | STDMETHOD(GetCategoryImplProps)(THIS_ mdCocatImpl cocat,GUID *pguid,DWORD *pdwCocatImplAttr) PURE;
|
---|
331 | STDMETHOD(GetRedirectProgIDProps)(THIS_ mdProgID progid,LPWSTR szProgID,ULONG cchProgID,ULONG *pchProgID) PURE;
|
---|
332 | STDMETHOD(GetMimeTypeImplProps)(THIS_ mdMimeTypeImpl mime,LPWSTR szMime,ULONG cchMime,ULONG *pchMime) PURE;
|
---|
333 | STDMETHOD(GetFormatImplProps)(THIS_ mdFormatImpl format,LPWSTR szFormat,ULONG cchFormat,ULONG *pchFormat,DWORD *pdwRegFormatAttr) PURE;
|
---|
334 | STDMETHOD(GetRoleCheckProps)(THIS_ mdRoleCheck rc,LPWSTR szName,ULONG cchName,ULONG *pchName,DWORD *pdwRoleFlags) PURE;
|
---|
335 | STDMETHOD(ResolveTypeRef)(THIS_ mdTypeRef tr,REFIID riid,IUnknown **ppIScope,mdTypeDef *ptd) PURE;
|
---|
336 | };
|
---|
337 | #endif
|
---|
338 |
|
---|
339 | #if !defined(_META_DATA_NO_SCOPE_)
|
---|
340 | #if !defined(_META_DATA_SCOPE_WRAPPER_)
|
---|
341 | EXTERN_GUID (IID_IMetaDataRegImport, 0xf28f419a,0x62ca,0x11d2, 0x8f, 0x2c, 0x0, 0xa0, 0xc9, 0xa6, 0x18, 0x6d);
|
---|
342 | #endif
|
---|
343 |
|
---|
344 | #undef INTERFACE
|
---|
345 | #if defined(_META_DATA_SCOPE_WRAPPER_)
|
---|
346 | #define INTERFACE IMetaDataRegImportOld
|
---|
347 | #else
|
---|
348 | #define INTERFACE IMetaDataRegImport
|
---|
349 | #endif
|
---|
350 | DECLARE_INTERFACE_(INTERFACE,IUnknown) {
|
---|
351 | #ifndef __cplusplus
|
---|
352 | STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID *ppvObj) PURE;
|
---|
353 | STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
---|
354 | STDMETHOD_(ULONG,Release)(THIS) PURE;
|
---|
355 | #endif
|
---|
356 | STDMETHOD(OpenScope)(THIS_ LPCWSTR szScope,DWORD dwOpenFlags,mdScope *pscope) PURE;
|
---|
357 | STDMETHOD(OpenScopeOnStream)(THIS_ IStream *pIStream,DWORD dwOpenFlags,mdScope *psc) PURE;
|
---|
358 | STDMETHOD(OpenScopeOnMemory)(THIS_ LPCVOID pData,ULONG cbData,mdScope *psc) PURE;
|
---|
359 | STDMETHOD_(void,Close)(THIS_ mdScope scope) PURE;
|
---|
360 | STDMETHOD_(void,CloseEnum)(THIS_ mdScope scope,HCORENUM hEnum) PURE;
|
---|
361 | STDMETHOD(CountEnum)(THIS_ mdScope scope,HCORENUM hEnum,ULONG *pulCount) PURE;
|
---|
362 | STDMETHOD(ResetEnum)(THIS_ mdScope scope,HCORENUM hEnum,ULONG ulPos) PURE;
|
---|
363 | STDMETHOD(EnumTypeDefs)(THIS_ mdScope scope,HCORENUM *phEnum,mdTypeDef rTypeDefs[],ULONG cMax,ULONG *pcTypeDefs) PURE;
|
---|
364 | STDMETHOD(EnumInterfaceImpls)(THIS_ mdScope scope,HCORENUM *phEnum,mdTypeDef td,mdInterfaceImpl rImpls[],ULONG cMax,ULONG *pcImpls) PURE;
|
---|
365 | STDMETHOD(EnumTypeRefs)(THIS_ mdScope scope,HCORENUM *phEnum,mdTypeRef rTypeRefs[],ULONG cMax,ULONG *pcTypeRefs) PURE;
|
---|
366 | STDMETHOD(EnumCustomValues)(THIS_ mdScope scope,HCORENUM *phEnum,mdToken tk,mdCustomValue rCustomValues[],ULONG cMax,ULONG *pcCustomValues) PURE;
|
---|
367 | STDMETHOD(EnumResources)(THIS_ mdScope scope,HCORENUM *phEnum,mdResource rResources[],ULONG cMax,ULONG *pcResources) PURE;
|
---|
368 | STDMETHOD(EnumCategoryImpls)(THIS_ mdScope scope,HCORENUM *phEnum,mdTypeDef td,mdCocatImpl rCocatImpls[],ULONG cMax,ULONG *pcCocatImpls) PURE;
|
---|
369 | STDMETHOD(EnumRedirectProgIDs)(THIS_ mdScope scope,HCORENUM *phEnum,mdTypeDef td,mdProgID rRedirectProgIDs[],ULONG cMax,ULONG *pcRedirectProgIDs) PURE;
|
---|
370 | STDMETHOD(EnumMimeTypeImpls)(THIS_ mdScope scope,HCORENUM *phEnum,mdTypeDef td,mdMimeTypeImpl rMimeTypeImpls[],ULONG cMax,ULONG *pcMimeTypeImpls) PURE;
|
---|
371 | STDMETHOD(EnumFormatImpls)(THIS_ mdScope scope,HCORENUM *phEnum,mdTypeDef td,mdFormatImpl rFormatImpls[],ULONG cMax,ULONG *pcFormatImpls) PURE;
|
---|
372 | STDMETHOD(EnumRoleChecks)(THIS_ mdScope scope,HCORENUM *phEnum,mdToken tk,mdRoleCheck rRoleChecks[],ULONG cMax,ULONG *pcRoleChecks) PURE;
|
---|
373 | STDMETHOD(FindTypeDefByName)(THIS_ mdScope scope,LPCWSTR szNamespace,LPCWSTR szTypeDef,mdTypeDef *ptd) PURE;
|
---|
374 | STDMETHOD(FindTypeDefByGUID)(THIS_ mdScope scope,const GUID *pguid,mdTypeDef *ptd) PURE;
|
---|
375 | STDMETHOD(FindCustomValue)(THIS_ mdScope scope,mdToken tk,LPCWSTR szName,mdCustomValue *pcv,DWORD *pdwValueType) PURE;
|
---|
376 | STDMETHOD(GetScopeProps)(THIS_ mdScope scope,LPWSTR szName,ULONG cchName,ULONG *pchName,GUID *ppid,GUID *pmvid,LCID *pLcid) PURE;
|
---|
377 | STDMETHOD(GetModuleFromScope)(THIS_ mdScope scope,mdModule *pmd) PURE;
|
---|
378 | STDMETHOD(GetTypeDefProps)(THIS_ mdScope scope,mdTypeDef td,LPWSTR szNamespace,ULONG cchNamespace,ULONG *pchNamespace,LPWSTR szTypeDef,ULONG cchTypeDef,ULONG *pchTypeDef,GUID *pguid,CLASSVERSION *pver,DWORD *pdwTypeDefFlags,mdToken *ptkExtends,DWORD *pdwExtendsFlags) PURE;
|
---|
379 | STDMETHOD(GetClassSvcsContext)(THIS_ mdScope es,mdTypeDef td,DWORD *pdwClassActivateAttr,DWORD *pdwThreadAttr,DWORD *pdwXactonAttr,DWORD *pdwSynchAttr) PURE;
|
---|
380 | STDMETHOD(GetInterfaceImplProps)(THIS_ mdScope scope,mdInterfaceImpl iiImpl,mdTypeDef *pClass,mdToken *ptkIface,DWORD *pdwFlags) PURE;
|
---|
381 | STDMETHOD(GetCustomValueProps)(THIS_ mdScope scope,mdCustomValue cv,LPWSTR szName,ULONG cchName,ULONG *pchName,DWORD *pdwValueType) PURE;
|
---|
382 | STDMETHOD(GetCustomValueAsBlob)(THIS_ mdScope scope,mdCustomValue cv,void const **ppBlob,ULONG *pcbSize) PURE;
|
---|
383 | STDMETHOD(GetTypeRefProps)(THIS_ mdScope scope,mdTypeRef tr,LPWSTR szTypeRef,ULONG cchTypeRef,ULONG *pchTypeRef,GUID *pGuid,DWORD *pdwBind) PURE;
|
---|
384 | STDMETHOD(GetModuleRegProps)(THIS_ mdScope scope,DWORD *pModuleRegAttr,GUID *pguid) PURE;
|
---|
385 | STDMETHOD(GetClassRegProps)(THIS_ mdScope scope,mdTypeDef td,LPWSTR szProgid,ULONG cchProgid,ULONG *pchProgid,LPWSTR szVIProgid,ULONG cchVIProgid,ULONG *pchVIProgid,LPWSTR szIconURL,ULONG cchIconURL,ULONG *pchIconURL,ULONG *pIconResource,LPWSTR szSmallIconURL,ULONG cchSmallIconURL,ULONG *pchSmallIconURL,ULONG *pSmallIconResource,LPWSTR szDefaultDispname,ULONG cchDefaultDispname,ULONG *pchDefaultDispname) PURE;
|
---|
386 | STDMETHOD(GetIfaceRegProps)(THIS_ mdScope scope,mdTypeDef td,DWORD *pdwIfaceSvcs,GUID *pProxyStub) PURE;
|
---|
387 | STDMETHOD(GetResourceProps)(THIS_ mdScope scope,mdResource rs,LPWSTR szURL,ULONG cchURL,ULONG *pchURL) PURE;
|
---|
388 | STDMETHOD(GetCategoryImplProps)(THIS_ mdScope scope,mdCocatImpl cocat,GUID *pguid,DWORD *pdwCocatImplAttr) PURE;
|
---|
389 | STDMETHOD(GetRedirectProgIDProps)(THIS_ mdScope scope,mdProgID progid,LPWSTR szProgID,ULONG cchProgID,ULONG *pchProgID) PURE;
|
---|
390 | STDMETHOD(GetMimeTypeImplProps)(THIS_ mdScope scope,mdMimeTypeImpl mime,LPWSTR szMime,ULONG cchMime,ULONG *pchMime) PURE;
|
---|
391 | STDMETHOD(GetFormatImplProps)(THIS_ mdScope scope,mdFormatImpl format,LPWSTR szFormat,ULONG cchFormat,ULONG *pchFormat,DWORD *pdwRegFormatAttr) PURE;
|
---|
392 | STDMETHOD(GetRoleCheckProps)(THIS_ mdScope scope,mdRoleCheck rc,LPWSTR szName,ULONG cchName,ULONG *pchName,DWORD *pdwRoleFlags) PURE;
|
---|
393 | STDMETHOD(ResolveTypeRef)(THIS_ mdScope is,mdTypeRef tr,mdScope *pes,mdTypeDef *ptd) PURE;
|
---|
394 | };
|
---|
395 | #endif
|
---|
396 |
|
---|
397 | #include <poppack.h>
|
---|
398 |
|
---|
399 | #ifdef __cplusplus
|
---|
400 | }
|
---|
401 | #endif
|
---|
402 | #endif
|
---|