LPARAM

読み:エル・パラム
外語:LPARAM: Long Parameter
品詞:名詞

Microsoft WindowsAPIなどに使われている、Cの変数型の一つ。

Win16環境とWin32環境では32ビット長、Win64環境では64ビット長である。

API関数の引数によく使われている。

例えば、WindowProcコールバック関数では、4番目の引数がLPARAM型である。

これは単なる整数格納用変数ではなく、関数によってはポインタを渡すこともある。従って実装上は、CPUのアドレス長以上の長さが保証されるものと考えられる。

Microsoft Visual C++ 2003環境では、次のように定義される。

Win32環境

  1. (windef.h) typedef LONG_PTR LPARAM
  2. (basetsd.h) typedef _W64 long LONG_PTR

Win32では、LPARAMは間接的に(signed) longとして定義されている。

_W64は、Visual C++ 32bitの場合__w64キーワードに展開される。これは、/Wp64を指定した時に、64ビット対応の型であると指定するものである。

Win64環境

  1. (windef.h) typedef LONG_PTR LPARAM
  2. (basetsd.h) typedef __int64 LONG_PTR

__int64はMicrosoft C/C++独自の変数型で、64ビット長intである。

Win64では、LPARAMは間接的に(signed) __int64として定義されている。