2

この Windows プログラミング イディオムの確認を探しています。さまざまな種類の「ハンドル」が LRESULT オブジェクトだけでなく、lParam および wParam オブジェクトとしても渡されると考えてよろしいですか?

LRESULT または lParam/wParam に「どの」タイプのハンドルがあるかを知っている限り、それにキャストし直すことができると思います。

例えば

case WM_CREATE:
   ...
   //create a window
   //lParam is the CREATESTRUCT for new window created here
   ....
   return lParam;
...
...
CREATESTRUCT cStruct = (CREATESTRUCT)SendMessage(hwnd, msg /*WM_CREATE*/);
cStrcut.cx;//this is the width of the new window?

正しい?

これは「正しい」でしょうか?誰か私と StaticOverflow コミュニティに、このテクニック/イディオムに関する短い論文を提供できますか?

質問: lParam (または wParam) 値のみを返す必要がありますか? 知っておくべき落とし穴はありますか?LRESULT と LPARAM はどちらも LONG_PTR 型で、32 ビットまたは 64 ビットの整数です。私はベテランの C プログラマーではありませんが、これらの整数は、プログラマーが使用する前に後で「実際の」型にキャストする「バッファー」として使用されているようです...正確に聞こえますか?

4

1 に答える 1