예제 #1
0
BOOL rail_recv_handshake_order(railPlugin* rail, RAIL_HANDSHAKE_ORDER* handshake, wStream* s)
{
	RAIL_SYSPARAM_ORDER sysparam;
	RAIL_CLIENT_STATUS_ORDER clientStatus;
	RailClientContext* context = rail_get_client_interface(rail);

	if (!rail_read_handshake_order(s, handshake))
		return FALSE;

	if (context->custom)
	{
		IFCALL(context->ServerHandshake, context, handshake);
		return TRUE;
	}

	handshake->buildNumber = 0x00001DB0;
	rail_send_handshake_order(rail, handshake);

	ZeroMemory(&clientStatus, sizeof(RAIL_CLIENT_STATUS_ORDER));
	clientStatus.flags = RAIL_CLIENTSTATUS_ALLOWLOCALMOVESIZE;
	rail_send_client_status_order(rail, &clientStatus);

	/* sysparam update */

	ZeroMemory(&sysparam, sizeof(RAIL_SYSPARAM_ORDER));

	sysparam.params = 0;

	sysparam.params |= SPI_MASK_SET_HIGH_CONTRAST;
	sysparam.highContrast.colorScheme.string = NULL;
	sysparam.highContrast.colorScheme.length = 0;
	sysparam.highContrast.flags = 0x7E;

	sysparam.params |= SPI_MASK_SET_MOUSE_BUTTON_SWAP;
	sysparam.mouseButtonSwap = FALSE;

	sysparam.params |= SPI_MASK_SET_KEYBOARD_PREF;
	sysparam.keyboardPref = FALSE;

	sysparam.params |= SPI_MASK_SET_DRAG_FULL_WINDOWS;
	sysparam.dragFullWindows = FALSE;

	sysparam.params |= SPI_MASK_SET_KEYBOARD_CUES;
	sysparam.keyboardCues = FALSE;

	sysparam.params |= SPI_MASK_SET_WORK_AREA;
	sysparam.workArea.left = 0;
	sysparam.workArea.top = 0;
	sysparam.workArea.right = 1024;
	sysparam.workArea.bottom = 768;

	rail_send_channel_event(rail, RailChannel_GetSystemParam, &sysparam);

	return TRUE;
}
예제 #2
0
파일: rail_orders.c 프로젝트: C4rt/FreeRDP
BOOL rail_recv_langbar_info_order(railPlugin* rail, RAIL_LANGBAR_INFO_ORDER* langBarInfo, wStream* s)
{
	RailClientContext* context = rail_get_client_interface(rail);

	if (!rail_read_langbar_info_order(s, langBarInfo))
		return FALSE;

	if (context->custom)
	{
		IFCALL(context->ServerLanguageBarInfo, context, langBarInfo);
	}

	return TRUE;
}
예제 #3
0
파일: rail_orders.c 프로젝트: C4rt/FreeRDP
BOOL rail_recv_server_get_appid_resp_order(railPlugin* rail, RAIL_GET_APPID_RESP_ORDER* getAppIdResp, wStream* s)
{
	RailClientContext* context = rail_get_client_interface(rail);

	if (!rail_read_server_get_appid_resp_order(s, getAppIdResp))
		return FALSE;

	if (context->custom)
	{
		IFCALL(context->ServerGetAppIdResponse, context, getAppIdResp);
	}

	return TRUE;
}
예제 #4
0
파일: rail_orders.c 프로젝트: C4rt/FreeRDP
BOOL rail_recv_server_localmovesize_order(railPlugin* rail, RAIL_LOCALMOVESIZE_ORDER* localMoveSize, wStream* s)
{
	RailClientContext* context = rail_get_client_interface(rail);

	if (!rail_read_server_localmovesize_order(s, localMoveSize))
		return FALSE;

	if (context->custom)
	{
		IFCALL(context->ServerLocalMoveSize, context, localMoveSize);
	}

	return TRUE;
}
예제 #5
0
파일: rail_orders.c 프로젝트: C4rt/FreeRDP
BOOL rail_recv_server_minmaxinfo_order(railPlugin* rail, RAIL_MINMAXINFO_ORDER* minMaxInfo, wStream* s)
{
	RailClientContext* context = rail_get_client_interface(rail);

	if (!rail_read_server_minmaxinfo_order(s, minMaxInfo))
		return FALSE;

	if (context->custom)
	{
		IFCALL(context->ServerMinMaxInfo, context, minMaxInfo);
	}

	return TRUE;
}
예제 #6
0
파일: rail_orders.c 프로젝트: C4rt/FreeRDP
BOOL rail_recv_server_sysparam_order(railPlugin* rail, RAIL_SYSPARAM_ORDER* sysparam, wStream* s)
{
	RailClientContext* context = rail_get_client_interface(rail);

	if (!rail_read_server_sysparam_order(s, sysparam))
		return FALSE;

	if (context->custom)
	{
		IFCALL(context->ServerSystemParam, context, sysparam);
	}

	return TRUE;
}
예제 #7
0
파일: rail_orders.c 프로젝트: C4rt/FreeRDP
BOOL rail_recv_handshake_ex_order(railPlugin* rail, RAIL_HANDSHAKE_EX_ORDER* handshakeEx, wStream* s)
{
	RailClientContext* context = rail_get_client_interface(rail);

	if (!rail_read_handshake_ex_order(s, handshakeEx))
		return FALSE;

	if (context->custom)
	{
		IFCALL(context->ClientHandshakeEx, context, handshakeEx);
	}

	return TRUE;
}
예제 #8
0
파일: rail_orders.c 프로젝트: C4rt/FreeRDP
BOOL rail_recv_exec_result_order(railPlugin* rail, RAIL_EXEC_RESULT_ORDER* execResult, wStream* s)
{
	RailClientContext* context = rail_get_client_interface(rail);

	ZeroMemory(execResult, sizeof(RAIL_EXEC_RESULT_ORDER));

	if (!rail_read_server_exec_result_order(s, execResult))
		return FALSE;

	if (context->custom)
	{
		IFCALL(context->ServerExecuteResult, context, execResult);
	}

	return TRUE;
}