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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk