Как определить внутренний HWND, используемый COM в моем текущем процессе?

Я хочу публиковать сообщения непосредственно в HWND, который принадлежит COM в моем процессе. Как получить HWND, который COM использует в режиме однопотоковой квартиры?

1 ответ

Попробуй это:

HWND prevWindow = NULL;
HWND hwnd;
for ( ;; )
{
    hwnd = FindWindowEx( HWND_MESSAGE, prevWindow, L"OleMainThreadWndClass", NULL );
    if ( !hwnd )
        break;

    if ( GetWindowThreadProcessId( hwnd, NULL ) == GetCurrentThreadId() )
        break;

    prevWindow = hwnd;


    WCHAR className[255];
    *className = 0;
    ::GetClassName( hwnd, className, 255 );
}

Дайте мне знать, если это работает.

Другие вопросы по тегам