GdiplusStartup 関数 (gdiplusinit.h)
GdiplusStartup 関数は、Windows GDI+ を初期化します。 他の GDI+ 呼び出しを行う前に GdiplusStartup を呼び出し、GDI+ の使用が完了したら GdiplusShutdown を呼び出します。
構文
Status GdiplusStartup(
ULONG_PTR *token,
const GdiplusStartupInput *input,
GdiplusStartupOutput *output
);
パラメーター
token
型: [out] ULONG_PTR トークン*
トークンを受け取る ULONG_PTR へのポインター。 GDI+ の使用が完了したら、トークンを GdiplusShutdown に渡します。
input
型: [in] const GdiplusStartupInput*
GDI+ バージョン、デバッグ コールバック関数へのポインター、バックグラウンド スレッドを抑制するかどうかを指定するブール値、および外部イメージ コーデックを抑制するかどうかを指定するブール値を含む GdiplusStartupInput 構造体へのポインター。
output
種類: [out] GdiplusStartupOutput*
通知フック関数へのポインターと通知 unhook 関数へのポインターを受け取る GdiplusStartupOutput 構造体へのポインター。 入力パラメーターの SuppressBackgroundThread データ メンバーが FALSE の場合、このパラメーターは NULL にすることができます。
戻り値
種類: 状態
関数が成功すると、Status 列挙の要素である Ok が返されます。
関数が失敗した場合は、 Status 列挙体の他の要素のいずれかを返します。
解説
GDI+ オブジェクトを作成する前に GdiplusStartup を呼び出す必要があります。 GdiplusShutdown を呼び出す前に、GDI+ オブジェクトをすべて削除する (またはスコープ外に移動させる) 必要があります。
GdiplusShutdown を呼び出す前に、あるスレッドで GdiplusStartup を呼び出し、 GdiplusShutdown を呼び出す前に GDI+ オブジェクトをすべて削除する (またはスコープ外に移動させる) 限り、別のスレッドで GdiplusShutdown を呼び出すことができます。
DllMain または DllMain によって呼び出される関数では、GdiplusStartup または GdiplusShutdown を呼び出さないでください。 GDI+ を使用する DLL を作成する場合は、次のいずれかの手法を使用して GDI+ を初期化する必要があります。
- クライアントが DLL 内の関数を呼び出す前に GdiplusStartup を呼び出し、DLL の使用が完了したら GdiplusShutdown を呼び出す必要があります。
- GdiplusStartup を呼び出す独自のスタートアップ関数と、GdiplusShutdown を呼び出す独自のシャットダウン関数をエクスポートします。 クライアントが DLL 内の他の関数を呼び出す前にスタートアップ関数を呼び出し、DLL の使用が完了したらシャットダウン関数を呼び出す必要があります。
- GDI+ 呼び出しを行う各関数で GdiplusStartup と GdiplusShutdown を呼び出します。
例
Windows アプリケーションで GdiplusStartup と GdiplusShutdown を呼び出す例については、「Začínáme」を参照してください。
次のコンソール アプリケーションでは、GDI + Image オブジェクトを使用して JPEG イメージの幅と高さを取得します。 このコードでは、Image オブジェクトを作成する前に GdiplusStartup を呼び出し、終了する前に GdiplusShutdown を呼び出します。 Image オブジェクトは、GdiplusShutdown の呼び出しの前に削除されることに注意してください。
次のコードでは、 変数 gdiplusStartupInput は GdiplusStartupInput 構造体の既定のコンストラクターによって初期化されます。 既定のコンストラクターは、構造体のデータ メンバーを次の値に設定します。
- GdiplusVersion = 1
- DebugEventCallback = Null
- SuppressBackgroundThread = False
- SuppressExternalCodecs = False
#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 |
ヘッダー | gdiplusinit.h (Gdiplus.h を含む) |
Library | Gdiplus.lib |
[DLL] | Gdiplus.dll |