ページ 11

メモリマップトファイル HWND

Posted: 2013年2月15日(金) 10:08
by Cユーザー
共有メモリにポインターが使えないとの
ことですが

HWNDも使えないと考えてよいのでしょうか?

用途としてはプロセスAのHWNDも共有メモリでもっておいて
プロセスBの指示があれば、そのHWNDを使って処理する

Re: メモリマップトファイル HWND

Posted: 2013年2月15日(金) 10:34
by softya(ソフト屋)
使えないと思います。
偶然使えたとしても環境依存や将来的に使える保証はないので使うべきではありません。
一般的なファイルに変えても受け渡し可能なものに限定すべきです。

Re: メモリマップトファイル HWND

Posted: 2013年2月15日(金) 14:49
by yukihiro
ウィンドウハンドルはプロセス間にまたがって有効かという話であれば、
有効です。

ウィンドウを確実に識別する識別子はウィンドウハンドルしかなく、
もしそれがプロセス間で渡せなければ困ったことになりそうです。

公式文書は探し切れませんでしたが、経験的には問題ないです。
#MSDNフォーラムでの質問と一般ユーザーによる回答はありました。
http://social.msdn.microsoft.com/Forums ... 2bfb03afb0

実際、例えばWindowsのスクリーンセーバー設定画面。
プレビューが見れますが、このプレビューを表示するときは
スクリーンセーバーアプリに対してコマンドラインでプレビューウィンドウのウィンドウハンドルが渡されます。
スクリーンセーバー側はそれを受けてそのウィンドウに対してプレビューを表示するわけです。
ウィンドウハンドルがプロセスをまたいでも有効である保証がなければこんな仕様にはしないですよね。

#あくまでウィンドウハンドルに限った話です。
#その他のハンドルと呼ばれる類は一般に他プロセスと共有できないと思ったほうがいいと思います。

Re: メモリマップトファイル HWND

Posted: 2013年2月15日(金) 22:46
by Cユーザー
ありがとうございました。
一度考えてみます