別のプロセスで作成されたHBITMAPオブジェクトを削除できますか?
質問
グローバルフックを使用して、デスクトップ上の他のウィンドウにいくつかの(ユーザーカスタマイズ可能な)アイコンを描くユーティリティプログラムを作成しています。ビットマップオブジェクトはプロセスに固有のため、各プロセスでこれらのアイコンの個別のHBITMAPオブジェクトを作成する前に作成します。これらのハンドルはすべて、DLLの共有セグメントに保存されます。
これで、私のプログラムで(ユーザーによって)アイコンが削除されると、これらの異なるプロセスでのすべてのHBITMAPオブジェクトを削除する必要があります。メインプログラムでdeleteObject()を使用してこれを行うことはできますか、それとも作成されたプロセスで各ハンドルを削除する必要がありますか?
解決
間違いなく、それらを作成したプロセスからそれらを削除する必要があります - たとえそれがあなたのために働いていても、異なるWindowsバージョンについてはそうではないかもしれません。
他のヒント
GDIオブジェクトへのハンドルは、通常、プロセスをプライベートにします。とにかくDeleteObjectの返品値を確認できます。
私はこれを推測しているだけです...
フックを使用して、別のウィンドウにフックする必要があります。
所属していません StackOverflow