А>Каким образом можно передать хэндл из одного процесса в другой?
А>Просто средствами IPC передать числовое значение — это нормально?
Есть
DuplicateHandle.
BOOL WINAPI DuplicateHandle(
__in HANDLE hSourceProcessHandle,
__in HANDLE hSourceHandle,
__in HANDLE hTargetProcessHandle,
__out LPHANDLE lpTargetHandle,
__in DWORD dwDesiredAccess,
__in BOOL bInheritHandle,
__in DWORD dwOptions
);
Параметрами hSourceProcessHandle/hTargetProcessHandle можно заказать и искомое.
Но хендл должен быть не любой, а из списка: access token, change notification, communications device, console input, console screen buffer, desktop, event, file, file mapping, job, mailslot, mutex, pipe, process, registry key, semaphore, thread, timer, transaction, window station. А если хендл от окна (HWND), то его и так можно передавать (в пределах одной window station, если мой склероз меня не обманывает).
И да, если процессы на разных машинах, то не получится.