Example #1
0
int freerds_server_outbound_write_message(rdsModuleConnector* connector, RDS_MSG_COMMON* msg)
{
	int status;
	wStream* s;

	s = connector->OutboundStream;
	Stream_SetPosition(s, 0);

	freerds_server_message_write(NULL, msg);
	Stream_EnsureRemainingCapacity(s, msg->length);
	freerds_server_message_write(s, msg);

	status = freerds_named_pipe_write(connector->hClientPipe, Stream_Buffer(s), msg->length);

	return status;
}
Example #2
0
int freerds_client_outbound_write_message(rdsBackend* backend, RDS_MSG_COMMON* msg)
{
	int status;
	wStream* s;

	s = backend->OutboundStream;
	Stream_SetPosition(s, 0);

	freerds_client_message_write(NULL, msg);
	Stream_EnsureRemainingCapacity(s, msg->length);
	freerds_client_message_write(s, msg);

	status = freerds_named_pipe_write(backend->hClientPipe, Stream_Buffer(s), msg->length);

	return status;
}
Example #3
0
int freerds_init_client(HANDLE hClientPipe, rdpSettings* settings, wStream* s)
{
	RDS_MSG_CAPABILITIES capabilities;

	ZeroMemory(&capabilities, sizeof(RDS_MSG_CAPABILITIES));
	capabilities.type = RDS_CLIENT_CAPABILITIES;
	capabilities.Version = 1;
	capabilities.DesktopWidth = settings->DesktopWidth;
	capabilities.DesktopHeight = settings->DesktopHeight;
	capabilities.KeyboardLayout = settings->KeyboardLayout;
	capabilities.KeyboardType = settings->KeyboardType;
	capabilities.KeyboardSubType = settings->KeyboardSubType;

	freerds_write_capabilities(s, &capabilities);

	return freerds_named_pipe_write(hClientPipe, Stream_Buffer(s), Stream_GetPosition(s));
}
Example #4
0
int freerds_client_outbound_vblank_event(rdsModuleConnector* connector)
{
	int length;
	int status;
	wStream* s;
	RDS_MSG_VBLANK_EVENT msg;

	msg.msgFlags = 0;
	msg.type = RDS_CLIENT_VBLANK_EVENT;

	s = connector->OutboundStream;
	Stream_SetPosition(s, 0);

	length = freerds_write_vblank_event(NULL, &msg);
	freerds_write_vblank_event(s, &msg);

	status = freerds_named_pipe_write(connector->hClientPipe, Stream_Buffer(s), length);

	return status;
}
Example #5
0
int freerds_client_outbound_suppress_output(rdsBackend* backend, UINT32 suppress_output)
{
	int length;
	int status;
	wStream* s;
	RDS_MSG_SUPPRESS_OUTPUT msg;

	msg.msgFlags = 0;
	msg.type = RDS_CLIENT_SUPPRESS_OUTPUT;
	msg.activeOutput = suppress_output;

	s = backend->OutboundStream;
	Stream_SetPosition(s, 0);

	length = freerds_write_suppress_output(NULL, &msg);
	freerds_write_suppress_output(s, &msg);

	status = freerds_named_pipe_write(backend->hClientPipe, Stream_Buffer(s), length);

	return status;
}
Example #6
0
int freerds_client_outbound_synchronize_keyboard_event(rdsModuleConnector* connector, DWORD flags)
{
	int length;
	int status;
	wStream* s;
	RDS_MSG_SYNCHRONIZE_KEYBOARD_EVENT msg;

	msg.msgFlags = 0;
	msg.type = RDS_CLIENT_SYNCHRONIZE_KEYBOARD_EVENT;

	msg.flags = flags;

	s = connector->OutboundStream;
	Stream_SetPosition(s, 0);

	length = freerds_write_synchronize_keyboard_event(NULL, &msg);
	freerds_write_synchronize_keyboard_event(s, &msg);

	status = freerds_named_pipe_write(connector->hClientPipe, Stream_Buffer(s), length);

	return status;
}
Example #7
0
int freerds_client_outbound_virtual_keyboard_event(rdsModuleConnector* connector, DWORD flags, DWORD code)
{
	int length;
	int status;
	wStream* s;
	RDS_MSG_VIRTUAL_KEYBOARD_EVENT msg;

	msg.msgFlags = 0;
	msg.type = RDS_CLIENT_VIRTUAL_KEYBOARD_EVENT;

	msg.flags = flags;
	msg.code = code;

	s = connector->OutboundStream;
	Stream_SetPosition(s, 0);

	length = freerds_write_virtual_keyboard_event(NULL, &msg);
	freerds_write_virtual_keyboard_event(s, &msg);

	status = freerds_named_pipe_write(connector->hClientPipe, Stream_Buffer(s), length);

	return status;
}
Example #8
0
int freerds_client_outbound_unicode_keyboard_event(rdsBackend* backend, DWORD flags, DWORD code)
{
	int length;
	int status;
	wStream* s;
	RDS_MSG_UNICODE_KEYBOARD_EVENT msg;

	msg.msgFlags = 0;
	msg.type = RDS_CLIENT_UNICODE_KEYBOARD_EVENT;

	msg.flags = flags;
	msg.code = code;

	s = backend->OutboundStream;
	Stream_SetPosition(s, 0);

	length = freerds_write_unicode_keyboard_event(NULL, &msg);
	freerds_write_unicode_keyboard_event(s, &msg);

	status = freerds_named_pipe_write(backend->hClientPipe, Stream_Buffer(s), length);

	return status;
}
Example #9
0
int freerds_client_outbound_extended_mouse_event(rdsModuleConnector* connector, DWORD flags, DWORD x, DWORD y)
{
	int length;
	int status;
	wStream* s;
	RDS_MSG_EXTENDED_MOUSE_EVENT msg;

	msg.msgFlags = 0;
	msg.type = RDS_CLIENT_EXTENDED_MOUSE_EVENT;

	msg.flags = flags;
	msg.x = x;
	msg.y = y;

	s = connector->OutboundStream;
	Stream_SetPosition(s, 0);

	length = freerds_write_extended_mouse_event(NULL, &msg);
	freerds_write_extended_mouse_event(s, &msg);

	status = freerds_named_pipe_write(connector->hClientPipe, Stream_Buffer(s), length);

	return status;
}
Example #10
0
int freerds_client_outbound_mouse_event(rdsBackend* backend, DWORD flags, DWORD x, DWORD y)
{
	int length;
	int status;
	wStream* s;
	RDS_MSG_MOUSE_EVENT msg;

	msg.msgFlags = 0;
	msg.type = RDS_CLIENT_MOUSE_EVENT;

	msg.flags = flags;
	msg.x = x;
	msg.y = y;

	s = backend->OutboundStream;
	Stream_SetPosition(s, 0);

	length = freerds_write_mouse_event(NULL, &msg);
	freerds_write_mouse_event(s, &msg);

	status = freerds_named_pipe_write(backend->hClientPipe, Stream_Buffer(s), length);

	return status;
}