home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-385-Vol-1of3.iso
/
x
/
xfeel.zip
/
XFEEL.C
< prev
next >
Wrap
Text File
|
1992-08-17
|
3KB
|
94 lines
/*-------------------------------------------------------------------------*/
/* */
/* XFEEL.C : Compile this Module to XFEEL.EXE */
/* */
/* Version : V1.00 */
/* */
/* Date : 31.07.92 */
/* */
/* Copyright : rf for Animal */
/* */
/*-------------------------------------------------------------------------*/
#define INCL_DOSPROCESS
#define INCL_WINHOOKS
#define INCL_WINBUTTONS
#define INCL_WINFRAMEMGR
#define INCL_WINTIMER
#define INCL_DOSSEMAPHORES
#define INCL_DOSMEMMGR
#define INCL_DOSMODULEMGR
#include <os2pm.h>
/*--------------------------------------------------------------------------*/
MRESULT EXPENTRY myproc (HWND hwnd, USHORT msg, MPARAM mp1, MPARAM mp2)
{
return (WinDefWindowProc (hwnd, msg, mp1, mp2));
}
/*--------------------------------------------------------------------------*/
unsigned long GetAddr(HMODULE *handle, char *filename, char *command)
{
char errorname[6];
unsigned long adr;
if (DosLoadModule (errorname, 5, filename, handle))
return (0L);
if (DosGetProcAddr (*handle, command, &adr))
return (0L);
return (adr);
}
/*--------------------------------------------------------------------------*/
void main ()
{
HAB hab;
HMQ hmq;
QMSG qmsg;
HMODULE mhand;
ULONG adr;
SEL sel;
HWND hwnd, hwndclient;
ULONG ff = FCF_TASKLIST;
hab = WinInitialize (0);
hmq = WinCreateMsgQueue (hab, 0);
WinRegisterClass (hab, "XFEELCLASS", myproc, 0L, 0);
hwnd = WinCreateStdWindow (HWND_DESKTOP, 0, &ff, "XFEELCLASS",
NULL, 0L, NULL, 0, &hwndclient);
if (DosAllocShrSeg (sizeof (HWND), "\\SHAREMEM\\XFEEL.DAT", &sel))
{
WinMessageBox (HWND_DESKTOP, HWND_DESKTOP,
"Could not allocate Memory. Program aborted !",
NULL, 0, MB_OK|MB_ICONEXCLAMATION);
return;
}
adr = GetAddr (&mhand, "XFEEL", "XFUNC");
if (!WinSetHook (hab, (HMQ)NULL, HK_INPUT, (PFN)adr, mhand))
{
WinMessageBox (HWND_DESKTOP, HWND_DESKTOP,
"Could not Install Hook. Program aborted !",
NULL, 0, MB_OK|MB_ICONEXCLAMATION);
return;
}
WinStartTimer (hab, HWND_DESKTOP, 1, 1000);
while (WinGetMsg (hab, &qmsg, NULL, 0, 0))
WinDispatchMsg (hab, &qmsg);
WinReleaseHook (hab, (HMQ)NULL, HK_INPUT, (PFN)adr, mhand);
DosFreeModule (mhand);
WinDestroyWindow (hwnd);
WinDestroyMsgQueue (hmq);
WinTerminate (hab);
}