GdiplusStartupInput 结构
该结构持有GdiplusStartup函数所需要使用的一组参数.
struct GdiplusStartupInput { UINT32 GdiplusVersion; DebugEventProc DebugEventCallback; BOOL SuppressBackgroundThread; BOOL SuppressExternalCodecs; GdiplusStartupInput( DebugEventProc debugEventCallback = NULL, BOOL suppressBackgroundThread = FALSE, BOOL suppressExternalCodecs = FALSE) { GdiplusVersion = 1; DebugEventCallback = debugEventCallback; SuppressBackgroundThread = suppressBackgroundThread; SuppressExternalCodecs = suppressExternalCodecs; } }; typedef VOID (WINAPI *DebugEventProc)(DebugEventLevel level, CHAR *message);
成员
GdiplusVersion
指定Microsoft Windows GDI+的版本. 必须为 1.
DebugEventCallback 默认为NULL,一个用于调试的回调函数。
SuppressBackgroundThread
用于指定是否压缩GDI+背景线程的布尔值。如果设置该成员为TRUE, GdiplusStartup 返回一个指向挂钩函数和一个解勾函数的指针。必须调用这些函数来妥善的替换掉背景线程。如果不想调用这些函数,这是这个成员为FALSE。默认值为FALSE
SuppressExternalCodecs
指定是否让GDI+压缩外部图片codecs的布尔值。1.0不支持该功能,所以该值被忽略。
该结构其实就是一个构造器,可以设置它的四个成员的值,如果不设置的话,也可以提供一个空的结构,系统会自动为这些成员提供合适的初始默认值
调用钩子函数时,要注意使用解勾函数。
在创建任何GDI +对象之前,您必须调用GdiplusStartup,然后在调用GdiplusShutdown之前必须先删除所有的GDI +对象。
只要您在致电GdiplusShutdown之前删除所有的GDI +对象(或超出范围),您可以在一个线程上调用GdiplusShutdown并调用另一个线程的GdiplusShutdown.
不要在LibMain或LibMain调用的任何函数中调用GdiplusStartup或GdiplusShutdown.如果要创建使用GDI +的动态链接库(DLL),您应该使用以下技术之一来初始化GDI +:
要求您的客户端在调用DLL中的函数之前调用GdiplusStartup,并在完成使用DLL后调用GdiplusShutdown.
导出您自己的启动函数调用GdiplusStartup和您自己的关闭功能调用GdiplusShutdown.要求您的客户端在调用您的启动函数之前调用其中的DLL函数,并在完成使用DLL后调用关机功能。
在您进行GDI +呼叫的每个功能中调用GdiplusStartup和GdiplusShutdown.