master
 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
29typedef 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
46typedef GpStatus (WINGDIPAPI *NotificationHookProc)(ULONG_PTR *token);
47typedef VOID (WINGDIPAPI *NotificationUnhookProc)(ULONG_PTR token);
48
49typedef struct GdiplusStartupOutput {
50	NotificationHookProc NotificationHook;
51	NotificationUnhookProc NotificationUnhook;
52
53	#ifdef __cplusplus
54	GdiplusStartupOutput():
55		NotificationHook(NULL),
56		NotificationUnhook(NULL) {}
57	#endif /* __cplusplus */
58} GdiplusStartupOutput;
59
60#ifdef __cplusplus
61extern "C" {
62#endif
63
64GpStatus WINGDIPAPI GdiplusStartup(ULONG_PTR*,GDIPCONST GdiplusStartupInput*,GdiplusStartupOutput*);
65VOID WINGDIPAPI GdiplusShutdown(ULONG_PTR);
66GpStatus WINGDIPAPI GdiplusNotificationHook(ULONG_PTR*);
67VOID WINGDIPAPI GdiplusNotificationUnhook(ULONG_PTR);
68
69#ifdef __cplusplus
70}  /* extern "C" */
71#endif
72
73
74#endif /* __GDIPLUS_INIT_H */