Вы можете использовать Win32 API IsWindow .
Не рекомендуется использовать его по двум причинам:
- Дескрипторы Windows можно использовать повторно после разрушения окна, поэтому вы не знаете, есть ли у вас дескриптор совершенно другого окна или нет.
- Состояние может измениться сразу после этого вызова, и вы подумаете, что оно допустимо, но оно может действительно быть недействительным.
Из MSDN (та же ссылка, что и выше):
Поток не должен использовать IsWindow для
окно, которое он не создал, потому что
окно может быть разрушено после
эта функция была вызвана. В дальнейшем,
потому что оконные ручки переработаны
ручка может даже указывать на
другое окно.
Что можно сделать?
Возможно, ваша проблема может быть перестроена так, чтобы вам не нужно было проверять действительный дескриптор. Может быть, например, вы можете установить канал от клиента к серверу.
Вы также можете создать хук Windows, чтобы определять, когда появляются определенные сообщения, но это, вероятно, излишне для большинства нужд.