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.
 
 
 
 
 
 

171 lines
8.9 KiB

extern const GUID __declspec(selectany) CLSID_CorMetaDataDispenser =
{ 0xe5cb7a31, 0x7512, 0x11d2, { 0x89, 0xce, 0x0, 0x80, 0xc7, 0x92, 0xe5, 0xd8 } };
extern const GUID __declspec(selectany) IID_IMetaDataDispenser =
{ 0x809c652e, 0x7396, 0x11d2, { 0x97, 0x71, 0x0, 0xa0, 0xc9, 0xb4, 0xd5, 0xc } };
extern const GUID __declspec(selectany) IID_IMetaDataImport =
{ 0x7dac8207, 0xd3ae, 0x4c75, { 0x9b, 0x67, 0x92, 0x80, 0x1a, 0x49, 0x7d, 0x44 } };
extern const GUID __declspec(selectany) IID_IMetaDataAssemblyImport =
{ 0xee62470b, 0xe94b, 0x424e, { 0x9b, 0x7c, 0x2f, 0x0, 0xc9, 0x24, 0x9f, 0x93 } };
typedef PVOID HCORENUM;
typedef DWORD mdAssembly;
typedef DWORD mdAssemblyRef;
typedef DWORD mdFile;
typedef DWORD mdExportedType;
typedef DWORD mdToken;
typedef DWORD mdTypeDef;
typedef DWORD mdManifestResource;
typedef DWORD mdInterfaceImpl;
typedef DWORD mdTypeRef;
#undef INTERFACE
#define INTERFACE IMetaDataAssemblyImport
DECLARE_INTERFACE_(IMetaDataAssemblyImport, IUnknown)
{
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
STDMETHOD(GetAssemblyProps)( // S_OK or error.
THIS_
mdAssembly mda, // [IN] The Assembly for which to get the properties.
const void **ppbPublicKey, // [OUT] Pointer to the public key.
ULONG *pcbPublicKey, // [OUT] Count of bytes in the public key.
ULONG *pulHashAlgId, // [OUT] Hash Algorithm.
LPWSTR szName, // [OUT] Buffer to fill with name.
ULONG cchName, // [IN] Size of buffer in wide chars.
ULONG *pchName, // [OUT] Actual # of wide chars in name.
void *pMetaData, // [OUT] Assembly MetaData.
DWORD *pdwAssemblyFlags) PURE; // [OUT] Flags.
STDMETHOD(GetAssemblyRefProps)( // S_OK or error.
THIS_
mdAssemblyRef mdar, // [IN] The AssemblyRef for which to get the properties.
const void **ppbPublicKeyOrToken, // [OUT] Pointer to the public key or token.
ULONG *pcbPublicKeyOrToken, // [OUT] Count of bytes in the public key or token.
LPWSTR szName, // [OUT] Buffer to fill with name.
ULONG cchName, // [IN] Size of buffer in wide chars.
ULONG *pchName, // [OUT] Actual # of wide chars in name.
void *pMetaData, // [OUT] Assembly MetaData.
const void **ppbHashValue, // [OUT] Hash blob.
ULONG *pcbHashValue, // [OUT] Count of bytes in the hash blob.
DWORD *pdwAssemblyRefFlags) PURE; // [OUT] Flags.
STDMETHOD(GetFileProps)( // S_OK or error.
THIS_
mdFile mdf, // [IN] The File for which to get the properties.
LPWSTR szName, // [OUT] Buffer to fill with name.
ULONG cchName, // [IN] Size of buffer in wide chars.
ULONG *pchName, // [OUT] Actual # of wide chars in name.
const void **ppbHashValue, // [OUT] Pointer to the Hash Value Blob.
ULONG *pcbHashValue, // [OUT] Count of bytes in the Hash Value Blob.
DWORD *pdwFileFlags) PURE; // [OUT] Flags.
STDMETHOD(GetExportedTypeProps)( // S_OK or error.
THIS_
mdExportedType mdct, // [IN] The ExportedType for which to get the properties.
LPWSTR szName, // [OUT] Buffer to fill with name.
ULONG cchName, // [IN] Size of buffer in wide chars.
ULONG *pchName, // [OUT] Actual # of wide chars in name.
mdToken *ptkImplementation, // [OUT] mdFile or mdAssemblyRef or mdExportedType.
mdTypeDef *ptkTypeDef, // [OUT] TypeDef token within the file.
DWORD *pdwExportedTypeFlags) PURE; // [OUT] Flags.
STDMETHOD(GetManifestResourceProps)( // S_OK or error.
THIS_
mdManifestResource mdmr, // [IN] The ManifestResource for which to get the properties.
LPWSTR szName, // [OUT] Buffer to fill with name.
ULONG cchName, // [IN] Size of buffer in wide chars.
ULONG *pchName, // [OUT] Actual # of wide chars in name.
mdToken *ptkImplementation, // [OUT] mdFile or mdAssemblyRef that provides the ManifestResource.
DWORD *pdwOffset, // [OUT] Offset to the beginning of the resource within the file.
DWORD *pdwResourceFlags) PURE;// [OUT] Flags.
STDMETHOD(EnumAssemblyRefs)( // S_OK or error
THIS_
HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
mdAssemblyRef rAssemblyRefs[], // [OUT] Put AssemblyRefs here.
ULONG cMax, // [IN] Max AssemblyRefs to put.
ULONG *pcTokens) PURE; // [OUT] Put # put here.
STDMETHOD(EnumFiles)( // S_OK or error
THIS_
HCORENUM *phEnum, // [IN|OUT] Pointer to the enum.
mdFile rFiles[], // [OUT] Put Files here.
ULONG cMax, // [IN] Max Files to put.
ULONG *pcTokens) PURE; // [OUT] Put # put here.
};
#undef INTERFACE
#define INTERFACE IMetaDataImport
DECLARE_INTERFACE_(IMetaDataImport, IUnknown)
{
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
STDMETHOD_(void, CloseEnum)(THIS_ HCORENUM hEnum) PURE;
STDMETHOD(CountEnum)(THIS_ HCORENUM hEnum, ULONG *pulCount) PURE;
STDMETHOD(ResetEnum)(THIS_ HCORENUM hEnum, ULONG ulPos) PURE;
STDMETHOD(EnumTypeDefs)(THIS_ HCORENUM *phEnum, mdTypeDef rTypeDefs[],
ULONG cMax, ULONG *pcTypeDefs) PURE;
STDMETHOD(EnumInterfaceImpls)(THIS_ HCORENUM *phEnum, mdTypeDef td,
mdInterfaceImpl rImpls[], ULONG cMax,
ULONG* pcImpls) PURE;
STDMETHOD(EnumTypeRefs)(THIS_ HCORENUM *phEnum, mdTypeRef rTypeRefs[],
ULONG cMax, ULONG* pcTypeRefs) PURE;
STDMETHOD(FindTypeDefByName)( // S_OK or error.
THIS_
LPCWSTR szTypeDef, // [IN] Name of the Type.
mdToken tkEnclosingClass, // [IN] TypeDef/TypeRef for Enclosing class.
mdTypeDef *ptd) PURE; // [OUT] Put the TypeDef token here.
STDMETHOD(GetScopeProps)( // S_OK or error.
THIS_
LPWSTR szName, // [OUT] Put the name here.
ULONG cchName, // [IN] Size of name buffer in wide chars.
ULONG *pchName, // [OUT] Put size of name (wide chars) here.
GUID *pmvid) PURE; // [OUT, OPTIONAL] Put MVID here.
};
#undef INTERFACE
#define INTERFACE IMetaDataDispenser
DECLARE_INTERFACE_(IMetaDataDispenser, IUnknown)
{
STDMETHOD(QueryInterface) (THIS_
REFIID riid,
LPVOID FAR* ppvObj) PURE;
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
STDMETHOD_(ULONG,Release) (THIS) PURE;
STDMETHOD(DefineScope)( // Return code.
THIS_
REFCLSID rclsid, // [in] What version to create.
DWORD dwCreateFlags, // [in] Flags on the create.
REFIID riid, // [in] The interface desired.
IUnknown **ppIUnk) PURE; // [out] Return interface on success.
STDMETHOD(OpenScope)( // Return code.
THIS_
LPCWSTR szScope, // [in] The scope to open.
DWORD dwOpenFlags, // [in] Open mode flags.
REFIID riid, // [in] The interface desired.
IUnknown **ppIUnk) PURE; // [out] Return interface on success.
STDMETHOD(OpenScopeOnMemory)( // Return code.
THIS_
LPCVOID pData, // [in] Location of scope data.
ULONG cbData, // [in] Size of the data pointed to by pData.
DWORD dwOpenFlags, // [in] Open mode flags.
REFIID riid, // [in] The interface desired.
IUnknown **ppIUnk) PURE; // [out] Return interface on success.
};