Могу ли я удалить объект HBitMap, созданный в другом процессе?
Вопрос
Я создаю коммунальную программу, которая рисует некоторые (пользовательские настраиваемые) значки на других окнах на рабочем столе, используя глобальный крюк. Поскольку битовые объекты специфичны для процесса, я создаю отдельные объекты HBitMap для этих значков в каждом процессе, прежде чем я рисую их, и все эти ручки хранятся в общем сегменте в DLL.
Теперь, когда значок удаляется в моей программе (по пользователю), все объекты HBitMap для него в этих различных процессах должны быть удалены. Могу ли я сделать это, используя deleteObject () в мою главной программе или мне нужно удалить каждую ручку в процессе, в котором он был создан?
Решение
Определенно вы должны удалить их из процесса, который их создал - даже если он работает для вас, для разной версии Windows она не может.
Другие советы
Ручка объектов GDI обычно является частным процессом. Вы можете проверить возвращаемое значение DeleteObject в любом случае.
Я просто думаю, что это ...
Вы должны использовать крючок, чтобы подключить к другому окну.