次の方法で共有


CLRCreateInstance 関数 (.NET Framework)

ICLRMetaHostICLRMetaHostPolicy、または ICLRDebugging の 3 つのインターフェイスのいずれかを提供します。

構文

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

パラメーター

clsid
[in] CLSID_CLRMetaHost、CLSID_CLRMetaHostPolicy、または CLSID_CLRDebugging の 3 つのクラス識別子のいずれか。

riid
[in] IID_ICLRMetaHost、IID_ICLRMetaHostPolicy、または IID_ICLRDebugging の 3 つのインターフェイス識別子 (IID) のいずれか。

ppInterface
[out] ICLRMetaHostICLRMetaHostPolicy、または ICLRDebugging の 3 つのインターフェイスのいずれか。

戻り値

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

HRESULT 説明
S_OK メソッドは正常に完了しました。
E_POINTER ppInterface が null です。

解説

サポートされる clsidriid の組み合わせは次の表のとおりです。

clsid 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);

CreateInterface 関数のエイリアスは CLRCreateInstance になります。 CLRCreateInstanceCreateInterface 関数はどちらも同様に使用できます。 次に例を示します。

HMODULE hModule = LoadLibrary(L"mscoree.dll");
CreateInterfaceFnPtr createInterface = (CreateInterfaceFnPtr)GetProcAddress(hModule, "CreateInterface");
HRESULT hr;
hr = createInterface(CLSID_CLRMetaHost, IID_ICLRMetaHost, (LPVOID*)&pMetaHost);
hr = createInterface (CLSID_CLRMetaHostPolicy, IID_ICLRMetaHostPolicy,  (LPVOID*)&pMetaHostPolicy);
hr = createInterface (CLSID_CLRDebugging, IID_ICLRDebugging,  (LPVOID*)&pCLRDebugging);

要件

:システム要件」を参照してください。

ヘッダー: MetaHost.h

ライブラリ: MSCorEE.dll にリソースとして含まれます

.NET Framework のバージョン: 4 以降で使用可能

関連項目