次の方法で共有


CLRCreateInstance 関数

ICLRMetaHostICLRMetaHostPolicyICLRDebugging の 3 つのインターフェイスのいずれか 1 つを提供します。

HRESULT CLRCreateInstance(
    [in]  REFCLSID  clsid,
    [in]  REFIID     riid,
    [out] LPVOID  * ppInterface
);

パラメーター

  • clsid
    [入力] CLSID_CLRMetaHost、CLSID_CLRMetaHostPolicy、CLSID_CLRDebugging の 3 つのクラス ID のいずれか 1 つ。

  • riid
    [入力] IID_ICLRMetaHost、IID_ICLRMetaHostPolicy、または IID_ICLRDebugging. の 3 つのインターフェイス ID (IID: Interface Identifier) のいずれか 1 つ。

  • ppInterface
    [出力] ICLRMetaHostICLRMetaHostPolicyICLRDebugging の 3 つのインターフェイスのいずれか 1 つ。

戻り値

このメソッドは、次の特定の HRESULT と、メソッドの失敗を示す HRESULT エラーも返します。

HRESULT

説明

S_OK

メソッドは正常に終了しました。

E_POINTER

ppInterface が null です。

解説

次の表は、clsid および riid でサポートされている組み合わせを示しています。

rclsid

riid

CLSID_CLRMetaHost

IID_ICLRMetaHost

CLSID_CLRMetaHostPolicy

IID_ICLRMetaHostPolicy

CLSID_CLRDebugging

IID_ICLRDebugging

CLRCreateInstance を使用して 3 つのインターフェイスをすべて取得する方法を次のコードに示します。

#include <metahost.h>
#pragma comment(lib, "mscoree.lib")

ICLRMetaHost       *pMetaHost       = NULL;
ICLRMetaHostPolicy *pMetaHostPolicy = NULL;
ICLRDebugging      *pCLRDebugging   = NULL;
HRESULT hr;
hr = CLRCreateInstance(CLSID_CLRMetaHost, IID_ICLRMetaHost,
                    (LPVOID*)&pMetaHost);
hr = CLRCreateInstance (CLSID_CLRMetaHostPolicy, IID_ICLRMetaHostPolicy,
                    (LPVOID*)&pMetaHostPolicy);
hr = CLRCreateInstance (CLSID_CLRDebugging, IID_ICLRDebugging,
                    (LPVOID*)&pCLRDebugging);

必要条件

プラットフォーム: 「.NET Framework システム要件」を参照

ヘッダー: MetaHost.h

ライブラリ: MSCorEE.dll にリソースとして格納されていること

.NET Framework のバージョン: 4

参照

その他の技術情報

ホスト (アンマネージ API リファレンス)