IMetaDataDispenser::OpenScope メソッド
既存のディスク上のファイルを開き、メタデータをメモリに割り当てます。
HRESULT OpenScope (
[in] LPCWSTR szScope,
[in] DWORD dwOpenFlags,
[in] REFIID riid,
[out] IUnknown **ppIUnk
);
パラメーター
szScope
[入力] 開くファイルの名前。 ファイルには、共通言語ランタイム (CLR: Common Language Runtime) メタデータが含まれている必要があります。dwOpenFlags
[入力] 開く際のモード (読み取り、書き込みなど) を指定する CorOpenFlags 列挙体の値。riid
[入力] 返される目的のメタデータ インターフェイスの IID。呼び出し元はインターフェイスを使用して、メタデータのインポート (読み取り) または生成 (書き込み) を行います。riid の値には、"import" または "emit" インターフェイスの 1 つを指定する必要があります。 有効な値は、IID_IMetaDataEmit、IID_IMetaDataImport、IID_IMetaDataAssemblyEmit、IID_IMetaDataAssemblyImport、IID_IMetaDataEmit2、または IID_IMetaDataImport2 です。
ppIUnk
[出力] 返されたインターフェイスへのポインター。
解説
メタデータのインメモリ コピーは、"import" インターフェイスの 1 つからメソッドを使用して問い合わせるか、"emit" インターフェイスの 1 つからメソッドを使用して追加できます。
対象のファイルに CLR メタデータが含まれてない場合、OpenScope メソッドは失敗します。
.NET Framework Version 1.0 および Version 1.1 では、dwOpenFlags を ofRead に設定してスコープを開くと、共有対象となります。 つまり、その後 OpenScope を呼び出して、以前に開いたファイルの名前を渡すと、既存のスコープが再利用され、データ構造の新しいセットは作成されません。 ただし、この共有により問題が発生する可能性があります。
.NET Framework Version 2.0 では、dwOpenFlags を ofRead に設定して開いたスコープは共有されなくなります。 スコープを共有できるようにするには、ofReadOnly 値を使用します。 スコープが共有されると、"read/write" メタデータ インターフェイスを使用するクエリは失敗します。
必要条件
プラットフォーム : 「.NET Framework システム要件」を参照
ヘッダー : Cor.h
ライブラリ : MsCorEE.dll でリソースとして使用されていること
.NET Framework のバージョン : 4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0
参照
参照
IMetaDataAssemblyEmit インターフェイス