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