Compartilhar via


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

Consulte também

Outros recursos

Hospedagem (referência de API não gerenciada)