home *** CD-ROM | disk | FTP | other *** search
/ Programming Tool Box / SIMS_2.iso / vb_code1 / help_key / hlpkey.c next >
C/C++ Source or Header  |  1992-09-22  |  2KB  |  63 lines

  1. /* HLPKEY.C - Author: Jeff Simms - CIS 72200,3173 - Sept. 21, 1992 */
  2.  
  3. #include <windows.h>
  4.  
  5. int __export FAR PASCAL SetHook(HWND);
  6. void  __export FAR PASCAL RemoveHook(void);
  7. DWORD __export FAR PASCAL F1Check(int, WORD, LONG);
  8.  
  9. HWND ghAppWnd;
  10. HHOOK ghhookKB;
  11.  
  12. int FAR PASCAL WEP (int nParameter)
  13. {
  14.    return (1);
  15. }                  
  16.  
  17. int __export FAR PASCAL SetHook (HWND hCallingWnd)
  18. {
  19.    HANDLE handle;
  20.    HOOKPROC lpfnHookProc = NULL;
  21.  
  22.    ghAppWnd = hCallingWnd;
  23.    handle = GetModuleHandle("HLPKEY.DLL");
  24.  
  25.    lpfnHookProc = GetProcAddress(handle, "F1Check");
  26.    ghhookKB = SetWindowsHookEx(WH_KEYBOARD, lpfnHookProc, handle, GetWindowTask(hCallingWnd));
  27.    return (int) ghhookKB;
  28. }
  29.  
  30. void __export FAR PASCAL RemoveHook (void)
  31. {
  32.    UnhookWindowsHookEx(ghhookKB);
  33. }                 
  34.  
  35. DWORD __export FAR PASCAL F1Check (int nCode, WORD wParam, LONG lParam)
  36. {
  37.    if ((nCode >= 0) && nCode != HC_NOREMOVE && wParam == 112){
  38.  
  39.       if (lParam & 0x80000000 || lParam & 0x40000000)
  40.     return CallNextHookEx(ghhookKB, nCode, wParam, lParam);
  41.  
  42.         PostMessage(ghAppWnd, WM_CHAR, wParam, 0L);
  43.     }
  44.  
  45.    return CallNextHookEx(ghhookKB, nCode, wParam, lParam);
  46. }                  
  47.  
  48. /*   HLPKEY.DEF
  49.  
  50. LIBRARY     HLPKEY
  51. EXETYPE     WINDOWS
  52. STUB        'WINSTUB.EXE'
  53. DESCRIPTION 'DLL for F1 Hook'
  54. CODE        PRELOAD FIXED
  55. DATA        PRELOAD MOVEABLE SINGLE
  56. HEAPSIZE    4096
  57. EXPORTS
  58.             WEP                 @1  RESIDENTNAME
  59.             SetHook             @2
  60.             RemoveHook          @3
  61.         F1Check        @4
  62. */
  63.