LPARAM
読み:エル-パラム
外語:LPARAM: Long Parameter
Microsoft WindowsのAPIなどに使われている、Cの変数型の一つ。
定義
Microsoft Visual C++ 2008環境では、次のように定義される。
従って、Win32プラットフォームでは__int32、Win64プラットフォームでは__int64として定義される。
特徴
長さ
Win16環境とWin32環境では32ビット長、Win64環境では64ビット長である。
Win32以降では、これは単なる整数格納用変数ではなく、API関数によってはポインターを渡すこともある。実装上はLONG_PTRと同じ長さが保証されており、CPUのアドレス長以上の長さが保証される。
用途
API関数の引数によく使われている。
例えば、WindowProcコールバック関数では、4番目の引数がLPARAM型である。
元々、Win16におけるWindowProcコールバック関数のWPARAM/LPARAMは、以下の用途であった(WM_COMMANDメッセージなどの場合)。
- WPARAM ‐ コントロール/メニューID(16ビット)
- LPARAM(HIGH) ‐ 通知コード(16ビット)
- LPARAM(LOW) ‐ ウィンドウハンドル(16ビット)
しかしWin32ではハンドルが32ビット化されLPARAM全体で表現するようになったため、Win32以降では以下のように変更された経緯がある。
- WPARAM(HIGH) ‐ 通知コード(16ビット)
- WPARAM(LOW) ‐ コントロール/メニューID(16ビット)
- LPARAM ‐ ウィンドウハンドル(32ビット)
再検索