| 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 |