/************************************************************************* * ShellExecute [SHELL.20] */ HINSTANCE16 WINAPI ShellExecute16( HWND16 hWnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT16 iShowCmd ) { return HINSTANCE_16( WOWShellExecute( HWND_32(hWnd), lpOperation, lpFile, lpParameters, lpDirectory, iShowCmd, SHELL_Execute16 )); }
/*********************************************************************** * call_WH_CBT */ static LRESULT CALLBACK call_WH_CBT( INT code, WPARAM wp, LPARAM lp ) { LRESULT ret = 0; switch (code) { case HCBT_CREATEWND: { CBT_CREATEWNDA *cbtcw32 = (CBT_CREATEWNDA *)lp; CBT_CREATEWND16 cbtcw16; CREATESTRUCT16 cs16; cs16.lpCreateParams = (SEGPTR)cbtcw32->lpcs->lpCreateParams; cs16.hInstance = HINSTANCE_16(cbtcw32->lpcs->hInstance); cs16.hMenu = HMENU_16(cbtcw32->lpcs->hMenu); cs16.hwndParent = HWND_16(cbtcw32->lpcs->hwndParent); cs16.cy = cbtcw32->lpcs->cy; cs16.cx = cbtcw32->lpcs->cx; cs16.y = cbtcw32->lpcs->y; cs16.x = cbtcw32->lpcs->x; cs16.style = cbtcw32->lpcs->style; cs16.lpszName = MapLS( cbtcw32->lpcs->lpszName ); cs16.lpszClass = MapLS( cbtcw32->lpcs->lpszClass ); cs16.dwExStyle = cbtcw32->lpcs->dwExStyle; cbtcw16.lpcs = (CREATESTRUCT16 *)MapLS( &cs16 ); cbtcw16.hwndInsertAfter = HWND_16( cbtcw32->hwndInsertAfter ); lp = MapLS( &cbtcw16 ); ret = call_hook_16( WH_CBT, code, wp, lp ); UnMapLS( cs16.lpszName ); UnMapLS( cs16.lpszClass ); cbtcw32->hwndInsertAfter = WIN_Handle32( cbtcw16.hwndInsertAfter ); UnMapLS( (SEGPTR)cbtcw16.lpcs ); UnMapLS( lp ); break; } case HCBT_ACTIVATE: { CBTACTIVATESTRUCT *cas32 = (CBTACTIVATESTRUCT *)lp; CBTACTIVATESTRUCT16 cas16; cas16.fMouse = cas32->fMouse; cas16.hWndActive = HWND_16( cas32->hWndActive ); lp = MapLS( &cas16 ); ret = call_hook_16( WH_CBT, code, wp, lp ); UnMapLS( lp ); break; } case HCBT_CLICKSKIPPED: { MOUSEHOOKSTRUCT *ms32 = (MOUSEHOOKSTRUCT *)lp; MOUSEHOOKSTRUCT16 ms16; ms16.pt.x = ms32->pt.x; ms16.pt.y = ms32->pt.y; ms16.hwnd = HWND_16( ms32->hwnd ); ms16.wHitTestCode = ms32->wHitTestCode; ms16.dwExtraInfo = ms32->dwExtraInfo; lp = MapLS( &ms16 ); ret = call_hook_16( WH_CBT, code, wp, lp ); UnMapLS( lp ); break; } case HCBT_MOVESIZE: { RECT *rect32 = (RECT *)lp; RECT16 rect16; rect16.left = rect32->left; rect16.top = rect32->top; rect16.right = rect32->right; rect16.bottom = rect32->bottom; lp = MapLS( &rect16 ); ret = call_hook_16( WH_CBT, code, wp, lp ); UnMapLS( lp ); break; } } return ret; }
/************************************************************************* * FindExecutable (SHELL.21) */ HINSTANCE16 WINAPI FindExecutable16( LPCSTR lpFile, LPCSTR lpDirectory, LPSTR lpResult ) { return HINSTANCE_16(FindExecutableA( lpFile, lpDirectory, lpResult )); }