Я пишу DLL, которая выполняет некоторые операции с конкретным окном, но иногда переданный дескриптор недопустим. Существует ли какая-либо функция для проверки правильности переданного дескриптора (принадлежит окну)?
Попробуйте использовать функцию IsWindow, которая объявлена в модуле Windows.
IsWindow
function IsWindow(hWnd: HWND): BOOL; stdcall;