通信用語の基礎知識 IPv4
戻る
全国のICカードこれひとつ

WPARAM

辞書:電算用語の基礎知識 プログラミング仕様編 (PTPROGS)
読み:ダブリュー・パラム
外語:WPARAM: Word Parameter 英語
品詞:名詞
2006/08/18 作成
2013/04/03 更新

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

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

従って、Win32プラットフォームではunsigned __int32Win64プラットフォームではunsigned __int64として定義される。

長さ

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

Win16環境では、WPARAMはUINTだったが、これは16ビット長であるのでWORDと同じ長さである。WPARAMの「W」は、WORD長から来ているものと思われる。

Win32以降では、これは単なる整数格納用変数ではなく、API関数によっては、ハンドル(つまりポインター)を渡すことも普通にある。実装上はUINT_PTRと同じ長さが保証されており、CPUのアドレス長以上の長さが保証される。

従って、現在ではWPARAMという名は過去の名残でしかなく、頭のWには何の意味もないものと言える。

用途

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

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

元々、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ビット)
関連する用語
LPARAM

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.03 (16-May-2019)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club