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

参照

参照

IMetaDataDispenser インターフェイス

IMetaDataDispenserEx インターフェイス

IMetaDataAssemblyEmit インターフェイス

IMetaDataAssemblyImport インターフェイス

IMetaDataEmit インターフェイス

IMetaDataEmit2 インターフェイス

IMetaDataImport インターフェイス

IMetaDataImport2 インターフェイス