打开包含现有元数据的内存区域。 也就是说,此方法将打开一个指定内存区域,其中现有数据被视为元数据。
Syntax
HRESULT OpenScopeOnMemory (
[in] LPCVOID pData,
[in] ULONG cbData,
[in] DWORD dwOpenFlags,
[in] REFIID riid,
[out] IUnknown **ppIUnk
);
Parameters
pData [in]一个指针,指定内存区域的起始地址。
cbData [in]内存区域的大小(以字节为单位)。
dwOpenFlags [in]用于指定打开模式(读取、写入等)的 CorOpenFlags 枚举的值。
riid [in]要返回的所需元数据接口的 IID;调用方将使用接口导入(读取)或发出(写入)元数据。
riid值必须指定其中一个“import”或“emit”接口。 有效值为IID_IMetaDataEmit、IID_IMetaDataImport、IID_IMetaDataAssemblyEmit、IID_IMetaDataAssemblyImport、IID_IMetaDataEmit2或IID_IMetaDataImport2。
ppIUnk [out]指向返回接口的指针。
Remarks
可以使用其中一个“导入”接口的方法查询元数据的内存中副本,或者从其中一个“发出”接口添加到使用方法。
该方法 OpenScopeOnMemory 类似于 IMetaDataDispenser::OpenScope 方法,只是感兴趣的元数据已存在于内存中,而不是磁盘上的文件中。
如果内存的目标区域不包含公共语言运行时(CLR)元数据,该方法 OpenScopeOnMemory 将失败。
Requirements
平台: 请参阅 .NET 支持的作系统。
Header: Cor.h
Library: CorGuids.lib