Exemple #1
0
static VOID VCAPITYPE rail_virtual_channel_open_event(DWORD openHandle, UINT event,
        LPVOID pData, UINT32 dataLength, UINT32 totalLength, UINT32 dataFlags)
{
    railPlugin* rail;

    rail = (railPlugin*) rail_get_open_handle_data(openHandle);

    if (!rail)
    {
        WLog_ERR(TAG,  "rail_virtual_channel_open_event: error no match");
        return;
    }

    switch (event)
    {
    case CHANNEL_EVENT_DATA_RECEIVED:
        rail_virtual_channel_event_data_received(rail, pData, dataLength, totalLength, dataFlags);
        break;

    case CHANNEL_EVENT_WRITE_COMPLETE:
        Stream_Free((wStream*) pData, TRUE);
        break;

    case CHANNEL_EVENT_USER:
        break;
    }
}
Exemple #2
0
static VOID VCAPITYPE rail_virtual_channel_open_event_ex(LPVOID lpUserParam, DWORD openHandle,
        UINT event,
        LPVOID pData, UINT32 dataLength, UINT32 totalLength, UINT32 dataFlags)
{
	UINT error = CHANNEL_RC_OK;
	railPlugin* rail = (railPlugin*) lpUserParam;

	if (!rail || (rail->OpenHandle != openHandle))
	{
		WLog_ERR(TAG, "error no match");
		return;
	}

	switch (event)
	{
		case CHANNEL_EVENT_DATA_RECEIVED:
			if ((error = rail_virtual_channel_event_data_received(rail, pData, dataLength,
			             totalLength, dataFlags)))
				WLog_ERR(TAG, "rail_virtual_channel_event_data_received failed with error %"PRIu32"!",
				         error);

			break;

		case CHANNEL_EVENT_WRITE_COMPLETE:
			Stream_Free((wStream*) pData, TRUE);
			break;

		case CHANNEL_EVENT_USER:
			break;
	}

	if (error && rail->rdpcontext)
		setChannelError(rail->rdpcontext, error,
		                "rail_virtual_channel_open_event reported an error");

	return;
}