void SubClassMsgQueue(void) { gfnOldWndProc = (WNDPROC)SetWindowLong(_WhToHwnd(_WMainWindow()), GWL_WNDPROC, (DWORD)SubClassFunc); } LRESULT WINAPI SubClassFunc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_HELP: _Execute("wait window 'Help' nowait"); break; } return CallWindowProc(gfnOldWndProc, hWnd, uMsg, wParam, lParam); } void Invoke_Help(void) { ::MessageBoxEx(_WhToHwnd(_WMainWindow()), "Press the help button", "VFP", MB_HELP, LANG_ENGLISH); }When I use the FLL and I call the Invoke_Help() command from VFP I get the messagebox with OK and Help buttons. Pressing the Help button fires a wait window containing the "Help" prompt.