Quelle est la technologie qui permet d'envoyer des rapports d'erreurs à Microsoft, lorsqu'une application est défaillante ?

| Microsoft MSDN France | Jérôme Lambert |

Retrouvez l'intégralité des questions / réponses sur le développement sous Windows 7 dans l'article suivant.

Commentez cet article : Commentez ♪

- Titre : Quelle est la technologie qui permet d'envoyer des rapports d'erreurs à Microsoft, lorsqu'une application est défaillante ?

- Auteurs : Microsoft MSDN France, Jérôme Lambert

- Parution : 4 avril 2010

- Licence : Copyright ® 2011 Microsoft MSDN France. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Quelle est la technologie qui permet d'envoyer des rapports d'erreurs à Microsoft, lorsqu'une application est défaillante ?

I - Quelle est la technologie qui permet d'envoyer des rapports d'erreurs à Microsoft, lorsqu'une application est défaillante ?

Windows Error Reporting, est une fonctionnalité de Windows qui permet à l'utilisateur de notifier Microsoft via le site http://winqual.microsoft.com des erreurs de l'application, des erreurs du noyau ou de tout type d'erreurs. Microsoft, est en mesure alors d'utiliser cette fonctionnalité pour fournir des solutions à l'utilisateur. Les développeurs peuvent utiliser cette infrastructure et recevoir des informations afin d'améliorer leurs applications.

Lorsqu'une application est défaillante, Windows Error Reporting fait apparaître ce type de boîte de dialogue.

Exemple de création de rapport

HRESULT hr=S_OK;
hr=WerReportCreate(eventType, WerReportCritical,
&werReportInformation, &m_hReportHandle)

DWORD submitOptions =  WER_SUBMIT_OUTOFPROCESS | WER_SUBMIT_HONOR_RESTART |
WER_SUBMIT_HONOR_RECOVERY;

WER_SUBMIT_RESULT submitResult;
hr=::WerReportSubmit(m_hReportHandle, WerConsentNotAsked, submitOptions, &submitResult);

if (SUCCEEDED(hr))
{
switch(submitResult)
{
case WerDisabled:
break;
///
case WerReportFailed :
::MessageBox (0,L"Impossible d'envoyer le rapport",L"Envoi du rapport",0);
break;
case WerReportCancelled:
::MessageBox (0,L"Rapport annulé",L"Envoi du rapport",0);
break;
case WerReportUploaded :
::MessageBox (0,L"Rapport envoyé",L"Envoi du rapport",0);
break;
case WerReportDebug:
::MessageBox (0,L"Debug",L"Envoi du rapport",0);
break;
default:
break;

}
}
WerReportCloseHandle (m_hReportHandle);
}

Il est possible également de modifier les messages à afficher.

Pour plus d'infos

- Pour en savoir plus sur la manière de programmer Windows Error Reporting http://msdn.microsoft.com/fr-fr/visualc/ff770840.aspx#2

- Pour plus d'informations sur les nouveautés de Windows Error Reporting dans Windows 7 http://msdn.microsoft.com/en-us/library/bb513641(VS.85).aspx

- MSDN : http://msdn.microsoft.com/fr-fr/windows/default.aspx

- Le coach Windows 7 : http://msdn.microsoft.com/fr-fr/windows/msdn.coach.windows7

- Kit de développement pour Windows 7 : http://msdn.microsoft.com/fr-fr/windows/gg398052.aspx