Sdílet prostřednictvím


AtlReportError

Nastaví IErrorInfo rozhraní klientům objekt poskytnout informace o chybě.

HRESULT WINAPI AtlReportError( 
   const CLSID& clsid, 
   LPCOLESTR lpszDesc, 
   const IID& iid = GUID_NULL, 
   HRESULT hRes = 0  
); 
HRESULT WINAPI AtlReportError( 
   const CLSID& clsid, 
   LPCOLESTR lpszDesc, 
   DWORD dwHelpID, 
   LPCOLESTR lpszHelpFile, 
   const IID& iid = GUID_NULL, 
   HRESULT hRes = 0  
); 
HRESULT WINAPI AtlReportError( 
   const CLSID& clsid, 
   LPCSTR lpszDesc, 
   const IID& iid = GUID_NULL, 
   HRESULT hRes = 0  
); 
HRESULT WINAPI AtlReportError( 
   const CLSID& clsid, 
   LPCSTR lpszDesc, 
   DWORD dwHelpID, 
   LPCSTR lpszHelpFile, 
   const IID& iid = GUID_NULL, 
   HRESULT hRes = 0  
); 
HRESULT WINAPI AtlReportError( 
   const CLSID& clsid, 
   UINT nID, 
   const IID& iid = GUID_NULL, 
   HRESULT hRes = 0, 
   HINSTANCE hInst = _AtlBaseModule.GetResourceInstance( ) 
); 
HRESULT WINAPI AtlReportError( 
   const CLSID& clsid, 
   UINT nID, 
   DWORD dwHelpID, 
   LPCOLESTR lpszHelpFile, 
   const IID& iid = GUID_NULL, 
   HRESULT hRes = 0, 
   HINSTANCE hInst = _AtlBaseModule.GetResourceInstance( ) 
);

Parametry

  • clsid
    [v] Identifikátor CLSID objektu chybové hlášení.

  • lpszDesc
    [v] Řetězec popisující chybu.Verze Unicode určit, že lpszDesc je typu LPCOLESTR; Určuje typ verze ANSI LPCSTR .

  • iid
    [v] IID rozhraní definující chybu nebo GUID_NULL Jestliže je definován chyby operačního systému.

  • hRes
    [v] HRESULT Chcete vrátit volajícímu.

  • nID
    [v] Identifikátor prostředku, kde je uložen řetězec popisu chyby.Tato hodnota by měla ležet mezi 0x0200 a 0xFFFF, včetně.V sestavení ladění ASSERT dojde-li nID index není platný řetězec.Ve verzi sestavení řetězec popisu chyby bude nastaven na "Neznámá chyba.

  • dwHelpID
    [v] Identifikátor nápovědy kontext chyba.

  • lpszHelpFile
    [v] Cesta a název souboru nápovědy popisující chybu.

  • hInst
    [v] Popisovač prostředku.Ve výchozím nastavení je tento parametr __AtlBaseModuleModule::GetResourceInstance, kde __AtlBaseModuleModule je globální instance CAtlBaseModule nebo Třída odvozená od něj.

Vrácená hodnota

Pokud hRes parametr je nenulová, vrátí hodnotu hRes .Pokud hRes nula, je první čtyři verze AtlReportError vrátit DISP_E_EXCEPTION .Poslední dvě verze vrací výsledek makro MAKE_HRESULT (1, FACILITY_ITF, nID ).

Poznámky

Řetězec lpszDesc se používá jako textový popis chyby.Jakmile klient přijme hRes vrátit z AtlReportError , přístup klienta IErrorInfo struktury pro podrobnosti o chybě.

Příklad

STDMETHODIMP CMyControl::MyErrorProneMethod()
{
   BOOL bSucceeded = ErrorProneFunc();
   if (bSucceeded)
      return S_OK;
   else 
      // hRes is set to DISP_E_EXCEPTION 
      return AtlReportError(GetObjectCLSID(), L"My error message");
}
Poznámka k upozorněníUpozornění

Nepoužívejte AtlReportError v jazyce C++ zachytit obslužné rutiny.Některé lokální změny těchto funkcí použít ATL řetězec Převod makra interně, které zase použít _alloca funkce interně.Pomocí AtlReportError v C++ catch může způsobit popisovač výjimky v C++ úlovku obslužné rutiny.

Požadavky

Záhlaví: atlcom.h

Viz také

Referenční dokumentace

MAKE_HRESULT

Další zdroje

Ladění a chybách globální funkce