//以HOLD KEY為例
//Driver side create event
#define kHoldKeyEventName TEXT("HoldKey")
#define kUnHoldKeyEventName TEXT("UnHoldKey")
HANDLE hHoldKeyEvent;
HANDLE hUnHoldKeyEvent;
IniTFunction() {
...
...
hHoldKeyEvent = CreateEvent(NULL, FALSE, FALSE, kHoldKeyEventName);
hUnHoldKeyEvent = CreateEvent(NULL, FALSE, FALSE, kUnHoldKeyEventName);
...
...
}
HandlerFunction() {
...
if(holdkey) {
...
SetEvent(hHoldKeyEvent);
... }
else {
SetEvent(hUnHoldKeyEvent);
... }
}
---------------------------------------------------------------------
//Application side
#define kHoldKeyEventName TEXT("HoldKey")
#define kUnHoldKeyEventName TEXT("UnHoldKey")
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow) {
...
InitThread();
...
}
//Single thread
void InitThread() {
HANDLE hEvent[2]={0};
DWORD dwStatus;
hEvent[0] = CreateEvent(NULL, FALSE, FALSE, kHoldKeyEventName);
hEvent[1] = CreateEvent(NULL, FALSE, FALSE, kUnHoldKeyEventName);
while(TRUE) {
dwStatus = WaitForMultipleObjects(2, hEvent, FALSE, INFINITE);
switch(dwStatus) {
case (WAIT_OBJECT_0 + 0):
break;
case (WAIT_OBJECT_0 + 1):
break; } }
}
Wednesday, April 25, 2007
如何讓APP跟Driver同步
Posted by cins at 3:07 PM
Labels: Application Programming
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment