static VOID VCAPITYPE rail_virtual_channel_init_event(LPVOID pInitHandle, UINT event, LPVOID pData, UINT dataLength) { railPlugin* rail; rail = (railPlugin*) rail_get_init_handle_data(pInitHandle); if (!rail) { WLog_ERR(TAG, "rail_virtual_channel_init_event: error no match"); return; } switch (event) { case CHANNEL_EVENT_CONNECTED: rail_virtual_channel_event_connected(rail, pData, dataLength); break; case CHANNEL_EVENT_DISCONNECTED: rail_virtual_channel_event_disconnected(rail); break; case CHANNEL_EVENT_TERMINATED: rail_virtual_channel_event_terminated(rail); break; } }
static VOID VCAPITYPE rail_virtual_channel_init_event_ex(LPVOID lpUserParam, LPVOID pInitHandle, UINT event, LPVOID pData, UINT dataLength) { UINT error = CHANNEL_RC_OK; railPlugin* rail = (railPlugin*) lpUserParam; if (!rail || (rail->InitHandle != pInitHandle)) { WLog_ERR(TAG, "error no match"); return; } switch (event) { case CHANNEL_EVENT_CONNECTED: if ((error = rail_virtual_channel_event_connected(rail, pData, dataLength))) WLog_ERR(TAG, "rail_virtual_channel_event_connected failed with error %"PRIu32"!", error); break; case CHANNEL_EVENT_DISCONNECTED: if ((error = rail_virtual_channel_event_disconnected(rail))) WLog_ERR(TAG, "rail_virtual_channel_event_disconnected failed with error %"PRIu32"!", error); break; case CHANNEL_EVENT_TERMINATED: rail_virtual_channel_event_terminated(rail); break; } if (error && rail->rdpcontext) setChannelError(rail->rdpcontext, error, "rail_virtual_channel_init_event_ex reported an error"); }