Função de CLRCreateInstance
Fornece um dos três interfaces: ICLRMetaHost, ICLRMetaHostPolicy, ou ICLRDebugging.
HRESULT CLRCreateInstance(
[in] REFCLSID clsid,
[in] REFIID riid,
[out] LPVOID * ppInterface
);
Parâmetros
clsid
[in] Um dos três identificadores de classe: CLSID_CLRMetaHost, CLSID_CLRMetaHostPolicy ou CLSID_CLRDebugging.riid
[in] Um dos três identificadores de interface (IIDs): IID_ICLRMetaHost, IID_ICLRMetaHostPolicy ou IID_ICLRDebugging.ppInterface
[out] Um dos três interfaces: ICLRMetaHost, ICLRMetaHostPolicy, ou ICLRDebugging.
Valor de retorno
Esse método retorna o seguintes HRESULTs específicos, bem como o HRESULT erros que indicam falha de método.
HRESULT |
Descrição |
---|---|
S_OK |
O método foi concluído com êxito. |
E_POINTER |
ppInterfaceé nulo. |
Comentários
A tabela a seguir mostra as combinações suportadas para clsid e riid.
rclsid |
riid |
---|---|
CLSID_CLRMetaHost |
IID_ICLRMetaHost |
CLSID_CLRMetaHostPolicy |
IID_ICLRMetaHostPolicy |
CLSID_CLRDebugging |
IID_ICLRDebugging |
O código a seguir mostra como usar CLRCreateInstance para obter todas as três interfaces:
#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);
Requisitos
Plataformas: Consulte Requisitos de sistema do .NET Framework.
Cabeçalho: MetaHost.h
Biblioteca: Incluído como um recurso em mscoree
.NET Framework versões: 4