CLRCreateInstance (Función)
Proporciona una de tres interfaces: ICLRMetaHost, ICLRMetaHostPolicy o ICLRDebugging.
HRESULT CLRCreateInstance(
[in] REFCLSID clsid,
[in] REFIID riid,
[out] LPVOID * ppInterface
);
Parámetros
clsid
[in] Uno de tres identificadores de clase: CLSID_CLRMetaHost, CLSID_CLRMetaHostPolicy o CLSID_CLRDebugging.riid
[in] Uno de tres identificadores de interfaz (identificadores IID): IID_ICLRMetaHost, IID_ICLRMetaHostPolicy o IID_ICLRDebugging.ppInterface
[out] Una de tres interfaces: ICLRMetaHost, ICLRMetaHostPolicy o ICLRDebugging.
Valor devuelto
Este método devuelve los siguientes HRESULT específicos, así como errores HRESULT que indican la existencia de un error en el método.
HRESULT |
Descripción |
---|---|
S_OK |
El método se ha ejecutado correctamente. |
E_POINTER |
ppInterface es null. |
Comentarios
En la tabla siguiente se muestran las combinaciones admitidas para clsid y riid.
rclsid |
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);
Requisitos
Plataformas: vea Requisitos de sistema de .NET Framework.
Encabezado: MetaHost.h
Biblioteca: Se incluye como recurso en MsCorEE.dll
Versiones de .NET Framework: 4