IMetaDataDispenser::OpenScopeOnMemory Method

打开包含现有元数据的内存区域。 也就是说,此方法将打开一个指定内存区域,其中现有数据被视为元数据。

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

See also