Changeset 27 for trunk/dll/gotchdll.c


Ignore:
Timestamp:
Mar 13, 2018, 6:34:46 PM (7 years ago)
Author:
Gregg Young
Message:

Remove mmio code; Ticet #5 Get gotcha "quiet" version working Tickets #1 #7 #9 Dialog changes related to both "quiet" and regular modes ( dialogs still need to be split in order to build both; only "quite can be bult from this) See Ticket #9 for a more complete list of changes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/gotchdll.c

    r2 r27  
    2323#include "../id.h"
    2424
     25//#define  __PMPRINTF__
     26//#include "PMPRINTF.H"
     27
     28/* pre-accelerator input hook, undocumented, */
     29#define HK_PREACCEL 17
     30
    2531HAB     habDLL;
    2632HWND    hwndFrame;
    2733HMODULE hMod;
    28 PFN     pfnInput;
    2934
    3035void EXPENTRY InitDLL (HAB hab, HWND hwnd)
     
    3237    habDLL = hab;
    3338    hwndFrame = hwnd;
    34     DosLoadModule (NULL, 0, "GOTCHA", &hMod);
    35     DosQueryProcAddr (hMod, 0, "InputProc", &pfnInput);
     39    DosLoadModule (NULL, 0, "GOTCHDLL", &hMod);
     40}
     41
     42BOOL EXPENTRY InputProc (HAB hab, PQMSG pqmsg, ULONG ul)
     43{
     44    USHORT usFlags;
     45    USHORT usScan;
     46   
     47    if (pqmsg->msg != WM_CHAR
     48        || (usFlags = SHORT1FROMMP(pqmsg->mp1), usScan =
     49            SHORT2FROMMP (pqmsg->mp2), (usFlags & KC_SCANCODE)) == 0){
     50        return FALSE;
     51    }
     52   
     53    if (CHAR4FROMMP(pqmsg->mp1) == 0x54 ) {
     54        if (usFlags & KC_KEYUP) {
     55            WinPostMsg (hwndFrame, WM_COMMAND,
     56                        MPFROM2SHORT (WID_PB_SETTINGS,0), 0);
     57            /*DosBeep( 1000, 10 );
     58            DosBeep( 2000, 20 );
     59            DosBeep( 3000, 30 ); */
     60            return TRUE;
     61        } else {
     62           /* DosBeep( 3000, 30 );
     63            DosBeep( 2000, 20 );
     64            DosBeep( 1000, 10 );*/
     65            return TRUE;
     66        }
     67    }
     68    else if (usScan == VK_PRINTSCRN || CHAR4FROMMP(pqmsg->mp1) == 93 ) {
     69        if (usFlags & KC_KEYUP) {
     70            WinPostMsg (hwndFrame, WM_COMMAND,
     71                        MPFROM2SHORT (WID_PB_SETCAPTURETYPE,0), 0);
     72            return TRUE;
     73        }
     74
     75    }
     76    return FALSE;
    3677}
    3778
    3879void EXPENTRY StartInputHook (void)
    3980{
    40     WinSetHook (habDLL, NULLHANDLE, HK_INPUT, pfnInput, hMod);
     81    WinSetHook (habDLL, NULLHANDLE, HK_PREACCEL, (PFN) InputProc, hMod);
    4182}
    4283
    4384void EXPENTRY StopInputHook (void)
    4485{
    45     WinReleaseHook (habDLL, NULLHANDLE, HK_INPUT, pfnInput, hMod);
     86    WinReleaseHook (habDLL, NULLHANDLE, HK_PREACCEL, (PFN) InputProc, hMod);
    4687    DosFreeModule (hMod);
    47 }
    48 
    49 BOOL EXPENTRY InputProc (HAB hab, PQMSG pqmsg, ULONG ul)
    50 {
    51     if (pqmsg->msg == WM_CHAR) {
    52         if ((SHORT1FROMMP (pqmsg->mp1) & KC_VIRTUALKEY) &&
    53             (SHORT2FROMMP (pqmsg->mp2) == VK_PRINTSCRN)) {
    54             if (SHORT1FROMMP (pqmsg->mp1) & KC_KEYUP) {
    55                 WinPostMsg (hwndFrame, WM_COMMAND,
    56                             MPFROM2SHORT (WID_PB_SCREENREGION,0), 0);
    57                 /*DosBeep( 1000, 10 );
    58                 DosBeep( 2000, 20 );
    59                 DosBeep( 3000, 30 ); */
    60                 return TRUE;
    61             } else {
    62                 /*DosBeep( 3000, 30 );
    63                 DosBeep( 2000, 20 );
    64                 DosBeep( 1000, 10 ); */
    65                 return TRUE;
    66             }
    67         }
    68     }
    69     return FALSE;
    7088}
    7189
Note: See TracChangeset for help on using the changeset viewer.