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 以降で使用可能
関連項目
.NET