static VOID VCAPITYPE remdesk_virtual_channel_open_event(DWORD openHandle, UINT event, LPVOID pData, UINT32 dataLength, UINT32 totalLength, UINT32 dataFlags) { remdeskPlugin* remdesk; remdesk = (remdeskPlugin*) remdesk_get_open_handle_data(openHandle); if (!remdesk) { WLog_ERR(TAG, "error no match"); return; } switch (event) { case CHANNEL_EVENT_DATA_RECEIVED: remdesk_virtual_channel_event_data_received(remdesk, pData, dataLength, totalLength, dataFlags); break; case CHANNEL_EVENT_WRITE_COMPLETE: Stream_Free((wStream*) pData, TRUE); break; case CHANNEL_EVENT_USER: break; } }
static VOID VCAPITYPE remdesk_virtual_channel_open_event(DWORD openHandle, UINT event, LPVOID pData, UINT32 dataLength, UINT32 totalLength, UINT32 dataFlags) { remdeskPlugin* remdesk; UINT error = CHANNEL_RC_OK; remdesk = (remdeskPlugin*) remdesk_get_open_handle_data(openHandle); if (!remdesk) { WLog_ERR(TAG, "error no match"); return; } switch (event) { case CHANNEL_EVENT_DATA_RECEIVED: if ((error = remdesk_virtual_channel_event_data_received(remdesk, pData, dataLength, totalLength, dataFlags))) WLog_ERR(TAG, "remdesk_virtual_channel_event_data_received failed with error %lu!", error); break; case CHANNEL_EVENT_WRITE_COMPLETE: Stream_Free((wStream*) pData, TRUE); break; case CHANNEL_EVENT_USER: break; default: WLog_ERR(TAG, "unhandled event %lu!", event); error = ERROR_INTERNAL_ERROR; } if (error && remdesk->rdpcontext) setChannelError(remdesk->rdpcontext, error, "remdesk_virtual_channel_open_event reported an error"); }