Reactos
at master 127 lines 3.7 kB view raw
1/* 2 * Windows Error Reporing definitions 3 * 4 * Copyright (C) 2010 Louis Lenders 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 19 */ 20 21#ifndef __WINE_WERAPI_H 22#define __WINE_WERAPI_H 23 24#ifdef __cplusplus 25extern "C" { 26#endif 27 28/* Only 10 parameter are allowed in WerReportSetParameter */ 29#define WER_MAX_PARAM_COUNT 10 30#define WER_P0 0 31#define WER_P1 1 32#define WER_P2 2 33#define WER_P3 3 34#define WER_P4 4 35#define WER_P5 5 36#define WER_P6 6 37#define WER_P7 7 38#define WER_P8 8 39#define WER_P9 9 40 41/* Flags for WerReportSubmit */ 42#define WER_SUBMIT_HONOR_RECOVERY 0x0001 43#define WER_SUBMIT_HONOR_RESTART 0x0002 44#define WER_SUBMIT_QUEUE 0x0004 45#define WER_SUBMIT_SHOW_DEBUG 0x0008 46#define WER_SUBMIT_ADD_REGISTERED_DATA 0x0010 47#define WER_SUBMIT_OUTOFPROCESS 0x0020 48#define WER_SUBMIT_NO_CLOSE_UI 0x0040 49#define WER_SUBMIT_NO_QUEUE 0x0080 50#define WER_SUBMIT_NO_ARCHIVE 0x0100 51#define WER_SUBMIT_START_MINIMIZED 0x0200 52#define WER_SUBMIT_OUTOFPROCESS_ASYNC 0x0400 53#define WER_SUBMIT_BYPASS_DATA_THROTTLING 0x0800 54#define WER_SUBMIT_ARCHIVE_PARAMETERS_ONLY 0x1000 55#define WER_SUBMIT_REPORT_MACHINE_ID 0x2000 56 57/* #### */ 58 59typedef HANDLE HREPORT; 60 61typedef enum _WER_CONSENT 62{ 63 WerConsentNotAsked = 1, 64 WerConsentApproved, 65 WerConsentDenied, 66 WerConsentAlwaysPrompt, 67 WerConsentMax 68} WER_CONSENT; 69 70typedef enum _WER_REGISTER_FILE_TYPE 71{ 72 WerRegFileTypeUserDocument = 1, 73 WerRegFileTypeOther = 2, 74 WerRegFileTypeMax 75} WER_REGISTER_FILE_TYPE; 76 77typedef struct _WER_REPORT_INFORMATION 78{ 79 DWORD dwSize; 80 HANDLE hProcess; 81 WCHAR wzConsentKey[64]; 82 WCHAR wzFriendlyEventName[128]; 83 WCHAR wzApplicationName[128]; 84 WCHAR wzApplicationPath[MAX_PATH]; 85 WCHAR wzDescription[512]; 86 HWND hwndParent; 87} WER_REPORT_INFORMATION, *PWER_REPORT_INFORMATION; 88 89 90typedef enum _WER_REPORT_TYPE 91{ 92 WerReportNonCritical = 0, 93 WerReportCritical, 94 WerReportApplicationCrash, 95 WerReportApplicationHang, 96 WerReportKernel, 97 WerReportInvalid 98} WER_REPORT_TYPE; 99 100typedef enum _WER_SUBMIT_RESULT 101{ 102 WerReportQueued = 1, 103 WerReportUploaded, 104 WerReportDebug, 105 WerReportFailed, 106 WerDisabled, 107 WerReportCancelled, 108 WerDisabledQueue, 109 WerReportAsync, 110 WerCustomAction 111} WER_SUBMIT_RESULT, *PWER_SUBMIT_RESULT; 112 113/* #### */ 114 115HRESULT WINAPI WerAddExcludedApplication(PCWSTR, BOOL); 116HRESULT WINAPI WerRegisterFile(PCWSTR file, WER_REGISTER_FILE_TYPE regfiletype, DWORD flags); 117HRESULT WINAPI WerRemoveExcludedApplication(PCWSTR, BOOL); 118HRESULT WINAPI WerReportCloseHandle(HREPORT); 119HRESULT WINAPI WerReportCreate(PCWSTR, WER_REPORT_TYPE, PWER_REPORT_INFORMATION, HREPORT*); 120HRESULT WINAPI WerReportSetParameter(HREPORT, DWORD, PCWSTR, PCWSTR); 121HRESULT WINAPI WerReportSubmit(HREPORT, WER_CONSENT, DWORD, PWER_SUBMIT_RESULT); 122 123#ifdef __cplusplus 124} 125#endif 126 127#endif /* __WINE_WERAPI_H */