/* DirectPlay & DirectPlayLobby messaging implementation * * Copyright 2000 - Peter Hunnisett * * * */ #include "winbase.h" #include "debugtools.h" #include "dplayx_messages.h" DEFAULT_DEBUG_CHANNEL(dplay) static DWORD CALLBACK DPLAYX_MSG_ThreadMain( LPVOID lpContext ); /* Create the message reception thread to allow the application to receive * asynchronous message reception */ DWORD CreateMessageReceptionThread( HANDLE hNotifyEvent ) { DWORD dwMsgThreadId; if( !DuplicateHandle( 0, hNotifyEvent, 0, NULL, 0, FALSE, 0 ) ) { ERR( "Unable to duplicate event handle\n" ); return 0; } /* FIXME: Should most likely store that thread handle */ CreateThread( NULL, /* Security attribs */ 0, /* Stack */ DPLAYX_MSG_ThreadMain, /* Msg reception function */ (LPVOID)hNotifyEvent, /* Msg reception function parameter */ 0, /* Flags */ &dwMsgThreadId /* Updated with thread id */ ); return dwMsgThreadId; } static DWORD CALLBACK DPLAYX_MSG_ThreadMain( LPVOID lpContext ) { HANDLE hMsgEvent = (HANDLE)lpContext; for ( ;; ) { FIXME( "Ho Hum. Msg thread with nothing to do on handle %u\n", hMsgEvent ); SleepEx( 10000, FALSE ); /* 10 secs */ } CloseHandle( hMsgEvent ); }