Exemple #1
0
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");

}