Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Başarılı veya başarısız olduğunu belirtmek için, COM yöntemleri ve işlevleri HRESULT türünde bir değer döndürür. HRESULT 32 bitlik bir tamsayıdır. HRESULT'in en anlamlı biti, başarı veya başarısızlığı işaret eder. Sıfır (0) başarıyı, 1 ise başarısızlığı gösterir.
Bu, aşağıdaki sayısal aralıkları oluşturur:
- Başarı kodları: 0x0–0x7FFFFFFF.
- Hata kodları: 0x80000000–0xFFFFFFFF.
Az sayıda COM yöntemi HRESULT değeri döndürmez. Örneğin, AddRef ve Release yöntemleri işaretsiz uzun değerler döndürür. Ancak hata kodu döndüren her COM yöntemi, bunu bir HRESULT değeri döndürerek yapar.
COM yönteminin başarılı olup olmadığını denetlemek için döndürülen HRESULTyüksek sıralı bitini inceleyin. Windows SDK üst bilgileri bunu kolaylaştıran iki makro sağlar: BAŞARILI OLDU makrosu ve BAŞARISIZ makrosu. BAŞARILI makrosu, HRESULT başarı koduysa DOĞRU, hata koduysa YANLIŞ olarak döndürür. Aşağıdaki örnek, CoInitializeEx başarılı olup olmadığını denetler.
HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED |
COINIT_DISABLE_OLE1DDE);
if (SUCCEEDED(hr))
{
// The function succeeded.
}
else
{
// Handle the error.
}
Bazen ters durumu test etmek daha uygundur. FAILED makrosu, SUCCEEDEDmakrosunun tersi şekilde çalışır. Hata kodu için TRUE ve başarı kodu için FALSE döndürür.
HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED |
COINIT_DISABLE_OLE1DDE);
if (FAILED(hr))
{
// Handle the error.
}
else
{
// The function succeeded.
}
Bu modülün ilerleyen bölümlerinde kodunuzu COM hatalarıyla başa çıkacak şekilde yapılandırmaya yönelik bazı pratik önerilere göz atacağız. (Bkz. COM Hata İşleme.)
Sonraki