Interface IWbemServices (wbemcli.h)
L’interface IWbemServices est utilisée par les clients et les fournisseurs pour accéder aux services WMI. L’interface est implémentée par les fournisseurs WMI et WMI, et constitue l’interface WMI principale.
IWbemClassObject *pObj = NULL;
// The pWbemSvc pointer is of type IWbemServices*
// BSTR is not compatible with wchar_t, need to allocate.
BSTR path = SysAllocString(L"path");
pWbemSvc->GetObject(path, 0, 0, &pObj, 0);
SysFreeString(path);
Héritage
L’interface IWbemServices hérite de l’interface IUnknown . IWbemServices a également les types de membres suivants :
Méthodes
L’interface IWbemServices a ces méthodes.
IWbemServices ::CancelAsyncCall La méthode IWbemServices ::CancelAsyncCall annule tous les appels asynchrones en attente basés sur le pointeur IWbemObjectSink, qui a été passé à l’origine à la méthode asynchrone. |
IWbemServices::CreateClassEnum La méthode IWbemServices ::CreateClassEnum retourne un énumérateur pour toutes les classes qui répondent aux critères de sélection. |
IWbemServices::CreateClassEnumAsync La méthode IWbemServices ::CreateClassEnumAsync retourne une énumération de toutes les classes que le fournisseur de classes prend en charge. |
IWbemServices::CreateInstanceEnum La méthode IWbemServices ::CreateInstanceEnum crée un énumérateur qui retourne les instances d’une classe spécifiée en fonction des critères de sélection spécifiés par l’utilisateur. |
IWbemServices::CreateInstanceEnumAsync La méthode IWbemServices ::CreateInstanceEnumAsync crée un énumérateur qui retourne de façon asynchrone les instances d’une classe spécifiée en fonction des critères de sélection spécifiés par l’utilisateur. |
IWbemServices ::D eleteClass La méthode IWbemServices ::D eleteClass supprime la classe spécifiée de l’espace de noms actuel. |
IWbemServices ::D eleteClassAsync La méthode IWbemServices ::D eleteClassAsync supprime la classe spécifiée de l’espace de noms actuel. |
IWbemServices::DeleteInstance La méthode IWbemServices ::D eleteInstance supprime un instance d’une classe existante dans l’espace de noms actuel. |
IWbemServices ::D eleteInstanceAsync La méthode IWbemServices ::D eleteInstanceAsync supprime de façon asynchrone un instance d’une classe existante dans l’espace de noms actuel. La confirmation ou l’échec de l’opération est signalé via l’interface IWbemObjectSink implémentée par l’appelant. |
IWbemServices::ExecMethod Exécute une méthode exportée par un objet CIM. |
IWbemServices::ExecMethodAsync Exécute de manière asynchrone une méthode exportée par un objet CIM. |
IWbemServices::ExecNotificationQuery La méthode IWbemServices ::ExecNotificationQuery exécute une requête pour recevoir des événements. L’appel est retourné immédiatement et l’utilisateur peut interroger l’énumérateur retourné pour les événements qui arrivent. La libération de l’énumérateur renvoyé annule la requête. |
IWbemServices::ExecNotificationQueryAsync La méthode IWbemServices ::ExecNotificationQueryAsync effectue la même tâche que IWbemServices ::ExecNotificationQuery, sauf que les événements sont fournis au gestionnaire de réponse spécifié jusqu’à ce que CancelAsyncCall soit appelé pour arrêter la notification d’événement. |
IWbemServices::ExecQuery La méthode IWbemServices ::ExecQuery exécute une requête pour récupérer des objets. |
IWbemServices::ExecQueryAsync La méthode IWbemServices ::ExecQueryAsync exécute une requête pour récupérer des objets de manière asynchrone. |
IWbemServices::GetObject La méthode IWbemServices ::GetObject récupère une classe ou un instance. Cette méthode récupère uniquement les objets de l’espace de noms associé à l’objet IWbemServices actuel. |
IWbemServices::GetObjectAsync La méthode IWbemServices ::GetObjectAsync récupère un objet, une définition de classe ou instance, en fonction de son chemin d’accès. |
IWbemServices::OpenNamespace La méthode IWbemServices ::OpenNamespace fournit à l’appelant un nouveau pointeur IWbemServices qui a l’espace de noms enfant spécifié comme contexte d’exploitation. |
IWbemServices::PutClass La méthode IWbemServices ::P utClass crée une classe ou met à jour une classe existante. La classe spécifiée par le paramètre pObject doit avoir été correctement initialisée avec toutes les valeurs de propriété requises. |
IWbemServices::PutClassAsync La méthode IWbemServices ::P utClassAsync crée une classe ou met à jour une classe existante. |
IWbemServices::PutInstance La méthode IWbemServices ::P utInstance crée ou met à jour un instance d’une classe existante. L’instance est écrite dans le référentiel WMI. |
IWbemServices::PutInstanceAsync La méthode IWbemServices ::P utInstanceAsync crée ou met à jour de manière asynchrone une instance d’une classe existante. La confirmation de mise à jour ou le rapport d’erreurs est fourni via l’interface IWbemObjectSink implémentée par l’appelant. |
IWbemServices ::QueryObjectSink La méthode IWbemServices ::QueryObjectSink permet à l’appelant d’obtenir un gestionnaire de notification exporté par Windows Management. |
Remarques
Les fournisseurs qui implémentent l’interface IWbemServices doivent suivre la sémantique documentée de chaque méthode qu’ils implémentent ; les fournisseurs et doivent prendre en charge les codes de retour d’erreur spécifiés. WMI implémente toutes les méthodes et, en règle générale, chaque fournisseur implémente un petit sous-ensemble des fonctionnalités disponibles sur l’interface. Les fournisseurs doivent retourner WBEM_E_PROVIDER_NOT_CAPABLE pour toute méthode qu’ils n’implémentent pas.
Tous les pointeurs d’interface sortants d’une méthode IWbemServices doivent être initialisés sur NULL avant d’appeler la méthode d’interface. Par exemple, les appels à la méthode IWbemServices ::GetObject retournent un pointeur d’interface IWbemClassObject qui doit être pré-initialisé sur NULL avant l’appel de la méthode IWbemServices ::GetObject .
Exemples
Pour obtenir plusieurs exemples C++ qui utilisent IWbemServices, consultez la section Exemples d’applications WMI C++ .
L’exemple de code suivant montre comment un fournisseur peut obtenir un pointeur IWbemServices . Le code nécessite la compilation des instructions et des références #include suivantes.
#include <iostream>
using namespace std;
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
IWbemLocator *pIWbemLocator = NULL;
HRESULT hRes = CoCreateInstance (
CLSID_WbemAdministrativeLocator,
NULL ,
CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER ,
IID_IUnknown ,
( void ** ) &pIWbemLocator
) ;
IWbemServices *pWbemServices = NULL;
if (SUCCEEDED(hRes))
{
BSTR namespace = SysAllocString(L"root\\CIMV2");
hRes = pIWbemLocator->ConnectServer(
namespace, // Namespace
NULL, // Userid
NULL, // PW
NULL, // Locale
0, // flags
NULL, // Authority
NULL, // Context
&pWbemServices
);
SysFreeString(namespace);
pIWbemLocator->Release(); // Free memory resources.
// Use pWbemServices
}
// Clean up
pWbemServices->Release();
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Serveur minimal pris en charge | Windows Server 2008 |
Plateforme cible | Windows |
En-tête | wbemcli.h (include Wbemidl.h) |