none
IEウインドウに内に表示されるMFC ActiveXコントロールでWM_POWERBROADCASTを受け取る方法について RRS feed

  • 質問

  • VS2008を利用して、MFC ActiveXコントロールを作成しています。

    作成したActiveXコントロールをHTMLの<OBJECT>タグに指定して、IE内の表示しています。

    このActiveXコントロールで、マシンのスタンバイ(スリープ)発生を処理したいと思い、WM_POWERBROADCASTメッセージ受け取るようにしましたが、メッセージが受け取れない状況です。

    IEウインドウ内に表示されるActiveXコントロールで、WM_POWERBROADCASTを受け取る方法を教えてください。

    2012年3月31日 2:14

回答

  • WM_POWERBROADCAST を受け取れるのはトップレベルウィンドウだけなのでは?

    IE のウィンドウの内の ActiveX コントロールであれば、トップレベルウィンドウではないので受け取れない現状は、上述のスレッドを参照する限り、妥当なところだと思えます。
    解決策を模索するとしたら、内部的に別のウィンドウを作り出す手が使えるかどうかでしょうか。(実験していません)

    // WM_POWERBROADCAST を欲するほど、ActiveX コントロールがいろいろとやりすぎている?
    // そういった疑問も持ちますが…。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。

    • 回答の候補に設定 山本春海 2012年4月5日 8:27
    • 回答としてマーク ころわん 2012年4月6日 22:49
    2012年3月31日 2:52
    モデレータ

すべての返信

  • WM_POWERBROADCAST を受け取れるのはトップレベルウィンドウだけなのでは?

    IE のウィンドウの内の ActiveX コントロールであれば、トップレベルウィンドウではないので受け取れない現状は、上述のスレッドを参照する限り、妥当なところだと思えます。
    解決策を模索するとしたら、内部的に別のウィンドウを作り出す手が使えるかどうかでしょうか。(実験していません)

    // WM_POWERBROADCAST を欲するほど、ActiveX コントロールがいろいろとやりすぎている?
    // そういった疑問も持ちますが…。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。

    • 回答の候補に設定 山本春海 2012年4月5日 8:27
    • 回答としてマーク ころわん 2012年4月6日 22:49
    2012年3月31日 2:52
    モデレータ
  • 確認が遅くなりましたが、トップレベルウィンドウで対応できそうです。

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

    2012年4月6日 22:49