Vytvoření připojení k oboru názvů WMI
Jakmile nastavíte standardní volání modelu COM, musíte se k rozhraní WMI připojit voláním metody IWbemLocator::ConnectServer. Metoda ConnectServer vrátí proxy rozhraní IWbemServices. Prostřednictvím IWbemServicesmůžete získat přístup k různým možnostem rozhraní WMI.
Příklady kódu v tomto tématu vyžadují následující odkazy a příkazy #include ke správné kompilaci.
#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <windows.h>
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
Následující postup popisuje, jak navázat připojení k oboru názvů WMI.
Vytvořit připojení k oboru názvů rozhraní WMI
Inicializujte rozhraní IWbemLocator pomocí volání funkce CoCreateInstance.
WMI nevyžaduje provedení žádných dalších postupů při volání CoCreateInstanceIWbemLocator.
Následující příklad kódu popisuje, jak inicializovat IWbemLocator.
IWbemLocator *pLoc = 0; HRESULT hr; hr = CoCreateInstance(CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID *) &pLoc); if (FAILED(hr)) { cout << "Failed to create IWbemLocator object. Err code = 0x" << hex << hr << endl; CoUninitialize(); return hr; // Program has failed. }
Připojte se k rozhraní WMI prostřednictvím volání metody IWbemLocator::ConnectServer.
Metoda ConnectServer vrátí proxy server k rozhraní IWbemServices, které se používá pro přístup k místnímu nebo vzdálenému oboru názvů WMI, který je zadán ve vašem volání metody ConnectServer.
Následující příklad kódu popisuje, jak volat ConnectServer.
IWbemServices *pSvc = 0; // Connect to the root\default namespace with the current user. hr = pLoc->ConnectServer( BSTR(L"ROOT\\DEFAULT"), //namespace NULL, // User name NULL, // User password 0, // Locale NULL, // Security flags 0, // Authority 0, // Context object &pSvc); // IWbemServices proxy if (FAILED(hr)) { cout << "Could not connect. Error code = 0x" << hex << hr << endl; pLoc->Release(); CoUninitialize(); return hr; // Program has failed. } cout << "Connected to WMI" << endl;
Po přijetí ukazatele na IWbemServices proxy musíte nastavit zabezpečení na proxy serveru pro přístup k rozhraní WMI. Další informace najdete v tématu Nastavení úrovní zabezpečení u připojení WMI.
Související témata
-
vytvoření aplikace WMI pomocí jazyka C++
-
podpora IPv6 a IPv4 ve službě WMI