Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Fournit l’une des trois interfaces suivantes : ICLRMetaHost, ICLRMetaHostPolicy ou ICLRDebugging.
Syntaxe
HRESULT CLRCreateInstance(
[in] REFCLSID clsid,
[in] REFIID riid,
[out] LPVOID * ppInterface
);
Paramètres
clsid
[in] Un de ces trois identificateurs de classe : CLSID_CLRMetaHost, CLSID_CLRMetaHostPolicy ou CLSID_CLRDebugging.
riid
[in] Un de ces trois identificateurs d’interface (IID) : IID_ICLRMetaHost, IID_ICLRMetaHostPolicy ou IID_ICLRDebugging.
ppInterface
[out] Une de ces trois interfaces : ICLRMetaHost, ICLRMetaHostPolicy ou ICLRDebugging.
Valeur de retour
Cette méthode retourne les HRESULT spécifiques suivants ainsi que les erreurs HRESULT indiquant l'échec de la méthode.
| HRESULT | Description |
|---|---|
| S_OK | La commande s'est correctement terminée. |
| E_POINTER | ppInterface a la valeur null. |
Notes
Le tableau suivant présente les combinaisons prises en charge pour clsid et riid.
clsid |
riid |
|---|---|
| CLSID_CLRMetaHost | IID_ICLRMetaHost |
| CLSID_CLRMetaHostPolicy | IID_ICLRMetaHostPolicy |
| CLSID_CLRDebugging | IID_ICLRDebugging |
Le code suivant montre comment utiliser CLRCreateInstance pour obtenir les trois 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 fonction CreateInterface a comme alias CLRCreateInstance. Les deux fonctions CLRCreateInstance et CreateInterface peuvent être utilisées de façon interchangeable. Par exemple :
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);
Configuration requise
Plateformes : Consultez Configuration requise.
En-tête : MetaHost.h
Bibliothèque : incluse en tant que ressource dans MsCorEE.dll
Versions de .NET Framework : Disponibles depuis 4