Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Chiamare la funzione per segnalare un errore in base a un codice di stato HRESULT.
inline void AtlThrow(
HRESULT hr
);
Parametri
- hr
Valore HRESULT standard.
Note
Questa funzione viene utilizzata da ATL e dal codice MFC in caso di condizione di errore.Può essere chiamata dal codice.L'implementazione predefinita di questa funzione dipende dalla definizione del simbolo _ATL_NO_EXCEPTIONS e dal tipo di progetto, ATL o MFC.
In tutti i casi, questa funzione traccia l'hresult al debugger.
Se _ATL_NO_EXCEPTIONS non è definito in un progetto MFC, genera di questa funzione CMemoryException o COleException in base al valore di HRESULT.
Se _ATL_NO_EXCEPTIONS non è definito in un progetto ATL, la funzione genera CAtlException.
Se _ATL_NO_EXCEPTIONS è definito, la funzione provoca un errore di asserzione anziché generare un'eccezione.
Per i progetti ATL, è possibile fornire un'implementazione personalizzata di questa funzione da utilizzare da ATL in caso di errore.A tale scopo, definire una funzione con la stessa firma AtlThrow e #define AtlThrow per essere il nome della funzione.Questa operazione deve essere eseguita prima inclusi atlexcept.h (cioé che deve essere eseguito prima dell'inclusione delle intestazioni ATL poiché atlbase.h include atlexcept.h).
Esempio
// Constructors and operators cannot return error codes, and
// so they are the place where exceptions are generally used.
class CMyClass
{
private:
CComPtr<IBuddy> m_spBuddy;
public:
CMyClass()
{
HRESULT hr = m_spBuddy.CoCreateInstance(CLSID_Buddy);
if (FAILED(hr))
AtlThrow(hr);
}
// methods ..
};
Requisiti
Header: atldef.h