add: wxCannotHideCursor();
context: BOOL wxPrimitiveDialog(wxPDF f, void *data, int strict){  DWORD id;  HANDLE th;  PrimData *_data;  BOOL result;  HWND top;  wxWindow *w;  wxList *disabled_windows;  wxChildNode *cnode;     wxNode *node;     wxChildList *tlw;  _data = (PrimData *)malloc(sizeof(PrimData));  _data->f = f;  _data->data = data;  _data->usedir = strict;  _data->done = 0;  id = GetCurrentThreadId();  _data->main_thread_id = id;  /* Make window child of frontmost if it exists in the     same context, and disable all others in the context. */  top = GetForegroundWindow();  w = wxHWNDtoWindow(top);  if (w) {    void *wc, *tc;    if (wxSubType(w->__type, wxTYPE_FRAME))      wc = ((wxFrame *)w)->context;    else if (wxSubType(w->__type, wxTYPE_DIALOG_BOX))      wc = ((wxDialogBox *)w)->context;    else      wc = NULL;    tc = wxGetContextForFrame();    if (wc != tc)      top = NULL;  } else    top = NULL;  _data->hwnd = top;  // Disable other windows:  disabled_windows = new wxList;  tlw = wxTopLevelWindows(NULL);  for (cnode = tlw->First(); cnode; cnode = cnode->Next()) {    wxWindow *win;    win = (wxWindow *)cnode->Data();    if (win && cnode->IsShown()) {      if (win->GetHWND() != top) {	disabled_windows->Append(win);	win->InternalEnable(FALSE);      }    }  }  if (!(th = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)DoPrim, _data, 0, &id))) {    /* Thread creation failed! We're in trouble, but do `f' anyway. */    result = f(data, top);  } else {    struct Scheme_Thread_Memory *thread_memory;    thread_memory = scheme_remember_thread((void *)th);    /* There used to be a call to AttachThreadInput() here.       That was disasterous, because it interefered with the       carefully tuned event dispatching of mredmsw.cxx. */    wxDispatchEventsUntil(Check, (void *)_data);    WaitForSingleObject(th, INFINITE);    scheme_forget_thread(thread_memory);    CloseHandle(th);    result = _data->result;  }  free(_data);  /* Restore other windows: */  for (node = disabled_windows->First(); node; node = node->Next()) {    wxWindow *win;    win = (wxWindow *)node->Data();    win->InternalEnable(TRUE);  }  delete disabled_windows;  return result;}