• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * gdiplusinit.h
3  *
4  * GDI+ Initialization
5  *
6  * This file is part of the w32api package.
7  *
8  * Contributors:
9  *   Created by Markus Koenig <markus@stber-koenig.de>
10  *
11  * THIS SOFTWARE IS NOT COPYRIGHTED
12  *
13  * This source code is offered for use in the public domain. You may
14  * use, modify or distribute it freely.
15  *
16  * This code is distributed in the hope that it will be useful but
17  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18  * DISCLAIMED. This includes but is not limited to warranties of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20  *
21  */
22 
23 #ifndef __GDIPLUS_INIT_H
24 #define __GDIPLUS_INIT_H
25 #if __GNUC__ >=3
26 #pragma GCC system_header
27 #endif
28 
29 typedef struct GdiplusStartupInput {
30 	UINT32 GdiplusVersion;
31 	DebugEventProc DebugEventCallback;
32 	BOOL SuppressBackgroundThread;
33 	BOOL SuppressExternalCodecs;
34 
35 	#ifdef __cplusplus
36 	GdiplusStartupInput(DebugEventProc debugEventCallback = NULL,
37 	                    BOOL suppressBackgroundThread = FALSE,
38 	                    BOOL suppressExternalCodecs = FALSE):
39 		GdiplusVersion(1),
40 		DebugEventCallback(debugEventCallback),
41 		SuppressBackgroundThread(suppressBackgroundThread),
42 		SuppressExternalCodecs(suppressExternalCodecs) {}
43 	#endif /* __cplusplus */
44 } GdiplusStartupInput;
45 
46 typedef GpStatus WINGDIPAPI (*NotificationHookProc)(ULONG_PTR *token);
47 typedef VOID WINGDIPAPI (*NotificationUnhookProc)(ULONG_PTR token);
48 
49 typedef struct GdiplusStartupOutput {
50 	NotificationHookProc NotificationHook;
51 	NotificationUnhookProc NotificationUnhook;
52 
53 	#ifdef __cplusplus
GdiplusStartupOutputGdiplusStartupOutput54 	GdiplusStartupOutput():
55 		NotificationHook(NULL),
56 		NotificationUnhook(NULL) {}
57 	#endif /* __cplusplus */
58 } GdiplusStartupOutput;
59 
60 #ifdef __cplusplus
61 extern "C" {
62 #endif
63 
64 GpStatus WINGDIPAPI GdiplusStartup(ULONG_PTR*,GDIPCONST GdiplusStartupInput*,GdiplusStartupOutput*);
65 VOID WINGDIPAPI GdiplusShutdown(ULONG_PTR);
66 GpStatus WINGDIPAPI GdiplusNotificationHook(ULONG_PTR*);
67 VOID WINGDIPAPI GdiplusNotificationUnhook(ULONG_PTR);
68 
69 #ifdef __cplusplus
70 }  /* extern "C" */
71 #endif
72 
73 
74 #endif /* __GDIPLUS_INIT_H */
75