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");
}
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