CLRCreateInstance 関数
ICLRMetaHost、ICLRMetaHostPolicy、ICLRDebugging の 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
[出力] ICLRMetaHost、ICLRMetaHostPolicy、ICLRDebugging の 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