加え、言語識別子を指定できる。アイコンも任意のものが使用できる。利用することが期待されているように思われる。下記のような違いがある。使用しなければならない。行った変更を無視することはできるが、これはあまり良い実装とは思えない。使用しなければならない。この関数が呼ばれる直前にスレッドがメッセージキューからキーメッセージを読み出したときのキーの状態を取得する。取得した情報は必ずしも現在の状態と一致しない。インターフェイス設計のガイドライン」では、次のように記述されている。関数の使用は避けてください。ハードウェアに対するクエリを実行し、物理キーまたはボタンのステータスを特定しますが、プログラムによって押されたキーやユーザー補助ツールによってシミュレートされたキーは無視します。使用することも可能です。関数を使用することは避けてください。関数を使用してボタンアップのメッセージを待ちます。関数とメッセージを使用した場合とは異なる結果になる可能性があります。なると、アプリケーションの動作がシステム上の他のソフトウェアと不整合を起こす原因になります。状態が変更されたキーのことだと思う。無視されることはない。アクセスするスレッドのキーボード入力状態テーブルを書き変えることができる。結果には何の影響も及ぼさない。メッセージを生成するわけではない。有用な機会は限られている。簡単なサンプルコードとその実行結果を下に示す。影響を受けていないことが分かる。メッセージを生成することができる。