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 的值必須指定其中一個「匯入」或「發出」介面。 有效值為IID_IMetaDataEmit、IID_IMetaDataImport、IID_IMetaDataAssemblyEmit、IID_IMetaDataAssemblyImport、IID_IMetaDataEmit2或IID_IMetaDataImport2。
[out] ppIUnk
傳回介面的指標。
傳回值
如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
您可以使用其中一個「匯入」介面的方法查詢,或使用其中一個「發出」介面的方法新增中繼資料的記憶體內部複本。
OpenScopeOnMemory 方法類似於 OpenScope 方法,不同之處在於感興趣的元數據已存在於記憶體中,而不是磁碟上的檔案中。
如果記憶體的目標區域不包含 COMMON Language Runtime (CLR) 元數據, OpenScopeOnMemory 方法將會失敗。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | rometadataapi.h |