AtlReportError
Installation via l'interface d' IErrorInfo pour fournir des informations d'erreur aux clients de l'objet.
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( )
);
Paramètres
clsid
[in] Le CLSID de l'objet stockant l'erreur.lpszDesc
[in] la chaîne décrivant l'erreur.Les versions Unicode spécifient que lpszDesc est de type LPCOLESTR; la version ANSI spécifie un type d' LPCSTR.iid
[in] L'IID de l'interface définissant l'erreur ou GUID_NULL si l'erreur est définie par le système d'exploitation.hRes
[in] HRESULT que vous souhaitez retourné à l'appelant.nID
[in] L'identificateur de ressource où la chaîne de description d'erreur est signalée.Cette valeur doit reposer entre 0x0200 et 0xFFFF, inclusivement.Dans les versions debug, ASSERT résultera si nID clés ne pas une chaîne valide.Dans les versions release, la chaîne de description de l'erreur sera la valeur « erreur inconnue. »dwHelpID
[in] l'identificateur de contexte d'aide pour l'erreur.lpszHelpFile
[in] Le chemin d'accès et le nom du fichier d'aide décrivant l'erreur.hInst
[in] le handle à la ressource.Par défaut, ce paramètre est __AtlBaseModuleModule::GetResourceInstance, où __AtlBaseModuleModule est l'instance globale de CAtlBaseModule ou d'une classe dérivée d'elle.
Valeur de retour
Si le paramètre d' hRes est différent de zéro, retourne la valeur d' hRes.Si hRes est zéro, les quatre premières versions du retour DISP_E_EXCEPTIONd' AtlReportError .Les deux dernières versions retournent le résultat du MAKE_HRESULT( 1, FACILITY_ITF, nID ).
Notes
le lpszDesc de chaîne est utilisé comme description textuelle de l'erreur.Lorsque le client reçoit hRes que vous retournez d' AtlReportError, le client peut accéder à la structure d' IErrorInfo pour plus d'informations sur l'erreur.
Exemple
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");
}
Attention |
---|
N'utilisez pas AtlReportError dans les gestionnaires catch C++.Certaines substitutions de ces fonctions utilisent les macros de conversion de chaînes ATL en interne, qui utilise ensuite la fonction d' _alloca en interne.Utilisation AtlReportError dans le gestionnaire catch C++ peut provoquer des exceptions dans les gestionnaires catch C++. |
Configuration requise
Header: atlcom.h