FACILITY_ITF kodlar
FACILITY_NULL ve FACILITY_RPC gibi olanaklara sahip HRESULTtek bir kaynakta tanımlandığı için evrensel bir anlama sahiptir: Microsoft. Ancak, FACILITY_ITF HRESULT, döndürülecekleri işlev veya arabirim yöntemi tarafından belirlenir. Bu, iki farklı arabirim yönteminden döndürülen FACILITY_ITF aynı 32 bit değerin farklı anlamlara sahip olabileceği anlamına gelir.
hresult FACILITY_ITFfarklı arabirimlerde farklı anlamlara sahip olabilir nedeni, HRESULT32 bit verimli bir veri türü boyutuna tutulur olmasıdır. Ne yazık ki 32 bit, farklı yerlerde (arabirim tanımlayıcılarının ve CLSID'lerin işlenmesinden farklı olarak) farklı programcılar tarafından farklı zamanlarda ayrılan çakışan kodları önleyen bir hata kodu ayırma sisteminin geliştirilmesi için yeterince büyük değildir. Sonuç olarak, 32 bit HRESULT, Microsoft'un çeşitli evrensel hata kodları tanımlayabilmesi ve diğer programcıların çakışma korkusu olmadan yeni hata kodları tanımlamasına olanak tanıyacak şekilde yapılandırılmıştır. Durum kodu kuralı aşağıdaki gibidir:
- FACILITY_ITF dışındaki tesislerdeki durum kodları yalnızca Microsoft tarafından tanımlanabilir.
- Tesis FACILITY_ITF durum kodları yalnızca durum kodunu döndüren arabirimin veya işlevin geliştiricisi tarafından tanımlanır. Çakışan hata kodlarını önlemek için arabirimi tanımlayan kişi, bu arabirimle ilişkili FACILITY_ITF durum kodlarını koordine etmekten ve yayımlamaktan sorumludur.
Tüm COM tanımlı FACILITY_ITF kodları, 0x0000-0x01FF aralığında bir kod değerine sahiptir. FACILITY_ITF kod kullanmak yasal olsa da, yalnızca 0x0200-0xFFFF aralığındaki kod değerlerinin kullanılması önerilir. Bu öneri, COM tanımlı hatalarla karışıklığı azaltmanın bir aracı olarak yapılır.
Geliştiricilerin, COM tarafından tanımlanan ve FACILITY_ITF dışındaki tesislerde hata kodları döndürmek için yeni işlevler ve arabirimler tanımlaması da önerilir. Özellikle, gelecekte RPC kullanılarak uzaktan kumanda edilme şansı olan arabirimler FACILITY_RPC kodlarını yasal olarak tanımlamalıdır. E_UNEXPECTED çoğu geliştiricinin evrensel olarak yasal hale getirmek isteyeceği belirli bir hata kodudur.
İlgili konular