Compartir a través de


Función CLRCreateInstance (.NET Framework)

Proporciona una de estas tres interfaces: ICLRMetaHost, ICLRMetaHostPolicy o ICLRDebugging.

Sintaxis

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

Parámetros

clsid
[in] Uno de los tres identificadores de clase: CLSID_CLRMetaHost, CLSID_CLRMetaHostPolicy o CLSID_CLRDebugging.

riid
[in] Uno de los tres identificadores de interfaz (IID): IID_ICLRMetaHost, IID_ICLRMetaHostPolicy o IID_ICLRDebugging.

ppInterface
[out] Una de estas tres interfaces: ICLRMetaHost, ICLRMetaHostPolicyo ICLRDebugging.

Valor devuelto

Este método devuelve los siguientes HRESULT específicos y los errores HRESULT que indican un error del método.

HRESULT Descripción
S_OK El método se completó correctamente.
E_POINTER ppInterface es null.

Comentarios

En la tabla siguiente se muestran las combinaciones admitidas para clsid y riid.

clsid riid
CLSID_CLRMetaHost IID_ICLRMetaHost
CLSID_CLRMetaHostPolicy IID_ICLRMetaHostPolicy
CLSID_CLRDebugging IID_ICLRDebugging

En el código siguiente se muestra cómo usar CLRCreateInstance para obtener las tres 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);

La función CreateInterface tiene el alias CLRCreateInstance. Ambas funciones CLRCreateInstance y CreateInterface se pueden usar de forma intercambiable. Por ejemplo:

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

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: MetaHost.h

Biblioteca: incluida como recurso en MSCorEE.dll

Versiones de .NET Framework: disponible a partir de la versión 4

Consulte también