ReactOS  0.4.15-dev-5112-g22d8c0f
seh0018.c
Go to the documentation of this file.
1 // Copyright (c) Microsoft. All rights reserved.
2 // Licensed under the MIT license. See LICENSE file in the project root for
3 // full license information.
4 
5 #include <windows.h>
6 #include "seh.h"
7 
8 char test[] = "SEH0018.c";
9 
11  RaiseException(Status, 0, /*no flags*/ 0, 0);
12  return;
13 }
14 
16  try {
17  try {
19  }
20  except((((DWORD)GetExceptionCode()) == Status) ? 1 : 0)
21  /* exeption handler should get executed */
22  {
23  /* set counter = 2 */
24  *Counter += 1;
25  return;
26  }
27  endtry
28  }
29  finally {
30  /* set counter = 3 */
31  *Counter += 1;
32  }
33  endtry
34 
35  return;
36 }
37 
38 int main() {
39 
40  LONG Counter;
41 
42  Counter = 0;
43 
44  try {
45  /* set counter = 1 */
46  Counter += 1;
48  }
49  finally {
50  /* set counter = 4 */
51  Counter += 1;
52  }
53  endtry
54 
55  if (Counter != 4) {
56  printf("TEST 18 FAILED. Counter = %d\n\r", Counter);
57  return -1;
58  }
59 
60  return 0;
61 }
int main()
Definition: seh0018.c:38
void eret(DWORD Status, PLONG Counter)
Definition: seh0018.c:15
#define endtry
Definition: seh.h:24
#define EXCEPTION_ACCESS_VIOLATION
Definition: winbase.h:308
char test[]
Definition: seh0018.c:8
long LONG
Definition: pedump.c:60
Status
Definition: gdiplustypes.h:24
#define printf
Definition: freeldr.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
#define except(x)
Definition: btrfs_drv.h:136
VOID WINAPI RaiseException(IN DWORD dwExceptionCode, IN DWORD dwExceptionFlags, IN DWORD nNumberOfArguments, IN CONST ULONG_PTR *lpArguments OPTIONAL)
Definition: except.c:700
void rtlRaiseException(DWORD Status)
Definition: seh0018.c:10
static LARGE_INTEGER Counter
Definition: clock.c:43
#define GetExceptionCode()
Definition: seh.h:27
signed int * PLONG
Definition: retypes.h:5