Share via


IMetaDataDispenser::OpenScope メソッド

ディスク上の既存ファイルを開き、そのメタデータをメモリにマッピングします。

構文

HRESULT OpenScope (  
    [in]  LPCWSTR     szScope,
    [in]  DWORD       dwOpenFlags,
    [in]  REFIID      riid,
    [out] IUnknown    **ppIUnk  
);  

パラメーター

szScope
[in] 開くファイルの名前。 ファイルには、共通言語ランタイム (CLR) メタデータが含まれている必要があります。

dwOpenFlags
[in] 開くためのモード (読み取り、書き込みなど) を指定する CorOpenFlags 列挙体の値。

riid
[in] 返される必要なメタデータ インターフェイスの IID。呼び出し元では、インターフェイスを使用して、メタデータのインポート (読み取り) または出力 (書き込み) を行います。

riid の値では、"import" または "emit" インターフェイスのいずれかを指定する必要があります。 有効な値は、IID_IMetaDataEmit、IID_IMetaDataImport、IID_IMetaDataAssemblyEmit、IID_IMetaDataAssemblyImport、IID_IMetaDataEmit2、または IID_IMetaDataImport2 です。

ppIUnk
[out] 返されたインターフェイスへのポインター。

解説

メタデータのメモリ内コピーは、いずれかの "import" インターフェイスのメソッドを使用してクエリを実行するか、いずれかの "emit" インターフェイスのメソッドを使用して追加できます。

ターゲット ファイルに CLR メタデータが含まれていない場合、OpenScope メソッドは失敗します。

.NET Framework バージョン 1.0 およびバージョン 1.1 では、dwOpenFlags を ofRead に設定してスコープを開くと、共有の対象になります。 つまり、それ以降の OpenScope への呼び出しで、以前に開いたファイルの名前が渡された場合、既存のスコープが再利用され、新しいデータ構造体のセットは作成されません。 ただし、この共有によって問題が発生する可能性があります。

.NET Framework バージョン 2.0 では、dwOpenFlags を ofRead に設定して開かれたスコープは共有されなくなりました。 スコープを共有できるようにするには、ofReadOnly 値を使用します。 スコープが共有されると、"読み取り/書き込み" メタデータ インターフェイスを使用するクエリは失敗します。

必要条件

:システム要件」を参照してください。

ヘッダー: Cor.h

ライブラリ: MsCorEE.dll でリソースとして使用されます

.NET Framework のバージョン: 1.0 以降で使用可能

関連項目