ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/werapi.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 5579 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6 #ifndef _INC_WERAPI
7 #define _INC_WERAPI
8 #if (_WIN32_WINNT >= 0x0600)
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 typedef enum _WER_FILE_TYPE {
15 WerFileTypeMicrodump = 1,
16 WerFileTypeMinidump,
17 WerFileTypeHeapdump,
18 WerFileTypeUserDocument,
19 WerFileTypeOther,
20 WerFileTypeMax
21 } WER_FILE_TYPE;
22
23 typedef enum _WER_REGISTER_FILE_TYPE {
24 WerRegFileTypeUserDocument = 1,
25 WerRegFileTypeOther,
26 WerRegFileTypeMax
27 } WER_REGISTER_FILE_TYPE;
28
29 typedef enum _WER_DUMP_TYPE {
30 WerDumpTypeMicroDump = 1,
31 WerDumpTypeMiniDump,
32 WerDumpTypeHeapDump,
33 WerDumpTypeMax
34 } WER_DUMP_TYPE;
35
36 typedef enum _WER_REPORT_UI {
37 WerUIAdditionalDataDlgHeader = 1,
38 WerUIIconFilePath,
39 WerUIConsentDlgHeader,
40 WerUIConsentDlgBody,
41 WerUIOnlineSolutionCheckText,
42 WerUIOfflineSolutionCheckText,
43 WerUICloseText,
44 WerUICloseDlgHeader,
45 WerUICloseDlgBody,
46 WerUICloseDlgButtonText,
47 WerUICustomActionButtonText,
48 WerUIMax
49 } WER_REPORT_UI;
50
51 typedef enum _WER_CONSENT {
52 WerConsentNotAsked = 1,
53 WerConsentApproved,
54 WerConsentDenied,
55 WerConsentAlwaysPrompt,
56 WerConsentMax
57 } WER_CONSENT;
58
59 typedef enum _WER_SUBMIT_RESULT {
60 WerReportQueued = 1,
61 WerReportUploaded,
62 WerReportDebug,
63 WerReportFailed,
64 WerDisabled,
65 WerReportCancelled,
66 WerDisabledQueue,
67 WerReportAsync,
68 WerCustomAction
69 } WER_SUBMIT_RESULT;
70
71 typedef enum _WER_REPORT_TYPE {
72 WerReportNonCritical = 0,
73 WerReportCritical,
74 WerReportApplicationCrash,
75 WerReportApplicationHang,
76 WerReportKernel,
77 WerReportInvalid
78 } WER_REPORT_TYPE;
79
80 typedef struct _WER_DUMP_CUSTOM_OPTIONS {
81 DWORD dwSize;
82 DWORD dwMask;
83 DWORD dwDumpFlags;
84 WINBOOL bOnlyThisThread;
85 DWORD dwExceptionThreadFlags;
86 DWORD dwOtherThreadFlags;
87 DWORD dwExceptionThreadExFlags;
88 DWORD dwOtherThreadExFlags;
89 DWORD dwPreferredModuleFlags;
90 DWORD dwOtherModuleFlags;
91 WCHAR wzPreferredModuleList[WER_MAX_PREFERRED_MODULES_BUFFER];
92 } WER_DUMP_CUSTOM_OPTIONS, *PWER_DUMP_CUSTOM_OPTIONS;
93
94 typedef struct _WER_EXCEPTION_INFORMATION {
95 PEXCEPTION_POINTERS pExceptionPointers;
96 WINBOOL bClientPointers;
97 } WER_EXCEPTION_INFORMATION, *PWER_EXCEPTION_INFORMATION;
98
99 typedef struct _WER_REPORT_INFORMATION {
100 DWORD dwSize;
101 HANDLE hProcess;
102 WCHAR wzConsentKey[64];
103 WCHAR wzFriendlyEventName[128];
104 WCHAR wzApplicationName[128];
105 WCHAR wzApplicationPath[MAX_PATH];
106 WCHAR wzDescription[512];
107 HWND hwndParent;
108 } WER_REPORT_INFORMATION, *PWER_REPORT_INFORMATION;
109
110 HRESULT WINAPI WerAddExcludedApplication(PCWSTR pwzExeName,WINBOOL bAllUsers);
111 HRESULT WINAPI WerGetFlags(HANDLE hProcess,PDWORD pdwFlags);
112 HRESULT WINAPI WerRegisterFile(PCWSTR pwzFile,WER_REGISTER_FILE_TYPE regFileType,DWORD dwFlags);
113 HRESULT WINAPI WerRegisterMemoryBlock(PVOID pvAddress,DWORD dwSize);
114 HRESULT WINAPI WerRemoveExcludedApplication(PCWSTR pwzExeName,WINBOOL bAllUsers);
115 HRESULT WINAPI WerReportAddDump(HREPORT hReportHandle,HANDLE hProcess,HANDLE hThread,WER_DUMP_TYPE dumpType,PWER_EXCEPTION_INFORMATION pExceptionParam,PWER_DUMP_CUSTOM_OPTIONS pDumpCustomOptions,DWORD dwFlags);
116 HRESULT WINAPI WerReportAddFile(HREPORT hReportHandle,PCWSTR pwzPath,WER_FILE_TYPE repFileType,DWORD dwFileFlags);
117 HRESULT WINAPI WerReportCloseHandle(HREPORT hReportHandle);
118 HRESULT WINAPI WerReportCreate(PCWSTR pwzEventType,WER_REPORT_TYPE repType,PWER_REPORT_INFORMATION pReportInformation,HREPORT *phReportHandle);
119 HRESULT WINAPI WerReportHang(HWND hwndHungWindow,PCWSTR wszHungApplicationName);
120 HRESULT WINAPI WerReportSetParameter(HREPORT hReportHandle,DWORD dwparamID,PCWSTR pwzName,PCWSTR pwzValue);
121 HRESULT WINAPI WerReportSetUIOption(HREPORT hReportHandle,WER_REPORT_UI repUITypeID,PCWSTR pwzValue);
122 HRESULT WINAPI WerReportSubmit(HREPORT hReportHandle,WER_CONSENT consent,DWORD dwFlags,PWER_SUBMIT_RESULT pSubmitResult);
123 HRESULT WINAPI WerSetFlags(DWORD dwFlags);
124 HRESULT WINAPI WerUnregisterFile(PCWSTR pwzFilePath);
125 HRESULT WINAPI WerUnregisterMemoryBlock(PVOID pvAddress);
126
127 #if (_WIN32_WINNT >= 0x0601)
128 typedef struct _WER_RUNTIME_EXCEPTION_INFORMATION {
129 DWORD dwSize;
130 HANDLE hProcess;
131 HANDLE hThread;
132 EXCEPTION_RECORD exceptionRecord;
133 CONTEXT context;
134 PCWSTR pwszReportId;
135 } WER_RUNTIME_EXCEPTION_INFORMATION, *PWER_RUNTIME_EXCEPTION_INFORMATION;
136
137 typedef HRESULT (WINAPI *PFN_WER_RUNTIME_EXCEPTION_EVENT)(
138 PVOID pContext,
139 const PWER_RUNTIME_EXCEPTION_INFORMATION pExceptionInformation,
140 WINBOOL *pbOwnershipClaimed,
141 PWSTR pwszEventName,
142 PDWORD pchSize,
143 PDWORD pdwSignatureCount
144 );
145
146 typedef HRESULT (WINAPI *PFN_WER_RUNTIME_EXCEPTION_DEBUGGER_LAUNCH)(
147 PVOID pContext,
148 const PWER_RUNTIME_EXCEPTION_INFORMATION pExceptionInformation,
149 PBOOL pbIsCustomDebugger,
150 PWSTR pwszDebuggerLaunch,
151 PDWORD pchDebuggerLaunch,
152 PBOOL pbIsDebuggerAutolaunch
153 );
154
155 typedef HRESULT (WINAPI *PFN_WER_RUNTIME_EXCEPTION_EVENT_SIGNATURE)(
156 PVOID pContext,
157 const PWER_RUNTIME_EXCEPTION_INFORMATION pExceptionInformation,
158 DWORD dwIndex,
159 PWSTR pwszName,
160 PDWORD pchName,
161 PWSTR pwszValue,
162 PDWORD pchValue
163 );
164
165 HRESULT WINAPI WerRegisterRuntimeExceptionModule(
166 PCWSTR pwszOutOfProcessCallbackDll,
167 PVOID pContext
168 );
169
170 HRESULT WINAPI WerUnregisterRuntimeExceptionModule(
171 PCWSTR pwszOutOfProcessCallbackDll,
172 PVOID pContext
173 );
174
175 #endif /*(_WIN32_WINNT >= 0x0601)*/
176
177 #ifdef __cplusplus
178 }
179 #endif
180 #endif /*(_WIN32_WINNT >= 0x0600)*/
181 #endif /*_INC_WERAPI*/