WinAPI(MSVC)で頻出の型の情報をまとめました. 適宜更新するかもです. Win64環境前提です.
環境
項目 | バージョン |
---|---|
WinSDK | 10.0.22621.0 |
呼び出し規則
結局のところすべて__stdcallと同じ意味になるが、識別子を分けることで何のための関数かはっきりさせる.
規則名 | defineの内容 | 説明 | 定義場所 |
---|---|---|---|
WINAPI | __stdcall | minwindef.h | |
APIENTRY | WINAPI | minwindef.h | |
CALLBACK | __stdcall | minwindef.h |
データ型
公式リファレンスにはWinDef.hで宣言されると書かれているものの一部は、本当はminwindef.hに定義されている. WinDef.hの中でminwindef.hをincludeしているので、完全な嘘とも言えない.
型名 | typedef元の型 | MSVC言語としての型 | 説明 | 定義場所 |
---|---|---|---|---|
LRESULT | LONG_PTR | __int64 | プログラムがWindowsに返す整数値(Lは無視して良い) | minwindef.h |
LPARAM | LONG_PTR | __int64 | メッセージパラメーター(Lは無視して良い) | minwindef.h |
WPARAM | LONG_PTR | __int64 | メッセージパラメーター(Wは無視して良い) | minwindef.h |
LPVOID | void* | ← | 任意の型へのポインター(Lは無視して良い) | minwindef.h |
ATOM | WORD | unsigned short | 文字列と対応する識別子 | minwindef.h |
BOOL | int | ← | ブール型 | minwindef.h |
BYTE | unsigned char | ← | バイト(8ビット) | minwindef.h |
COLORREF | DWORD | unsigned long | RGBの色値(32ビット) | |
DWORD | unsigned long | ← | 2ワード | minwindef.h |
WORD | unsigned short | ← | ワード | minwindef.h |
HANDLE | PVOID | void* | オブジェクトへのハンドル | WinNT.h |
LPHANDLE | *HANDLE | void* | HANDLEへのポインター(Lは無視して良い) | minwindef.h |
ハンドル
一部例外を除いてHANDLE型(任意の型へのポインタ)だが、型を分けることで何のためのハンドルかはっきりさせる.
型名 | 説明 | 定義場所 |
---|---|---|
HBITMAP | ビットマップへのハンドル | windef.h |
HBRUSH | ブラシへのハンドル | windef.h |
HCOLORSPACE | 色空間へのハンドル | windef.h |
HCONV | ||
HCONVLIST | ||
HCURSOR | カーソルへのハンドル | windef.h |
HDC | デバイスコンテキストへのハンドル | windef.h |
HDDEDATA | ||
HGLRC | windef.h | |
HDESK | windef.h | |
HGLRC | windef.h | |
HENHMETAFILE | 拡張メタファイル(画像ファイル)へのハンドル | windef.h |
HFILE | CreateFileではなくOpenFileで開いたファイルへのハンドル. int型 | minwindef.h |
HFONT | windef.h | |
HGDIOBJ | windef.h | |
HGLOBAL | グローバルメモリブロックへのハンドル | minwindef.h |
HHOOK | フックへのハンドル | windef.h |
HICON | windef.h | |
HINSTANCE | インスタンスへのハンドル | minwindef.h |
HKEY | レジストリキーへのハンドル | minwindef.h |
HLOCAL | ローカルメモリブロックへのハンドル | minwindef.h |
HMENU | windef.h | |
HMETAFILE | minwindef.h | |
HMODULE | HINSTANCE型としてtypedefされています. | minwindef.h |
HMONITOR | windef.h | |
HPALETTE | windef.h | |
HPEN | windef.h | |
HRSRC | リソースへのハンドル | minwindef.h |
HWND | ウインドウへのハンドル | windef.h |
構造体
構造体名の接尾辞にWやAがついているものは、前者はUNICODE対応版、後者は非対応版の定義になる.
型名 | 説明 | 定義場所 |
---|---|---|
MSG | スレッドに積まれるメッセージ情報に関する構造体 | winuser.h |
WNDCLASSW | ウインドウクラス. UNICODE対応時WNDCLASSと同等 | winuser.h |
WNDCLASSA | ウインドウクラス. UNICODE非対応時WNDCLASSと同等 | winuser.h |
PAINTSTRUCT | BeginPaint()とEndPaint()にウインドウハンドルと共に渡す | winuser.h |
WINDOWPLACEMENT | ウインドウの配置に関する情報 | winuser.h |
MOUSEINPUT | マウスイベントに関する情報 | winuser.h |
KEYBDINPUT | キーボードイベントに関する情報 | winuser.h |
HARDWAREINPUT | キーボードまたはマウス以外の入力デバイスに関する情報 | winuser.h |
RECT | 矩形の情報 | windef.h |
POINT | x,y座標 | windef.h |
SIZE | x,yのサイズ | windef.h |
DCB | シリアル通信デバイスの制御設定 | winbase.h |
BITMAP | ビットマップの型、幅、高さ、色書式、ビット値 | wingdi.h |
BITMAPCOREHEADER | よくわからん | wingdi.h |
BITMAPFILEHEADER | よくわからん | wingdi.h |