Устанавливаемая процедура должна иметь сигнатуру MtWindows.CloseNotifier. Если Notifier вернёт canClose = FALSE, то окно не закроется.
OnClose можно вызвать для одного окна только один раз, потом нужно отключить с пустым notifier="", и только после можно вызывать для этого окна ещё раз.
В качетсве wnd можно передать 0, OnClose сама достанет активное окно.
Вроде бы всё...