AtlReportError
L'installazione dell'interfaccia IErrorInfo per fornire informazioni ai client dell'oggetto.
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( )
);
Parametri
clsid
[in] Il CLSID dell'oggetto che segnala un errore.lpszDesc
[in] la stringa che descrive l'errore.Le versioni Unicode specificano che lpszDesc è di tipo LPCOLESTR; nella versione ANSI specifica un tipo LPCSTR.iid
[in] l'iid dell'interfaccia che definisce l'errore o GUID_NULL se l'errore è definito dal sistema operativo.hRes
[in] HRESULT che si desidera venga restituito al chiamante.nID
[in] identificatore di risorsa in cui la stringa descrittiva di errori viene archiviata.Questo valore deve rientrare tra 0x0200 e 0xFFFF, nel suo complesso.Nelle build di debug, ASSERT un errore se nID non indicizza una stringa valida.Nelle build di rilascio, la stringa descrittiva di errori sarà "errore sconosciuto impostato."dwHelpID
[in] identificatore di contesto della guida dell'errore.lpszHelpFile
[in] il percorso e il nome del file della Guida che descrive l'errore.hInst
[in] handle alla risorsa.Per impostazione predefinita, questo parametro è __AtlBaseModuleModule::GetResourceInstance, dove __AtlBaseModuleModule è l'istanza globale CAtlBaseModule o una classe derivata da.
Valore restituito
Se il parametro hRes è diverso da zero, restituisce il valore hRes.Se hRes è zero, le prime quattro versioni di ritorno DISP_E_EXCEPTIONdi AtlReportError.Le ultime due versioni restituisce il risultato di macro MAKE_HRESULT( 1, FACILITY_ITF, nID ).
Note
Il lpszDesc della stringa viene utilizzato come descrizione dell'errore.Quando il client riceve hRes restituito da AtlReportError, il client può accedere alla struttura IErrorInfo per informazioni dettagliate sull'errore.
Esempio
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");
}
Attenzione |
---|
Non utilizzare AtlReportError nei gestori catch C++.Alcuni override di queste funzioni utilizzano le macro per la conversione delle stringhe ATL internamente, che a loro volta utilizzano la funzione _alloca internamente.Utilizzando AtlReportError nel gestore catch C++ può generare eccezioni nei gestori catch C++. |
Requisiti
Header: atlcom.h