次の方法で共有


IMetaDataDispenser::OpenScopeOnMemory メソッド (rometadataapi.h)

既存のメタデータが含まれるメモリの領域を開きます。 つまり、このメソッドでは、既存のデータがメタデータとして扱われる指定のメモリ領域が開きます。

構文

HRESULT OpenScopeOnMemory(
  [in]  const BYTE *pData,
  [in]  ULONG      cbData,
  [in]  DWORD      dwOpenFlags,
  [in]  REFIID     riid,
  [out] IUnknown   **ppIUnk
);

パラメーター

[in] pData

メモリ領域の開始アドレスを指定するポインター。

[in] cbData

メモリ領域のサイズ (バイト単位)。

[in] dwOpenFlags

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

[in] riid

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

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

[out] ppIUnk

返されたインターフェイスへのポインター。

戻り値

このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。

解説

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

OpenScopeOnMemory メソッドは OpenScope メソッドに似ていますが、対象のメタデータがディスク上のファイルではなくメモリに既に存在する点が異なります。

メモリのターゲット領域に共通言語ランタイム (CLR) メタデータが含まれていない場合、 OpenScopeOnMemory メソッドは失敗します。

要件

要件
対象プラットフォーム Windows
ヘッダー rometadataapi.h

こちらもご覧ください

IMetaDataDispenser