Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Com-metoder och -funktioner returnerar ett värde av typen HRESULT-för att indikera lyckade eller misslyckade . En HRESULT- är ett 32-bitars heltal. Den högsta biten i HRESULT- signalerar framgång eller misslyckande. Noll (0) anger lyckat resultat och 1 indikerar fel.
Detta ger följande numeriska intervall:
- Lyckade koder: 0x0–0x7FFFFFFF.
- Felkoder: 0x80000000–0xFFFFFFFF.
Ett litet antal COM-metoder returnerar inte ett HRESULT- värde. Metoderna AddRef och Release returnerar till exempel osignerade långa värden. Men varje COM-metod som returnerar en felkod gör det genom att returnera ett HRESULT- värde.
Om du vill kontrollera om en COM-metod lyckas undersöker du högordningsbiten för den returnerade HRESULT-. Windows SDK-huvuden innehåller två makron som gör det enklare: LYCKADES makro och MISSLYCKADES makro. Makrot SUCCEEDED returnerar TRUE- om en HRESULT- är en lyckad kod och FALSE- om det är en felkod. I följande exempel kontrolleras om CoInitializeEx lyckas.
HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED |
COINIT_DISABLE_OLE1DDE);
if (SUCCEEDED(hr))
{
// The function succeeded.
}
else
{
// Handle the error.
}
Ibland är det mer praktiskt att testa det motsatta villkoret. Makrot MISSLYCKADES gör motsatsen till LYCKADES. Den returnerar TRUE- för en felkod och FALSE- för en lyckad kod.
HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED |
COINIT_DISABLE_OLE1DDE);
if (FAILED(hr))
{
// Handle the error.
}
else
{
// The function succeeded.
}
Senare i den här modulen kommer vi att titta på några praktiska råd för hur du strukturerar din kod för att hantera COM-fel. (Se felhantering i COM.)
Nästa