#include <stdio.h>
#include <windows.h>
#define WM_GO WM_USER+1
#define WM_COME WM_USER+2
DWORD WINAPI ThreadFunc(PVOID pvParam)
{
MSG msg;
while (1)
{
if (GetMessage(&msg, NULL, NULL, NULL))
{
switch (msg.message)
{
case WM_GO:
printf("I have got /"WM_GO/"/n");
break;
case WM_COME:
printf("I have got /"WM_COME/"/n");
}
}
}
return 0;
}
DWORD WINAPI SendThread(PVOID pvParam)
{
char Temp[100];
while (1)
{
memset(Temp, '/0', sizeof(Temp));
gets(Temp);
if (strcmp (Temp,"go") == 0)
{
PostThreadMessage ((DWORD)pvParam, WM_GO, NULL, NULL);
}
else if (strcmp (Temp,"come") == 0)
{
PostThreadMessage ((DWORD)pvParam, WM_COME, NULL, NULL);
}
}
return 0;
}
int main()
{
HANDLE hThread1;
HANDLE hThread2;
DWORD ThreadID1;
DWORD ThreadID2;
hThread1 = CreateThread(NULL, NULL, ThreadFunc, NULL ,0, &ThreadID1);
hThread2 = CreateThread(NULL,NULL, SendThread, (LPVOID)ThreadID1, 0, &ThreadID2);
WaitForSingleObject(hThread2,INFINITE);
}