IMetaDataDispenser::OpenScope 方法
更新:2007 年 11 月
開啟現有、磁碟上的檔案,並將它的中繼資料對應至記憶體。
HRESULT OpenScope (
[in] LPCWSTR szScope,
[in] DWORD dwOpenFlags,
[in] REFIID riid,
[out] IUnknown **ppIUnk
);
參數
szScope
[in] 要開啟的檔案名稱。此檔案必須包含 Common Language Runtime (CLR) 中繼資料。dwOpenFlags
[in] CorOpenFlags 列舉型別的值,指定開啟模式 (讀取、寫入等等)。riid
[in] 要傳回之所需中繼資料介面的 IID,呼叫端會使用此介面來匯入 (讀取) 或發出 (寫入) 中繼資料。riid 的值必須指定「匯入」或「發出」介面的其中一個。有效值為 IID_IMetaDataEmit、IID_IMetaDataImport、IID_IMetaDataAssemblyEmit、IID_IMetaDataAssemblyImport、IID_IMetaDataEmit2 或 IID_IMetaDataImport2。
ppIUnk
[out] 傳回之介面的指標。
備註
中繼資料的記憶體中複本可以透過其中一個「匯入」介面的方法進行查詢,或透過其中一個「發出」介面的方法進行加入。
如果目標檔案沒有包含 CLR 中繼資料,則 OpenScope 方法會失敗。
在 .NET Framework 1.0 版和 1.1 版中,如果以設定為 ofRead 的 dwOpenFlags 來開啟範圍,則它適合共用。也就是說,如果 OpenScope 的後續呼叫傳入先前已開啟的檔案名稱,則會重複使用現有範圍,而且不會建立一組新的資料結構。不過,會因為此共用而發生問題。
在 .NET Framework 2.0 版中,以設定為 ofRead 的 dwOpenFlags 所開啟的範圍不再是共用的。若要允許共用此範圍,請使用 ofReadOnly 值。當共用範圍時,使用「讀取/寫入」中繼資料介面的查詢會失敗。
需求
**平台:**請參閱 .NET Framework 系統需求。
**標頭:**Cor.h
**程式庫:**當做 MsCorEE.dll 中的資源使用
**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0