IMetaDataDispenser::OpenScopeOnMemory 方法 (rometadataapi.h)
打开包含现有元数据的内存区域。 也就是说,此方法将打开指定的内存区域,其中的现有数据将视同元数据处理。
语法
HRESULT OpenScopeOnMemory(
[in] const BYTE *pData,
[in] ULONG cbData,
[in] DWORD dwOpenFlags,
[in] REFIID riid,
[out] IUnknown **ppIUnk
);
参数
[in] pData
一个指定内存区域起始地址的指针。
[in] cbData
内存区域的大小(以字节为单位)。
[in] dwOpenFlags
CorOpenFlags 枚举的值,用于指定打开) (读取、写入等模式。
[in] riid
要返回的所需元数据接口的 IID;调用方将使用 接口导入 (读取) 或发出 (写入) 元数据。
riid 的值必须指定“import”或“emit”接口之一。 有效值为 IID_IMetaDataEmit、 IID_IMetaDataImport、 IID_IMetaDataAssemblyEmit、 IID_IMetaDataAssemblyImport、 IID_IMetaDataEmit2 或 IID_IMetaDataImport2。
[out] ppIUnk
指向返回的接口的指针。
返回值
如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
可以使用其中一个“导入”接口中的方法查询元数据的内存中副本,或使用其中一个“发出”接口中的方法添加。
OpenScopeOnMemory 方法类似于 OpenScope 方法,只不过感兴趣的元数据已存在于内存中,而不是存在于磁盘上的文件中。
如果内存的目标区域不包含公共语言运行时 (CLR) 元数据, 则 OpenScopeOnMemory 方法将失败。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | rometadataapi.h |