- PR -

クリップボードからビットマップが取得できなくなる

1
投稿者投稿内容
Boshi
会議室デビュー日: 2002/07/31
投稿数: 1
投稿日時: 2002-07-31 19:40
IDataObject.GetData()でクリップボードからビットマップを取得すると.NET Framework内部でメモリーリークを起こし、取得したビットマップ(ハンドル)が開放されなくなるバグを見つけました。
実行環境にもよりますが、256MB搭載PCの場合で200回程度IDataObject.GetData()を呼び出すと、クリップボードにビットマップがあるにもかかわらず取得できなくなります。この状態になると、他のアプリケーションでもクリップボードからビットマップが取得できなくなります。
この現象をMSKKに問い合わせたところ、MSKKでも障害を確認し、バグと認めました。
この障害を回避するには、Win32APIでクリップボードからビットマップハンドルを取得し、それをImage.FromHbitmap()の引数にしてBitmapオブジェクトを作成するしかないようです。
いつも有益な情報を頂いているので、たまには自分でも情報提供しようと思い、書き込みました。
1

スキルアップ/キャリアアップ(JOB@IT)