GdiPlusInit.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:3k
- /**************************************************************************
- *
- * Copyright (c) 2000-2001 Microsoft Corporation
- *
- * Module Name:
- *
- * Gdiplus initialization
- *
- * Abstract:
- *
- * GDI+ Startup and Shutdown APIs
- *
- **************************************************************************/
- #ifndef _GDIPLUSINIT_H
- #define _GDIPLUSINIT_H
- enum DebugEventLevel
- {
- DebugEventLevelFatal,
- DebugEventLevelWarning
- };
- // Callback function that GDI+ can call, on debug builds, for assertions
- // and warnings.
- typedef VOID (WINAPI *DebugEventProc)(DebugEventLevel level, CHAR *message);
- // Notification functions which the user must call appropriately if
- // "SuppressBackgroundThread" (below) is set.
- typedef Status (WINAPI *NotificationHookProc)(OUT ULONG_PTR *token);
- typedef VOID (WINAPI *NotificationUnhookProc)(ULONG_PTR token);
- // Input structure for GdiplusStartup()
- struct GdiplusStartupInput
- {
- UINT32 GdiplusVersion; // Must be 1
- DebugEventProc DebugEventCallback; // Ignored on free builds
- BOOL SuppressBackgroundThread; // FALSE unless you're prepared to call
- // the hook/unhook functions properly
- BOOL SuppressExternalCodecs; // FALSE unless you want GDI+ only to use
- // its internal image codecs.
-
- GdiplusStartupInput(
- DebugEventProc debugEventCallback = NULL,
- BOOL suppressBackgroundThread = FALSE,
- BOOL suppressExternalCodecs = FALSE)
- {
- GdiplusVersion = 1;
- DebugEventCallback = debugEventCallback;
- SuppressBackgroundThread = suppressBackgroundThread;
- SuppressExternalCodecs = suppressExternalCodecs;
- }
- };
- // Output structure for GdiplusStartup()
- struct GdiplusStartupOutput
- {
- // The following 2 fields are NULL if SuppressBackgroundThread is FALSE.
- // Otherwise, they are functions which must be called appropriately to
- // replace the background thread.
- //
- // These should be called on the application's main message loop - i.e.
- // a message loop which is active for the lifetime of GDI+.
- // "NotificationHook" should be called before starting the loop,
- // and "NotificationUnhook" should be called after the loop ends.
-
- NotificationHookProc NotificationHook;
- NotificationUnhookProc NotificationUnhook;
- };
- // GDI+ initialization. Must not be called from DllMain - can cause deadlock.
- //
- // Must be called before GDI+ API's or constructors are used.
- //
- // token - may not be NULL - accepts a token to be passed in the corresponding
- // GdiplusShutdown call.
- // input - may not be NULL
- // output - may be NULL only if input->SuppressBackgroundThread is FALSE.
- extern "C" Status WINAPI GdiplusStartup(
- OUT ULONG_PTR *token,
- const GdiplusStartupInput *input,
- OUT GdiplusStartupOutput *output);
- // GDI+ termination. Must be called before GDI+ is unloaded.
- // Must not be called from DllMain - can cause deadlock.
- //
- // GDI+ API's may not be called after GdiplusShutdown. Pay careful attention
- // to GDI+ object destructors.
- extern "C" VOID WINAPI GdiplusShutdown(ULONG_PTR token);
- #endif