Megosztás a következőn keresztül:


A COM-hibakódok felépítése

Az alábbi ábrán egy HRESULT (vagy SCODE) formátuma látható; a számok bitpozíciót jelölnek:

A HRESULT vagy SCODE magasrendű bitje azt jelzi, hogy a visszatérési érték sikeres vagy sikertelen. Ha 0 értékre van állítva, SEVERITY_SUCCESS az érték sikerességet jelez. Ha az 1 értékre van állítva, SEVERITY_ERROR hibát jelez.

Az R, C, N és r bitek fenntartva vannak.

A létesítmény mező a hibáért felelős rendszerszolgáltatást jelzi. A Microsoft szükség esetén új létesítménykódokat rendel hozzá. A legtöbb SCODE és HRESULT érték a létesítménymezőt FACILITY_ITF értékre állítja, amely interfészmetódus-hibát jelez.

A gyakori létesítménymezőket az alábbi táblázat ismerteti.

Létesítménymező Érték Leírás
LÉTESÍTMÉNY_KEZELŐ
2
Késői kötésű IDispatch interfész hibák esetében.
FACILITY_ITF
4
A felületi metódusokból visszaadott legtöbb állapotkód esetében. A hiba tényleges jelentését az interfész határozza meg. Ez azt jelenti, hogy két különböző interfészből visszaadott két HRESULT, amelyek pontosan ugyanazzal a 32 bites értékkel rendelkeznek, eltérő jelentést hordozhat.
LÉTESÍTMÉNY_NULL
0
Általánosan alkalmazható általános állapotkódok, például S_OK.
FACILITY_RPC
1
Távoli eljáráshívásokból visszaadott állapotkódok esetén.
LÉTESÍTMÉNY_TÁROLÓ
3
Az IStorage vagy IStream metódushívásokból visszaadott állapotkódok esetén a strukturált tároláshoz kapcsolódó metódushívások. Azok az állapotkódok, amelyek kódszáma (kisebb 16 bit) MS-DOS hibakódok tartományában van (azaz 256-nál kisebb) ugyanazt a jelentést adja, mint a megfelelő MS-DOS hiba.
FACILITY_WIN32
7
A Windows API függvényeiből származó hibakódok kezelésére szolgál mint HRESULT. A 16 bites OLE hibakódok, amelyek megegyeznek a rendszerhibakódokkal, szintén FACILITY_WIN32-re lettek módosítva.
LÉTESÍTMÉNY_ABLAKOK
8
A Microsoft által definiált felületek további hibakódjaihoz használható.

A kódmező egy egyedi szám, amely a hiba vagy figyelmeztetés megjelenítéséhez van hozzárendelve.

Konvenció szerint a HRESULT értékek általában a következő formátumban szerepelnek: Alkalmazás_Súlyosság_Indok.

létesítmény a létesítmény neve vagy más megkülönböztető azonosító; súlyossági egyetlen S vagy E betű, amely jelzi, hogy a függvényhívás sikeres volt-e (S), vagy hibát (E) eredményezett-e; Reason pedig a kód jelentését leíró azonosító. Az állapotkód például STG_E_FILENOTFOUND azt jelzi, hogy tárterülettel kapcsolatos hiba történt; konkrétan a kért fájl nem létezik. Az FACILITY_NULL állapotkódjai kihagyják a Létesítmény_ előtagot.

A hibakódok az interfész implementációjának kontextusában vannak definiálva. A definiálás után a sikerkódok nem módosíthatók, és nem vehetők fel új sikerkódok. Új hibakódok azonban írhatók. A Microsoft fenntartja a jogot, hogy új hibakódokat (de nem sikerkódokat) határozzon meg a FACILITY_ITF vagy új létesítményekben leírt felületekhez.

Hibakezelés a COM

Windows-protokollok: HRESULT