Sample: SystemEvent.cpp
//------------------------------------------------------------------------------ // // SimConnect System Event Sample // // Description: // Request a FlightLoaded system event //------------------------------------------------------------------------------ #include <windows.h> #include <tchar.h> #include <stdio.h> #include <strsafe.h> #include "SimConnect.h" int quit = 0; HANDLE hSimConnect = NULL; static enum EVENT_ID2 { EVENT_FLIGHT_LOAD, }; void CALLBACK MyDispatchProc2(SIMCONNECT_RECV* pData, DWORD cbData, void *pContext) { switch(pData->dwID) { case SIMCONNECT_RECV_ID_EVENT_FILENAME: { SIMCONNECT_RECV_EVENT_FILENAME *evt = (SIMCONNECT_RECV_EVENT_FILENAME*)pData; switch(evt->uEventID) { case EVENT_FLIGHT_LOAD: printf("\nNew Flight Loaded: %s", evt->szFileName); break; default: break; } break; } case SIMCONNECT_RECV_ID_QUIT: { quit = 1; break; } default: break; } } void testSystemEvent() { HRESULT hr; if (SUCCEEDED(SimConnect_Open(&hSimConnect;, "System Event", NULL, 0, 0, 0))) { printf("\nConnected...!"); hr = SimConnect_SubscribeToSystemEvent(hSimConnect, EVENT_FLIGHT_LOAD, "FlightLoaded"); while( 0 == quit ) { SimConnect_CallDispatch(hSimConnect, MyDispatchProc2, NULL); Sleep(1); } hr = SimConnect_Close(hSimConnect); } } int __cdecl _tmain(int argc, _TCHAR* argv[]) { testSystemEvent(); return 0; } |