Win32API質問箱 Build50at TECH
Win32API質問箱 Build50 - 暇つぶし2ch981: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でもちゃんとフックプロシージャのハンドルを取得できる
もっと上手いやり方がありましたらお教え下さい。

983:デフォルトの名無しさん
07/03/20 20:58:44
親ウィンドウをサブクラスかでは駄目なのか?

984:982
07/03/20 21:10:27
>>983
サブクラス化も試してみました。

具体的にはWM_CLOSEを取得して確認ダイアログを出したいのですが、他のメッセージは取得できるのに
なぜかWM_CLOSEは取得できないまま終了してしまいました。

そこでフックを試してみたら上手く取得できたので、フックでやろうとしているのですが。。

985:デフォルトの名無しさん
07/03/20 21:30:10
GetMessageフックはフックを受け取るスレッドのコンテキストで動くから
GetCurrentThreadId()でいいんじゃネーノ

986:デフォルトの名無しさん
07/03/20 21:44:59
> フックを受け取る
もとい
メッセージを受け取る

987:982
07/03/20 22:44:15
>>985,986
おー!できるようになりました。ちゃんといろんなAPIを知っておかないとダメですね。

ありがとうございました!!

988:デフォルトの名無しさん
07/03/20 23:08:51
次すれまだぁぁあんあん

989:デフォルトの名無しさん
07/03/21 03:52:22

つ t[茶]

スレリンク(tech板)


990:デフォルトの名無しさん
07/03/21 14:28:23
つか何度見ても2がおっかしー。
新しいのにはもうないけど。

991:デフォルトの名無しさん
07/03/21 17:33:48
           /  ̄ ̄ '´ ̄ ̄ヽ、
            ノ/. /二二二ヽヽ  \
        <V/, '/ 人 |  ヽハ夊 、 |
         〃 {_{`ヽ  Vヽノリ| l >" i|
         ハ小l●    ● レ|、 | |
         |│ l⊃ rー- ⊂⊃|ノ |│
        /⌒ヽ.| .ヘ  ヽ ノ   jレ/⌒i !
      \ /:::レ l>,、 __, イァ/   /ノ
.        /:::::/ / ヘ:::|三/::{ヘ、__∧
       `ヽ<     ヾ:∨:::/ヾ:::彡

992:デフォルトの名無しさん
07/03/21 18:27:52
   _
   /~ヽ
  (。・-・)< うめてくだちゃい
   ゚し-J゚ 


993:デフォルトの名無しさん
07/03/21 18:54:32


994:デフォルトの名無しさん
07/03/21 19:02:46
コソーリ
URLリンク(wiki.livedoor.jp)
最初に作った人とは違いますが・・・

このスレのファンです
時々質問したまま何も返さないのは私です
どうもすみません

995:デフォルトの名無しさん
07/03/21 19:24:54
   _
   /~ヽ
  (。・?・)
   ゚し-J゚ 



996:996
07/03/21 19:45:04
自己解決しました。
>>996にカチンときたので教えません。
バーカ!

997:デフォルトの名無しさん
07/03/21 19:53:14
どう見てもオナニープレイです 本当にお疲れ様でした

998:994
07/03/21 19:56:26
ごめんなさい。
これぐらいしかできないのです・・・

999:994
07/03/21 20:00:49
評判が悪ければ取り下げますです。

1000:デフォルトの名無しさん
07/03/21 20:01:35
                / ⌒ヽ 
                /      \ 
              ,.-‐''⌒ヽ   ,.=、  ヽー、 
              ,〃/∠彡ニ\ (.fゃ)  |  j 
            /       ミ彡三ヘ`=´   | | 
         /       ミ彡三∧    j ./ 
           ト ャ''"    ミ彡三∧.   // 
        」i _;''_,    ミ彡'ニミヘ、 〃 
          リ ´ ̄     リ´ f'`ij }/「i| 
         ヽ-         '´/ソ'川|| 
         ヽ一       「彡'川ll.||| 
          T   _   / ´ j||.川|| 
           ` ̄了、     i! 川.川| 
              _」. \    | j| 川|ト、 
        _/ ̄  \  \   '_/./川 ` 
        ̄       `    ̄  ´ 
       ネゴトワ・ネティエ[Negtva Netie] 
       (ルーマニア.1935~54)  


1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch