この 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 プログラマーではありませんが、これらの整数は、プログラマーが使用する前に後で「実際の」型にキャストする「バッファー」として使用されているようです...正確に聞こえますか?