- Put output from MSVC into the relevant output-i386 / obj-i386 files
[reactos.git] / reactos / w32api / include / gdiplusinit.h
1 /*
2 * GdiPlusInit.h
3 *
4 * Windows GDI+
5 *
6 * This file is part of the w32api package.
7 *
8 * THIS SOFTWARE IS NOT COPYRIGHTED
9 *
10 * This source code is offered for use in the public domain. You may
11 * use, modify or distribute it freely.
12 *
13 * This code is distributed in the hope that it will be useful but
14 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
15 * DISCLAIMED. This includes but is not limited to warranties of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17 */
18
19 #ifndef _GDIPLUSINIT_H
20 #define _GDIPLUSINIT_H
21
22 #if __GNUC__ >= 3
23 #pragma GCC system_header
24 #endif
25
26 enum DebugEventLevel {
27 DebugEventLevelFatal,
28 DebugEventLevelWarning
29 };
30
31 typedef VOID (WINAPI *DebugEventProc)(DebugEventLevel level, CHAR *message);
32
33 struct GdiplusStartupInput
34 {
35 UINT32 GdiplusVersion;
36 DebugEventProc DebugEventCallback;
37 BOOL SuppressBackgroundThread;
38 BOOL SuppressExternalCodecs;
39
40 GdiplusStartupInput(
41 DebugEventProc debugEventCallback = NULL,
42 BOOL suppressBackgroundThread = FALSE,
43 BOOL suppressExternalCodecs = FALSE)
44 {
45 GdiplusVersion = 1;
46 DebugEventCallback = debugEventCallback;
47 SuppressBackgroundThread = suppressBackgroundThread;
48 SuppressExternalCodecs = suppressExternalCodecs;
49 }
50 };
51
52 typedef Status (WINAPI *NotificationHookProc)(OUT ULONG_PTR *token);
53 typedef VOID (WINAPI *NotificationUnhookProc)(ULONG_PTR token);
54
55 struct GdiplusStartupOutput {
56 NotificationHookProc NotificationHook;
57 NotificationUnhookProc NotificationUnhook;
58 };
59
60 extern "C" WINAPI Status GdiplusStartup(ULONG_PTR *token, const GdiplusStartupInput *input, GdiplusStartupOutput *output);
61 extern "C" WINAPI VOID GdiplusShutdown(ULONG_PTR token);
62
63 #endif /* _GDIPLUSINIT_H */