Kode Kesalahan di COM

Untuk menunjukkan keberhasilan atau kegagalan, metode dan fungsi COM mengembalikan nilai jenis HRESULT. HRESULT adalah bilangan bulat 32-bit. Bit HRESULT berurutan tinggi menandakan keberhasilan atau kegagalan. Nol (0) menunjukkan keberhasilan dan 1 menunjukkan kegagalan.

Ini menghasilkan rentang numerik berikut:

  • Kode keberhasilan: 0x0–0x7FFFFFFF.
  • Kode kesalahan: 0x80000000–0xFFFFFFFF.

Sejumlah kecil metode COM tidak mengembalikan nilai HRESULT . Misalnya, metode AddRef dan Release mengembalikan nilai panjang yang tidak ditandatangani. Tetapi setiap metode COM yang mengembalikan kode kesalahan melakukannya dengan mengembalikan nilai HRESULT .

Untuk memeriksa apakah metode COM berhasil, periksa bit urutan tinggi dari HRESULT yang dikembalikan. Header Windows SDK menyediakan dua makro yang mempermudah ini: makro BERHASIL dan makro GAGAL . Makro BERHASIL mengembalikan TRUE jika HRESULT adalah kode keberhasilan dan FALSE jika itu adalah kode kesalahan. Contoh berikut memeriksa apakah CoInitializeEx berhasil.

HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | 
    COINIT_DISABLE_OLE1DDE);

if (SUCCEEDED(hr))
{
    // The function succeeded.
}
else
{
    // Handle the error.
}

Terkadang lebih nyaman untuk menguji kondisi terbalik. Makro GAGAL berlawanan dengan SUCCEEDED. Ini mengembalikan TRUE untuk kode kesalahan dan FALSE untuk kode keberhasilan.

HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | 
    COINIT_DISABLE_OLE1DDE);

if (FAILED(hr))
{
    // Handle the error.
}
else
{
    // The function succeeded.
}

Nanti dalam modul ini, kita akan melihat beberapa saran praktis tentang cara menyusun kode Anda untuk menangani kesalahan COM. (Lihat Penanganan Kesalahan di COM.)

Berikutnya

Membuat Objek di COM