You mentioned a modeless window. Is this code being run from Inside of autocad? If so. remember that if your code ends up running into a Modal dialog, your'e sunk... your app will wait forever, and your code to close the window will never get called.
if it's being run from outside of autocad, and you are already using OLE on the Acad application, then each drawing window has its own hWnd, not just the parent application. That means you wont have to tunnel down using the "FindWindow" and "EnumChildWindows" API calls.
I'd get "ThisDrawing.hwnd" before the dialog appears, and use the "SetActiveWindow" API call right to the hwnd:
Declare Function SetActiveWindow Lib "user32.dll" (ByVal hwnd As Long) As Long