Ответ 1
Если это дескриптор окна, вы можете вызвать isWindow(hWnd);
Из msdn:
Возвращаемое значение
BOOL
Если дескриптор окна идентифицирует существующее окно, возвращаемое значение отличен от нуля.
Если дескриптор окна не идентифицирует существующее окно, возвращаемое значение равна нулю. Замечания
Нить не должна использовать IsWindow для окно, которое оно не создало, потому что окно может быть уничтожено после эта функция была вызвана. В дальнейшем, потому что обработчики окон переработаны ручка может даже указывать на другое окно.
Кстати, поскольку вы находитесь в .NET, вам нужно будет сделать что-то вроде:
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool IsWindow(IntPtr hWnd);