Функция GdiplusStartup (gdiplusinit.h)
Функция GdiplusStartup инициализирует Windows GDI+. Вызовите GdiplusStartup , прежде чем выполнять другие вызовы GDI+, и вызовите GdiplusShutdown после завершения использования GDI+.
Синтаксис
Status GdiplusStartup(
ULONG_PTR *token,
const GdiplusStartupInput *input,
GdiplusStartupOutput *output
);
Параметры
token
Тип: [out] ULONG_PTR токен*
Указатель на ULONG_PTR , получающий маркер. Передайте маркер в GdiplusShutdown после завершения использования GDI+.
input
Тип: [in] const GdiplusStartupInput*
Указатель на структуру GdiplusStartupInput , содержащую версию GDI+, указатель на функцию обратного вызова отладки, логическое значение, указывающее, следует ли подавлять фоновый поток, и логическое значение, указывающее, следует ли подавлять внешние кодеки изображений.
output
Тип: [out] GdiplusStartupOutput*
Указатель на структуру GdiplusStartupOutput , которая получает указатель на функцию перехватчика уведомлений и указатель на функцию отмены перехватчика уведомлений. Если элемент данных SuppressBackgroundThreadвходного параметра имеет значение FALSE, этот параметр может иметь значение NULL.
Возвращаемое значение
Тип: Состояние
Если функция выполняется успешно, возвращается ОК, которая является элементом перечисления Status .
Если функция завершается сбоем, она возвращает один из других элементов перечисления Status .
Комментарии
Необходимо вызвать GdiplusStartup перед созданием объектов GDI+, а также удалить все объекты GDI+ (или вывести их из область) перед вызовом GdiplusShutdown.
Вы можете вызвать GdiplusStartup в одном потоке и GdiplusShutdown в другом потоке, если удалить все объекты GDI+ (или удалить их из область) перед вызовом GdiplusShutdown.
Не вызывайте GdiplusStartup или GdiplusShutdown в DllMain или в любой функции, вызываемой DllMain. Если вы хотите создать библиотеку DLL, которая использует GDI+, инициализировать GDI+, следует использовать один из следующих методов:
- Требовать от клиентов вызова GdiplusStartup перед вызовом функций в библиотеке DLL и вызова GdiplusShutdown после завершения работы с библиотекой DLL.
- Экспортируйте собственную функцию запуска, которая вызывает GdiplusStartup , и собственную функцию завершения работы, которая вызывает GdiplusShutdown. Требовать, чтобы клиенты вызывали функцию запуска перед вызовом других функций в библиотеке DLL и вызывали функцию завершения работы после завершения работы с библиотекой DLL.
- Вызовите GdiplusStartup и GdiplusShutdown в каждой из функций, которые выполняют вызовы GDI+.
Примеры
Пример вызова GdiplusStartup и GdiplusShutdown в приложении Windows см. в разделе начало работы.
Следующее консольное приложение использует объект GDI+Image для получения ширины и высоты изображения JPEG. Код вызывает GdiplusStartup перед созданием объекта Image и GdiplusShutdown перед завершением. Обратите внимание, что объект Image удаляется перед вызовом GdiplusShutdown.
В следующем коде переменная gdiplusStartupInput инициализируется конструктором по умолчанию структуры GdiplusStartupInput . Конструктор по умолчанию присваивает членам данных структуры следующие значения:
- GdiplusVersion = 1
- DebugEventCallback = NULL
- SuppressBackgroundThread = ЛОЖНЫХ
- SuppressExternalCodecs = ЛОЖНЫХ
#include <windows.h>
#include <gdiplus.h>
#include <stdio.h>
using namespace Gdiplus;
INT main()
{
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
Image* image = new Image(L"FakePhoto.jpg");
printf("The width of the image is %u.\n", image->GetWidth());
printf("The height of the image is %u.\n", image->GetHeight());
delete image;
GdiplusShutdown(gdiplusToken);
return 0;
}
Требования
Минимальная версия клиента | Windows XP, Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | gdiplusinit.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |