/* * WindowsKeyPush - handle the press of a key */ bool WindowsKeyPush( WORD vk, WORD data ) { vi_key key; // if we're holding everything just eat the key quietly if( EditFlags.HoldEverything ) { return( TRUE ); } key = MapVirtualKeyToVIKey( vk, data ); if( key != VI_KEY( DUMMY ) ) { keyBuffer[bufferTop] = GetVIKey( key, 0, FALSE ); bufferTop = (bufferTop + 1) % KEY_BUFFER_SIZE; return( TRUE ); } return( FALSE ); } /* WindowsKeyPush */
/* * HotkeyProc - pass hotkeys on to root for various modeless 'bars' */ long WINEXP HotkeyProc( HWND hwnd, UINT msg, UINT wparam, LONG lparam ) { vi_key key; switch( msg ) { case WM_KEYDOWN: key = MapVirtualKeyToVIKey( wparam, HIWORD( lparam ) ); if( key == VI_KEY( F7 ) || key == VI_KEY( F8 ) || key == VI_KEY( F9 ) ) { return( SendMessage( Root, msg, wparam, lparam ) ); } break; } return( CallWindowProc( SubclassGenericFindOldProc( hwnd ), hwnd, msg, wparam, lparam ) ); }
/* * EditSubClassProc - handle keystrokes for an edit control */ WINEXPORT LRESULT CALLBACK EditSubClassProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) { vi_key key; switch( msg ) { case WM_KEYDOWN: key = MapVirtualKeyToVIKey( wparam, HIWORD( lparam ) ); if( handleKey( hwnd, key, TRUE ) ) { return( 0L ); } break; case WM_CHAR: if( handleKey( hwnd, wparam, FALSE ) ) { return( 0L ); } break; } return( CallWindowProc( oldEditProc, hwnd, msg, wparam, lparam ) ); } /* EditSubClassProc */