Я пытался лучше понять WinAPI и ядро Windows. Из того, что я вижу до сих пор, HWND
дескрипторы (окна) могут быть разделены между процессами.
Но как насчет других дескрипторов, могут ли они быть общими для процессов?
HMODULE
, HINSTANCE
, ATOM
?
А также компоненты окна и чертежа:
HMENU
, HDC
, HICON
, HCURSOR
, HBRUSH
, так далее.?
И, наконец, если все вышеперечисленное не может быть разделено, есть ли какие-либо дескрипторы пользовательского режима, которые могут быть?
РЕДАКТИРОВАТЬ: Уточнение. От разделение, Я хотел взять числовое значение дескриптора из одного процесса и использовать его в другом процессе.
HMODULE
а также HINSTANCE
это то же самое на 32-х и 64-х битных Windows. Это базовый адрес модуля, и его нельзя разделить между процессами (кроме адресов ntdll и kernel32, если другой процесс имеет такую же разрядность).
ATOM
s входят в процесс и глобальные формы, и глобальная форма может быть разделена процессами на том же самом windowstation.
Дескрипторы рисования GDI не могут быть общими (кроме GetStockObject
?).
В Windows NT объекты GDI хранятся в клиентской части модуля GDI подсистемы Win32. Это означает, что любой объект GDI действителен только в контексте приложения, которое его создало.
Дескрипторы USER32 (HWND, HMENU, HICON, HCURSOR) могут быть общими.
DuplicateHandle
принимает дескрипторы рабочего стола и windowstation …
Других решений пока нет …