Blame include/freerdp/client/file.h

Packit 1fb8d4
/**
Packit 1fb8d4
 * FreeRDP: A Remote Desktop Protocol Implementation
Packit 1fb8d4
 * .rdp file
Packit 1fb8d4
 *
Packit 1fb8d4
 * Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
Packit 1fb8d4
 *
Packit 1fb8d4
 * Licensed under the Apache License, Version 2.0 (the "License");
Packit 1fb8d4
 * you may not use this file except in compliance with the License.
Packit 1fb8d4
 * You may obtain a copy of the License at
Packit 1fb8d4
 *
Packit 1fb8d4
 *     http://www.apache.org/licenses/LICENSE-2.0
Packit 1fb8d4
 *
Packit 1fb8d4
 * Unless required by applicable law or agreed to in writing, software
Packit 1fb8d4
 * distributed under the License is distributed on an "AS IS" BASIS,
Packit 1fb8d4
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit 1fb8d4
 * See the License for the specific language governing permissions and
Packit 1fb8d4
 * limitations under the License.
Packit 1fb8d4
 */
Packit 1fb8d4
Packit 1fb8d4
#ifndef FREERDP_CLIENT_RDP_FILE_H
Packit 1fb8d4
#define FREERDP_CLIENT_RDP_FILE_H
Packit 1fb8d4
Packit 1fb8d4
#include <freerdp/api.h>
Packit 1fb8d4
#include <freerdp/freerdp.h>
Packit 1fb8d4
Packit 1fb8d4
#define RDP_FILE_LINE_FLAG_FORMATTED		0x00000001
Packit 1fb8d4
#define RDP_FILE_LINE_FLAG_STANDARD		0x00000002
Packit 1fb8d4
#define RDP_FILE_LINE_FLAG_TYPE_STRING		0x00000010
Packit 1fb8d4
#define RDP_FILE_LINE_FLAG_TYPE_INTEGER		0x00000020
Packit 1fb8d4
#define RDP_FILE_LINE_FLAG_TYPE_BINARY		0x00000040
Packit 1fb8d4
Packit 1fb8d4
struct rdp_file_line
Packit 1fb8d4
{
Packit 1fb8d4
	int index;
Packit 1fb8d4
	char* text;
Packit 1fb8d4
	DWORD flags;
Packit 1fb8d4
	char* name;
Packit 1fb8d4
	LPSTR sValue;
Packit 1fb8d4
	DWORD iValue;
Packit 1fb8d4
	PBYTE bValue;
Packit 1fb8d4
	int valueLength;
Packit 1fb8d4
};
Packit 1fb8d4
typedef struct rdp_file_line rdpFileLine;
Packit 1fb8d4
Packit 1fb8d4
struct rdp_file
Packit 1fb8d4
{
Packit 1fb8d4
	DWORD UseMultiMon; /* use multimon */
Packit 1fb8d4
	DWORD ScreenModeId; /* screen mode id */
Packit 1fb8d4
	DWORD SpanMonitors; /* span monitors */
Packit 1fb8d4
	DWORD SmartSizing; /* smartsizing */
Packit 1fb8d4
	DWORD EnableSuperSpan; /* enablesuperpan */
Packit 1fb8d4
	DWORD SuperSpanAccelerationFactor; /* superpanaccelerationfactor */
Packit 1fb8d4
Packit 1fb8d4
	DWORD DesktopWidth; /* desktopwidth */
Packit 1fb8d4
	DWORD DesktopHeight; /* desktopheight */
Packit 1fb8d4
	DWORD DesktopSizeId; /* desktop size id */
Packit 1fb8d4
	DWORD SessionBpp; /* session bpp */
Packit 1fb8d4
Packit 1fb8d4
	DWORD Compression; /* compression */
Packit 1fb8d4
	DWORD KeyboardHook; /* keyboardhook */
Packit 1fb8d4
	DWORD DisableCtrlAltDel; /* disable ctrl+alt+del */
Packit 1fb8d4
Packit 1fb8d4
	DWORD AudioMode; /* audiomode */
Packit 1fb8d4
	DWORD AudioQualityMode; /* audioqualitymode */
Packit 1fb8d4
	DWORD AudioCaptureMode; /* audiocapturemode */
Packit 1fb8d4
	DWORD VideoPlaybackMode; /* videoplaybackmode */
Packit 1fb8d4
Packit 1fb8d4
	DWORD ConnectionType; /* connection type */
Packit 1fb8d4
Packit 1fb8d4
	DWORD NetworkAutoDetect; /* networkautodetect */
Packit 1fb8d4
	DWORD BandwidthAutoDetect; /* bandwidthautodetect */
Packit 1fb8d4
Packit 1fb8d4
	DWORD PinConnectionBar; /* pinconnectionbar */
Packit 1fb8d4
	DWORD DisplayConnectionBar; /* displayconnectionbar */
Packit 1fb8d4
Packit 1fb8d4
	DWORD WorkspaceId; /* workspaceid */
Packit 1fb8d4
	DWORD EnableWorkspaceReconnect; /* enableworkspacereconnect */
Packit 1fb8d4
Packit 1fb8d4
	DWORD DisableWallpaper; /* disable wallpaper */
Packit 1fb8d4
	DWORD AllowFontSmoothing; /* allow font smoothing */
Packit 1fb8d4
	DWORD AllowDesktopComposition; /* allow desktop composition */
Packit 1fb8d4
	DWORD DisableFullWindowDrag; /* disable full window drag */
Packit 1fb8d4
	DWORD DisableMenuAnims; /* disable menu anims */
Packit 1fb8d4
	DWORD DisableThemes; /* disable themes */
Packit 1fb8d4
	DWORD DisableCursorSetting; /* disable cursor setting */
Packit 1fb8d4
Packit 1fb8d4
	DWORD BitmapCacheSize; /* bitmapcachesize */
Packit 1fb8d4
	DWORD BitmapCachePersistEnable; /* bitmapcachepersistenable */
Packit 1fb8d4
Packit 1fb8d4
	LPSTR Username; /* username */
Packit 1fb8d4
	LPSTR Domain; /* domain */
Packit 1fb8d4
	LPSTR Password; /*password*/
Packit 1fb8d4
	PBYTE Password51; /* password 51 */
Packit 1fb8d4
Packit 1fb8d4
	LPSTR FullAddress; /* full address */
Packit 1fb8d4
	LPSTR AlternateFullAddress; /* alternate full address */
Packit 1fb8d4
	DWORD ServerPort; /* server port */
Packit 1fb8d4
Packit 1fb8d4
	DWORD RedirectDrives; /* redirectdrives */
Packit 1fb8d4
	DWORD RedirectPrinters; /* redirectprinters */
Packit 1fb8d4
	DWORD RedirectComPorts; /* redirectcomports */
Packit 1fb8d4
	DWORD RedirectSmartCards; /* redirectsmartcards */
Packit 1fb8d4
	DWORD RedirectClipboard; /* redirectclipboard */
Packit 1fb8d4
	DWORD RedirectPosDevices; /* redirectposdevices */
Packit 1fb8d4
	DWORD RedirectDirectX; /* redirectdirectx */
Packit 1fb8d4
	DWORD DisablePrinterRedirection; /* disableprinterredirection */
Packit 1fb8d4
	DWORD DisableClipboardRedirection; /* disableclipboardredirection */
Packit 1fb8d4
	LPSTR UsbDevicesToRedirect; /* usbdevicestoredirect */
Packit 1fb8d4
Packit 1fb8d4
	DWORD ConnectToConsole; /* connect to console */
Packit 1fb8d4
	DWORD AdministrativeSession; /* administrative session */
Packit 1fb8d4
	DWORD AutoReconnectionEnabled; /* autoreconnection enabled */
Packit 1fb8d4
	DWORD AutoReconnectMaxRetries; /* autoreconnect max retries */
Packit 1fb8d4
Packit 1fb8d4
	DWORD PublicMode; /* public mode */
Packit 1fb8d4
	DWORD AuthenticationLevel; /* authentication level */
Packit 1fb8d4
	DWORD PromptCredentialOnce; /* promptcredentialonce */
Packit 1fb8d4
	DWORD PromptForCredentials; /* prompt for credentials */
Packit 1fb8d4
	DWORD PromptForCredentialsOnce; /* promptcredentialonce */
Packit 1fb8d4
	DWORD NegotiateSecurityLayer; /* negotiate security layer */
Packit 1fb8d4
	DWORD EnableCredSSPSupport; /* enablecredsspsupport */
Packit 1fb8d4
	LPSTR LoadBalanceInfo; /* loadbalanceinfo */
Packit 1fb8d4
Packit 1fb8d4
	DWORD RemoteApplicationMode; /* remoteapplicationmode */
Packit 1fb8d4
	LPSTR RemoteApplicationName; /* remoteapplicationname */
Packit 1fb8d4
	LPSTR RemoteApplicationIcon; /* remoteapplicationicon */
Packit 1fb8d4
	LPSTR RemoteApplicationProgram; /* remoteapplicationprogram */
Packit 1fb8d4
	LPSTR RemoteApplicationFile; /* remoteapplicationfile */
Packit 1fb8d4
	LPSTR RemoteApplicationGuid; /* remoteapplicationguid */
Packit 1fb8d4
	LPSTR RemoteApplicationCmdLine; /* remoteapplicationcmdline */
Packit 1fb8d4
	DWORD RemoteApplicationExpandCmdLine; /* remoteapplicationexpandcmdline */
Packit 1fb8d4
	DWORD RemoteApplicationExpandWorkingDir; /* remoteapplicationexpandworkingdir */
Packit 1fb8d4
	DWORD DisableConnectionSharing; /* disableconnectionsharing */
Packit 1fb8d4
	DWORD DisableRemoteAppCapsCheck; /* disableremoteappcapscheck */
Packit 1fb8d4
Packit 1fb8d4
	LPSTR AlternateShell; /* alternate shell */
Packit 1fb8d4
	LPSTR ShellWorkingDirectory; /* shell working directory */
Packit 1fb8d4
Packit 1fb8d4
	LPSTR GatewayHostname; /* gatewayhostname */
Packit 1fb8d4
	DWORD GatewayUsageMethod; /* gatewayusagemethod */
Packit 1fb8d4
	DWORD GatewayProfileUsageMethod; /* gatewayprofileusagemethod */
Packit 1fb8d4
	DWORD GatewayCredentialsSource; /* gatewaycredentialssource */
Packit 1fb8d4
	LPSTR GatewayAccessToken; /* gatewayaccesstoken */
Packit 1fb8d4
Packit 1fb8d4
	DWORD UseRedirectionServerName; /* use redirection server name */
Packit 1fb8d4
Packit 1fb8d4
	DWORD RdgIsKdcProxy; /* rdgiskdcproxy */
Packit 1fb8d4
	LPSTR KdcProxyName; /* kdcproxyname */
Packit 1fb8d4
Packit 1fb8d4
	LPSTR DrivesToRedirect; /* drivestoredirect */
Packit 1fb8d4
	LPSTR DevicesToRedirect; /* devicestoredirect */
Packit 1fb8d4
	LPSTR WinPosStr; /* winposstr */
Packit 1fb8d4
Packit 1fb8d4
	LPSTR PreconnectionBlob; /* pcb */
Packit 1fb8d4
Packit 1fb8d4
	int lineCount;
Packit 1fb8d4
	int lineSize;
Packit 1fb8d4
	rdpFileLine* lines;
Packit 1fb8d4
Packit 1fb8d4
	int argc;
Packit 1fb8d4
	char** argv;
Packit 1fb8d4
	int argSize;
Packit 1fb8d4
};
Packit 1fb8d4
Packit 1fb8d4
typedef struct rdp_file rdpFile;
Packit 1fb8d4
Packit 1fb8d4
#ifdef __cplusplus
Packit 1fb8d4
extern "C" {
Packit 1fb8d4
#endif
Packit 1fb8d4
Packit 1fb8d4
FREERDP_API BOOL freerdp_client_parse_rdp_file(rdpFile* file, const char* name);
Packit 1fb8d4
FREERDP_API BOOL freerdp_client_parse_rdp_file_buffer(rdpFile* file, const BYTE* buffer, size_t size);
Packit 1fb8d4
FREERDP_API BOOL freerdp_client_populate_settings_from_rdp_file(rdpFile* file, rdpSettings* settings);
Packit 1fb8d4
Packit 1fb8d4
FREERDP_API BOOL freerdp_client_populate_rdp_file_from_settings(rdpFile* file, const rdpSettings* settings);
Packit 1fb8d4
FREERDP_API BOOL freerdp_client_write_rdp_file(const rdpFile* file, const char* name, BOOL unicode);
Packit 1fb8d4
FREERDP_API size_t freerdp_client_write_rdp_file_buffer(const rdpFile* file, char* buffer, size_t size);
Packit 1fb8d4
Packit 1fb8d4
FREERDP_API int freerdp_client_rdp_file_set_string_option(rdpFile* file, const char* name, const char* value);
Packit 1fb8d4
FREERDP_API const char* freerdp_client_rdp_file_get_string_option(rdpFile* file, const char* name);
Packit 1fb8d4
Packit 1fb8d4
FREERDP_API int freerdp_client_rdp_file_set_integer_option(rdpFile* file, const char* name, int value);
Packit 1fb8d4
FREERDP_API int freerdp_client_rdp_file_get_integer_option(rdpFile* file, const char* name);
Packit 1fb8d4
Packit 1fb8d4
FREERDP_API rdpFile* freerdp_client_rdp_file_new(void);
Packit 1fb8d4
FREERDP_API void freerdp_client_rdp_file_free(rdpFile* file);
Packit 1fb8d4
Packit 1fb8d4
#ifdef __cplusplus
Packit 1fb8d4
}
Packit 1fb8d4
#endif
Packit 1fb8d4
Packit 1fb8d4
#endif /* FREERDP_CLIENT_RDP_FILE_H */