Menginisialisasi COM untuk Aplikasi WMI
Langkah pertama dalam menyambungkan ke WMI adalah menyiapkan panggilan COM ke CoInitializeEx dan CoInitializeSecurity.
Contoh kode dalam topik ini memerlukan referensi berikut dan pernyataan #include untuk dikompilasi dengan benar.
#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
Prosedur berikut menjelaskan cara menginisialisasi COM dari aplikasi klien.
Untuk menginisialisasi COM dari aplikasi klien
Menginisialisasi COM dengan panggilan ke CoInitializeEx.
Memanggil CoInitializeEx adalah prosedur standar untuk menyiapkan antarmuka COM. Oleh karena itu, WMI tidak mengharuskan Anda mengamati prosedur tambahan apa pun saat memanggil CoInitializeEx. Untuk informasi selengkapnya, lihat COM.
Contoh kode berikut menjelaskan cara memanggil CoInitializeEx.
HRESULT hr; hr = CoInitializeEx(0, COINIT_MULTITHREADED); if (FAILED(hr)) { cout << "Failed to initialize COM library. Error code = 0x" << hex << hr << endl; return hr; }
Atur tingkat keamanan COM umum dengan panggilan ke antarmuka CoInitializeSecurity .
CoInitializeSecurity adalah fungsi standar yang harus Anda panggil saat menyiapkan antarmuka COM untuk proses. Panggil CoInitializeSecurity jika Anda ingin mengatur pengaturan keamanan default untuk layanan autentikasi, peniruan, atau autentikasi untuk seluruh proses. Untuk informasi selengkapnya, lihat Mengatur Keamanan Proses Aplikasi Klien. Jika Anda ingin mengatur atau mengubah keamanan untuk proksi tertentu, Anda harus memanggil CoSetProxyBlanket. Gunakan CoSetProxyBlanket setiap kali Anda harus mengatur atau mengubah keamanan COM saat berjalan di dalam proses lain di mana Anda tidak dapat mengontrol pengaturan keamanan default untuk layanan autentikasi, peniruan, atau autentikasi. Untuk informasi selengkapnya, lihat Mengatur Tingkat Keamanan pada Koneksi WMI dan Mengatur Keamanan di IWbemServices dan Proksi Lainnya.
WMI memiliki beberapa masalah keamanan yang harus Anda waspadai saat memprogram aplikasi klien WMI. Untuk informasi selengkapnya, lihat Mengatur Keamanan Proses Aplikasi Klien.
Contoh kode berikut menjelaskan cara memanggil CoInitializeSecurity untuk mengatur keamanan COM pada proses.
hr = CoInitializeSecurity( NULL, // Security descriptor -1, // COM negotiates authentication service NULL, // Authentication services NULL, // Reserved RPC_C_AUTHN_LEVEL_DEFAULT, // Default authentication level for proxies RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation level for proxies NULL, // Authentication info EOAC_NONE, // Additional capabilities of the client or server NULL); // Reserved if (FAILED(hr)) { cout << "Failed to initialize security. Error code = 0x" << hex << hr << endl; CoUninitialize(); return hr; // Program has failed. }
Setelah Anda menginisialisasi COM, langkah Anda selanjutnya adalah membuat koneksi ke namespace WMI. Untuk informasi selengkapnya, lihat Membuat Koneksi ke Namespace WMI.
Topik terkait