Win32API質問箱 Build50at TECHWin32API質問箱 Build50 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト981:954 07/03/20 09:31:36 >>972 なるほどたしかにあらかじめエディタでUnicode形式でファイルを作成し、 それに対してWriteProfileしてみたところ、Unicodeのまま書き込めました。 >>976のおっしゃる情報によると、NT系しか動かないようなので、 厳密にやろうとするとまた考えないといけないのでしょうけど、 今回のものは2000以降限定と言ってしまっても問題無いので、 そうなるとこれでも大丈夫ですよね。 みなさんありがとうございました。 982:デフォルトの名無しさん 07/03/20 20:44:56 コントロールを作っていて困ったことがあったので質問させて下さい。 WH_GETMESSAGEフックを使って親ウィンドウのメッセージを盗みたいと思ってます。 コントロールはクラス化していて、GetMsgProcでインスタンスへのポインタを使うために、 グローバルなCAtlMapを使って、dwThreadIdとthisを関連づけて保持しています。 またSetWindowsHookExの戻り値もクラスのメンバとして保持してます。 そしてGetMsgProcでは、 MSG *msg = (MSG*)lParam; CControl *pThis = g_hookMap[GetWindowThreadProcessId(msg->hwnd, NULL)]; このようにポインタを取得して、メッセージによって処理したり、CallNextHookExを呼び出したりしています。 ここで問題がありまして、msg->hwndにNULLが渡されることがあります。 (ちょっと調べた感じだとPostThreadMessageで渡されたメッセージでしょうか) このときはpThisを使ってフックプロシージャのハンドルを取得できないため、 CallNextHookExを呼び出すことができないので、仕方なくreturn 0;で処理を中断しています。 msg->hwndがNULLでもちゃんとフックプロシージャのハンドルを取得できる もっと上手いやり方がありましたらお教え下さい。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch