mirror of
https://github.com/reactos/reactos.git
synced 2025-02-20 15:35:04 +00:00
Move tsclient to rosapps (not included in build process and superseded by Geds mstsc implementation) [1/2]
svn path=/trunk/; revision=44365
This commit is contained in:
parent
93d086d81a
commit
23df1a2f4b
159 changed files with 78306 additions and 0 deletions
38
rosapps/applications/net/tsclient/MissTosca.sln
Normal file
38
rosapps/applications/net/tsclient/MissTosca.sln
Normal file
|
@ -0,0 +1,38 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual C++ Express 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rdesktop-core", "rdesktop\rdesktop-core.vcproj", "{8620E9B2-9AF0-4F69-A5AF-C195D5F86372}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mstsc", "mstsc\mstsc.vcproj", "{1B415732-1F37-415F-957B-EA436301860D}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mstscax", "mstscax\mstscax.vcproj", "{2C217E9E-9D77-4D6A-9259-216FD56BA56F}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rdesktop-core-tester", "porting-tools\rdesktop-core-tester\rdesktop-core-tester.vcproj", "{B172A623-E2BD-4E3F-86E6-620548FE255B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{8620E9B2-9AF0-4F69-A5AF-C195D5F86372}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{8620E9B2-9AF0-4F69-A5AF-C195D5F86372}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{8620E9B2-9AF0-4F69-A5AF-C195D5F86372}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{8620E9B2-9AF0-4F69-A5AF-C195D5F86372}.Release|Win32.Build.0 = Release|Win32
|
||||
{1B415732-1F37-415F-957B-EA436301860D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{1B415732-1F37-415F-957B-EA436301860D}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{1B415732-1F37-415F-957B-EA436301860D}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{1B415732-1F37-415F-957B-EA436301860D}.Release|Win32.Build.0 = Release|Win32
|
||||
{2C217E9E-9D77-4D6A-9259-216FD56BA56F}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2C217E9E-9D77-4D6A-9259-216FD56BA56F}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{2C217E9E-9D77-4D6A-9259-216FD56BA56F}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{2C217E9E-9D77-4D6A-9259-216FD56BA56F}.Release|Win32.Build.0 = Release|Win32
|
||||
{B172A623-E2BD-4E3F-86E6-620548FE255B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{B172A623-E2BD-4E3F-86E6-620548FE255B}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{B172A623-E2BD-4E3F-86E6-620548FE255B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{B172A623-E2BD-4E3F-86E6-620548FE255B}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
7
rosapps/applications/net/tsclient/mstsc/mstsc.cpp
Normal file
7
rosapps/applications/net/tsclient/mstsc/mstsc.cpp
Normal file
|
@ -0,0 +1,7 @@
|
|||
#include "stdafx.h"
|
||||
|
||||
int _tmain(int argc, _TCHAR* argv[])
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
223
rosapps/applications/net/tsclient/mstsc/mstsc.vcproj
Normal file
223
rosapps/applications/net/tsclient/mstsc/mstsc.vcproj
Normal file
|
@ -0,0 +1,223 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8,00"
|
||||
Name="mstsc"
|
||||
ProjectGUID="{1B415732-1F37-415F-957B-EA436301860D}"
|
||||
RootNamespace="mstsc"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="kernel32.lib $(NoInherit)"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="kernel32.lib $(NoInherit)"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\mstsc.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
8
rosapps/applications/net/tsclient/mstsc/stdafx.cpp
Normal file
8
rosapps/applications/net/tsclient/mstsc/stdafx.cpp
Normal file
|
@ -0,0 +1,8 @@
|
|||
// stdafx.cpp : source file that includes just the standard includes
|
||||
// mstsc.pch will be the pre-compiled header
|
||||
// stdafx.obj will contain the pre-compiled type information
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
// TODO: reference any additional headers you need in STDAFX.H
|
||||
// and not in this file
|
15
rosapps/applications/net/tsclient/mstsc/stdafx.h
Normal file
15
rosapps/applications/net/tsclient/mstsc/stdafx.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
// stdafx.h : include file for standard system include files,
|
||||
// or project specific include files that are used frequently, but
|
||||
// are changed infrequently
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
||||
#include <stdio.h>
|
||||
#include <tchar.h>
|
||||
|
||||
|
||||
|
||||
// TODO: reference additional headers your program requires here
|
7
rosapps/applications/net/tsclient/mstscax/mstscax.cpp
Normal file
7
rosapps/applications/net/tsclient/mstscax/mstscax.cpp
Normal file
|
@ -0,0 +1,7 @@
|
|||
#include "stdafx.h"
|
||||
|
||||
int _tmain(int argc, _TCHAR* argv[])
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
223
rosapps/applications/net/tsclient/mstscax/mstscax.vcproj
Normal file
223
rosapps/applications/net/tsclient/mstscax/mstscax.vcproj
Normal file
|
@ -0,0 +1,223 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8,00"
|
||||
Name="mstscax"
|
||||
ProjectGUID="{2C217E9E-9D77-4D6A-9259-216FD56BA56F}"
|
||||
RootNamespace="mstscax"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="kernel32.lib $(NoInherit)"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="kernel32.lib $(NoInherit)"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\mstscax.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
8
rosapps/applications/net/tsclient/mstscax/stdafx.cpp
Normal file
8
rosapps/applications/net/tsclient/mstscax/stdafx.cpp
Normal file
|
@ -0,0 +1,8 @@
|
|||
// stdafx.cpp : source file that includes just the standard includes
|
||||
// mstscax.pch will be the pre-compiled header
|
||||
// stdafx.obj will contain the pre-compiled type information
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
// TODO: reference any additional headers you need in STDAFX.H
|
||||
// and not in this file
|
15
rosapps/applications/net/tsclient/mstscax/stdafx.h
Normal file
15
rosapps/applications/net/tsclient/mstscax/stdafx.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
// stdafx.h : include file for standard system include files,
|
||||
// or project specific include files that are used frequently, but
|
||||
// are changed infrequently
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
||||
#include <stdio.h>
|
||||
#include <tchar.h>
|
||||
|
||||
|
||||
|
||||
// TODO: reference additional headers your program requires here
|
5011
rosapps/applications/net/tsclient/porting-tools/mstscax/mstscax.cpp
Normal file
5011
rosapps/applications/net/tsclient/porting-tools/mstscax/mstscax.cpp
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,14 @@
|
|||
LIBRARY mstscax.dll
|
||||
|
||||
EXPORTS
|
||||
; OLE inproc server
|
||||
DllGetClassObject PRIVATE
|
||||
DllCanUnloadNow PRIVATE
|
||||
|
||||
; OLE self-registration
|
||||
; TODO
|
||||
|
||||
; Private APIs
|
||||
DllGetTscCtlVer
|
||||
|
||||
; EOF
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual C++ Express 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mstscax", "mstscax.vcproj", "{933B2293-F12F-4B01-98B4-BF635B8B4F36}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{933B2293-F12F-4B01-98B4-BF635B8B4F36}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{933B2293-F12F-4B01-98B4-BF635B8B4F36}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{933B2293-F12F-4B01-98B4-BF635B8B4F36}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{933B2293-F12F-4B01-98B4-BF635B8B4F36}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,229 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8,00"
|
||||
Name="mstscax"
|
||||
ProjectGUID="{933B2293-F12F-4B01-98B4-BF635B8B4F36}"
|
||||
RootNamespace="mstscax"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="kernel32.lib ole32.lib $(NoInherit)"
|
||||
LinkIncremental="2"
|
||||
ModuleDefinitionFile="$(ProjectDir)/mstscax.def"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="kernel32.lib ole32.lib $(NoInherit)"
|
||||
LinkIncremental="1"
|
||||
ModuleDefinitionFile="$(ProjectDir)/mstscax.def"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\mstscax.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\mstscax.def"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
|
@ -0,0 +1 @@
|
|||
#include "stdafx.h"
|
|
@ -0,0 +1,33 @@
|
|||
#pragma once
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <tchar.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <algorithm>
|
||||
#include <iterator>
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#define STRICT
|
||||
#define NOMINMAX
|
||||
|
||||
#include <windows.h>
|
||||
#include <objbase.h>
|
||||
#include <objsafe.h>
|
||||
|
||||
#include <ocidl.h>
|
||||
|
||||
#include <strsafe.h>
|
||||
|
||||
#import "./rdesktop-core-tester.tlb" \
|
||||
exclude("LONG_PTR", "UINT_PTR", "wireHWND", "_RemotableHandle", "__MIDL_IWinTypes_0009") \
|
||||
named_guids \
|
||||
no_implementation \
|
||||
no_smart_pointers \
|
||||
raw_dispinterfaces \
|
||||
raw_interfaces_only \
|
||||
raw_native_types
|
||||
|
||||
// EOF
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,561 @@
|
|||
[
|
||||
#ifdef MSTSCLIB_REDIST_
|
||||
uuid(AF586AAE-B62A-420E-B796-294E7EE64C70),
|
||||
#else
|
||||
uuid(8C11EFA1-92C3-11D1-BC1E-00C04FA31489),
|
||||
#endif
|
||||
version(1.0)
|
||||
]
|
||||
library MSTSCLib
|
||||
{
|
||||
importlib("stdole32.tlb");
|
||||
|
||||
dispinterface IMsTscAxEvents;
|
||||
|
||||
interface IMsTscAx;
|
||||
interface IMsRdpClient;
|
||||
interface IMsRdpClient2;
|
||||
interface IMsRdpClient3;
|
||||
interface IMsRdpClient4;
|
||||
|
||||
interface IMsTscNonScriptable;
|
||||
interface IMsRdpClientNonScriptable;
|
||||
interface IMsRdpClientNonScriptable2;
|
||||
|
||||
interface IMsTscAdvancedSettings;
|
||||
interface IMsRdpClientAdvancedSettings;
|
||||
interface IMsRdpClientAdvancedSettings2;
|
||||
interface IMsRdpClientAdvancedSettings3;
|
||||
interface IMsRdpClientAdvancedSettings4;
|
||||
|
||||
interface IMsTscSecuredSettings;
|
||||
interface IMsRdpClientSecuredSettings;
|
||||
|
||||
interface IMsTscDebug;
|
||||
|
||||
typedef [public] enum __MIDL___MIDL_itf_mstsax_0275_0001
|
||||
{
|
||||
autoReconnectContinueAutomatic = 0,
|
||||
autoReconnectContinueStop = 1,
|
||||
autoReconnectContinueManual = 2
|
||||
}
|
||||
AutoReconnectContinueState;
|
||||
|
||||
typedef [public] enum __MIDL_IMsRdpClient_0001
|
||||
{
|
||||
exDiscReasonNoInfo = 0,
|
||||
exDiscReasonAPIInitiatedDisconnect = 1,
|
||||
exDiscReasonAPIInitiatedLogoff = 2,
|
||||
exDiscReasonServerIdleTimeout = 3,
|
||||
exDiscReasonServerLogonTimeout = 4,
|
||||
exDiscReasonReplacedByOtherConnection = 5,
|
||||
exDiscReasonOutOfMemory = 6,
|
||||
exDiscReasonServerDeniedConnection = 7,
|
||||
exDiscReasonServerDeniedConnectionFips = 8,
|
||||
exDiscReasonLicenseInternal = 256,
|
||||
exDiscReasonLicenseNoLicenseServer = 257,
|
||||
exDiscReasonLicenseNoLicense = 258,
|
||||
exDiscReasonLicenseErrClientMsg = 259,
|
||||
exDiscReasonLicenseHwidDoesntMatchLicense = 260,
|
||||
exDiscReasonLicenseErrClientLicense = 261,
|
||||
exDiscReasonLicenseCantFinishProtocol = 262,
|
||||
exDiscReasonLicenseClientEndedProtocol = 263,
|
||||
exDiscReasonLicenseErrClientEncryption = 264,
|
||||
exDiscReasonLicenseCantUpgradeLicense = 265,
|
||||
exDiscReasonLicenseNoRemoteConnections = 266,
|
||||
exDiscReasonProtocolRangeStart = 4096,
|
||||
exDiscReasonProtocolRangeEnd = 32767
|
||||
}
|
||||
ExtendedDisconnectReasonCode;
|
||||
|
||||
typedef [public] enum __MIDL_IMsRdpClient_0002
|
||||
{
|
||||
controlCloseCanProceed = 0,
|
||||
controlCloseWaitForEvents = 1
|
||||
}
|
||||
ControlCloseStatus;
|
||||
|
||||
typedef [public] unsigned __int3264 UINT_PTR;
|
||||
typedef [public] __int3264 LONG_PTR;
|
||||
|
||||
[uuid(336D5562-EFA8-482E-8CB3-C5C0FC7A7DB6)]
|
||||
dispinterface IMsTscAxEvents
|
||||
{
|
||||
properties:
|
||||
|
||||
methods:
|
||||
[id(0x00000001)] void OnConnecting();
|
||||
[id(0x00000002)] void OnConnected();
|
||||
[id(0x00000003)] void OnLoginComplete();
|
||||
[id(0x00000004)] void OnDisconnected([in] long discReason);
|
||||
[id(0x00000005)] void OnEnterFullScreenMode();
|
||||
[id(0x00000006)] void OnLeaveFullScreenMode();
|
||||
[id(0x00000007)] void OnChannelReceivedData([in] BSTR chanName, [in] BSTR data);
|
||||
[id(0x00000008)] void OnRequestGoFullScreen();
|
||||
[id(0x00000009)] void OnRequestLeaveFullScreen();
|
||||
[id(0x0000000a)] void OnFatalError([in] long errorCode);
|
||||
[id(0x0000000b)] void OnWarning([in] long warningCode);
|
||||
[id(0x0000000c)] void OnRemoteDesktopSizeChange([in] long width, [in] long height);
|
||||
[id(0x0000000d)] void OnIdleTimeoutNotification();
|
||||
[id(0x0000000e)] void OnRequestContainerMinimize();
|
||||
[id(0x0000000f)] void OnConfirmClose([out, retval] VARIANT_BOOL * pfAllowClose);
|
||||
[id(0x00000010)] void OnReceivedTSPublicKey([in] BSTR publicKey, [out, retval] VARIANT_BOOL * pfContinueLogon);
|
||||
[id(0x00000011)] void OnAutoReconnecting([in] long disconnectReason, [in] long attemptCount, [out, retval] AutoReconnectContinueState * pArcContinueStatus);
|
||||
[id(0x00000012)] void OnAuthenticationWarningDisplayed();
|
||||
[id(0x00000013)] void OnAuthenticationWarningDismissed();
|
||||
};
|
||||
|
||||
[
|
||||
#ifdef MSTSCLIB_REDIST_
|
||||
uuid(327BB5CD-834E-4400-AEF2-B30E15E5D682),
|
||||
#else
|
||||
uuid(8C11EFAE-92C3-11D1-BC1E-00C04FA31489),
|
||||
#endif
|
||||
dual,
|
||||
oleautomation
|
||||
]
|
||||
interface IMsTscAx: IDispatch
|
||||
{
|
||||
[id(0x00000001), propput] HRESULT Server([in] BSTR pServer);
|
||||
[id(0x00000001), propget] HRESULT Server([out, retval] BSTR * pServer);
|
||||
[id(0x00000002), propput] HRESULT Domain([in] BSTR pDomain);
|
||||
[id(0x00000002), propget] HRESULT Domain([out, retval] BSTR * pDomain);
|
||||
[id(0x00000003), propput] HRESULT UserName([in] BSTR pUserName);
|
||||
[id(0x00000003), propget] HRESULT UserName([out, retval] BSTR * pUserName);
|
||||
[id(0x00000004), propput] HRESULT DisconnectedText([in] BSTR pDisconnectedText);
|
||||
[id(0x00000004), propget] HRESULT DisconnectedText([out, retval] BSTR * pDisconnectedText);
|
||||
[id(0x00000005), propput] HRESULT ConnectingText([in] BSTR pConnectingText);
|
||||
[id(0x00000005), propget] HRESULT ConnectingText([out, retval] BSTR * pConnectingText);
|
||||
[id(0x00000006), propget] HRESULT Connected([out, retval] short * pIsConnected);
|
||||
[id(0x0000000c), propput] HRESULT DesktopWidth([in] long pVal);
|
||||
[id(0x0000000c), propget] HRESULT DesktopWidth([out, retval] long * pVal);
|
||||
[id(0x0000000d), propput] HRESULT DesktopHeight([in] long pVal);
|
||||
[id(0x0000000d), propget] HRESULT DesktopHeight([out, retval] long * pVal);
|
||||
[id(0x00000010), propput] HRESULT StartConnected([in] long pfStartConnected);
|
||||
[id(0x00000010), propget] HRESULT StartConnected([out, retval] long * pfStartConnected);
|
||||
[id(0x00000011), propget] HRESULT HorizontalScrollBarVisible([out, retval] long * pfHScrollVisible);
|
||||
[id(0x00000012), propget] HRESULT VerticalScrollBarVisible([out, retval] long * pfVScrollVisible);
|
||||
[id(0x00000013), propput] HRESULT FullScreenTitle([in] BSTR rhs);
|
||||
[id(0x00000014), propget] HRESULT CipherStrength([out, retval] long * pCipherStrength);
|
||||
[id(0x00000015), propget] HRESULT Version([out, retval] BSTR * pVersion);
|
||||
[id(0x00000016), propget] HRESULT SecuredSettingsEnabled([out, retval] long * pSecuredSettingsEnabled);
|
||||
[id(0x00000061), propget] HRESULT SecuredSettings([out, retval] IMsTscSecuredSettings ** ppSecuredSettings);
|
||||
[id(0x00000062), propget] HRESULT AdvancedSettings([out, retval] IMsTscAdvancedSettings ** ppAdvSettings);
|
||||
[id(0x00000063), propget, hidden] HRESULT Debugger([out, retval] IMsTscDebug ** ppDebugger);
|
||||
[id(0x0000001e)] HRESULT Connect();
|
||||
[id(0x0000001f)] HRESULT Disconnect();
|
||||
[id(0x00000021)] HRESULT CreateVirtualChannels([in] BSTR newVal);
|
||||
[id(0x00000022)] HRESULT SendOnVirtualChannel([in] BSTR chanName, [in] BSTR ChanData);
|
||||
};
|
||||
|
||||
[
|
||||
uuid(92B4A539-7115-4B7C-A5A9-E5D9EFC2780A),
|
||||
dual,
|
||||
oleautomation
|
||||
]
|
||||
interface IMsRdpClient: IMsTscAx
|
||||
{
|
||||
[id(0x00000064), propput] HRESULT ColorDepth([in] long pcolorDepth);
|
||||
[id(0x00000064), propget] HRESULT ColorDepth([out, retval] long * pcolorDepth);
|
||||
[id(0x00000065), propget] HRESULT AdvancedSettings2([out, retval] IMsRdpClientAdvancedSettings ** ppAdvSettings);
|
||||
[id(0x00000066), propget] HRESULT SecuredSettings2([out, retval] IMsRdpClientSecuredSettings ** ppSecuredSettings);
|
||||
[id(0x00000067), propget] HRESULT ExtendedDisconnectReason([out, retval] ExtendedDisconnectReasonCode * pExtendedDisconnectReason);
|
||||
[id(0x00000068), propput] HRESULT FullScreen([in] VARIANT_BOOL pfFullScreen);
|
||||
[id(0x00000068), propget] HRESULT FullScreen([out, retval] VARIANT_BOOL * pfFullScreen);
|
||||
[id(0x00000023)] HRESULT SetVirtualChannelOptions([in] BSTR chanName, [in] long chanOptions);
|
||||
[id(0x00000024)] HRESULT GetVirtualChannelOptions([in] BSTR chanName, [out, retval] long * pChanOptions);
|
||||
[id(0x00000025)] HRESULT RequestClose([out, retval] ControlCloseStatus * pCloseStatus);
|
||||
};
|
||||
|
||||
[
|
||||
uuid(E7E17DC4-3B71-4BA7-A8E6-281FFADCA28F),
|
||||
dual,
|
||||
oleautomation
|
||||
]
|
||||
interface IMsRdpClient2: IMsRdpClient
|
||||
{
|
||||
[id(0x000000c8), propget] HRESULT AdvancedSettings3([out, retval] IMsRdpClientAdvancedSettings2 ** ppAdvSettings);
|
||||
[id(0x000000c9), propput] HRESULT ConnectedStatusText([in] BSTR pConnectedStatusText);
|
||||
[id(0x000000c9), propget] HRESULT ConnectedStatusText([out, retval] BSTR * pConnectedStatusText);
|
||||
};
|
||||
|
||||
[
|
||||
uuid(91B7CBC5-A72E-4FA0-9300-D647D7E897FF),
|
||||
dual,
|
||||
oleautomation
|
||||
]
|
||||
interface IMsRdpClient3: IMsRdpClient2
|
||||
{
|
||||
[id(0x0000012c), propget] HRESULT AdvancedSettings4([out, retval] IMsRdpClientAdvancedSettings3 ** ppAdvSettings);
|
||||
};
|
||||
|
||||
[
|
||||
uuid(095E0738-D97D-488B-B9F6-DD0E8D66C0DE),
|
||||
dual,
|
||||
oleautomation
|
||||
]
|
||||
interface IMsRdpClient4: IMsRdpClient3
|
||||
{
|
||||
[id(0x00000190), propget] HRESULT AdvancedSettings5([out, retval] IMsRdpClientAdvancedSettings4 ** ppAdvSettings5);
|
||||
};
|
||||
|
||||
[uuid(C1E6743A-41C1-4A74-832A-0DD06C1C7A0E)]
|
||||
interface IMsTscNonScriptable: IUnknown
|
||||
{
|
||||
[propput] HRESULT ClearTextPassword([in] BSTR rhs);
|
||||
[propput] HRESULT PortablePassword([in] BSTR pPortablePass);
|
||||
[propget] HRESULT PortablePassword([out, retval] BSTR * pPortablePass);
|
||||
[propput] HRESULT PortableSalt([in] BSTR pPortableSalt);
|
||||
[propget] HRESULT PortableSalt([out, retval] BSTR * pPortableSalt);
|
||||
[propput] HRESULT BinaryPassword([in] BSTR pBinaryPassword);
|
||||
[propget] HRESULT BinaryPassword([out, retval] BSTR * pBinaryPassword);
|
||||
[propput] HRESULT BinarySalt([in] BSTR pSalt);
|
||||
[propget] HRESULT BinarySalt([out, retval] BSTR * pSalt);
|
||||
HRESULT ResetPassword();
|
||||
};
|
||||
|
||||
[uuid(2F079C4C-87B2-4AFD-97AB-20CDB43038AE)]
|
||||
interface IMsRdpClientNonScriptable: IMsTscNonScriptable
|
||||
{
|
||||
HRESULT NotifyRedirectDeviceChange([in] UINT_PTR wParam, [in] LONG_PTR lParam);
|
||||
HRESULT SendKeys([in] long numKeys, [in] VARIANT_BOOL * pbArrayKeyUp, [in] long * plKeyData);
|
||||
};
|
||||
|
||||
[uuid(17A5E535-4072-4FA4-AF32-C8D0D47345E9)]
|
||||
interface IMsRdpClientNonScriptable2: IMsRdpClientNonScriptable
|
||||
{
|
||||
[propput] HRESULT UIParentWindowHandle([in] HWND phwndUIParentWindowHandle);
|
||||
[propget] HRESULT UIParentWindowHandle([out, retval] HWND * phwndUIParentWindowHandle);
|
||||
};
|
||||
|
||||
[
|
||||
uuid(809945CC-4B3B-4A92-A6B0-DBF9B5F2EF2D),
|
||||
dual,
|
||||
oleautomation
|
||||
]
|
||||
interface IMsTscAdvancedSettings: IDispatch
|
||||
{
|
||||
[id(0x00000079), propput] HRESULT Compress([in] long pcompress);
|
||||
[id(0x00000079), propget] HRESULT Compress([out, retval] long * pcompress);
|
||||
[id(0x0000007a), propput] HRESULT BitmapPeristence([in] long pbitmapPeristence);
|
||||
[id(0x0000007a), propget] HRESULT BitmapPeristence([out, retval] long * pbitmapPeristence);
|
||||
[id(0x000000a1), propput] HRESULT allowBackgroundInput([in] long pallowBackgroundInput);
|
||||
[id(0x000000a1), propget] HRESULT allowBackgroundInput([out, retval] long * pallowBackgroundInput);
|
||||
[id(0x000000a2), propput] HRESULT KeyBoardLayoutStr([in] BSTR rhs);
|
||||
[id(0x000000aa), propput] HRESULT PluginDlls([in] BSTR rhs);
|
||||
[id(0x000000ab), propput] HRESULT IconFile([in] BSTR rhs);
|
||||
[id(0x000000ac), propput] HRESULT IconIndex([in] long rhs);
|
||||
[id(0x000000ad), propput] HRESULT ContainerHandledFullScreen([in] long pContainerHandledFullScreen);
|
||||
[id(0x000000ad), propget] HRESULT ContainerHandledFullScreen([out, retval] long * pContainerHandledFullScreen);
|
||||
[id(0x000000ae), propput] HRESULT DisableRdpdr([in] long pDisableRdpdr);
|
||||
[id(0x000000ae), propget] HRESULT DisableRdpdr([out, retval] long * pDisableRdpdr);
|
||||
};
|
||||
|
||||
[
|
||||
uuid(3C65B4AB-12B3-465B-ACD4-B8DAD3BFF9E2),
|
||||
dual,
|
||||
oleautomation
|
||||
]
|
||||
interface IMsRdpClientAdvancedSettings: IMsTscAdvancedSettings
|
||||
{
|
||||
[id(0x00000065), propput] HRESULT SmoothScroll([in] long psmoothScroll);
|
||||
[id(0x00000065), propget] HRESULT SmoothScroll([out, retval] long * psmoothScroll);
|
||||
[id(0x00000066), propput] HRESULT AcceleratorPassthrough([in] long pacceleratorPassthrough);
|
||||
[id(0x00000066), propget] HRESULT AcceleratorPassthrough([out, retval] long * pacceleratorPassthrough);
|
||||
[id(0x00000067), propput] HRESULT ShadowBitmap([in] long pshadowBitmap);
|
||||
[id(0x00000067), propget] HRESULT ShadowBitmap([out, retval] long * pshadowBitmap);
|
||||
[id(0x00000068), propput] HRESULT TransportType([in] long ptransportType);
|
||||
[id(0x00000068), propget] HRESULT TransportType([out, retval] long * ptransportType);
|
||||
[id(0x00000069), propput] HRESULT SasSequence([in] long psasSequence);
|
||||
[id(0x00000069), propget] HRESULT SasSequence([out, retval] long * psasSequence);
|
||||
[id(0x0000006a), propput] HRESULT EncryptionEnabled([in] long pencryptionEnabled);
|
||||
[id(0x0000006a), propget] HRESULT EncryptionEnabled([out, retval] long * pencryptionEnabled);
|
||||
[id(0x0000006b), propput] HRESULT DedicatedTerminal([in] long pdedicatedTerminal);
|
||||
[id(0x0000006b), propget] HRESULT DedicatedTerminal([out, retval] long * pdedicatedTerminal);
|
||||
[id(0x0000006c), propput] HRESULT RDPPort([in] long prdpPort);
|
||||
[id(0x0000006c), propget] HRESULT RDPPort([out, retval] long * prdpPort);
|
||||
[id(0x0000006d), propput] HRESULT EnableMouse([in] long penableMouse);
|
||||
[id(0x0000006d), propget] HRESULT EnableMouse([out, retval] long * penableMouse);
|
||||
[id(0x0000006e), propput] HRESULT DisableCtrlAltDel([in] long pdisableCtrlAltDel);
|
||||
[id(0x0000006e), propget] HRESULT DisableCtrlAltDel([out, retval] long * pdisableCtrlAltDel);
|
||||
[id(0x0000006f), propput] HRESULT EnableWindowsKey([in] long penableWindowsKey);
|
||||
[id(0x0000006f), propget] HRESULT EnableWindowsKey([out, retval] long * penableWindowsKey);
|
||||
[id(0x00000070), propput] HRESULT DoubleClickDetect([in] long pdoubleClickDetect);
|
||||
[id(0x00000070), propget] HRESULT DoubleClickDetect([out, retval] long * pdoubleClickDetect);
|
||||
[id(0x00000071), propput] HRESULT MaximizeShell([in] long pmaximizeShell);
|
||||
[id(0x00000071), propget] HRESULT MaximizeShell([out, retval] long * pmaximizeShell);
|
||||
[id(0x00000072), propput] HRESULT HotKeyFullScreen([in] long photKeyFullScreen);
|
||||
[id(0x00000072), propget] HRESULT HotKeyFullScreen([out, retval] long * photKeyFullScreen);
|
||||
[id(0x00000073), propput] HRESULT HotKeyCtrlEsc([in] long photKeyCtrlEsc);
|
||||
[id(0x00000073), propget] HRESULT HotKeyCtrlEsc([out, retval] long * photKeyCtrlEsc);
|
||||
[id(0x00000074), propput] HRESULT HotKeyAltEsc([in] long photKeyAltEsc);
|
||||
[id(0x00000074), propget] HRESULT HotKeyAltEsc([out, retval] long * photKeyAltEsc);
|
||||
[id(0x00000075), propput] HRESULT HotKeyAltTab([in] long photKeyAltTab);
|
||||
[id(0x00000075), propget] HRESULT HotKeyAltTab([out, retval] long * photKeyAltTab);
|
||||
[id(0x00000076), propput] HRESULT HotKeyAltShiftTab([in] long photKeyAltShiftTab);
|
||||
[id(0x00000076), propget] HRESULT HotKeyAltShiftTab([out, retval] long * photKeyAltShiftTab);
|
||||
[id(0x00000077), propput] HRESULT HotKeyAltSpace([in] long photKeyAltSpace);
|
||||
[id(0x00000077), propget] HRESULT HotKeyAltSpace([out, retval] long * photKeyAltSpace);
|
||||
[id(0x00000078), propput] HRESULT HotKeyCtrlAltDel([in] long photKeyCtrlAltDel);
|
||||
[id(0x00000078), propget] HRESULT HotKeyCtrlAltDel([out, retval] long * photKeyCtrlAltDel);
|
||||
[id(0x0000007b), propput] HRESULT orderDrawThreshold([in] long porderDrawThreshold);
|
||||
[id(0x0000007b), propget] HRESULT orderDrawThreshold([out, retval] long * porderDrawThreshold);
|
||||
[id(0x0000007c), propput] HRESULT BitmapCacheSize([in] long pbitmapCacheSize);
|
||||
[id(0x0000007c), propget] HRESULT BitmapCacheSize([out, retval] long * pbitmapCacheSize);
|
||||
[id(0x0000007d), propput] HRESULT BitmapVirtualCacheSize([in] long pbitmapVirtualCacheSize);
|
||||
[id(0x0000007d), propget] HRESULT BitmapVirtualCacheSize([out, retval] long * pbitmapVirtualCacheSize);
|
||||
[id(0x000000af), propput] HRESULT ScaleBitmapCachesByBPP([in] long pbScale);
|
||||
[id(0x000000af), propget] HRESULT ScaleBitmapCachesByBPP([out, retval] long * pbScale);
|
||||
[id(0x0000007e), propput] HRESULT NumBitmapCaches([in] long pnumBitmapCaches);
|
||||
[id(0x0000007e), propget] HRESULT NumBitmapCaches([out, retval] long * pnumBitmapCaches);
|
||||
[id(0x0000007f), propput] HRESULT CachePersistenceActive([in] long pcachePersistenceActive);
|
||||
[id(0x0000007f), propget] HRESULT CachePersistenceActive([out, retval] long * pcachePersistenceActive);
|
||||
[id(0x0000008a), propput] HRESULT PersistCacheDirectory([in] BSTR rhs);
|
||||
[id(0x0000009c), propput] HRESULT brushSupportLevel([in] long pbrushSupportLevel);
|
||||
[id(0x0000009c), propget] HRESULT brushSupportLevel([out, retval] long * pbrushSupportLevel);
|
||||
[id(0x0000009d), propput] HRESULT minInputSendInterval([in] long pminInputSendInterval);
|
||||
[id(0x0000009d), propget] HRESULT minInputSendInterval([out, retval] long * pminInputSendInterval);
|
||||
[id(0x0000009e), propput] HRESULT InputEventsAtOnce([in] long pinputEventsAtOnce);
|
||||
[id(0x0000009e), propget] HRESULT InputEventsAtOnce([out, retval] long * pinputEventsAtOnce);
|
||||
[id(0x0000009f), propput] HRESULT maxEventCount([in] long pmaxEventCount);
|
||||
[id(0x0000009f), propget] HRESULT maxEventCount([out, retval] long * pmaxEventCount);
|
||||
[id(0x000000a0), propput] HRESULT keepAliveInterval([in] long pkeepAliveInterval);
|
||||
[id(0x000000a0), propget] HRESULT keepAliveInterval([out, retval] long * pkeepAliveInterval);
|
||||
[id(0x000000a3), propput] HRESULT shutdownTimeout([in] long pshutdownTimeout);
|
||||
[id(0x000000a3), propget] HRESULT shutdownTimeout([out, retval] long * pshutdownTimeout);
|
||||
[id(0x000000a4), propput] HRESULT overallConnectionTimeout([in] long poverallConnectionTimeout);
|
||||
[id(0x000000a4), propget] HRESULT overallConnectionTimeout([out, retval] long * poverallConnectionTimeout);
|
||||
[id(0x000000a5), propput] HRESULT singleConnectionTimeout([in] long psingleConnectionTimeout);
|
||||
[id(0x000000a5), propget] HRESULT singleConnectionTimeout([out, retval] long * psingleConnectionTimeout);
|
||||
[id(0x000000a6), propput] HRESULT KeyboardType([in] long pkeyboardType);
|
||||
[id(0x000000a6), propget] HRESULT KeyboardType([out, retval] long * pkeyboardType);
|
||||
[id(0x000000a7), propput] HRESULT KeyboardSubType([in] long pkeyboardSubType);
|
||||
[id(0x000000a7), propget] HRESULT KeyboardSubType([out, retval] long * pkeyboardSubType);
|
||||
[id(0x000000a8), propput] HRESULT KeyboardFunctionKey([in] long pkeyboardFunctionKey);
|
||||
[id(0x000000a8), propget] HRESULT KeyboardFunctionKey([out, retval] long * pkeyboardFunctionKey);
|
||||
[id(0x000000a9), propput] HRESULT WinceFixedPalette([in] long pwinceFixedPalette);
|
||||
[id(0x000000a9), propget] HRESULT WinceFixedPalette([out, retval] long * pwinceFixedPalette);
|
||||
[id(0x000000b2), propput] HRESULT ConnectToServerConsole([in] VARIANT_BOOL pConnectToConsole);
|
||||
[id(0x000000b2), propget] HRESULT ConnectToServerConsole([out, retval] VARIANT_BOOL * pConnectToConsole);
|
||||
[id(0x000000b6), propput] HRESULT BitmapPersistence([in] long pbitmapPersistence);
|
||||
[id(0x000000b6), propget] HRESULT BitmapPersistence([out, retval] long * pbitmapPersistence);
|
||||
[id(0x000000b7), propput] HRESULT MinutesToIdleTimeout([in] long pminutesToIdleTimeout);
|
||||
[id(0x000000b7), propget] HRESULT MinutesToIdleTimeout([out, retval] long * pminutesToIdleTimeout);
|
||||
[id(0x000000b8), propput] HRESULT SmartSizing([in] VARIANT_BOOL pfSmartSizing);
|
||||
[id(0x000000b8), propget] HRESULT SmartSizing([out, retval] VARIANT_BOOL * pfSmartSizing);
|
||||
[id(0x000000b9), propput] HRESULT RdpdrLocalPrintingDocName([in] BSTR pLocalPrintingDocName);
|
||||
[id(0x000000b9), propget] HRESULT RdpdrLocalPrintingDocName([out, retval] BSTR * pLocalPrintingDocName);
|
||||
[id(0x000000c9), propput] HRESULT RdpdrClipCleanTempDirString([in] BSTR clipCleanTempDirString);
|
||||
[id(0x000000c9), propget] HRESULT RdpdrClipCleanTempDirString([out, retval] BSTR * clipCleanTempDirString);
|
||||
[id(0x000000ca), propput] HRESULT RdpdrClipPasteInfoString([in] BSTR clipPasteInfoString);
|
||||
[id(0x000000ca), propget] HRESULT RdpdrClipPasteInfoString([out, retval] BSTR * clipPasteInfoString);
|
||||
[id(0x000000ba), propput] HRESULT ClearTextPassword([in] BSTR rhs);
|
||||
[id(0x000000bb), propput] HRESULT DisplayConnectionBar([in] VARIANT_BOOL pDisplayConnectionBar);
|
||||
[id(0x000000bb), propget] HRESULT DisplayConnectionBar([out, retval] VARIANT_BOOL * pDisplayConnectionBar);
|
||||
[id(0x000000bc), propput] HRESULT PinConnectionBar([in] VARIANT_BOOL pPinConnectionBar);
|
||||
[id(0x000000bc), propget] HRESULT PinConnectionBar([out, retval] VARIANT_BOOL * pPinConnectionBar);
|
||||
[id(0x000000bd), propput] HRESULT GrabFocusOnConnect([in] VARIANT_BOOL pfGrabFocusOnConnect);
|
||||
[id(0x000000bd), propget] HRESULT GrabFocusOnConnect([out, retval] VARIANT_BOOL * pfGrabFocusOnConnect);
|
||||
[id(0x000000be), propput] HRESULT LoadBalanceInfo([in] BSTR pLBInfo);
|
||||
[id(0x000000be), propget] HRESULT LoadBalanceInfo([out, retval] BSTR * pLBInfo);
|
||||
[id(0x000000bf), propput] HRESULT RedirectDrives([in] VARIANT_BOOL pRedirectDrives);
|
||||
[id(0x000000bf), propget] HRESULT RedirectDrives([out, retval] VARIANT_BOOL * pRedirectDrives);
|
||||
[id(0x000000c0), propput] HRESULT RedirectPrinters([in] VARIANT_BOOL pRedirectPrinters);
|
||||
[id(0x000000c0), propget] HRESULT RedirectPrinters([out, retval] VARIANT_BOOL * pRedirectPrinters);
|
||||
[id(0x000000c1), propput] HRESULT RedirectPorts([in] VARIANT_BOOL pRedirectPorts);
|
||||
[id(0x000000c1), propget] HRESULT RedirectPorts([out, retval] VARIANT_BOOL * pRedirectPorts);
|
||||
[id(0x000000c2), propput] HRESULT RedirectSmartCards([in] VARIANT_BOOL pRedirectSmartCards);
|
||||
[id(0x000000c2), propget] HRESULT RedirectSmartCards([out, retval] VARIANT_BOOL * pRedirectSmartCards);
|
||||
[id(0x000000c3), propput] HRESULT BitmapVirtualCache16BppSize([in] long pBitmapVirtualCache16BppSize);
|
||||
[id(0x000000c3), propget] HRESULT BitmapVirtualCache16BppSize([out, retval] long * pBitmapVirtualCache16BppSize);
|
||||
[id(0x000000c4), propput] HRESULT BitmapVirtualCache24BppSize([in] long pBitmapVirtualCache24BppSize);
|
||||
[id(0x000000c4), propget] HRESULT BitmapVirtualCache24BppSize([out, retval] long * pBitmapVirtualCache24BppSize);
|
||||
[id(0x000000c8), propput] HRESULT PerformanceFlags([in] long pDisableList);
|
||||
[id(0x000000c8), propget] HRESULT PerformanceFlags([out, retval] long * pDisableList);
|
||||
[id(0x000000cb), propput] HRESULT ConnectWithEndpoint([in] VARIANT * rhs);
|
||||
[id(0x000000cc), propput] HRESULT NotifyTSPublicKey([in] VARIANT_BOOL pfNotify);
|
||||
[id(0x000000cc), propget] HRESULT NotifyTSPublicKey([out, retval] VARIANT_BOOL * pfNotify);
|
||||
};
|
||||
|
||||
[
|
||||
uuid(9AC42117-2B76-4320-AA44-0E616AB8437B),
|
||||
dual,
|
||||
oleautomation
|
||||
]
|
||||
interface IMsRdpClientAdvancedSettings2: IMsRdpClientAdvancedSettings
|
||||
{
|
||||
[id(0x000000cd), propget] HRESULT CanAutoReconnect([out, retval] VARIANT_BOOL * pfCanAutoReconnect);
|
||||
[id(0x000000ce), propput] HRESULT EnableAutoReconnect([in] VARIANT_BOOL pfEnableAutoReconnect);
|
||||
[id(0x000000ce), propget] HRESULT EnableAutoReconnect([out, retval] VARIANT_BOOL * pfEnableAutoReconnect);
|
||||
[id(0x000000cf), propput] HRESULT MaxReconnectAttempts([in] long pMaxReconnectAttempts);
|
||||
[id(0x000000cf), propget] HRESULT MaxReconnectAttempts([out, retval] long * pMaxReconnectAttempts);
|
||||
};
|
||||
|
||||
[
|
||||
uuid(19CD856B-C542-4C53-ACEE-F127E3BE1A59),
|
||||
dual,
|
||||
oleautomation
|
||||
]
|
||||
interface IMsRdpClientAdvancedSettings3: IMsRdpClientAdvancedSettings2
|
||||
{
|
||||
[id(0x000000d2), propput] HRESULT ConnectionBarShowMinimizeButton([in] VARIANT_BOOL pfShowMinimize);
|
||||
[id(0x000000d2), propget] HRESULT ConnectionBarShowMinimizeButton([out, retval] VARIANT_BOOL * pfShowMinimize);
|
||||
[id(0x000000d3), propput] HRESULT ConnectionBarShowRestoreButton([in] VARIANT_BOOL pfShowRestore);
|
||||
[id(0x000000d3), propget] HRESULT ConnectionBarShowRestoreButton([out, retval] VARIANT_BOOL * pfShowRestore);
|
||||
};
|
||||
|
||||
[
|
||||
uuid(FBA7F64E-7345-4405-AE50-FA4A763DC0DE),
|
||||
dual,
|
||||
oleautomation
|
||||
]
|
||||
interface IMsRdpClientAdvancedSettings4: IMsRdpClientAdvancedSettings3
|
||||
{
|
||||
[id(0x000000d4), propput] HRESULT AuthenticationLevel([in] unsigned int puiAuthLevel);
|
||||
[id(0x000000d4), propget] HRESULT AuthenticationLevel([out, retval] unsigned int * puiAuthLevel);
|
||||
};
|
||||
|
||||
[
|
||||
uuid(C9D65442-A0F9-45B2-8F73-D61D2DB8CBB6),
|
||||
dual,
|
||||
oleautomation
|
||||
]
|
||||
interface IMsTscSecuredSettings: IDispatch
|
||||
{
|
||||
[id(0x00000001), propput] HRESULT StartProgram([in] BSTR pStartProgram);
|
||||
[id(0x00000001), propget] HRESULT StartProgram([out, retval] BSTR * pStartProgram);
|
||||
[id(0x00000002), propput] HRESULT WorkDir([in] BSTR pWorkDir);
|
||||
[id(0x00000002), propget] HRESULT WorkDir([out, retval] BSTR * pWorkDir);
|
||||
[id(0x00000003), propput] HRESULT FullScreen([in] long pfFullScreen);
|
||||
[id(0x00000003), propget] HRESULT FullScreen([out, retval] long * pfFullScreen);
|
||||
};
|
||||
|
||||
[
|
||||
uuid(605BEFCF-39C1-45CC-A811-068FB7BE346D),
|
||||
dual,
|
||||
oleautomation
|
||||
]
|
||||
interface IMsRdpClientSecuredSettings: IMsTscSecuredSettings
|
||||
{
|
||||
[id(0x00000004), propput] HRESULT KeyboardHookMode([in] long pkeyboardHookMode);
|
||||
[id(0x00000004), propget] HRESULT KeyboardHookMode([out, retval] long * pkeyboardHookMode);
|
||||
[id(0x00000005), propput] HRESULT AudioRedirectionMode([in] long pAudioRedirectionMode);
|
||||
[id(0x00000005), propget] HRESULT AudioRedirectionMode([out, retval] long * pAudioRedirectionMode);
|
||||
};
|
||||
|
||||
[
|
||||
uuid(209D0EB9-6254-47B1-9033-A98DAE55BB27),
|
||||
hidden,
|
||||
dual,
|
||||
oleautomation
|
||||
]
|
||||
interface IMsTscDebug: IDispatch
|
||||
{
|
||||
[id(0x000000c8), propput] HRESULT HatchBitmapPDU([in] long phatchBitmapPDU);
|
||||
[id(0x000000c8), propget] HRESULT HatchBitmapPDU([out, retval] long * phatchBitmapPDU);
|
||||
[id(0x000000c9), propput] HRESULT HatchSSBOrder([in] long phatchSSBOrder);
|
||||
[id(0x000000c9), propget] HRESULT HatchSSBOrder([out, retval] long * phatchSSBOrder);
|
||||
[id(0x000000ca), propput] HRESULT HatchMembltOrder([in] long phatchMembltOrder);
|
||||
[id(0x000000ca), propget] HRESULT HatchMembltOrder([out, retval] long * phatchMembltOrder);
|
||||
[id(0x000000cb), propput] HRESULT HatchIndexPDU([in] long phatchIndexPDU);
|
||||
[id(0x000000cb), propget] HRESULT HatchIndexPDU([out, retval] long * phatchIndexPDU);
|
||||
[id(0x000000cc), propput] HRESULT LabelMemblt([in] long plabelMemblt);
|
||||
[id(0x000000cc), propget] HRESULT LabelMemblt([out, retval] long * plabelMemblt);
|
||||
[id(0x000000cd), propput] HRESULT BitmapCacheMonitor([in] long pbitmapCacheMonitor);
|
||||
[id(0x000000cd), propget] HRESULT BitmapCacheMonitor([out, retval] long * pbitmapCacheMonitor);
|
||||
[id(0x000000ce), propput] HRESULT MallocFailuresPercent([in] long pmallocFailuresPercent);
|
||||
[id(0x000000ce), propget] HRESULT MallocFailuresPercent([out, retval] long * pmallocFailuresPercent);
|
||||
[id(0x000000cf), propput] HRESULT MallocHugeFailuresPercent([in] long pmallocHugeFailuresPercent);
|
||||
[id(0x000000cf), propget] HRESULT MallocHugeFailuresPercent([out, retval] long * pmallocHugeFailuresPercent);
|
||||
[id(0x000000d0), propput] HRESULT NetThroughput([in] long NetThroughput);
|
||||
[id(0x000000d0), propget] HRESULT NetThroughput([out, retval] long * NetThroughput);
|
||||
[id(0x000000d1), propput] HRESULT CLXCmdLine([in] BSTR pCLXCmdLine);
|
||||
[id(0x000000d1), propget] HRESULT CLXCmdLine([out, retval] BSTR * pCLXCmdLine);
|
||||
[id(0x000000d2), propput] HRESULT CLXDll([in] BSTR pCLXDll);
|
||||
[id(0x000000d2), propget] HRESULT CLXDll([out, retval] BSTR * pCLXDll);
|
||||
};
|
||||
|
||||
[
|
||||
#ifdef MSTSCLIB_REDIST_
|
||||
uuid(1FB464C8-09BB-4017-A2F5-EB742F04392F)
|
||||
#else
|
||||
uuid(A41A4187-5A86-4E26-B40A-856F9035D9CB)
|
||||
#endif
|
||||
]
|
||||
coclass MsTscAx
|
||||
{
|
||||
interface IMsRdpClient;
|
||||
[default] interface IMsTscAx;
|
||||
[default, source] dispinterface IMsTscAxEvents;
|
||||
interface IMsTscNonScriptable;
|
||||
interface IMsRdpClientNonScriptable;
|
||||
};
|
||||
|
||||
[
|
||||
#ifdef MSTSCLIB_REDIST_
|
||||
uuid(791FA017-2DE3-492E-ACC5-53C67A2B94D0)
|
||||
#else
|
||||
uuid(7CACBD7B-0D99-468F-AC33-22E495C0AFE5)
|
||||
#endif
|
||||
]
|
||||
coclass MsRdpClient
|
||||
{
|
||||
[default] interface IMsRdpClient;
|
||||
interface IMsTscAx;
|
||||
[default, source] dispinterface IMsTscAxEvents;
|
||||
interface IMsTscNonScriptable;
|
||||
interface IMsRdpClientNonScriptable;
|
||||
};
|
||||
|
||||
[
|
||||
#ifdef MSTSCLIB_REDIST_
|
||||
uuid(9059F30F-4EB1-4BD2-9FDC-36F43A218F4A)
|
||||
#else
|
||||
uuid(3523C2FB-4031-44E4-9A3B-F1E94986EE7F)
|
||||
#endif
|
||||
]
|
||||
coclass MsRdpClient2
|
||||
{
|
||||
[default] interface IMsRdpClient2;
|
||||
interface IMsRdpClient;
|
||||
interface IMsTscAx;
|
||||
[default, source] dispinterface IMsTscAxEvents;
|
||||
interface IMsTscNonScriptable;
|
||||
interface IMsRdpClientNonScriptable;
|
||||
};
|
||||
|
||||
[
|
||||
#ifdef MSTSCLIB_REDIST_
|
||||
uuid(7584C670-2274-4EFB-B00B-D6AABA6D3850)
|
||||
#else
|
||||
uuid(ACE575FD-1FCF-4074-9401-EBAB990FA9DE)
|
||||
#endif
|
||||
]
|
||||
coclass MsRdpClient3
|
||||
{
|
||||
[default] interface IMsRdpClient3;
|
||||
interface IMsRdpClient2;
|
||||
interface IMsRdpClient;
|
||||
interface IMsTscAx;
|
||||
[default, source] dispinterface IMsTscAxEvents;
|
||||
interface IMsTscNonScriptable;
|
||||
interface IMsRdpClientNonScriptable;
|
||||
};
|
||||
|
||||
[uuid(6AE29350-321B-42BE-BBE5-12FB5270C0DE)]
|
||||
coclass MsRdpClient4
|
||||
{
|
||||
[default] interface IMsRdpClient4;
|
||||
interface IMsRdpClient3;
|
||||
interface IMsRdpClient2;
|
||||
interface IMsRdpClient;
|
||||
interface IMsTscAx;
|
||||
[default, source] dispinterface IMsTscAxEvents;
|
||||
interface IMsTscNonScriptable;
|
||||
interface IMsRdpClientNonScriptable;
|
||||
interface IMsRdpClientNonScriptable2;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
// EOF
|
|
@ -0,0 +1,3 @@
|
|||
#define TYPELIB_RESOURCEID__ 1
|
||||
#include "./typelib.rh"
|
||||
// EOF
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,145 @@
|
|||
|
||||
|
||||
/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
|
||||
|
||||
/* link this file in with the server and any clients */
|
||||
|
||||
|
||||
/* File created by MIDL compiler version 7.00.0493 */
|
||||
/* at Sun Aug 13 16:46:06 2006
|
||||
*/
|
||||
/* Compiler settings for .\mstsclib.idl:
|
||||
Oicf, W1, Zp8, env=Win32 (32b run)
|
||||
protocol : dce , ms_ext, c_ext, robust
|
||||
error checks: allocation ref bounds_check enum stub_data
|
||||
VC __declspec() decoration level:
|
||||
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
|
||||
DECLSPEC_UUID(), MIDL_INTERFACE()
|
||||
*/
|
||||
//@@MIDL_FILE_HEADING( )
|
||||
|
||||
#pragma warning( disable: 4049 ) /* more than 64k source lines */
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
|
||||
#include <rpc.h>
|
||||
#include <rpcndr.h>
|
||||
|
||||
#ifdef _MIDL_USE_GUIDDEF_
|
||||
|
||||
#ifndef INITGUID
|
||||
#define INITGUID
|
||||
#include <guiddef.h>
|
||||
#undef INITGUID
|
||||
#else
|
||||
#include <guiddef.h>
|
||||
#endif
|
||||
|
||||
#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
|
||||
DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
|
||||
|
||||
#else // !_MIDL_USE_GUIDDEF_
|
||||
|
||||
#ifndef __IID_DEFINED__
|
||||
#define __IID_DEFINED__
|
||||
|
||||
typedef struct _IID
|
||||
{
|
||||
unsigned long x;
|
||||
unsigned short s1;
|
||||
unsigned short s2;
|
||||
unsigned char c[8];
|
||||
} IID;
|
||||
|
||||
#endif // __IID_DEFINED__
|
||||
|
||||
#ifndef CLSID_DEFINED
|
||||
#define CLSID_DEFINED
|
||||
typedef IID CLSID;
|
||||
#endif // CLSID_DEFINED
|
||||
|
||||
#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
|
||||
const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
|
||||
|
||||
#endif !_MIDL_USE_GUIDDEF_
|
||||
|
||||
MIDL_DEFINE_GUID(IID, LIBID_MSTSCLib,0x8C11EFA1,0x92C3,0x11D1,0xBC,0x1E,0x00,0xC0,0x4F,0xA3,0x14,0x89);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, DIID_IMsTscAxEvents,0x336D5562,0xEFA8,0x482E,0x8C,0xB3,0xC5,0xC0,0xFC,0x7A,0x7D,0xB6);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsTscAx,0x8C11EFAE,0x92C3,0x11D1,0xBC,0x1E,0x00,0xC0,0x4F,0xA3,0x14,0x89);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClient,0x92B4A539,0x7115,0x4B7C,0xA5,0xA9,0xE5,0xD9,0xEF,0xC2,0x78,0x0A);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClient2,0xE7E17DC4,0x3B71,0x4BA7,0xA8,0xE6,0x28,0x1F,0xFA,0xDC,0xA2,0x8F);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClient3,0x91B7CBC5,0xA72E,0x4FA0,0x93,0x00,0xD6,0x47,0xD7,0xE8,0x97,0xFF);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClient4,0x095E0738,0xD97D,0x488B,0xB9,0xF6,0xDD,0x0E,0x8D,0x66,0xC0,0xDE);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsTscNonScriptable,0xC1E6743A,0x41C1,0x4A74,0x83,0x2A,0x0D,0xD0,0x6C,0x1C,0x7A,0x0E);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientNonScriptable,0x2F079C4C,0x87B2,0x4AFD,0x97,0xAB,0x20,0xCD,0xB4,0x30,0x38,0xAE);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientNonScriptable2,0x17A5E535,0x4072,0x4FA4,0xAF,0x32,0xC8,0xD0,0xD4,0x73,0x45,0xE9);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsTscAdvancedSettings,0x809945CC,0x4B3B,0x4A92,0xA6,0xB0,0xDB,0xF9,0xB5,0xF2,0xEF,0x2D);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings,0x3C65B4AB,0x12B3,0x465B,0xAC,0xD4,0xB8,0xDA,0xD3,0xBF,0xF9,0xE2);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings2,0x9AC42117,0x2B76,0x4320,0xAA,0x44,0x0E,0x61,0x6A,0xB8,0x43,0x7B);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings3,0x19CD856B,0xC542,0x4C53,0xAC,0xEE,0xF1,0x27,0xE3,0xBE,0x1A,0x59);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings4,0xFBA7F64E,0x7345,0x4405,0xAE,0x50,0xFA,0x4A,0x76,0x3D,0xC0,0xDE);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsTscSecuredSettings,0xC9D65442,0xA0F9,0x45B2,0x8F,0x73,0xD6,0x1D,0x2D,0xB8,0xCB,0xB6);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientSecuredSettings,0x605BEFCF,0x39C1,0x45CC,0xA8,0x11,0x06,0x8F,0xB7,0xBE,0x34,0x6D);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsTscDebug,0x209D0EB9,0x6254,0x47B1,0x90,0x33,0xA9,0x8D,0xAE,0x55,0xBB,0x27);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(CLSID, CLSID_MsTscAx,0xA41A4187,0x5A86,0x4E26,0xB4,0x0A,0x85,0x6F,0x90,0x35,0xD9,0xCB);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient,0x7CACBD7B,0x0D99,0x468F,0xAC,0x33,0x22,0xE4,0x95,0xC0,0xAF,0xE5);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient2,0x3523C2FB,0x4031,0x44E4,0x9A,0x3B,0xF1,0xE9,0x49,0x86,0xEE,0x7F);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient3,0xACE575FD,0x1FCF,0x4074,0x94,0x01,0xEB,0xAB,0x99,0x0F,0xA9,0xDE);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient4,0x6AE29350,0x321B,0x42BE,0xBB,0xE5,0x12,0xFB,0x52,0x70,0xC0,0xDE);
|
||||
|
||||
#undef MIDL_DEFINE_GUID
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
#define MSTSCLIB_REDIST_
|
||||
#include "./mstsclib.idl"
|
||||
// EOF
|
|
@ -0,0 +1,3 @@
|
|||
#define TYPELIB_RESOURCEID__ 2
|
||||
#include "./typelib.rh"
|
||||
// EOF
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,145 @@
|
|||
|
||||
|
||||
/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */
|
||||
|
||||
/* link this file in with the server and any clients */
|
||||
|
||||
|
||||
/* File created by MIDL compiler version 7.00.0493 */
|
||||
/* at Sun Aug 13 16:46:05 2006
|
||||
*/
|
||||
/* Compiler settings for .\mstsclib_redist.idl:
|
||||
Oicf, W1, Zp8, env=Win32 (32b run)
|
||||
protocol : dce , ms_ext, c_ext, robust
|
||||
error checks: allocation ref bounds_check enum stub_data
|
||||
VC __declspec() decoration level:
|
||||
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
|
||||
DECLSPEC_UUID(), MIDL_INTERFACE()
|
||||
*/
|
||||
//@@MIDL_FILE_HEADING( )
|
||||
|
||||
#pragma warning( disable: 4049 ) /* more than 64k source lines */
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"{
|
||||
#endif
|
||||
|
||||
|
||||
#include <rpc.h>
|
||||
#include <rpcndr.h>
|
||||
|
||||
#ifdef _MIDL_USE_GUIDDEF_
|
||||
|
||||
#ifndef INITGUID
|
||||
#define INITGUID
|
||||
#include <guiddef.h>
|
||||
#undef INITGUID
|
||||
#else
|
||||
#include <guiddef.h>
|
||||
#endif
|
||||
|
||||
#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
|
||||
DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
|
||||
|
||||
#else // !_MIDL_USE_GUIDDEF_
|
||||
|
||||
#ifndef __IID_DEFINED__
|
||||
#define __IID_DEFINED__
|
||||
|
||||
typedef struct _IID
|
||||
{
|
||||
unsigned long x;
|
||||
unsigned short s1;
|
||||
unsigned short s2;
|
||||
unsigned char c[8];
|
||||
} IID;
|
||||
|
||||
#endif // __IID_DEFINED__
|
||||
|
||||
#ifndef CLSID_DEFINED
|
||||
#define CLSID_DEFINED
|
||||
typedef IID CLSID;
|
||||
#endif // CLSID_DEFINED
|
||||
|
||||
#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
|
||||
const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
|
||||
|
||||
#endif !_MIDL_USE_GUIDDEF_
|
||||
|
||||
MIDL_DEFINE_GUID(IID, LIBID_MSTSCLib,0xAF586AAE,0xB62A,0x420E,0xB7,0x96,0x29,0x4E,0x7E,0xE6,0x4C,0x70);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, DIID_IMsTscAxEvents,0x336D5562,0xEFA8,0x482E,0x8C,0xB3,0xC5,0xC0,0xFC,0x7A,0x7D,0xB6);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsTscAx,0x327BB5CD,0x834E,0x4400,0xAE,0xF2,0xB3,0x0E,0x15,0xE5,0xD6,0x82);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClient,0x92B4A539,0x7115,0x4B7C,0xA5,0xA9,0xE5,0xD9,0xEF,0xC2,0x78,0x0A);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClient2,0xE7E17DC4,0x3B71,0x4BA7,0xA8,0xE6,0x28,0x1F,0xFA,0xDC,0xA2,0x8F);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClient3,0x91B7CBC5,0xA72E,0x4FA0,0x93,0x00,0xD6,0x47,0xD7,0xE8,0x97,0xFF);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClient4,0x095E0738,0xD97D,0x488B,0xB9,0xF6,0xDD,0x0E,0x8D,0x66,0xC0,0xDE);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsTscNonScriptable,0xC1E6743A,0x41C1,0x4A74,0x83,0x2A,0x0D,0xD0,0x6C,0x1C,0x7A,0x0E);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientNonScriptable,0x2F079C4C,0x87B2,0x4AFD,0x97,0xAB,0x20,0xCD,0xB4,0x30,0x38,0xAE);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientNonScriptable2,0x17A5E535,0x4072,0x4FA4,0xAF,0x32,0xC8,0xD0,0xD4,0x73,0x45,0xE9);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsTscAdvancedSettings,0x809945CC,0x4B3B,0x4A92,0xA6,0xB0,0xDB,0xF9,0xB5,0xF2,0xEF,0x2D);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings,0x3C65B4AB,0x12B3,0x465B,0xAC,0xD4,0xB8,0xDA,0xD3,0xBF,0xF9,0xE2);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings2,0x9AC42117,0x2B76,0x4320,0xAA,0x44,0x0E,0x61,0x6A,0xB8,0x43,0x7B);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings3,0x19CD856B,0xC542,0x4C53,0xAC,0xEE,0xF1,0x27,0xE3,0xBE,0x1A,0x59);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientAdvancedSettings4,0xFBA7F64E,0x7345,0x4405,0xAE,0x50,0xFA,0x4A,0x76,0x3D,0xC0,0xDE);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsTscSecuredSettings,0xC9D65442,0xA0F9,0x45B2,0x8F,0x73,0xD6,0x1D,0x2D,0xB8,0xCB,0xB6);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsRdpClientSecuredSettings,0x605BEFCF,0x39C1,0x45CC,0xA8,0x11,0x06,0x8F,0xB7,0xBE,0x34,0x6D);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(IID, IID_IMsTscDebug,0x209D0EB9,0x6254,0x47B1,0x90,0x33,0xA9,0x8D,0xAE,0x55,0xBB,0x27);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(CLSID, CLSID_MsTscAx,0x1FB464C8,0x09BB,0x4017,0xA2,0xF5,0xEB,0x74,0x2F,0x04,0x39,0x2F);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient,0x791FA017,0x2DE3,0x492E,0xAC,0xC5,0x53,0xC6,0x7A,0x2B,0x94,0xD0);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient2,0x9059F30F,0x4EB1,0x4BD2,0x9F,0xDC,0x36,0xF4,0x3A,0x21,0x8F,0x4A);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient3,0x7584C670,0x2274,0x4EFB,0xB0,0x0B,0xD6,0xAA,0xBA,0x6D,0x38,0x50);
|
||||
|
||||
|
||||
MIDL_DEFINE_GUID(CLSID, CLSID_MsRdpClient4,0x6AE29350,0x321B,0x42BE,0xBB,0xE5,0x12,0xFB,0x52,0x70,0xC0,0xDE);
|
||||
|
||||
#undef MIDL_DEFINE_GUID
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,653 @@
|
|||
#include "stdafx.h"
|
||||
|
||||
#include <zmouse.h>
|
||||
|
||||
#include "rdesktop/rdesktop.h"
|
||||
#include "rdesktop/proto.h"
|
||||
|
||||
extern "C"
|
||||
{
|
||||
/* ==== BEGIN POOP ==== */
|
||||
// Temporary implementations of stuff we totally positively need to make the Real Thing happy
|
||||
/* produce a hex dump */
|
||||
void
|
||||
hexdump(unsigned char *p, unsigned int len)
|
||||
{
|
||||
unsigned char *line = p;
|
||||
int i, thisline;
|
||||
unsigned int offset = 0;
|
||||
|
||||
while (offset < len)
|
||||
{
|
||||
printf("%04x ", offset);
|
||||
thisline = len - offset;
|
||||
if (thisline > 16)
|
||||
thisline = 16;
|
||||
|
||||
for (i = 0; i < thisline; i++)
|
||||
printf("%02x ", line[i]);
|
||||
|
||||
for (; i < 16; i++)
|
||||
printf(" ");
|
||||
|
||||
for (i = 0; i < thisline; i++)
|
||||
printf("%c", (line[i] >= 0x20 && line[i] < 0x7f) ? line[i] : '.');
|
||||
|
||||
printf("\n");
|
||||
offset += thisline;
|
||||
line += thisline;
|
||||
}
|
||||
}
|
||||
|
||||
void generate_random(uint8 * random)
|
||||
{
|
||||
memcpy(random, "12345678901234567890123456789012", 32);
|
||||
}
|
||||
|
||||
/* report an error */
|
||||
void
|
||||
error(char *format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
fprintf(stderr, "ERROR: ");
|
||||
|
||||
va_start(ap, format);
|
||||
vfprintf(stderr, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
/* report a warning */
|
||||
void
|
||||
warning(char *format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
fprintf(stderr, "WARNING: ");
|
||||
|
||||
va_start(ap, format);
|
||||
vfprintf(stderr, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
/* report an unimplemented protocol feature */
|
||||
void
|
||||
unimpl(char *format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
fprintf(stderr, "NOT IMPLEMENTED: ");
|
||||
|
||||
va_start(ap, format);
|
||||
vfprintf(stderr, format, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
/* Create the bitmap cache directory */
|
||||
BOOL
|
||||
rd_pstcache_mkdir(void)
|
||||
{
|
||||
char *home;
|
||||
char bmpcache_dir[256];
|
||||
|
||||
home = getenv("HOME");
|
||||
|
||||
if (home == NULL)
|
||||
return False;
|
||||
|
||||
sprintf(bmpcache_dir, "%s/%s", home, ".rdesktop");
|
||||
|
||||
if ((_mkdir(bmpcache_dir) == -1) && errno != EEXIST)
|
||||
{
|
||||
perror(bmpcache_dir);
|
||||
return False;
|
||||
}
|
||||
|
||||
sprintf(bmpcache_dir, "%s/%s", home, ".rdesktop/cache");
|
||||
|
||||
if ((_mkdir(bmpcache_dir) == -1) && errno != EEXIST)
|
||||
{
|
||||
perror(bmpcache_dir);
|
||||
return False;
|
||||
}
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
/* open a file in the .rdesktop directory */
|
||||
int
|
||||
rd_open_file(char *filename)
|
||||
{
|
||||
char *home;
|
||||
char fn[256];
|
||||
int fd;
|
||||
|
||||
home = getenv("HOME");
|
||||
if (home == NULL)
|
||||
return -1;
|
||||
sprintf(fn, "%s/.rdesktop/%s", home, filename);
|
||||
fd = _open(fn, _O_RDWR | _O_CREAT, 0);
|
||||
if (fd == -1)
|
||||
perror(fn);
|
||||
return fd;
|
||||
}
|
||||
|
||||
/* close file */
|
||||
void
|
||||
rd_close_file(int fd)
|
||||
{
|
||||
_close(fd);
|
||||
}
|
||||
|
||||
/* read from file*/
|
||||
int
|
||||
rd_read_file(int fd, void *ptr, int len)
|
||||
{
|
||||
return _read(fd, ptr, len);
|
||||
}
|
||||
|
||||
/* write to file */
|
||||
int
|
||||
rd_write_file(int fd, void *ptr, int len)
|
||||
{
|
||||
return _write(fd, ptr, len);
|
||||
}
|
||||
|
||||
/* move file pointer */
|
||||
int
|
||||
rd_lseek_file(int fd, int offset)
|
||||
{
|
||||
return _lseek(fd, offset, SEEK_SET);
|
||||
}
|
||||
|
||||
/* do a write lock on a file */
|
||||
BOOL
|
||||
rd_lock_file(int fd, int start, int len)
|
||||
{
|
||||
// TODOOO...
|
||||
return False;
|
||||
}
|
||||
|
||||
int
|
||||
load_licence(RDPCLIENT * This, unsigned char **data)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
void
|
||||
save_licence(RDPCLIENT * This, unsigned char *data, int length)
|
||||
{
|
||||
}
|
||||
|
||||
/* ==== END POOP ==== */
|
||||
|
||||
/* ==== UI ==== */
|
||||
// Globals are totally teh evil, but cut me some slack here
|
||||
HWND hwnd;
|
||||
HBITMAP hbmBuffer;
|
||||
PVOID pBuffer;
|
||||
HDC hdcBuffer;
|
||||
UINT wmZMouseWheel;
|
||||
|
||||
};
|
||||
|
||||
static
|
||||
void
|
||||
mstsc_mousewheel(RDPCLIENT * This, int value, LPARAM lparam)
|
||||
{
|
||||
uint16 button;
|
||||
|
||||
if(value < 0)
|
||||
button = MOUSE_FLAG_BUTTON5;
|
||||
else
|
||||
button = MOUSE_FLAG_BUTTON4;
|
||||
|
||||
if(value < 0)
|
||||
value = - value;
|
||||
|
||||
for(int click = 0; click < value; click += WHEEL_DELTA)
|
||||
rdp_send_input(This, GetTickCount(), RDP_INPUT_MOUSE, button | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam));
|
||||
}
|
||||
|
||||
static
|
||||
LRESULT
|
||||
CALLBACK
|
||||
mstsc_WndProc(HWND hwnd, UINT uMsg, WPARAM wparam, LPARAM lparam)
|
||||
{
|
||||
// BUGBUG: LongToPtr & PtrToLong will break on Win64
|
||||
|
||||
RDPCLIENT * This = reinterpret_cast<RDPCLIENT *>(LongToPtr(GetWindowLongPtr(hwnd, GWLP_USERDATA)));
|
||||
|
||||
switch(uMsg)
|
||||
{
|
||||
case WM_CLOSE:
|
||||
DestroyWindow(hwnd);
|
||||
break;
|
||||
|
||||
// FIXME: temporary
|
||||
case WM_DESTROY:
|
||||
PostQuitMessage(0);
|
||||
break;
|
||||
|
||||
/* Initialization */
|
||||
case WM_CREATE:
|
||||
This = static_cast<RDPCLIENT *>(reinterpret_cast<LPCREATESTRUCT>(lparam)->lpCreateParams);
|
||||
SetWindowLongPtr(hwnd, GWLP_USERDATA, PtrToLong(This));
|
||||
break;
|
||||
|
||||
/* Painting */
|
||||
case WM_PRINTCLIENT:
|
||||
if(wparam == 0)
|
||||
break;
|
||||
|
||||
case WM_PAINT:
|
||||
{
|
||||
HDC hdc = (HDC)wparam;
|
||||
|
||||
// A DC was provided: print the whole client area into it
|
||||
if(hdc)
|
||||
{
|
||||
RECT rc;
|
||||
GetClientRect(hwnd, &rc);
|
||||
BitBlt(hdc, 0, 0, rc.right, rc.bottom, hdcBuffer, 0, 0, SRCCOPY);
|
||||
}
|
||||
// Otherwise, we're refreshing to screen
|
||||
else
|
||||
{
|
||||
PAINTSTRUCT ps;
|
||||
hdc = BeginPaint(hwnd, &ps);
|
||||
|
||||
BitBlt
|
||||
(
|
||||
hdc,
|
||||
ps.rcPaint.left,
|
||||
ps.rcPaint.top,
|
||||
ps.rcPaint.right - ps.rcPaint.left,
|
||||
ps.rcPaint.bottom - ps.rcPaint.top,
|
||||
hdcBuffer,
|
||||
ps.rcPaint.left,
|
||||
ps.rcPaint.top,
|
||||
SRCCOPY
|
||||
);
|
||||
|
||||
EndPaint(hwnd, &ps);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
/* Keyboard stuff */
|
||||
case WM_SYSKEYDOWN:
|
||||
case WM_KEYDOWN:
|
||||
rdp_send_input(This, GetMessageTime(), RDP_INPUT_SCANCODE, RDP_KEYPRESS | (lparam & 0x1000000 ? KBD_FLAG_EXT : 0), LOBYTE(HIWORD(lparam)), 0);
|
||||
break;
|
||||
|
||||
case WM_SYSKEYUP:
|
||||
case WM_KEYUP:
|
||||
rdp_send_input(This, GetMessageTime(), RDP_INPUT_SCANCODE, RDP_KEYRELEASE | (lparam & 0x1000000 ? KBD_FLAG_EXT : 0), LOBYTE(HIWORD(lparam)), 0);
|
||||
break;
|
||||
|
||||
/* Mouse stuff */
|
||||
// Cursor shape
|
||||
case WM_SETCURSOR:
|
||||
if(LOWORD(lparam) == HTCLIENT)
|
||||
{
|
||||
//SetCursor(hcursor);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
// Movement
|
||||
case WM_MOUSEMOVE:
|
||||
//if(This->sendmotion || wparam & (MK_LBUTTON | MK_RBUTTON | MK_MBUTTON | MK_XBUTTON1 | MK_XBUTTON2))
|
||||
rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_MOVE, LOWORD(lparam), HIWORD(lparam));
|
||||
|
||||
break;
|
||||
|
||||
// Buttons
|
||||
// TODO: X buttons
|
||||
case WM_LBUTTONDOWN:
|
||||
rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON1 | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam));
|
||||
break;
|
||||
|
||||
case WM_RBUTTONDOWN:
|
||||
rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON2 | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam));
|
||||
break;
|
||||
|
||||
case WM_MBUTTONDOWN:
|
||||
rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON3 | MOUSE_FLAG_DOWN, LOWORD(lparam), HIWORD(lparam));
|
||||
break;
|
||||
|
||||
case WM_LBUTTONUP:
|
||||
rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON1, LOWORD(lparam), HIWORD(lparam));
|
||||
break;
|
||||
|
||||
case WM_RBUTTONUP:
|
||||
rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON2, LOWORD(lparam), HIWORD(lparam));
|
||||
break;
|
||||
|
||||
case WM_MBUTTONUP:
|
||||
rdp_send_input(This, GetMessageTime(), RDP_INPUT_MOUSE, MOUSE_FLAG_BUTTON3, LOWORD(lparam), HIWORD(lparam));
|
||||
break;
|
||||
|
||||
// Wheel
|
||||
case WM_MOUSEWHEEL:
|
||||
mstsc_mousewheel(This, (SHORT)HIWORD(wparam), lparam);
|
||||
break;
|
||||
|
||||
default:
|
||||
/* Registered messages */
|
||||
// Z-Mouse wheel support - you know, just in case
|
||||
if(uMsg == wmZMouseWheel)
|
||||
{
|
||||
mstsc_mousewheel(This, (int)wparam, lparam);
|
||||
break;
|
||||
}
|
||||
|
||||
/* Unhandled messages */
|
||||
return DefWindowProc(hwnd, uMsg, wparam, lparam);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static
|
||||
DWORD
|
||||
WINAPI
|
||||
mstsc_ProtocolIOThread
|
||||
(
|
||||
LPVOID lpArgument
|
||||
)
|
||||
{
|
||||
RDPCLIENT * This = static_cast<RDPCLIENT *>(lpArgument);
|
||||
|
||||
WCHAR hostname[MAX_COMPUTERNAME_LENGTH + 1];
|
||||
DWORD dw = ARRAYSIZE(hostname);
|
||||
GetComputerNameW(hostname, &dw);
|
||||
|
||||
uint32 flags = RDP_LOGON_NORMAL | RDP_LOGON_COMPRESSION | RDP_LOGON_COMPRESSION2;
|
||||
|
||||
rdp_connect(This, "10.0.0.3", flags, L"Administrator", L"", L"", L"", L"", hostname, "");
|
||||
//rdp_connect(This, "192.168.7.232", flags, "", "", "", "");
|
||||
|
||||
hdcBuffer = CreateCompatibleDC(NULL);
|
||||
|
||||
BITMAPINFO bmi;
|
||||
bmi.bmiHeader.biSize = sizeof(bmi.bmiHeader);
|
||||
bmi.bmiHeader.biWidth = This->width;
|
||||
bmi.bmiHeader.biHeight = This->height;
|
||||
bmi.bmiHeader.biPlanes = 1;
|
||||
bmi.bmiHeader.biBitCount = This->server_depth;
|
||||
bmi.bmiHeader.biCompression = BI_RGB;
|
||||
bmi.bmiHeader.biSizeImage = 0;
|
||||
bmi.bmiHeader.biXPelsPerMeter = 0;
|
||||
bmi.bmiHeader.biYPelsPerMeter = 0;
|
||||
bmi.bmiHeader.biClrUsed = 0; // TODO! palette displays
|
||||
bmi.bmiHeader.biClrImportant = 0; // TODO! palette displays
|
||||
|
||||
hbmBuffer = CreateDIBSection(hdcBuffer, &bmi, DIB_RGB_COLORS, &pBuffer, NULL, 0);
|
||||
|
||||
SelectObject(hdcBuffer, hbmBuffer);
|
||||
|
||||
#if 0
|
||||
rcClip.left = 0;
|
||||
rcClip.top = 0;
|
||||
rcClip.right = This->width + 1;
|
||||
rcClip.bottom = This->height + 1;
|
||||
#endif
|
||||
|
||||
BOOL deactivated;
|
||||
uint32 ext_disc_reason;
|
||||
|
||||
rdp_main_loop(This, &deactivated, &ext_disc_reason);
|
||||
// TODO: handle redirection
|
||||
// EVENT: OnDisconnect
|
||||
|
||||
SendMessage(hwnd, WM_CLOSE, 0, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Virtual channel stuff */
|
||||
extern "C" void channel_process(RDPCLIENT * This, STREAM s, uint16 mcs_channel)
|
||||
{
|
||||
}
|
||||
|
||||
DWORD tlsIndex;
|
||||
|
||||
typedef struct CHANNEL_HANDLE_
|
||||
{
|
||||
RDPCLIENT * client;
|
||||
int channel;
|
||||
}
|
||||
CHANNEL_HANDLE;
|
||||
|
||||
static
|
||||
UINT
|
||||
VCAPITYPE
|
||||
VirtualChannelInit
|
||||
(
|
||||
LPVOID * ppInitHandle,
|
||||
PCHANNEL_DEF pChannel,
|
||||
INT channelCount,
|
||||
ULONG versionRequested,
|
||||
PCHANNEL_INIT_EVENT_FN pChannelInitEventProc
|
||||
)
|
||||
{
|
||||
if(channelCount <= 0)
|
||||
return CHANNEL_RC_BAD_CHANNEL;
|
||||
|
||||
if(ppInitHandle == NULL)
|
||||
return CHANNEL_RC_BAD_INIT_HANDLE;
|
||||
|
||||
if(pChannel == NULL)
|
||||
return CHANNEL_RC_BAD_CHANNEL;
|
||||
|
||||
if(pChannelInitEventProc == NULL)
|
||||
return CHANNEL_RC_BAD_PROC;
|
||||
|
||||
RDPCLIENT * This = (RDPCLIENT *)TlsGetValue(tlsIndex);
|
||||
|
||||
if(This == NULL)
|
||||
return CHANNEL_RC_NOT_IN_VIRTUALCHANNELENTRY;
|
||||
|
||||
if(This->num_channels + channelCount > CHANNEL_MAX_COUNT)
|
||||
return CHANNEL_RC_TOO_MANY_CHANNELS;
|
||||
|
||||
for(INT i = 0; i < channelCount; ++ i)
|
||||
{
|
||||
if(strlen(pChannel[i].name) > CHANNEL_NAME_LEN)
|
||||
return CHANNEL_RC_BAD_CHANNEL;
|
||||
}
|
||||
|
||||
memcpy(This->channel_defs + This->num_channels, pChannel, sizeof(*pChannel) * channelCount);
|
||||
|
||||
#if 0 // TODO
|
||||
for(INT i = 0; i < channelCount; ++ i)
|
||||
{
|
||||
pChannel[i].options |= CHANNEL_OPTION_INITIALIZED;
|
||||
|
||||
int j = This->num_channels + i;
|
||||
This->channel_data[j].opened = 0;
|
||||
This->channel_data[j].pChannelInitEventProc = pChannelInitEventProc;
|
||||
This->channel_data[j].pChannelOpenEventProc = NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
This->num_channels += channelCount;
|
||||
|
||||
*ppInitHandle = This;
|
||||
|
||||
return CHANNEL_RC_OK;
|
||||
}
|
||||
|
||||
UINT
|
||||
VCAPITYPE
|
||||
VirtualChannelOpen
|
||||
(
|
||||
LPVOID pInitHandle,
|
||||
LPDWORD pOpenHandle,
|
||||
PCHAR pChannelName,
|
||||
PCHANNEL_OPEN_EVENT_FN pChannelOpenEventProc
|
||||
)
|
||||
{
|
||||
if(pInitHandle == NULL)
|
||||
return CHANNEL_RC_BAD_INIT_HANDLE;
|
||||
|
||||
if(pOpenHandle == NULL)
|
||||
return CHANNEL_RC_BAD_CHANNEL_HANDLE;
|
||||
|
||||
if(pChannelName == NULL)
|
||||
return CHANNEL_RC_UNKNOWN_CHANNEL_NAME;
|
||||
|
||||
if(pChannelOpenEventProc == NULL)
|
||||
return CHANNEL_RC_BAD_PROC;
|
||||
|
||||
RDPCLIENT * This = (RDPCLIENT *)pInitHandle;
|
||||
|
||||
#if 0 // TODO
|
||||
for(unsigned i = 0; i < This->num_channels; ++ i)
|
||||
{
|
||||
if(strcmp(pChannelName, This->channel_defs[i].name) == 0)
|
||||
{
|
||||
if(This->channel_data[i].opened)
|
||||
return CHANNEL_RC_ALREADY_OPEN;
|
||||
|
||||
This->channel_data[i].opened = 1;
|
||||
This->channel_data[i].pChannelOpenEventProc = pChannelOpenEventProc;
|
||||
|
||||
// TODO: allocate a handle here
|
||||
*pOpenHandle = 0;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
return CHANNEL_RC_OK;
|
||||
}
|
||||
|
||||
UINT VCAPITYPE VirtualChannelClose
|
||||
(
|
||||
DWORD openHandle
|
||||
)
|
||||
{
|
||||
// TODO: channel handle management
|
||||
return CHANNEL_RC_BAD_CHANNEL_HANDLE;
|
||||
}
|
||||
|
||||
UINT VCAPITYPE VirtualChannelWrite
|
||||
(
|
||||
DWORD openHandle,
|
||||
LPVOID pData,
|
||||
ULONG dataLength,
|
||||
LPVOID pUserData
|
||||
)
|
||||
{
|
||||
// TODO
|
||||
return CHANNEL_RC_BAD_CHANNEL_HANDLE;
|
||||
}
|
||||
|
||||
int wmain()
|
||||
{
|
||||
WSADATA wsd;
|
||||
WSAStartup(MAKEWORD(2, 2), &wsd);
|
||||
|
||||
static RDPCLIENT This_; // NOTE: this is HUGE and would overflow the stack!
|
||||
ZeroMemory(&This_, sizeof(This_));
|
||||
|
||||
RDPCLIENT * This = &This_;
|
||||
|
||||
/*
|
||||
Threading model for MissTosca:
|
||||
- main thread is the GUI thread. Message loop maintained by caller
|
||||
- protocol I/O is handled in an I/O thread (or thread pool)
|
||||
- extra threads maintained by virtual channel handlers. Virtual channel writes are thread-neutral
|
||||
|
||||
How we handle drawing: at the moment just an off-screen buffer we dump on-screen when asked to.
|
||||
Still considering how to draw on-screen directly and *then* buffering off-screen (for example,
|
||||
when running inside another remote session)
|
||||
*/
|
||||
|
||||
// FIXME: keyboard mess
|
||||
This->keylayout = 0x409;
|
||||
This->keyboard_type = 0x4;
|
||||
This->keyboard_subtype = 0x0;
|
||||
This->keyboard_functionkeys = 0xc;
|
||||
This->width = 800;
|
||||
This->height = 600;
|
||||
This->server_depth = 24;
|
||||
This->bitmap_compression = True;
|
||||
//This->sendmotion = True;
|
||||
This->bitmap_cache = True;
|
||||
This->bitmap_cache_persist_enable = False;
|
||||
This->bitmap_cache_precache = True;
|
||||
This->encryption = True;
|
||||
This->packet_encryption = True;
|
||||
This->desktop_save = True;
|
||||
This->polygon_ellipse_orders = False; // = True;
|
||||
//This->fullscreen = False;
|
||||
//This->grab_keyboard = True;
|
||||
//This->hide_decorations = False;
|
||||
This->use_rdp5 = True;
|
||||
//This->rdpclip = True;
|
||||
This->console_session = False;
|
||||
//This->numlock_sync = False;
|
||||
//This->seamless_rdp = False;
|
||||
This->rdp5_performanceflags = RDP5_NO_WALLPAPER | RDP5_NO_FULLWINDOWDRAG | RDP5_NO_MENUANIMATIONS;
|
||||
This->tcp_port_rdp = TCP_PORT_RDP;
|
||||
|
||||
#define NOT_SET -1
|
||||
This->cache.bmpcache_lru[0] = NOT_SET;
|
||||
This->cache.bmpcache_lru[1] = NOT_SET;
|
||||
This->cache.bmpcache_lru[2] = NOT_SET;
|
||||
This->cache.bmpcache_mru[0] = NOT_SET;
|
||||
This->cache.bmpcache_mru[1] = NOT_SET;
|
||||
This->cache.bmpcache_mru[2] = NOT_SET;
|
||||
|
||||
This->rdp.current_status = 1;
|
||||
|
||||
//hcursor = NULL;
|
||||
|
||||
WNDCLASS wc;
|
||||
ZeroMemory(&wc, sizeof(wc));
|
||||
|
||||
wc.lpfnWndProc = mstsc_WndProc;
|
||||
wc.hbrBackground = static_cast<HBRUSH>(GetStockObject(HOLLOW_BRUSH));
|
||||
wc.lpszClassName = TEXT("MissTosca_Desktop");
|
||||
|
||||
wmZMouseWheel = RegisterWindowMessage(MSH_MOUSEWHEEL);
|
||||
|
||||
ATOM a = RegisterClass(&wc);
|
||||
|
||||
hwnd = CreateWindow
|
||||
(
|
||||
MAKEINTATOM(a),
|
||||
NULL,
|
||||
WS_POPUP | WS_VISIBLE,
|
||||
CW_USEDEFAULT,
|
||||
CW_USEDEFAULT,
|
||||
This->width,
|
||||
This->height,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
This
|
||||
);
|
||||
|
||||
// The righ time to start the protocol thread
|
||||
DWORD dwThreadId;
|
||||
HANDLE hThread = CreateThread(NULL, 0, mstsc_ProtocolIOThread, This, 0, &dwThreadId);
|
||||
|
||||
// Your standard, garden variety message loop
|
||||
MSG msg;
|
||||
|
||||
while(GetMessage(&msg, NULL, 0, 0))
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
|
@ -0,0 +1,377 @@
|
|||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8,00"
|
||||
Name="rdesktop-core-tester"
|
||||
ProjectGUID="{B172A623-E2BD-4E3F-86E6-620548FE255B}"
|
||||
RootNamespace="rdesktopcoretester"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
WarningLevel="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""$(SolutionDir)";"C:\Documents and Settings\All Users\Documenti\openssl-0.9.8b\inc32""
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib ws2_32.lib libeay32.lib advapi32.lib msimg32.lib ole32.lib oleaut32.lib comctl32.lib $(NoInherit)"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories=""C:\Documents and Settings\All Users\Documenti\openssl-0.9.8b\out32""
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
WarningLevel="2"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(SolutionDir)";"C:\Documents and Settings\All Users\Documenti\openssl-0.9.8b\inc32""
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib ws2_32.lib libeay32.lib advapi32.lib msimg32.lib ole32.lib oleaut32.lib comctl32.lib $(NoInherit)"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories=""C:\Documents and Settings\All Users\Documenti\openssl-0.9.8b\out32""
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
<ProjectReference
|
||||
ReferencedProjectIdentifier="{8620E9B2-9AF0-4F69-A5AF-C195D5F86372}"
|
||||
RelativePathToProject=".\rdesktop\rdesktop-core.vcproj"
|
||||
/>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\activex.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\rdesktop-core-tester.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="MIDL"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\mstsclib.idl"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName="$(IntDir)/$(InputName).tlb"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName="$(IntDir)/$(InputName).tlb"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\mstsclib.rc"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="TYPELIB_PATH__=$(IntDir)/$(InputName).tlb"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="TYPELIB_PATH__=$(IntDir)/$(InputName).tlb"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\mstsclib_h.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\mstsclib_i.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_MIDL_USE_GUIDDEF_"
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_MIDL_USE_GUIDDEF_"
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\mstsclib_redist.idl"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName="$(IntDir)/$(InputName).tlb"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName="$(IntDir)/$(InputName).tlb"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\mstsclib_redist.rc"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="TYPELIB_PATH__=$(IntDir)/$(InputName).tlb"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="TYPELIB_PATH__=$(IntDir)/$(InputName).tlb"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\mstsclib_redist_h.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\mstsclib_redist_i.c"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_MIDL_USE_GUIDDEF_"
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_MIDL_USE_GUIDDEF_"
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\typelib.rh"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
|
@ -0,0 +1,3 @@
|
|||
#include "stdafx.h"
|
||||
|
||||
// EOF
|
|
@ -0,0 +1,32 @@
|
|||
#pragma once
|
||||
|
||||
#define _CRT_SECURE_NO_DEPRECATE
|
||||
#define _SECURE_SCL 0
|
||||
|
||||
#include <new>
|
||||
#include <algorithm>
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <direct.h>
|
||||
#include <io.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <winsock2.h>
|
||||
|
||||
#include <objbase.h>
|
||||
#include <oleauto.h>
|
||||
#include <olectl.h>
|
||||
#include <ocidl.h>
|
||||
#include <objsafe.h>
|
||||
|
||||
#include <commctrl.h>
|
||||
|
||||
// EOF
|
|
@ -0,0 +1,21 @@
|
|||
#define TOSTRING_(X) #X
|
||||
#define TOSTRING(X) TOSTRING_(X)
|
||||
|
||||
LANGUAGE 0, 0
|
||||
|
||||
#ifndef TYPELIB_PATH__
|
||||
#error TYPELIB_PATH__ not defined
|
||||
#endif
|
||||
|
||||
#ifndef TYPELIB_RESOURCEID__
|
||||
#error TYPELIB_RESOURCEID__ not defined
|
||||
#endif
|
||||
|
||||
/*
|
||||
NOTE:
|
||||
TYPELIB_PATH__ is defined on the command line (-D TYPELIB_PATH__=<path>)
|
||||
TYPELIB_RESOURCEID__ is defined before this file is included
|
||||
*/
|
||||
TYPELIB_RESOURCEID__ TYPELIB TOSTRING(TYPELIB_PATH__)
|
||||
|
||||
// EOF
|
346
rosapps/applications/net/tsclient/rdesktop/COPYING
Normal file
346
rosapps/applications/net/tsclient/rdesktop/COPYING
Normal file
|
@ -0,0 +1,346 @@
|
|||
This software is released under the GNU General Public License
|
||||
(reproduced below) with the additional exemption that compiling,
|
||||
linking, and/or using OpenSSL together with this software is
|
||||
allowed.
|
||||
|
||||
---
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
158
rosapps/applications/net/tsclient/rdesktop/Makefile.in
Normal file
158
rosapps/applications/net/tsclient/rdesktop/Makefile.in
Normal file
|
@ -0,0 +1,158 @@
|
|||
#
|
||||
# rdesktop: A Remote Desktop Protocol client
|
||||
# Makefile.in
|
||||
# Copyright (C) Matthew Chapman 1999-2005
|
||||
#
|
||||
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
bindir = @bindir@
|
||||
mandir = @mandir@
|
||||
datadir = @datadir@
|
||||
|
||||
VERSION = @PACKAGE_VERSION@
|
||||
KEYMAP_PATH = $(datadir)/rdesktop/keymaps/
|
||||
|
||||
CC = @CC@
|
||||
INSTALL = @INSTALL@
|
||||
CFLAGS = @CFLAGS@ @X_CFLAGS@ @DEFS@ -DKEYMAP_PATH=\"$(KEYMAP_PATH)\"
|
||||
LDFLAGS = @LDFLAGS@ @LIBS@ @X_LIBS@ @X_EXTRA_LIBS@
|
||||
STRIP = @STRIP@
|
||||
|
||||
TARGETS = rdesktop @RDP2VNCTARGET@
|
||||
VNCINC = @VNCINC@
|
||||
LDVNC = @LDVNC@
|
||||
VNCLINK = @VNCLINK@
|
||||
SOUNDOBJ = @SOUNDOBJ@
|
||||
|
||||
RDPOBJ = tcp.o iso.o mcs.o secure.o licence.o rdp.o orders.o bitmap.o cache.o rdp5.o channels.o rdpdr.o serial.o printer.o disk.o parallel.o printercache.o mppc.o pstcache.o lspci.o seamless.o
|
||||
X11OBJ = rdesktop.o xwin.o xkeymap.o ewmhints.o xclip.o cliprdr.o
|
||||
VNCOBJ = vnc/rdp2vnc.o vnc/vnc.o vnc/xkeymap.o vnc/x11stubs.o
|
||||
|
||||
.PHONY: all
|
||||
all: $(TARGETS)
|
||||
|
||||
rdesktop: $(X11OBJ) $(SOUNDOBJ) $(RDPOBJ)
|
||||
$(CC) $(CFLAGS) -o rdesktop $(X11OBJ) $(SOUNDOBJ) $(RDPOBJ) $(LDFLAGS) -lX11
|
||||
|
||||
rdp2vnc: $(VNCOBJ) $(SOUNDOBJ) $(RDPOBJ)
|
||||
$(VNCLINK) $(CFLAGS) -o rdp2vnc $(VNCOBJ) $(SOUNDOBJ) $(RDPOBJ) $(LDFLAGS) $(LDVNC)
|
||||
|
||||
vnc/rdp2vnc.o: rdesktop.c
|
||||
$(CC) $(CFLAGS) $(VNCINC) -DRDP2VNC -o vnc/rdp2vnc.o -c rdesktop.c
|
||||
|
||||
vnc/vnc.o: vnc/vnc.c
|
||||
$(CC) $(CFLAGS) $(VNCINC) -DRDP2VNC -o vnc/vnc.o -c vnc/vnc.c
|
||||
|
||||
vnc/xkeymap.o: xkeymap.c
|
||||
$(CC) $(CFLAGS) $(VNCINC) -DRDP2VNC -o vnc/xkeymap.o -c xkeymap.c
|
||||
|
||||
vnc/x11stubs.o: vnc/x11stubs.c
|
||||
$(CC) $(CFLAGS) $(VNCINC) -o vnc/x11stubs.o -c vnc/x11stubs.c
|
||||
|
||||
.PHONY: install
|
||||
install: installbin installkeymaps installman
|
||||
|
||||
.PHONY: installbin
|
||||
installbin: rdesktop
|
||||
mkdir -p $(DESTDIR)$(bindir)
|
||||
$(INSTALL) rdesktop $(DESTDIR)$(bindir)
|
||||
$(STRIP) $(DESTDIR)$(bindir)/rdesktop
|
||||
chmod 755 $(DESTDIR)$(bindir)/rdesktop
|
||||
|
||||
.PHONY: installman
|
||||
installman: doc/rdesktop.1
|
||||
mkdir -p $(DESTDIR)$(mandir)/man1
|
||||
cp doc/rdesktop.1 $(DESTDIR)$(mandir)/man1
|
||||
chmod 644 $(DESTDIR)$(mandir)/man1/rdesktop.1
|
||||
|
||||
.PHONY: installkeymaps
|
||||
installkeymaps:
|
||||
mkdir -p $(DESTDIR)$(KEYMAP_PATH)
|
||||
# Prevent copying the CVS directory
|
||||
cp keymaps/?? keymaps/??-?? $(DESTDIR)$(KEYMAP_PATH)
|
||||
cp keymaps/common $(DESTDIR)$(KEYMAP_PATH)
|
||||
cp keymaps/modifiers $(DESTDIR)$(KEYMAP_PATH)
|
||||
chmod 644 $(DESTDIR)$(KEYMAP_PATH)/*
|
||||
|
||||
.PHONY: proto
|
||||
proto:
|
||||
cat proto.head > proto.h
|
||||
cproto -DMAKE_PROTO \
|
||||
bitmap.c cache.c channels.c cliprdr.c disk.c mppc.c ewmhints.c \
|
||||
iso.c licence.c mcs.c orders.c parallel.c printer.c printercache.c \
|
||||
pstcache.c rdesktop.c rdp5.c rdp.c rdpdr.c rdpsnd.c rdpsnd_oss.c \
|
||||
secure.c serial.c tcp.c xclip.c xkeymap.c xwin.c lspci.c seamless.c >> proto.h
|
||||
cat proto.tail >> proto.h
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -f *.o *~ vnc/*.o vnc/*~ rdesktop rdp2vnc
|
||||
|
||||
.PHONY: distclean
|
||||
distclean: clean
|
||||
rm -rf autom4te.cache config.log config.status Makefile
|
||||
|
||||
.PHONY: dist
|
||||
dist: rdesktop-$(VERSION).tar.gz
|
||||
|
||||
rdesktop-$(VERSION).tar.gz: Makefile configure
|
||||
mkdir -p /tmp/rdesktop-make-dist-dir
|
||||
ln -sf `pwd` /tmp/rdesktop-make-dist-dir/rdesktop-$(VERSION)
|
||||
(cd /tmp/rdesktop-make-dist-dir; \
|
||||
tar zcvf rdesktop-$(VERSION)/rdesktop-$(VERSION).tar.gz \
|
||||
rdesktop-$(VERSION)/COPYING \
|
||||
rdesktop-$(VERSION)/README \
|
||||
rdesktop-$(VERSION)/configure \
|
||||
rdesktop-$(VERSION)/configure.ac \
|
||||
rdesktop-$(VERSION)/config.sub \
|
||||
rdesktop-$(VERSION)/config.guess \
|
||||
rdesktop-$(VERSION)/bootstrap \
|
||||
rdesktop-$(VERSION)/install-sh \
|
||||
rdesktop-$(VERSION)/Makefile.in \
|
||||
rdesktop-$(VERSION)/rdesktop.spec \
|
||||
rdesktop-$(VERSION)/*.c \
|
||||
rdesktop-$(VERSION)/*.h \
|
||||
rdesktop-$(VERSION)/proto.head \
|
||||
rdesktop-$(VERSION)/proto.tail \
|
||||
rdesktop-$(VERSION)/keymaps/?? \
|
||||
rdesktop-$(VERSION)/keymaps/??-?? \
|
||||
rdesktop-$(VERSION)/keymaps/common \
|
||||
rdesktop-$(VERSION)/keymaps/modifiers \
|
||||
rdesktop-$(VERSION)/keymaps/convert-map \
|
||||
rdesktop-$(VERSION)/doc/HACKING \
|
||||
rdesktop-$(VERSION)/doc/AUTHORS \
|
||||
rdesktop-$(VERSION)/doc/TODO \
|
||||
rdesktop-$(VERSION)/doc/ChangeLog \
|
||||
rdesktop-$(VERSION)/doc/keymapping.txt \
|
||||
rdesktop-$(VERSION)/doc/keymap-names.txt \
|
||||
rdesktop-$(VERSION)/doc/ipv6.txt \
|
||||
rdesktop-$(VERSION)/doc/licensing.txt \
|
||||
rdesktop-$(VERSION)/doc/patches.txt \
|
||||
rdesktop-$(VERSION)/doc/redirection.txt \
|
||||
rdesktop-$(VERSION)/doc/rdesktop.1 )
|
||||
rm -rf /tmp/rdesktop-make-dist-dir
|
||||
|
||||
.PHONY: dist-noversion
|
||||
dist-noversion: rdesktop.tar.gz
|
||||
|
||||
rdesktop.tar.gz: rdesktop-$(VERSION).tar.gz
|
||||
mkdir -p /tmp/rdesktop-make-dist-dir
|
||||
tar zxvf $< -C /tmp/rdesktop-make-dist-dir
|
||||
mv /tmp/rdesktop-make-dist-dir/rdesktop-$(VERSION) /tmp/rdesktop-make-dist-dir/rdesktop
|
||||
ls /tmp/rdesktop-make-dist-dir/rdesktop
|
||||
tar zcvf $@ -C /tmp/rdesktop-make-dist-dir rdesktop
|
||||
rm -rf /tmp/rdesktop-make-dist-dir
|
||||
|
||||
Makefile: Makefile.in configure
|
||||
./config.status
|
||||
|
||||
configure: configure.ac
|
||||
./bootstrap
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .o
|
||||
|
||||
.c.o:
|
||||
$(CC) $(CFLAGS) -o $@ -c $<
|
||||
|
32
rosapps/applications/net/tsclient/rdesktop/README
Normal file
32
rosapps/applications/net/tsclient/rdesktop/README
Normal file
|
@ -0,0 +1,32 @@
|
|||
===========================================
|
||||
rdesktop: A Remote Desktop Protocol client.
|
||||
===========================================
|
||||
|
||||
rdesktop is a client for Microsoft Windows NT Terminal Server, Windows 2000
|
||||
Terminal Services, Windows 2003 Terminal Services/Remote Desktop, Windows XP
|
||||
Remote Desktop, and possibly other Terminal Services products.
|
||||
rdesktop currently implements the RDP version 4 and 5 protocols.
|
||||
|
||||
Installation
|
||||
------------
|
||||
rdesktop uses a typical GNU-style build procedure:
|
||||
|
||||
% ./configure [options]
|
||||
% make
|
||||
% make install
|
||||
|
||||
where documentation for [options] can be found by running "./configure --help".
|
||||
Usually no options are necessary. The default is to install under /usr/local,
|
||||
this can be changed with --prefix=directory.
|
||||
|
||||
Invocation
|
||||
----------
|
||||
|
||||
% rdesktop [options] server
|
||||
|
||||
where server is the name of the Terminal Services machine. Note: if you
|
||||
receive "Connection refused", this probably means that the server does not have
|
||||
Terminal Services enabled, or there is a firewall blocking access.
|
||||
|
||||
The rdesktop manual page lists the possible options ("man rdesktop").
|
||||
|
1112
rosapps/applications/net/tsclient/rdesktop/bitmap.c
Normal file
1112
rosapps/applications/net/tsclient/rdesktop/bitmap.c
Normal file
File diff suppressed because it is too large
Load diff
3
rosapps/applications/net/tsclient/rdesktop/bootstrap
Normal file
3
rosapps/applications/net/tsclient/rdesktop/bootstrap
Normal file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
rm -rf autom4te.cache
|
||||
autoreconf -i
|
414
rosapps/applications/net/tsclient/rdesktop/cache.c
Normal file
414
rosapps/applications/net/tsclient/rdesktop/cache.c
Normal file
|
@ -0,0 +1,414 @@
|
|||
/* -*- c-basic-offset: 8 -*-
|
||||
rdesktop: A Remote Desktop Protocol client.
|
||||
Cache routines
|
||||
Copyright (C) Matthew Chapman 1999-2005
|
||||
Copyright (C) Jeroen Meijer 2005
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include "rdesktop.h"
|
||||
|
||||
#undef IS_SET // !!!FIXME!!!
|
||||
|
||||
/* BITMAP CACHE */
|
||||
#define NUM_ELEMENTS(array) (sizeof(array) / sizeof(array[0]))
|
||||
#define IS_PERSISTENT(id) (This->pstcache_fd[id] > 0)
|
||||
#define TO_TOP -1
|
||||
#define NOT_SET -1
|
||||
#define IS_SET(idx) (idx >= 0)
|
||||
|
||||
/*
|
||||
* TODO: Test for optimal value of BUMP_COUNT. TO_TOP gives lowest cpu utilisation but using
|
||||
* a positive value will hopefully result in less frequently used bitmaps having a greater chance
|
||||
* of being evicted from the cache, and therby reducing the need to load bitmaps from disk.
|
||||
* (Jeroen)
|
||||
*/
|
||||
#define BUMP_COUNT 40
|
||||
|
||||
/* Setup the bitmap cache lru/mru linked list */
|
||||
void
|
||||
cache_rebuild_bmpcache_linked_list(RDPCLIENT * This, uint8 id, sint16 * idx, int count)
|
||||
{
|
||||
int n = count, c = 0;
|
||||
sint16 n_idx;
|
||||
|
||||
/* find top, skip evicted bitmaps */
|
||||
while (--n >= 0 && This->cache.bmpcache[id][idx[n]].bitmap == NULL);
|
||||
if (n < 0)
|
||||
{
|
||||
This->cache.bmpcache_mru[id] = This->cache.bmpcache_lru[id] = NOT_SET;
|
||||
return;
|
||||
}
|
||||
|
||||
This->cache.bmpcache_mru[id] = idx[n];
|
||||
This->cache.bmpcache[id][idx[n]].next = NOT_SET;
|
||||
n_idx = idx[n];
|
||||
c++;
|
||||
|
||||
/* link list */
|
||||
while (n >= 0)
|
||||
{
|
||||
/* skip evicted bitmaps */
|
||||
while (--n >= 0 && This->cache.bmpcache[id][idx[n]].bitmap == NULL);
|
||||
|
||||
if (n < 0)
|
||||
break;
|
||||
|
||||
This->cache.bmpcache[id][n_idx].previous = idx[n];
|
||||
This->cache.bmpcache[id][idx[n]].next = n_idx;
|
||||
n_idx = idx[n];
|
||||
c++;
|
||||
}
|
||||
|
||||
This->cache.bmpcache[id][n_idx].previous = NOT_SET;
|
||||
This->cache.bmpcache_lru[id] = n_idx;
|
||||
|
||||
if (c != This->cache.bmpcache_count[id])
|
||||
{
|
||||
error("Oops. %d in bitmap cache linked list, %d in ui cache...\n", c,
|
||||
This->cache.bmpcache_count[id]);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
/* Move a bitmap to a new position in the linked list. */
|
||||
void
|
||||
cache_bump_bitmap(RDPCLIENT * This, uint8 id, uint16 idx, int bump)
|
||||
{
|
||||
int p_idx, n_idx, n;
|
||||
|
||||
if (!IS_PERSISTENT(id))
|
||||
return;
|
||||
|
||||
if (This->cache.bmpcache_mru[id] == idx)
|
||||
return;
|
||||
|
||||
DEBUG_RDP5(("bump bitmap: id=%d, idx=%d, bump=%d\n", id, idx, bump));
|
||||
|
||||
n_idx = This->cache.bmpcache[id][idx].next;
|
||||
p_idx = This->cache.bmpcache[id][idx].previous;
|
||||
|
||||
if (IS_SET(n_idx))
|
||||
{
|
||||
/* remove */
|
||||
--This->cache.bmpcache_count[id];
|
||||
if (IS_SET(p_idx))
|
||||
This->cache.bmpcache[id][p_idx].next = n_idx;
|
||||
else
|
||||
This->cache.bmpcache_lru[id] = n_idx;
|
||||
if (IS_SET(n_idx))
|
||||
This->cache.bmpcache[id][n_idx].previous = p_idx;
|
||||
else
|
||||
This->cache.bmpcache_mru[id] = p_idx;
|
||||
}
|
||||
else
|
||||
{
|
||||
p_idx = NOT_SET;
|
||||
n_idx = This->cache.bmpcache_lru[id];
|
||||
}
|
||||
|
||||
if (bump >= 0)
|
||||
{
|
||||
for (n = 0; n < bump && IS_SET(n_idx); n++)
|
||||
{
|
||||
p_idx = n_idx;
|
||||
n_idx = This->cache.bmpcache[id][p_idx].next;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
p_idx = This->cache.bmpcache_mru[id];
|
||||
n_idx = NOT_SET;
|
||||
}
|
||||
|
||||
/* insert */
|
||||
++This->cache.bmpcache_count[id];
|
||||
This->cache.bmpcache[id][idx].previous = p_idx;
|
||||
This->cache.bmpcache[id][idx].next = n_idx;
|
||||
|
||||
if (p_idx >= 0)
|
||||
This->cache.bmpcache[id][p_idx].next = idx;
|
||||
else
|
||||
This->cache.bmpcache_lru[id] = idx;
|
||||
|
||||
if (n_idx >= 0)
|
||||
This->cache.bmpcache[id][n_idx].previous = idx;
|
||||
else
|
||||
This->cache.bmpcache_mru[id] = idx;
|
||||
}
|
||||
|
||||
/* Evict the least-recently used bitmap from the cache */
|
||||
void
|
||||
cache_evict_bitmap(RDPCLIENT * This, uint8 id)
|
||||
{
|
||||
uint16 idx;
|
||||
int n_idx;
|
||||
|
||||
if (!IS_PERSISTENT(id))
|
||||
return;
|
||||
|
||||
idx = This->cache.bmpcache_lru[id];
|
||||
n_idx = This->cache.bmpcache[id][idx].next;
|
||||
DEBUG_RDP5(("evict bitmap: id=%d idx=%d n_idx=%d bmp=0x%x\n", id, idx, n_idx,
|
||||
This->cache.bmpcache[id][idx].bitmap));
|
||||
|
||||
ui_destroy_bitmap(This, This->cache.bmpcache[id][idx].bitmap);
|
||||
--This->cache.bmpcache_count[id];
|
||||
This->cache.bmpcache[id][idx].bitmap = 0;
|
||||
|
||||
This->cache.bmpcache_lru[id] = n_idx;
|
||||
This->cache.bmpcache[id][n_idx].previous = NOT_SET;
|
||||
|
||||
pstcache_touch_bitmap(This, id, idx, 0);
|
||||
}
|
||||
|
||||
/* Retrieve a bitmap from the cache */
|
||||
HBITMAP
|
||||
cache_get_bitmap(RDPCLIENT * This, uint8 id, uint16 idx)
|
||||
{
|
||||
if ((id < NUM_ELEMENTS(This->cache.bmpcache)) && (idx < NUM_ELEMENTS(This->cache.bmpcache[0])))
|
||||
{
|
||||
if (This->cache.bmpcache[id][idx].bitmap || pstcache_load_bitmap(This, id, idx))
|
||||
{
|
||||
if (IS_PERSISTENT(id))
|
||||
cache_bump_bitmap(This, id, idx, BUMP_COUNT);
|
||||
|
||||
return This->cache.bmpcache[id][idx].bitmap;
|
||||
}
|
||||
}
|
||||
else if ((id < NUM_ELEMENTS(This->cache.volatile_bc)) && (idx == 0x7fff))
|
||||
{
|
||||
return This->cache.volatile_bc[id];
|
||||
}
|
||||
|
||||
error("get bitmap %d:%d\n", id, idx);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Store a bitmap in the cache */
|
||||
void
|
||||
cache_put_bitmap(RDPCLIENT * This, uint8 id, uint16 idx, HBITMAP bitmap)
|
||||
{
|
||||
HBITMAP old;
|
||||
|
||||
if ((id < NUM_ELEMENTS(This->cache.bmpcache)) && (idx < NUM_ELEMENTS(This->cache.bmpcache[0])))
|
||||
{
|
||||
old = This->cache.bmpcache[id][idx].bitmap;
|
||||
if (old != NULL)
|
||||
ui_destroy_bitmap(This, old);
|
||||
This->cache.bmpcache[id][idx].bitmap = bitmap;
|
||||
|
||||
if (IS_PERSISTENT(id))
|
||||
{
|
||||
if (old == NULL)
|
||||
This->cache.bmpcache[id][idx].previous = This->cache.bmpcache[id][idx].next = NOT_SET;
|
||||
|
||||
cache_bump_bitmap(This, id, idx, TO_TOP);
|
||||
if (This->cache.bmpcache_count[id] > BMPCACHE2_C2_CELLS)
|
||||
cache_evict_bitmap(This, id);
|
||||
}
|
||||
}
|
||||
else if ((id < NUM_ELEMENTS(This->cache.volatile_bc)) && (idx == 0x7fff))
|
||||
{
|
||||
old = This->cache.volatile_bc[id];
|
||||
if (old != NULL)
|
||||
ui_destroy_bitmap(This, old);
|
||||
This->cache.volatile_bc[id] = bitmap;
|
||||
}
|
||||
else
|
||||
{
|
||||
error("put bitmap %d:%d\n", id, idx);
|
||||
}
|
||||
}
|
||||
|
||||
/* Updates the persistent bitmap cache MRU information on exit */
|
||||
void
|
||||
cache_save_state(RDPCLIENT * This)
|
||||
{
|
||||
uint32 id = 0, t = 0;
|
||||
int idx;
|
||||
|
||||
for (id = 0; id < NUM_ELEMENTS(This->cache.bmpcache); id++)
|
||||
if (IS_PERSISTENT(id))
|
||||
{
|
||||
DEBUG_RDP5(("Saving cache state for bitmap cache %d...", id));
|
||||
idx = This->cache.bmpcache_lru[id];
|
||||
while (idx >= 0)
|
||||
{
|
||||
pstcache_touch_bitmap(This, id, idx, ++t);
|
||||
idx = This->cache.bmpcache[id][idx].next;
|
||||
}
|
||||
DEBUG_RDP5((" %d stamps written.\n", t));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* FONT CACHE */
|
||||
/* Retrieve a glyph from the font cache */
|
||||
FONTGLYPH *
|
||||
cache_get_font(RDPCLIENT * This, uint8 font, uint16 character)
|
||||
{
|
||||
FONTGLYPH *glyph;
|
||||
|
||||
if ((font < NUM_ELEMENTS(This->cache.fontcache)) && (character < NUM_ELEMENTS(This->cache.fontcache[0])))
|
||||
{
|
||||
glyph = &This->cache.fontcache[font][character];
|
||||
if (glyph->pixmap != NULL)
|
||||
return glyph;
|
||||
}
|
||||
|
||||
error("get font %d:%d\n", font, character);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Store a glyph in the font cache */
|
||||
void
|
||||
cache_put_font(RDPCLIENT * This, uint8 font, uint16 character, uint16 offset,
|
||||
uint16 baseline, uint16 width, uint16 height, HGLYPH pixmap)
|
||||
{
|
||||
FONTGLYPH *glyph;
|
||||
|
||||
if ((font < NUM_ELEMENTS(This->cache.fontcache)) && (character < NUM_ELEMENTS(This->cache.fontcache[0])))
|
||||
{
|
||||
glyph = &This->cache.fontcache[font][character];
|
||||
if (glyph->pixmap != NULL)
|
||||
ui_destroy_glyph(This, glyph->pixmap);
|
||||
|
||||
glyph->offset = offset;
|
||||
glyph->baseline = baseline;
|
||||
glyph->width = width;
|
||||
glyph->height = height;
|
||||
glyph->pixmap = pixmap;
|
||||
}
|
||||
else
|
||||
{
|
||||
error("put font %d:%d\n", font, character);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* TEXT CACHE */
|
||||
/* Retrieve a text item from the cache */
|
||||
DATABLOB *
|
||||
cache_get_text(RDPCLIENT * This, uint8 cache_id)
|
||||
{
|
||||
DATABLOB *text;
|
||||
|
||||
text = &This->cache.textcache[cache_id];
|
||||
return text;
|
||||
}
|
||||
|
||||
/* Store a text item in the cache */
|
||||
void
|
||||
cache_put_text(RDPCLIENT * This, uint8 cache_id, void *data, int length)
|
||||
{
|
||||
DATABLOB *text;
|
||||
void * p = malloc(length);
|
||||
|
||||
if(p == NULL)
|
||||
return;
|
||||
|
||||
text = &This->cache.textcache[cache_id];
|
||||
if (text->data != NULL)
|
||||
free(text->data);
|
||||
text->data = p;
|
||||
text->size = length;
|
||||
memcpy(text->data, data, length);
|
||||
}
|
||||
|
||||
|
||||
/* DESKTOP CACHE */
|
||||
/* Retrieve desktop data from the cache */
|
||||
uint8 *
|
||||
cache_get_desktop(RDPCLIENT * This, uint32 offset, int cx, int cy, int bytes_per_pixel)
|
||||
{
|
||||
int length = cx * cy * bytes_per_pixel;
|
||||
|
||||
if (offset > sizeof(This->cache.deskcache))
|
||||
offset = 0;
|
||||
|
||||
if ((offset + length) <= sizeof(This->cache.deskcache))
|
||||
{
|
||||
return &This->cache.deskcache[offset];
|
||||
}
|
||||
|
||||
error("get desktop %d:%d\n", offset, length);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Store desktop data in the cache */
|
||||
void
|
||||
cache_put_desktop(RDPCLIENT * This, uint32 offset, int cx, int cy, int scanline, int bytes_per_pixel, uint8 * data)
|
||||
{
|
||||
int length = cx * cy * bytes_per_pixel;
|
||||
|
||||
if (offset > sizeof(This->cache.deskcache))
|
||||
offset = 0;
|
||||
|
||||
if ((offset + length) <= sizeof(This->cache.deskcache))
|
||||
{
|
||||
cx *= bytes_per_pixel;
|
||||
while (cy--)
|
||||
{
|
||||
memcpy(&This->cache.deskcache[offset], data, cx);
|
||||
data += scanline;
|
||||
offset += cx;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
error("put desktop %d:%d\n", offset, length);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* CURSOR CACHE */
|
||||
/* Retrieve cursor from cache */
|
||||
HCURSOR
|
||||
cache_get_cursor(RDPCLIENT * This, uint16 cache_idx)
|
||||
{
|
||||
HCURSOR cursor;
|
||||
|
||||
if (cache_idx < NUM_ELEMENTS(This->cache.cursorcache))
|
||||
{
|
||||
cursor = This->cache.cursorcache[cache_idx];
|
||||
if (cursor != NULL)
|
||||
return cursor;
|
||||
}
|
||||
|
||||
error("get cursor %d\n", cache_idx);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Store cursor in cache */
|
||||
void
|
||||
cache_put_cursor(RDPCLIENT * This, uint16 cache_idx, HCURSOR cursor)
|
||||
{
|
||||
HCURSOR old;
|
||||
|
||||
if (cache_idx < NUM_ELEMENTS(This->cache.cursorcache))
|
||||
{
|
||||
old = This->cache.cursorcache[cache_idx];
|
||||
if (old != NULL)
|
||||
ui_destroy_cursor(This, old);
|
||||
|
||||
This->cache.cursorcache[cache_idx] = cursor;
|
||||
}
|
||||
else
|
||||
{
|
||||
error("put cursor %d\n", cache_idx);
|
||||
}
|
||||
}
|
177
rosapps/applications/net/tsclient/rdesktop/channels.c
Normal file
177
rosapps/applications/net/tsclient/rdesktop/channels.c
Normal file
|
@ -0,0 +1,177 @@
|
|||
/* -*- c-basic-offset: 8 -*-
|
||||
rdesktop: A Remote Desktop Protocol client.
|
||||
Protocol services - Virtual channels
|
||||
Copyright (C) Erik Forsberg <forsberg@cendio.se> 2003
|
||||
Copyright (C) Matthew Chapman 2003-2005
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include "rdesktop.h"
|
||||
|
||||
// FIXME: header mess
|
||||
#if 0
|
||||
#define CHANNEL_CHUNK_LENGTH 1600
|
||||
#define CHANNEL_FLAG_FIRST 0x01
|
||||
#define CHANNEL_FLAG_LAST 0x02
|
||||
#define CHANNEL_FLAG_SHOW_PROTOCOL 0x10
|
||||
#endif
|
||||
|
||||
/* FIXME: We should use the information in TAG_SRV_CHANNELS to map RDP5
|
||||
channels to MCS channels.
|
||||
|
||||
The format of TAG_SRV_CHANNELS seems to be
|
||||
|
||||
global_channel_no (uint16le)
|
||||
number_of_other_channels (uint16le)
|
||||
..followed by uint16les for the other channels.
|
||||
*/
|
||||
|
||||
VCHANNEL *
|
||||
channel_register(RDPCLIENT * This, char *name, uint32 flags, void (*callback) (RDPCLIENT *, STREAM))
|
||||
{
|
||||
VCHANNEL *channel;
|
||||
|
||||
if (!This->use_rdp5)
|
||||
return NULL;
|
||||
|
||||
if (This->num_channels >= MAX_CHANNELS)
|
||||
{
|
||||
error("Channel table full, increase MAX_CHANNELS\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
channel = &This->channels[This->num_channels];
|
||||
channel->mcs_id = MCS_GLOBAL_CHANNEL + 1 + This->num_channels;
|
||||
strncpy(channel->name, name, 8);
|
||||
channel->flags = flags;
|
||||
channel->process = callback;
|
||||
This->num_channels++;
|
||||
return channel;
|
||||
}
|
||||
|
||||
STREAM
|
||||
channel_init(RDPCLIENT * This, VCHANNEL * channel, uint32 length)
|
||||
{
|
||||
STREAM s;
|
||||
|
||||
s = sec_init(This, This->encryption ? SEC_ENCRYPT : 0, length + 8);
|
||||
s_push_layer(s, channel_hdr, 8);
|
||||
return s;
|
||||
}
|
||||
|
||||
void
|
||||
channel_send(RDPCLIENT * This, STREAM s, VCHANNEL * channel)
|
||||
{
|
||||
uint32 length, flags;
|
||||
uint32 thislength, remaining;
|
||||
uint8 *data;
|
||||
|
||||
/* first fragment sent in-place */
|
||||
s_pop_layer(s, channel_hdr);
|
||||
length = s->end - s->p - sizeof(CHANNEL_PDU_HEADER);
|
||||
|
||||
DEBUG_CHANNEL(("channel_send, length = %d\n", length));
|
||||
|
||||
thislength = MIN(length, CHANNEL_CHUNK_LENGTH);
|
||||
/* Note: In the original clipboard implementation, this number was
|
||||
1592, not 1600. However, I don't remember the reason and 1600 seems
|
||||
to work so.. This applies only to *this* length, not the length of
|
||||
continuation or ending packets. */
|
||||
remaining = length - thislength;
|
||||
flags = (remaining == 0) ? CHANNEL_FLAG_FIRST | CHANNEL_FLAG_LAST : CHANNEL_FLAG_FIRST;
|
||||
if (channel->flags & CHANNEL_OPTION_SHOW_PROTOCOL)
|
||||
flags |= CHANNEL_FLAG_SHOW_PROTOCOL;
|
||||
|
||||
out_uint32_le(s, length);
|
||||
out_uint32_le(s, flags);
|
||||
data = s->end = s->p + thislength;
|
||||
DEBUG_CHANNEL(("Sending %d bytes with FLAG_FIRST\n", thislength));
|
||||
sec_send_to_channel(This, s, This->encryption ? SEC_ENCRYPT : 0, channel->mcs_id);
|
||||
|
||||
/* subsequent segments copied (otherwise would have to generate headers backwards) */
|
||||
while (remaining > 0)
|
||||
{
|
||||
thislength = MIN(remaining, CHANNEL_CHUNK_LENGTH);
|
||||
remaining -= thislength;
|
||||
flags = (remaining == 0) ? CHANNEL_FLAG_LAST : 0;
|
||||
if (channel->flags & CHANNEL_OPTION_SHOW_PROTOCOL)
|
||||
flags |= CHANNEL_FLAG_SHOW_PROTOCOL;
|
||||
|
||||
DEBUG_CHANNEL(("Sending %d bytes with flags %d\n", thislength, flags));
|
||||
|
||||
s = sec_init(This, This->encryption ? SEC_ENCRYPT : 0, thislength + 8);
|
||||
out_uint32_le(s, length);
|
||||
out_uint32_le(s, flags);
|
||||
out_uint8p(s, data, thislength);
|
||||
s_mark_end(s);
|
||||
sec_send_to_channel(This, s, This->encryption ? SEC_ENCRYPT : 0, channel->mcs_id);
|
||||
|
||||
data += thislength;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
channel_process(RDPCLIENT * This, STREAM s, uint16 mcs_channel)
|
||||
{
|
||||
uint32 length, flags;
|
||||
uint32 thislength;
|
||||
VCHANNEL *channel = NULL;
|
||||
unsigned int i;
|
||||
STREAM in;
|
||||
|
||||
for (i = 0; i < This->num_channels; i++)
|
||||
{
|
||||
channel = &This->channels[i];
|
||||
if (channel->mcs_id == mcs_channel)
|
||||
break;
|
||||
}
|
||||
|
||||
if (i >= This->num_channels)
|
||||
return;
|
||||
|
||||
in_uint32_le(s, length);
|
||||
in_uint32_le(s, flags);
|
||||
if ((flags & CHANNEL_FLAG_FIRST) && (flags & CHANNEL_FLAG_LAST))
|
||||
{
|
||||
/* single fragment - pass straight up */
|
||||
channel->process(This, s);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* add fragment to defragmentation buffer */
|
||||
in = &channel->in;
|
||||
if (flags & CHANNEL_FLAG_FIRST)
|
||||
{
|
||||
if (length > in->size)
|
||||
{
|
||||
in->data = (uint8 *) xrealloc(in->data, length);
|
||||
in->size = length;
|
||||
}
|
||||
in->p = in->data;
|
||||
}
|
||||
|
||||
thislength = MIN(s->end - s->p, in->data + in->size - in->p);
|
||||
memcpy(in->p, s->p, thislength);
|
||||
in->p += thislength;
|
||||
|
||||
if (flags & CHANNEL_FLAG_LAST)
|
||||
{
|
||||
in->end = in->p;
|
||||
in->p = in->data;
|
||||
channel->process(This, in);
|
||||
}
|
||||
}
|
||||
}
|
182
rosapps/applications/net/tsclient/rdesktop/cliprdr.c
Normal file
182
rosapps/applications/net/tsclient/rdesktop/cliprdr.c
Normal file
|
@ -0,0 +1,182 @@
|
|||
/* -*- c-basic-offset: 8 -*-
|
||||
rdesktop: A Remote Desktop Protocol client.
|
||||
Protocol services - Clipboard functions
|
||||
Copyright (C) Erik Forsberg <forsberg@cendio.se> 2003
|
||||
Copyright (C) Matthew Chapman 2003
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include "rdesktop.h"
|
||||
|
||||
#define CLIPRDR_CONNECT 1
|
||||
#define CLIPRDR_FORMAT_ANNOUNCE 2
|
||||
#define CLIPRDR_FORMAT_ACK 3
|
||||
#define CLIPRDR_DATA_REQUEST 4
|
||||
#define CLIPRDR_DATA_RESPONSE 5
|
||||
|
||||
#define CLIPRDR_REQUEST 0
|
||||
#define CLIPRDR_RESPONSE 1
|
||||
#define CLIPRDR_ERROR 2
|
||||
|
||||
static void
|
||||
cliprdr_send_packet(RDPCLIENT * This, uint16 type, uint16 status, uint8 * data, uint32 length)
|
||||
{
|
||||
STREAM s;
|
||||
|
||||
DEBUG_CLIPBOARD(("CLIPRDR send: type=%d, status=%d, length=%d\n", type, status, length));
|
||||
|
||||
s = channel_init(This, This->cliprdr.channel, length + 12);
|
||||
out_uint16_le(s, type);
|
||||
out_uint16_le(s, status);
|
||||
out_uint32_le(s, length);
|
||||
out_uint8p(s, data, length);
|
||||
out_uint32(s, 0); /* pad? */
|
||||
s_mark_end(s);
|
||||
channel_send(This, s, This->cliprdr.channel);
|
||||
}
|
||||
|
||||
/* Helper which announces our readiness to supply clipboard data
|
||||
in a single format (such as CF_TEXT) to the RDP side.
|
||||
To announce more than one format at a time, use
|
||||
cliprdr_send_native_format_announce.
|
||||
*/
|
||||
void
|
||||
cliprdr_send_simple_native_format_announce(RDPCLIENT * This, uint32 format)
|
||||
{
|
||||
uint8 buffer[36];
|
||||
|
||||
DEBUG_CLIPBOARD(("cliprdr_send_simple_native_format_announce\n"));
|
||||
|
||||
buf_out_uint32(buffer, format);
|
||||
memset(buffer + 4, 0, sizeof(buffer) - 4); /* description */
|
||||
cliprdr_send_native_format_announce(This, buffer, sizeof(buffer));
|
||||
}
|
||||
|
||||
/* Announces our readiness to supply clipboard data in multiple
|
||||
formats, each denoted by a 36-byte format descriptor of
|
||||
[ uint32 format + 32-byte description ].
|
||||
*/
|
||||
void
|
||||
cliprdr_send_native_format_announce(RDPCLIENT * This, uint8 * formats_data, uint32 formats_data_length)
|
||||
{
|
||||
DEBUG_CLIPBOARD(("cliprdr_send_native_format_announce\n"));
|
||||
|
||||
cliprdr_send_packet(This, CLIPRDR_FORMAT_ANNOUNCE, CLIPRDR_REQUEST, formats_data,
|
||||
formats_data_length);
|
||||
|
||||
if (formats_data != This->cliprdr.last_formats)
|
||||
{
|
||||
if (This->cliprdr.last_formats)
|
||||
xfree(This->cliprdr.last_formats);
|
||||
|
||||
This->cliprdr.last_formats = xmalloc(formats_data_length);
|
||||
memcpy(This->cliprdr.last_formats, formats_data, formats_data_length);
|
||||
This->cliprdr.last_formats_length = formats_data_length;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
cliprdr_send_data_request(RDPCLIENT * This, uint32 format)
|
||||
{
|
||||
uint8 buffer[4];
|
||||
|
||||
DEBUG_CLIPBOARD(("cliprdr_send_data_request\n"));
|
||||
buf_out_uint32(buffer, format);
|
||||
cliprdr_send_packet(This, CLIPRDR_DATA_REQUEST, CLIPRDR_REQUEST, buffer, sizeof(buffer));
|
||||
}
|
||||
|
||||
void
|
||||
cliprdr_send_data(RDPCLIENT * This, uint8 * data, uint32 length)
|
||||
{
|
||||
DEBUG_CLIPBOARD(("cliprdr_send_data\n"));
|
||||
cliprdr_send_packet(This, CLIPRDR_DATA_RESPONSE, CLIPRDR_RESPONSE, data, length);
|
||||
}
|
||||
|
||||
static void
|
||||
cliprdr_process(RDPCLIENT * This, STREAM s)
|
||||
{
|
||||
uint16 type, status;
|
||||
uint32 length, format;
|
||||
uint8 *data;
|
||||
|
||||
in_uint16_le(s, type);
|
||||
in_uint16_le(s, status);
|
||||
in_uint32_le(s, length);
|
||||
data = s->p;
|
||||
|
||||
DEBUG_CLIPBOARD(("CLIPRDR recv: type=%d, status=%d, length=%d\n", type, status, length));
|
||||
|
||||
if (status == CLIPRDR_ERROR)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case CLIPRDR_FORMAT_ACK:
|
||||
/* FIXME: We seem to get this when we send an announce while the server is
|
||||
still processing a paste. Try sending another announce. */
|
||||
cliprdr_send_native_format_announce(This, This->cliprdr.last_formats,
|
||||
This->cliprdr.last_formats_length);
|
||||
break;
|
||||
case CLIPRDR_DATA_RESPONSE:
|
||||
ui_clip_request_failed(This);
|
||||
break;
|
||||
default:
|
||||
DEBUG_CLIPBOARD(("CLIPRDR error (type=%d)\n", type));
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case CLIPRDR_CONNECT:
|
||||
ui_clip_sync(This);
|
||||
break;
|
||||
case CLIPRDR_FORMAT_ANNOUNCE:
|
||||
ui_clip_format_announce(This, data, length);
|
||||
cliprdr_send_packet(This, CLIPRDR_FORMAT_ACK, CLIPRDR_RESPONSE, NULL, 0);
|
||||
return;
|
||||
case CLIPRDR_FORMAT_ACK:
|
||||
break;
|
||||
case CLIPRDR_DATA_REQUEST:
|
||||
in_uint32_le(s, format);
|
||||
ui_clip_request_data(This, format);
|
||||
break;
|
||||
case CLIPRDR_DATA_RESPONSE:
|
||||
ui_clip_handle_data(This, data, length);
|
||||
break;
|
||||
case 7: /* TODO: W2K3 SP1 sends this on connect with a value of 1 */
|
||||
break;
|
||||
default:
|
||||
unimpl("CLIPRDR packet type %d\n", type);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
cliprdr_set_mode(RDPCLIENT * This, const char *optarg)
|
||||
{
|
||||
ui_clip_set_mode(This, optarg);
|
||||
}
|
||||
|
||||
BOOL
|
||||
cliprdr_init(RDPCLIENT * This)
|
||||
{
|
||||
This->cliprdr.channel =
|
||||
channel_register(This, "cliprdr",
|
||||
CHANNEL_OPTION_INITIALIZED | CHANNEL_OPTION_ENCRYPT_RDP |
|
||||
CHANNEL_OPTION_COMPRESS_RDP | CHANNEL_OPTION_SHOW_PROTOCOL,
|
||||
cliprdr_process);
|
||||
return (This->cliprdr.channel != NULL);
|
||||
}
|
1411
rosapps/applications/net/tsclient/rdesktop/config.guess
vendored
Normal file
1411
rosapps/applications/net/tsclient/rdesktop/config.guess
vendored
Normal file
File diff suppressed because it is too large
Load diff
1500
rosapps/applications/net/tsclient/rdesktop/config.sub
vendored
Normal file
1500
rosapps/applications/net/tsclient/rdesktop/config.sub
vendored
Normal file
File diff suppressed because it is too large
Load diff
727
rosapps/applications/net/tsclient/rdesktop/configure.ac
Normal file
727
rosapps/applications/net/tsclient/rdesktop/configure.ac
Normal file
|
@ -0,0 +1,727 @@
|
|||
AC_INIT(rdesktop, 1.4.1)
|
||||
|
||||
AC_CONFIG_SRCDIR([rdesktop.c])
|
||||
|
||||
AC_PROG_CC
|
||||
if test "$GCC" = yes; then
|
||||
CFLAGS="$CFLAGS -Wall"
|
||||
fi
|
||||
|
||||
AC_PROG_INSTALL
|
||||
AC_LANG_C
|
||||
AC_HEADER_STDC
|
||||
AC_C_BIGENDIAN([AC_DEFINE(B_ENDIAN)], [AC_DEFINE(L_ENDIAN)])
|
||||
AC_PATH_XTRA
|
||||
|
||||
AC_SEARCH_LIBS(socket, socket)
|
||||
AC_SEARCH_LIBS(inet_aton, resolv)
|
||||
|
||||
AC_CHECK_HEADER(sys/select.h, AC_DEFINE(HAVE_SYS_SELECT_H))
|
||||
AC_CHECK_HEADER(sys/modem.h, AC_DEFINE(HAVE_SYS_MODEM_H))
|
||||
AC_CHECK_HEADER(sys/filio.h, AC_DEFINE(HAVE_SYS_FILIO_H))
|
||||
AC_CHECK_HEADER(sys/strtio.h, AC_DEFINE(HAVE_SYS_STRTIO_H))
|
||||
AC_CHECK_HEADER(locale.h, AC_DEFINE(HAVE_LOCALE_H))
|
||||
AC_CHECK_HEADER(langinfo.h, AC_DEFINE(HAVE_LANGINFO_H))
|
||||
|
||||
AC_CHECK_TOOL(STRIP, strip, :)
|
||||
|
||||
rpath=""
|
||||
|
||||
#
|
||||
# OpenSSL detection borrowed from stunnel
|
||||
#
|
||||
checkssldir() { :
|
||||
if test -f "$1/include/openssl/ssl.h"; then
|
||||
ssldir="$1"
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
AC_MSG_CHECKING([for OpenSSL directory])
|
||||
AC_ARG_WITH(openssl,
|
||||
[ --with-openssl=DIR look for OpenSSL at DIR/include, DIR/lib],
|
||||
[
|
||||
dnl Check the specified location only
|
||||
checkssldir "$withval"
|
||||
],
|
||||
[
|
||||
dnl Search default locations of OpenSSL library
|
||||
for maindir in /usr/local /usr/lib /usr/pkg /usr /var/ssl /opt; do
|
||||
for dir in $maindir $maindir/openssl $maindir/ssl; do
|
||||
checkssldir $dir && break 2
|
||||
done
|
||||
done
|
||||
]
|
||||
)
|
||||
if test -z "$ssldir"; then
|
||||
AC_MSG_RESULT([Not found])
|
||||
echo
|
||||
echo "Couldn't find your OpenSSL library installation dir"
|
||||
echo "Use --with-openssl option to fix this problem"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
AC_MSG_RESULT([$ssldir])
|
||||
AC_SUBST(ssldir)
|
||||
AC_DEFINE_UNQUOTED(ssldir, "$ssldir")
|
||||
|
||||
dnl Add OpenSSL includes and libraries
|
||||
CFLAGS="$CFLAGS -I$ssldir/include"
|
||||
AC_ARG_ENABLE(static-openssl,
|
||||
[ --enable-static-openssl link OpenSSL statically],
|
||||
[
|
||||
LIBS="$LIBS $ssldir/lib/libcrypto.a"
|
||||
],
|
||||
[
|
||||
LIBS="$LIBS -L$ssldir/lib -lcrypto"
|
||||
rpath="$rpath:$ssldir/lib"
|
||||
])
|
||||
|
||||
|
||||
#
|
||||
# Alignment
|
||||
#
|
||||
AC_MSG_CHECKING([if architecture needs alignment])
|
||||
AC_TRY_RUN([
|
||||
#include <stdlib.h>
|
||||
#include <signal.h>
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
unsigned char test[8] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88 };
|
||||
signal(SIGBUS, exit);
|
||||
signal(SIGABRT, exit);
|
||||
signal(SIGSEGV, exit);
|
||||
if (*((unsigned int *)(test + 1)) != 0x55443322 && *((unsigned int *)(test + 1)) != 0x22334455) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}],
|
||||
[AC_MSG_RESULT(no)],
|
||||
[AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(NEED_ALIGN)],
|
||||
[AC_MSG_RESULT(assuming yes)
|
||||
AC_DEFINE(NEED_ALIGN)])
|
||||
|
||||
|
||||
#
|
||||
# EGD
|
||||
#
|
||||
AC_ARG_WITH(egd-socket,
|
||||
[ --with-egd-socket=PATH look for Entropy Gathering Daemon socket at PATH],
|
||||
[EGD_SOCKET="$withval"],
|
||||
[EGD_SOCKET="/var/run/egd-pool"]
|
||||
)
|
||||
AC_DEFINE_UNQUOTED(EGD_SOCKET, "$EGD_SOCKET")
|
||||
|
||||
|
||||
#
|
||||
# rdp2vnc
|
||||
#
|
||||
vncserverconfig=libvncserver-config
|
||||
AC_ARG_WITH(libvncserver-config,
|
||||
[ --with-libvncserver-config=CMD use CMD as libvncserver-config],
|
||||
[vncserverconfig="$withval"]
|
||||
)
|
||||
AC_ARG_WITH(libvncserver,
|
||||
[ --with-libvncserver make rdp2vnc],
|
||||
[
|
||||
VNCINC=`$vncserverconfig --cflags`
|
||||
AC_SUBST(VNCINC)
|
||||
LDVNC=`$vncserverconfig --libs`
|
||||
AC_SUBST(LDVNC)
|
||||
VNCLINK=`$vncserverconfig --link`
|
||||
AC_SUBST(VNCLINK)
|
||||
RDP2VNCTARGET="rdp2vnc"
|
||||
AC_SUBST(RDP2VNCTARGET)
|
||||
]
|
||||
)
|
||||
|
||||
#
|
||||
# sound
|
||||
#
|
||||
AC_ARG_WITH(libao,
|
||||
[ --with-libao=DIR look for libao at DIR/include, DIR/lib],
|
||||
[
|
||||
CFLAGS="$CFLAGS -I$withval/include"
|
||||
CPPFLAGS="$CPPFLAGS -I$withval/include"
|
||||
LIBS="$LIBS -L$withval/lib"
|
||||
rpath="$rpath:$withval/lib"
|
||||
]
|
||||
)
|
||||
|
||||
sound="yes"
|
||||
AC_ARG_WITH(sound,
|
||||
[ --with-sound select sound system ("oss", "sgi", "sun" or "libao") ],
|
||||
[
|
||||
sound="$withval"
|
||||
])
|
||||
if test "$sound" = yes; then
|
||||
AC_CHECK_HEADER(ao/ao.h, [sound=libao])
|
||||
AC_CHECK_HEADER(sys/soundcard.h, [sound=oss])
|
||||
AC_CHECK_HEADER(dmedia/audio.h, [sound=sgi])
|
||||
AC_CHECK_HEADER(sys/audioio.h, [sound=sun])
|
||||
fi
|
||||
if test "$sound" = no; then
|
||||
break
|
||||
elif test "$sound" = oss; then
|
||||
SOUNDOBJ="rdpsnd.o rdpsnd_oss.o"
|
||||
AC_DEFINE(WITH_RDPSND)
|
||||
elif test "$sound" = sgi; then
|
||||
SOUNDOBJ="rdpsnd.o rdpsnd_sgi.o"
|
||||
LDFLAGS="$LDFLAGS -laudio"
|
||||
AC_DEFINE(WITH_RDPSND)
|
||||
elif test "$sound" = sun; then
|
||||
SOUNDOBJ="rdpsnd.o rdpsnd_sun.o"
|
||||
AC_DEFINE(WITH_RDPSND)
|
||||
elif test "$sound" = libao; then
|
||||
SOUNDOBJ="rdpsnd.o rdpsnd_libao.o"
|
||||
LDFLAGS="$LDFLAGS -lao"
|
||||
AC_DEFINE(WITH_RDPSND)
|
||||
else
|
||||
AC_MSG_WARN([sound support disabled])
|
||||
AC_MSG_WARN([Currently supported systems are Open Sound System (oss), SGI AL (sgi), Sun/BSD (sun) and libao])
|
||||
fi
|
||||
AC_SUBST(SOUNDOBJ)
|
||||
|
||||
#
|
||||
# dirfd
|
||||
#
|
||||
dnl Find out how to get the file descriptor associated with an open DIR*.
|
||||
dnl From Jim Meyering
|
||||
|
||||
AC_DEFUN([UTILS_FUNC_DIRFD],
|
||||
[
|
||||
|
||||
AC_HEADER_DIRENT
|
||||
dirfd_headers='
|
||||
#if HAVE_DIRENT_H
|
||||
# include <dirent.h>
|
||||
#else /* not HAVE_DIRENT_H */
|
||||
# define dirent direct
|
||||
# if HAVE_SYS_NDIR_H
|
||||
# include <sys/ndir.h>
|
||||
# endif /* HAVE_SYS_NDIR_H */
|
||||
# if HAVE_SYS_DIR_H
|
||||
# include <sys/dir.h>
|
||||
# endif /* HAVE_SYS_DIR_H */
|
||||
# if HAVE_NDIR_H
|
||||
# include <ndir.h>
|
||||
# endif /* HAVE_NDIR_H */
|
||||
#endif /* HAVE_DIRENT_H */
|
||||
'
|
||||
AC_CHECK_FUNCS(dirfd)
|
||||
AC_CHECK_DECLS([dirfd], , , $dirfd_headers)
|
||||
|
||||
AC_CACHE_CHECK([whether dirfd is a macro],
|
||||
jm_cv_func_dirfd_macro,
|
||||
[AC_EGREP_CPP([dirent_header_defines_dirfd], [$dirfd_headers
|
||||
#ifdef dirfd
|
||||
dirent_header_defines_dirfd
|
||||
#endif],
|
||||
jm_cv_func_dirfd_macro=yes,
|
||||
jm_cv_func_dirfd_macro=no)])
|
||||
|
||||
# Use the replacement only if we have no function, macro,
|
||||
# or declaration with that name.
|
||||
if test $ac_cv_func_dirfd,$ac_cv_have_decl_dirfd,$jm_cv_func_dirfd_macro \
|
||||
= no,no,no; then
|
||||
AC_REPLACE_FUNCS([dirfd])
|
||||
AC_CACHE_CHECK(
|
||||
[how to get the file descriptor associated with an open DIR*],
|
||||
gl_cv_sys_dir_fd_member_name,
|
||||
[
|
||||
dirfd_save_CFLAGS=$CFLAGS
|
||||
for ac_expr in d_fd dd_fd; do
|
||||
|
||||
CFLAGS="$CFLAGS -DDIR_FD_MEMBER_NAME=$ac_expr"
|
||||
AC_TRY_COMPILE(
|
||||
[$dirfd_headers
|
||||
],
|
||||
[DIR *dir_p = opendir("."); (void) dir_p->DIR_FD_MEMBER_NAME;],
|
||||
dir_fd_found=yes
|
||||
)
|
||||
CFLAGS=$dirfd_save_CFLAGS
|
||||
test "$dir_fd_found" = yes && break
|
||||
done
|
||||
test "$dir_fd_found" = yes || ac_expr=no_such_member
|
||||
|
||||
gl_cv_sys_dir_fd_member_name=$ac_expr
|
||||
]
|
||||
)
|
||||
if test $gl_cv_sys_dir_fd_member_name != no_such_member; then
|
||||
AC_DEFINE_UNQUOTED(DIR_FD_MEMBER_NAME,
|
||||
$gl_cv_sys_dir_fd_member_name,
|
||||
[the name of the file descriptor member of DIR])
|
||||
fi
|
||||
AH_VERBATIM(DIR_TO_FD,
|
||||
[#ifdef DIR_FD_MEMBER_NAME
|
||||
# define DIR_TO_FD(Dir_p) ((Dir_p)->DIR_FD_MEMBER_NAME)
|
||||
#else
|
||||
# define DIR_TO_FD(Dir_p) -1
|
||||
#endif
|
||||
]
|
||||
)
|
||||
fi
|
||||
])
|
||||
|
||||
UTILS_FUNC_DIRFD
|
||||
|
||||
#
|
||||
# iconv
|
||||
#
|
||||
|
||||
dnl This macros shamelessly stolen from
|
||||
dnl http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg01398.html.
|
||||
dnl Written by Bruno Haible.
|
||||
|
||||
AC_DEFUN([UTILS_FUNC_ICONV],
|
||||
[
|
||||
dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
|
||||
dnl those with the standalone portable GNU libiconv installed).
|
||||
|
||||
AC_ARG_WITH([libiconv-prefix],
|
||||
[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
|
||||
for dir in `echo "$withval" | tr : ' '`; do
|
||||
if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
|
||||
if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
|
||||
done
|
||||
])
|
||||
AC_CHECK_HEADER(iconv.h, AC_DEFINE(HAVE_ICONV_H))
|
||||
|
||||
AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
|
||||
am_cv_func_iconv="no, consider installing GNU libiconv"
|
||||
am_cv_lib_iconv=no
|
||||
AC_TRY_LINK([#include <stdlib.h>
|
||||
#include <iconv.h>],
|
||||
[iconv_t cd = iconv_open("","");
|
||||
iconv(cd,NULL,NULL,NULL,NULL);
|
||||
iconv_close(cd);],
|
||||
am_cv_func_iconv=yes)
|
||||
if test "$am_cv_func_iconv" != yes; then
|
||||
am_save_LIBS="$LIBS"
|
||||
LIBS="$LIBS -liconv"
|
||||
AC_TRY_LINK([#include <stdlib.h>
|
||||
#include <iconv.h>],
|
||||
[iconv_t cd = iconv_open("","");
|
||||
iconv(cd,NULL,NULL,NULL,NULL);
|
||||
iconv_close(cd);],
|
||||
am_cv_lib_iconv=yes
|
||||
am_cv_func_iconv=yes)
|
||||
LIBS="$am_save_LIBS"
|
||||
fi
|
||||
])
|
||||
if test "$am_cv_func_iconv" = yes; then
|
||||
AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
|
||||
AC_MSG_CHECKING([for iconv declaration])
|
||||
AC_CACHE_VAL(am_cv_proto_iconv, [
|
||||
AC_TRY_COMPILE([
|
||||
#include <stdlib.h>
|
||||
#include <iconv.h>
|
||||
extern
|
||||
#ifdef __cplusplus
|
||||
"C"
|
||||
#endif
|
||||
#if defined(__STDC__) || defined(__cplusplus)
|
||||
size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
|
||||
#else
|
||||
size_t iconv();
|
||||
#endif
|
||||
], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
|
||||
am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
|
||||
am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
|
||||
AC_MSG_RESULT([$]{ac_t:-
|
||||
}[$]am_cv_proto_iconv)
|
||||
AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
|
||||
[Define as const if the declaration of iconv() needs const.])
|
||||
fi
|
||||
LIBICONV=
|
||||
if test "$am_cv_lib_iconv" = yes; then
|
||||
LIBICONV="-liconv"
|
||||
fi
|
||||
AC_SUBST(LIBICONV)
|
||||
])
|
||||
|
||||
UTILS_FUNC_ICONV
|
||||
LIBS="$LIBS $LIBICONV"
|
||||
|
||||
#
|
||||
# socklen_t
|
||||
# from curl
|
||||
|
||||
dnl Check for socklen_t: historically on BSD it is an int, and in
|
||||
dnl POSIX 1g it is a type of its own, but some platforms use different
|
||||
dnl types for the argument to getsockopt, getpeername, etc. So we
|
||||
dnl have to test to find something that will work.
|
||||
AC_DEFUN([TYPE_SOCKLEN_T],
|
||||
[
|
||||
AC_CHECK_TYPE([socklen_t], ,[
|
||||
AC_MSG_CHECKING([for socklen_t equivalent])
|
||||
AC_CACHE_VAL([socklen_t_equiv],
|
||||
[
|
||||
# Systems have either "struct sockaddr *" or
|
||||
# "void *" as the second argument to getpeername
|
||||
socklen_t_equiv=
|
||||
for arg2 in "struct sockaddr" void; do
|
||||
for t in int size_t unsigned long "unsigned long"; do
|
||||
AC_TRY_COMPILE([
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
int getpeername (int, $arg2 *, $t *);
|
||||
],[
|
||||
$t len;
|
||||
getpeername(0,0,&len);
|
||||
],[
|
||||
socklen_t_equiv="$t"
|
||||
break
|
||||
])
|
||||
done
|
||||
done
|
||||
|
||||
if test "x$socklen_t_equiv" = x; then
|
||||
AC_MSG_ERROR([Cannot find a type to use in place of socklen_t])
|
||||
fi
|
||||
])
|
||||
AC_MSG_RESULT($socklen_t_equiv)
|
||||
AC_DEFINE_UNQUOTED(socklen_t, $socklen_t_equiv,
|
||||
[type to use in place of socklen_t if not defined])],
|
||||
[#include <sys/types.h>
|
||||
#include <sys/socket.h>])
|
||||
])
|
||||
|
||||
TYPE_SOCKLEN_T
|
||||
|
||||
#
|
||||
# statfs stuff
|
||||
#
|
||||
AC_CHECK_HEADERS(sys/vfs.h)
|
||||
AC_CHECK_HEADERS(sys/statvfs.h)
|
||||
AC_CHECK_HEADERS(sys/statfs.h)
|
||||
AC_CHECK_HEADERS(sys/param.h)
|
||||
|
||||
mount_includes="\
|
||||
$ac_includes_default
|
||||
#if HAVE_SYS_PARAM_H
|
||||
# include <sys/param.h>
|
||||
#endif
|
||||
"
|
||||
|
||||
AC_CHECK_HEADERS(sys/mount.h,,,[$mount_includes])
|
||||
|
||||
#################################################
|
||||
# these tests are taken from the GNU fileutils package
|
||||
AC_CHECKING(how to get filesystem space usage)
|
||||
space=no
|
||||
|
||||
# Test for statvfs64.
|
||||
if test $space = no; then
|
||||
# SVR4
|
||||
AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
|
||||
[AC_TRY_RUN([
|
||||
#if defined(HAVE_UNISTD_H)
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include <sys/types.h>
|
||||
#include <sys/statvfs.h>
|
||||
main ()
|
||||
{
|
||||
struct statvfs64 fsd;
|
||||
exit (statvfs64 (".", &fsd));
|
||||
}],
|
||||
fu_cv_sys_stat_statvfs64=yes,
|
||||
fu_cv_sys_stat_statvfs64=no,
|
||||
fu_cv_sys_stat_statvfs64=cross)])
|
||||
if test $fu_cv_sys_stat_statvfs64 = yes; then
|
||||
space=yes
|
||||
AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available])
|
||||
fi
|
||||
fi
|
||||
|
||||
# Perform only the link test since it seems there are no variants of the
|
||||
# statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
|
||||
# because that got a false positive on SCO OSR5. Adding the declaration
|
||||
# of a `struct statvfs' causes this test to fail (as it should) on such
|
||||
# systems. That system is reported to work fine with STAT_STATFS4 which
|
||||
# is what it gets when this test fails.
|
||||
if test $space = no; then
|
||||
# SVR4
|
||||
AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
|
||||
[AC_TRY_LINK([#include <sys/types.h>
|
||||
#include <sys/statvfs.h>],
|
||||
[struct statvfs fsd; statvfs (0, &fsd);],
|
||||
fu_cv_sys_stat_statvfs=yes,
|
||||
fu_cv_sys_stat_statvfs=no)])
|
||||
if test $fu_cv_sys_stat_statvfs = yes; then
|
||||
space=yes
|
||||
AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $space = no; then
|
||||
# DEC Alpha running OSF/1
|
||||
AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
|
||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
|
||||
[AC_TRY_RUN([
|
||||
#include <sys/param.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/mount.h>
|
||||
main ()
|
||||
{
|
||||
struct statfs fsd;
|
||||
fsd.f_fsize = 0;
|
||||
exit (statfs (".", &fsd, sizeof (struct statfs)));
|
||||
}],
|
||||
fu_cv_sys_stat_statfs3_osf1=yes,
|
||||
fu_cv_sys_stat_statfs3_osf1=no,
|
||||
fu_cv_sys_stat_statfs3_osf1=no)])
|
||||
|
||||
|
||||
#C_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
|
||||
if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
|
||||
space=yes
|
||||
AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $space = no; then
|
||||
# AIX
|
||||
AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
|
||||
member (AIX, 4.3BSD)])
|
||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
|
||||
[AC_TRY_RUN([
|
||||
#ifdef HAVE_SYS_PARAM_H
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_MOUNT_H
|
||||
#include <sys/mount.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_VFS_H
|
||||
#include <sys/vfs.h>
|
||||
#endif
|
||||
main ()
|
||||
{
|
||||
struct statfs fsd;
|
||||
fsd.f_bsize = 0;
|
||||
exit (statfs (".", &fsd));
|
||||
}],
|
||||
fu_cv_sys_stat_statfs2_bsize=yes,
|
||||
fu_cv_sys_stat_statfs2_bsize=no,
|
||||
fu_cv_sys_stat_statfs2_bsize=no)])
|
||||
AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
|
||||
if test $fu_cv_sys_stat_statfs2_bsize = yes; then
|
||||
space=yes
|
||||
AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $space = no; then
|
||||
# SVR3
|
||||
AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
|
||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
|
||||
[AC_TRY_RUN([#include <sys/types.h>
|
||||
#include <sys/statfs.h>
|
||||
main ()
|
||||
{
|
||||
struct statfs fsd;
|
||||
exit (statfs (".", &fsd, sizeof fsd, 0));
|
||||
}],
|
||||
fu_cv_sys_stat_statfs4=yes,
|
||||
fu_cv_sys_stat_statfs4=no,
|
||||
fu_cv_sys_stat_statfs4=no)])
|
||||
AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
|
||||
if test $fu_cv_sys_stat_statfs4 = yes; then
|
||||
space=yes
|
||||
AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $space = no; then
|
||||
# 4.4BSD and NetBSD
|
||||
AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
|
||||
member (4.4BSD and NetBSD)])
|
||||
AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
|
||||
[AC_TRY_RUN([#include <sys/types.h>
|
||||
#ifdef HAVE_SYS_PARAM_H
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_MOUNT_H
|
||||
#include <sys/mount.h>
|
||||
#endif
|
||||
main ()
|
||||
{
|
||||
struct statfs fsd;
|
||||
fsd.f_fsize = 0;
|
||||
exit (statfs (".", &fsd));
|
||||
}],
|
||||
fu_cv_sys_stat_statfs2_fsize=yes,
|
||||
fu_cv_sys_stat_statfs2_fsize=no,
|
||||
fu_cv_sys_stat_statfs2_fsize=no)])
|
||||
AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
|
||||
if test $fu_cv_sys_stat_statfs2_fsize = yes; then
|
||||
space=yes
|
||||
AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $space = no; then
|
||||
# Ultrix
|
||||
AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
|
||||
AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
|
||||
[AC_TRY_RUN([#include <sys/types.h>
|
||||
#ifdef HAVE_SYS_PARAM_H
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_MOUNT_H
|
||||
#include <sys/mount.h>
|
||||
#endif
|
||||
#ifdef HAVE_SYS_FS_TYPES_H
|
||||
#include <sys/fs_types.h>
|
||||
#endif
|
||||
main ()
|
||||
{
|
||||
struct fs_data fsd;
|
||||
/* Ultrix's statfs returns 1 for success,
|
||||
0 for not mounted, -1 for failure. */
|
||||
exit (statfs (".", &fsd) != 1);
|
||||
}],
|
||||
fu_cv_sys_stat_fs_data=yes,
|
||||
fu_cv_sys_stat_fs_data=no,
|
||||
fu_cv_sys_stat_fs_data=no)])
|
||||
AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
|
||||
if test $fu_cv_sys_stat_fs_data = yes; then
|
||||
space=yes
|
||||
AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available])
|
||||
fi
|
||||
fi
|
||||
|
||||
statxfs_includes="\
|
||||
$ac_includes_default
|
||||
#if HAVE_SYS_STATVFS_H
|
||||
# include <sys/statvfs.h>
|
||||
#endif
|
||||
#if HAVE_SYS_VFS_H
|
||||
# include <sys/vfs.h>
|
||||
#endif
|
||||
#if !HAVE_SYS_STATVFS_H && !HAVE_SYS_VFS_H
|
||||
# if HAVE_SYS_MOUNT_H && HAVE_SYS_PARAM_H
|
||||
/* NetBSD 1.5.2 needs these, for the declaration of struct statfs. */
|
||||
# include <sys/param.h>
|
||||
# include <sys/mount.h>
|
||||
# elif HAVE_NETINET_IN_H && HAVE_NFS_NFS_CLNT_H && HAVE_NFS_VFS_H
|
||||
/* Ultrix 4.4 needs these for the declaration of struct statfs. */
|
||||
# include <netinet/in.h>
|
||||
# include <nfs/nfs_clnt.h>
|
||||
# include <nfs/vfs.h>
|
||||
# endif
|
||||
#endif
|
||||
"
|
||||
|
||||
AC_CHECK_MEMBERS([struct statfs.f_namemax],,,[$statxfs_includes])
|
||||
AC_CHECK_MEMBERS([struct statvfs.f_namemax],,,[$statxfs_includes])
|
||||
AC_CHECK_MEMBERS([struct statfs.f_namelen],,,[$statxfs_includes])
|
||||
AC_CHECK_MEMBERS([struct statvfs.f_namelen],,,[$statxfs_includes])
|
||||
|
||||
#
|
||||
# Large file support
|
||||
#
|
||||
AC_SYS_LARGEFILE
|
||||
|
||||
#
|
||||
# mntent
|
||||
#
|
||||
AC_CHECK_HEADER(mntent.h, AC_DEFINE(HAVE_MNTENT_H))
|
||||
AC_CHECK_FUNCS(setmntent)
|
||||
|
||||
#
|
||||
# IPv6
|
||||
#
|
||||
AC_ARG_WITH(ipv6,
|
||||
[ --with-ipv6 enable IPv6-support],
|
||||
[
|
||||
if test $withval != "no";
|
||||
then
|
||||
AC_DEFINE(IPv6,1)
|
||||
fi
|
||||
])
|
||||
|
||||
|
||||
#
|
||||
# debugging
|
||||
#
|
||||
AC_ARG_WITH(debug,
|
||||
[ --with-debug enable protocol debugging output],
|
||||
[
|
||||
if test $withval != "no";
|
||||
then
|
||||
AC_DEFINE(WITH_DEBUG,1)
|
||||
fi
|
||||
])
|
||||
|
||||
AC_ARG_WITH(debug-kbd,
|
||||
[ --with-debug-kbd enable debugging of keyboard handling],
|
||||
[
|
||||
if test $withval != "no";
|
||||
then
|
||||
AC_DEFINE(WITH_DEBUG_KBD,1)
|
||||
fi
|
||||
])
|
||||
|
||||
AC_ARG_WITH(debug-rdp5,
|
||||
[ --with-debug-rdp5 enable debugging of RDP5 code],
|
||||
[
|
||||
if test $withval != "no";
|
||||
then
|
||||
AC_DEFINE(WITH_DEBUG_RDP5,1)
|
||||
fi
|
||||
])
|
||||
|
||||
AC_ARG_WITH(debug-clipboard,
|
||||
[ --with-debug-clipboard enable debugging of clipboard code],
|
||||
[
|
||||
if test $withval != "no";
|
||||
then
|
||||
AC_DEFINE(WITH_DEBUG_CLIPBOARD,1)
|
||||
fi
|
||||
])
|
||||
|
||||
AC_ARG_WITH(debug-channel,
|
||||
[ --with-debug-channel enable debugging of virtual channel code],
|
||||
[
|
||||
if test $withval != "no";
|
||||
then
|
||||
AC_DEFINE(WITH_DEBUG_CHANNEL,1)
|
||||
fi
|
||||
])
|
||||
|
||||
|
||||
#
|
||||
# target-specific stuff
|
||||
#
|
||||
# strip leading colon from rpath
|
||||
rpath=`echo $rpath |sed 's/^://'`
|
||||
AC_CANONICAL_HOST
|
||||
case "$host" in
|
||||
*-*-solaris*)
|
||||
LDFLAGS="$LDFLAGS -R$rpath"
|
||||
;;
|
||||
*-dec-osf*)
|
||||
LDFLAGS="$LDFLAGS -Wl,-rpath,$rpath"
|
||||
;;
|
||||
*-*-hpux*)
|
||||
CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED"
|
||||
;;
|
||||
*-*-irix6.5*)
|
||||
LIBS="$LIBS -L$ssldir/lib32 -lcrypto"
|
||||
CFLAGS="$CFLAGS -D__SGI_IRIX__"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
AC_OUTPUT(Makefile)
|
||||
|
||||
dnl Local Variables:
|
||||
dnl comment-start: "dnl "
|
||||
dnl comment-end: ""
|
||||
dnl comment-start-skip: "\\bdnl\\b\\s *"
|
||||
dnl compile-command: "autoconf"
|
||||
dnl End:
|
430
rosapps/applications/net/tsclient/rdesktop/constants.h
Normal file
430
rosapps/applications/net/tsclient/rdesktop/constants.h
Normal file
|
@ -0,0 +1,430 @@
|
|||
/*
|
||||
rdesktop: A Remote Desktop Protocol client.
|
||||
Miscellaneous protocol constants
|
||||
Copyright (C) Matthew Chapman 1999-2005
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
/* TCP port for Remote Desktop Protocol */
|
||||
#define TCP_PORT_RDP 3389
|
||||
|
||||
#define DEFAULT_CODEPAGE "UTF-8"
|
||||
#define WINDOWS_CODEPAGE "UTF-16LE"
|
||||
|
||||
/* ISO PDU codes */
|
||||
enum ISO_PDU_CODE
|
||||
{
|
||||
ISO_PDU_CR = 0xE0, /* Connection Request */
|
||||
ISO_PDU_CC = 0xD0, /* Connection Confirm */
|
||||
ISO_PDU_DR = 0x80, /* Disconnect Request */
|
||||
ISO_PDU_DT = 0xF0, /* Data */
|
||||
ISO_PDU_ER = 0x70 /* Error */
|
||||
};
|
||||
|
||||
/* MCS PDU codes */
|
||||
enum MCS_PDU_TYPE
|
||||
{
|
||||
MCS_EDRQ = 1, /* Erect Domain Request */
|
||||
MCS_DPUM = 8, /* Disconnect Provider Ultimatum */
|
||||
MCS_AURQ = 10, /* Attach User Request */
|
||||
MCS_AUCF = 11, /* Attach User Confirm */
|
||||
MCS_CJRQ = 14, /* Channel Join Request */
|
||||
MCS_CJCF = 15, /* Channel Join Confirm */
|
||||
MCS_SDRQ = 25, /* Send Data Request */
|
||||
MCS_SDIN = 26 /* Send Data Indication */
|
||||
};
|
||||
|
||||
#define MCS_CONNECT_INITIAL 0x7f65
|
||||
#define MCS_CONNECT_RESPONSE 0x7f66
|
||||
|
||||
#define BER_TAG_BOOLEAN 1
|
||||
#define BER_TAG_INTEGER 2
|
||||
#define BER_TAG_OCTET_STRING 4
|
||||
#define BER_TAG_RESULT 10
|
||||
#define MCS_TAG_DOMAIN_PARAMS 0x30
|
||||
|
||||
#define MCS_GLOBAL_CHANNEL 1003
|
||||
#define MCS_USERCHANNEL_BASE 1001
|
||||
|
||||
/* RDP secure transport constants */
|
||||
#define SEC_RANDOM_SIZE 32
|
||||
#define SEC_MODULUS_SIZE 64
|
||||
#define SEC_MAX_MODULUS_SIZE 256
|
||||
#define SEC_PADDING_SIZE 8
|
||||
#define SEC_EXPONENT_SIZE 4
|
||||
|
||||
#define SEC_CLIENT_RANDOM 0x0001
|
||||
#define SEC_ENCRYPT 0x0008
|
||||
#define SEC_LOGON_INFO 0x0040
|
||||
#define SEC_LICENCE_NEG 0x0080
|
||||
#define SEC_REDIRECT_ENCRYPT 0x0C00
|
||||
|
||||
#define SEC_TAG_SRV_INFO 0x0c01
|
||||
#define SEC_TAG_SRV_CRYPT 0x0c02
|
||||
#define SEC_TAG_SRV_CHANNELS 0x0c03
|
||||
|
||||
#define SEC_TAG_CLI_INFO 0xc001
|
||||
#define SEC_TAG_CLI_CRYPT 0xc002
|
||||
#define SEC_TAG_CLI_CHANNELS 0xc003
|
||||
#define SEC_TAG_CLI_4 0xc004
|
||||
|
||||
#define SEC_TAG_PUBKEY 0x0006
|
||||
#define SEC_TAG_KEYSIG 0x0008
|
||||
|
||||
#define SEC_RSA_MAGIC 0x31415352 /* RSA1 */
|
||||
|
||||
/* RDP licensing constants */
|
||||
#define LICENCE_TOKEN_SIZE 10
|
||||
#define LICENCE_HWID_SIZE 20
|
||||
#define LICENCE_SIGNATURE_SIZE 16
|
||||
|
||||
#define LICENCE_TAG_DEMAND 0x01
|
||||
#define LICENCE_TAG_AUTHREQ 0x02
|
||||
#define LICENCE_TAG_ISSUE 0x03
|
||||
#define LICENCE_TAG_REISSUE 0x04
|
||||
#define LICENCE_TAG_PRESENT 0x12
|
||||
#define LICENCE_TAG_REQUEST 0x13
|
||||
#define LICENCE_TAG_AUTHRESP 0x15
|
||||
#define LICENCE_TAG_RESULT 0xff
|
||||
|
||||
#define LICENCE_TAG_USER 0x000f
|
||||
#define LICENCE_TAG_HOST 0x0010
|
||||
|
||||
/* RDP PDU codes */
|
||||
enum RDP_PDU_TYPE
|
||||
{
|
||||
RDP_PDU_DEMAND_ACTIVE = 1,
|
||||
RDP_PDU_CONFIRM_ACTIVE = 3,
|
||||
RDP_PDU_REDIRECT = 4, /* MS Server 2003 Session Redirect */
|
||||
RDP_PDU_DEACTIVATE = 6,
|
||||
RDP_PDU_DATA = 7
|
||||
};
|
||||
|
||||
enum RDP_DATA_PDU_TYPE
|
||||
{
|
||||
RDP_DATA_PDU_UPDATE = 2,
|
||||
RDP_DATA_PDU_CONTROL = 20,
|
||||
RDP_DATA_PDU_POINTER = 27,
|
||||
RDP_DATA_PDU_INPUT = 28,
|
||||
RDP_DATA_PDU_SYNCHRONISE = 31,
|
||||
RDP_DATA_PDU_BELL = 34,
|
||||
RDP_DATA_PDU_CLIENT_WINDOW_STATUS = 35,
|
||||
RDP_DATA_PDU_LOGON = 38,
|
||||
RDP_DATA_PDU_FONT2 = 39,
|
||||
RDP_DATA_PDU_KEYBOARD_INDICATORS = 41,
|
||||
RDP_DATA_PDU_DISCONNECT = 47
|
||||
};
|
||||
|
||||
enum RDP_CONTROL_PDU_TYPE
|
||||
{
|
||||
RDP_CTL_REQUEST_CONTROL = 1,
|
||||
RDP_CTL_GRANT_CONTROL = 2,
|
||||
RDP_CTL_DETACH = 3,
|
||||
RDP_CTL_COOPERATE = 4
|
||||
};
|
||||
|
||||
enum RDP_UPDATE_PDU_TYPE
|
||||
{
|
||||
RDP_UPDATE_ORDERS = 0,
|
||||
RDP_UPDATE_BITMAP = 1,
|
||||
RDP_UPDATE_PALETTE = 2,
|
||||
RDP_UPDATE_SYNCHRONIZE = 3
|
||||
};
|
||||
|
||||
enum RDP_POINTER_PDU_TYPE
|
||||
{
|
||||
RDP_POINTER_SYSTEM = 1,
|
||||
RDP_POINTER_MOVE = 3,
|
||||
RDP_POINTER_COLOR = 6,
|
||||
RDP_POINTER_CACHED = 7
|
||||
};
|
||||
|
||||
enum RDP_SYSTEM_POINTER_TYPE
|
||||
{
|
||||
RDP_NULL_POINTER = 0,
|
||||
RDP_DEFAULT_POINTER = 0x7F00
|
||||
};
|
||||
|
||||
enum RDP_INPUT_DEVICE
|
||||
{
|
||||
RDP_INPUT_SYNCHRONIZE = 0,
|
||||
RDP_INPUT_CODEPOINT = 1,
|
||||
RDP_INPUT_VIRTKEY = 2,
|
||||
RDP_INPUT_SCANCODE = 4,
|
||||
RDP_INPUT_MOUSE = 0x8001
|
||||
};
|
||||
|
||||
/* Device flags */
|
||||
#define KBD_FLAG_RIGHT 0x0001
|
||||
#define KBD_FLAG_EXT 0x0100
|
||||
#define KBD_FLAG_QUIET 0x1000
|
||||
#define KBD_FLAG_DOWN 0x4000
|
||||
#define KBD_FLAG_UP 0x8000
|
||||
|
||||
/* These are for synchronization; not for keystrokes */
|
||||
#define KBD_FLAG_SCROLL 0x0001
|
||||
#define KBD_FLAG_NUMLOCK 0x0002
|
||||
#define KBD_FLAG_CAPITAL 0x0004
|
||||
|
||||
/* See T.128 */
|
||||
#define RDP_KEYPRESS 0
|
||||
#define RDP_KEYRELEASE (KBD_FLAG_DOWN | KBD_FLAG_UP)
|
||||
|
||||
#define MOUSE_FLAG_MOVE 0x0800
|
||||
#define MOUSE_FLAG_BUTTON1 0x1000
|
||||
#define MOUSE_FLAG_BUTTON2 0x2000
|
||||
#define MOUSE_FLAG_BUTTON3 0x4000
|
||||
#define MOUSE_FLAG_BUTTON4 0x0280
|
||||
#define MOUSE_FLAG_BUTTON5 0x0380
|
||||
#define MOUSE_FLAG_DOWN 0x8000
|
||||
|
||||
/* Raster operation masks */
|
||||
#define ROP2_S(rop3) (rop3 & 0xf)
|
||||
#define ROP2_P(rop3) ((rop3 & 0x3) | ((rop3 & 0x30) >> 2))
|
||||
|
||||
#define ROP2_COPY 0xc
|
||||
#define ROP2_XOR 0x6
|
||||
#define ROP2_AND 0x8
|
||||
#define ROP2_NXOR 0x9
|
||||
#define ROP2_OR 0xe
|
||||
|
||||
#define MIX_TRANSPARENT 0
|
||||
#define MIX_OPAQUE 1
|
||||
|
||||
#define TEXT2_VERTICAL 0x04
|
||||
#define TEXT2_IMPLICIT_X 0x20
|
||||
|
||||
#define ALTERNATE 1
|
||||
#define WINDING 2
|
||||
|
||||
/* RDP bitmap cache (version 2) constants */
|
||||
#define BMPCACHE2_C0_CELLS 0x78
|
||||
#define BMPCACHE2_C1_CELLS 0x78
|
||||
#define BMPCACHE2_C2_CELLS 0x150
|
||||
#define BMPCACHE2_NUM_PSTCELLS 0x9f6
|
||||
|
||||
#define PDU_FLAG_FIRST 0x01
|
||||
#define PDU_FLAG_LAST 0x02
|
||||
|
||||
/* RDP capabilities */
|
||||
#define RDP_CAPSET_GENERAL 1 /* Maps to generalCapabilitySet in T.128 page 138 */
|
||||
#define RDP_CAPLEN_GENERAL 0x18
|
||||
#define OS_MAJOR_TYPE_UNIX 4
|
||||
#define OS_MINOR_TYPE_XSERVER 7
|
||||
|
||||
#define RDP_CAPSET_BITMAP 2
|
||||
#define RDP_CAPLEN_BITMAP 0x1C
|
||||
|
||||
#define RDP_CAPSET_ORDER 3
|
||||
#define RDP_CAPLEN_ORDER 0x58
|
||||
#define ORDER_CAP_NEGOTIATE 2
|
||||
#define ORDER_CAP_NOSUPPORT 4
|
||||
|
||||
#define RDP_CAPSET_BMPCACHE 4
|
||||
#define RDP_CAPLEN_BMPCACHE 0x28
|
||||
|
||||
#define RDP_CAPSET_CONTROL 5
|
||||
#define RDP_CAPLEN_CONTROL 0x0C
|
||||
|
||||
#define RDP_CAPSET_ACTIVATE 7
|
||||
#define RDP_CAPLEN_ACTIVATE 0x0C
|
||||
|
||||
#define RDP_CAPSET_POINTER 8
|
||||
#define RDP_CAPLEN_POINTER 0x08
|
||||
|
||||
#define RDP_CAPSET_SHARE 9
|
||||
#define RDP_CAPLEN_SHARE 0x08
|
||||
|
||||
#define RDP_CAPSET_COLCACHE 10
|
||||
#define RDP_CAPLEN_COLCACHE 0x08
|
||||
|
||||
#define RDP_CAPSET_BMPCACHE2 19
|
||||
#define RDP_CAPLEN_BMPCACHE2 0x28
|
||||
#define BMPCACHE2_FLAG_PERSIST ((uint32)1<<31)
|
||||
|
||||
#define RDP_SOURCE "MSTSC"
|
||||
|
||||
/* Logon flags */
|
||||
#define RDP_LOGON_AUTO 0x0008
|
||||
#define RDP_LOGON_NORMAL 0x0033
|
||||
#define RDP_LOGON_COMPRESSION 0x0080 /* mppc compression with 8kB histroy buffer */
|
||||
#define RDP_LOGON_BLOB 0x0100
|
||||
#define RDP_LOGON_COMPRESSION2 0x0200 /* rdp5 mppc compression with 64kB history buffer */
|
||||
#define RDP_LOGON_LEAVE_AUDIO 0x2000
|
||||
|
||||
#define RDP5_DISABLE_NOTHING 0x00
|
||||
#define RDP5_NO_WALLPAPER 0x01
|
||||
#define RDP5_NO_FULLWINDOWDRAG 0x02
|
||||
#define RDP5_NO_MENUANIMATIONS 0x04
|
||||
#define RDP5_NO_THEMING 0x08
|
||||
#define RDP5_NO_CURSOR_SHADOW 0x20
|
||||
#define RDP5_NO_CURSORSETTINGS 0x40 /* disables cursor blinking */
|
||||
|
||||
/* compression types */
|
||||
#define RDP_MPPC_BIG 0x01
|
||||
#define RDP_MPPC_COMPRESSED 0x20
|
||||
#define RDP_MPPC_RESET 0x40
|
||||
#define RDP_MPPC_FLUSH 0x80
|
||||
#define RDP_MPPC_DICT_SIZE 65536
|
||||
|
||||
#define RDP5_COMPRESSED 0x80
|
||||
|
||||
/* Keymap flags */
|
||||
#define MapRightShiftMask (1<<0)
|
||||
#define MapLeftShiftMask (1<<1)
|
||||
#define MapShiftMask (MapRightShiftMask | MapLeftShiftMask)
|
||||
|
||||
#define MapRightAltMask (1<<2)
|
||||
#define MapLeftAltMask (1<<3)
|
||||
#define MapAltGrMask MapRightAltMask
|
||||
|
||||
#define MapRightCtrlMask (1<<4)
|
||||
#define MapLeftCtrlMask (1<<5)
|
||||
#define MapCtrlMask (MapRightCtrlMask | MapLeftCtrlMask)
|
||||
|
||||
#define MapRightWinMask (1<<6)
|
||||
#define MapLeftWinMask (1<<7)
|
||||
#define MapWinMask (MapRightWinMask | MapLeftWinMask)
|
||||
|
||||
#define MapNumLockMask (1<<8)
|
||||
#define MapCapsLockMask (1<<9)
|
||||
|
||||
#define MapLocalStateMask (1<<10)
|
||||
|
||||
#define MapInhibitMask (1<<11)
|
||||
|
||||
#define MASK_ADD_BITS(var, mask) (var |= mask)
|
||||
#define MASK_REMOVE_BITS(var, mask) (var &= ~mask)
|
||||
#define MASK_HAS_BITS(var, mask) ((var & mask)>0)
|
||||
#define MASK_CHANGE_BIT(var, mask, active) (var = ((var & ~mask) | (active ? mask : 0)))
|
||||
|
||||
/* Clipboard constants, "borrowed" from GCC system headers in
|
||||
the w32 cross compiler */
|
||||
|
||||
#if 0
|
||||
#define CF_TEXT 1
|
||||
#define CF_BITMAP 2
|
||||
#define CF_METAFILEPICT 3
|
||||
#define CF_SYLK 4
|
||||
#define CF_DIF 5
|
||||
#define CF_TIFF 6
|
||||
#define CF_OEMTEXT 7
|
||||
#define CF_DIB 8
|
||||
#define CF_PALETTE 9
|
||||
#define CF_PENDATA 10
|
||||
#define CF_RIFF 11
|
||||
#define CF_WAVE 12
|
||||
#define CF_UNICODETEXT 13
|
||||
#define CF_ENHMETAFILE 14
|
||||
#define CF_HDROP 15
|
||||
#define CF_LOCALE 16
|
||||
#define CF_MAX 17
|
||||
#define CF_OWNERDISPLAY 128
|
||||
#define CF_DSPTEXT 129
|
||||
#define CF_DSPBITMAP 130
|
||||
#define CF_DSPMETAFILEPICT 131
|
||||
#define CF_DSPENHMETAFILE 142
|
||||
#define CF_PRIVATEFIRST 512
|
||||
#define CF_PRIVATELAST 767
|
||||
#define CF_GDIOBJFIRST 768
|
||||
#define CF_GDIOBJLAST 1023
|
||||
|
||||
/* Sound format constants */
|
||||
#define WAVE_FORMAT_PCM 1
|
||||
#define WAVE_FORMAT_ADPCM 2
|
||||
#define WAVE_FORMAT_ALAW 6
|
||||
#define WAVE_FORMAT_MULAW 7
|
||||
|
||||
/* Virtual channel options */
|
||||
#define CHANNEL_OPTION_INITIALIZED 0x80000000
|
||||
#define CHANNEL_OPTION_ENCRYPT_RDP 0x40000000
|
||||
#define CHANNEL_OPTION_COMPRESS_RDP 0x00800000
|
||||
#define CHANNEL_OPTION_SHOW_PROTOCOL 0x00200000
|
||||
|
||||
/* NT status codes for RDPDR */
|
||||
#define STATUS_SUCCESS 0x00000000
|
||||
#define STATUS_NOT_IMPLEMENTED 0x00000001
|
||||
#define STATUS_PENDING 0x00000103
|
||||
|
||||
#define STATUS_NO_MORE_FILES 0x80000006
|
||||
#define STATUS_DEVICE_PAPER_EMPTY 0x8000000e
|
||||
#define STATUS_DEVICE_POWERED_OFF 0x8000000f
|
||||
#define STATUS_DEVICE_OFF_LINE 0x80000010
|
||||
#define STATUS_DEVICE_BUSY 0x80000011
|
||||
|
||||
#define STATUS_INVALID_HANDLE 0xc0000008
|
||||
#define STATUS_INVALID_PARAMETER 0xc000000d
|
||||
#define STATUS_NO_SUCH_FILE 0xc000000f
|
||||
#define STATUS_INVALID_DEVICE_REQUEST 0xc0000010
|
||||
#define STATUS_ACCESS_DENIED 0xc0000022
|
||||
#define STATUS_OBJECT_NAME_COLLISION 0xc0000035
|
||||
#define STATUS_DISK_FULL 0xc000007f
|
||||
#define STATUS_FILE_IS_A_DIRECTORY 0xc00000ba
|
||||
#define STATUS_NOT_SUPPORTED 0xc00000bb
|
||||
#define STATUS_TIMEOUT 0xc0000102
|
||||
#define STATUS_NOTIFY_ENUM_DIR 0xc000010c
|
||||
#define STATUS_CANCELLED 0xc0000120
|
||||
|
||||
/* RDPDR constants */
|
||||
#define RDPDR_MAX_DEVICES 0x10
|
||||
#define DEVICE_TYPE_SERIAL 0x01
|
||||
#define DEVICE_TYPE_PARALLEL 0x02
|
||||
#define DEVICE_TYPE_PRINTER 0x04
|
||||
#define DEVICE_TYPE_DISK 0x08
|
||||
#define DEVICE_TYPE_SCARD 0x20
|
||||
|
||||
#define FILE_DIRECTORY_FILE 0x00000001
|
||||
#define FILE_NON_DIRECTORY_FILE 0x00000040
|
||||
#define FILE_COMPLETE_IF_OPLOCKED 0x00000100
|
||||
#define FILE_DELETE_ON_CLOSE 0x00001000
|
||||
#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000
|
||||
|
||||
/* RDP5 disconnect PDU */
|
||||
#define exDiscReasonNoInfo 0x0000
|
||||
#define exDiscReasonAPIInitiatedDisconnect 0x0001
|
||||
#define exDiscReasonAPIInitiatedLogoff 0x0002
|
||||
#define exDiscReasonServerIdleTimeout 0x0003
|
||||
#define exDiscReasonServerLogonTimeout 0x0004
|
||||
#define exDiscReasonReplacedByOtherConnection 0x0005
|
||||
#define exDiscReasonOutOfMemory 0x0006
|
||||
#define exDiscReasonServerDeniedConnection 0x0007
|
||||
#define exDiscReasonServerDeniedConnectionFips 0x0008
|
||||
#define exDiscReasonLicenseInternal 0x0100
|
||||
#define exDiscReasonLicenseNoLicenseServer 0x0101
|
||||
#define exDiscReasonLicenseNoLicense 0x0102
|
||||
#define exDiscReasonLicenseErrClientMsg 0x0103
|
||||
#define exDiscReasonLicenseHwidDoesntMatchLicense 0x0104
|
||||
#define exDiscReasonLicenseErrClientLicense 0x0105
|
||||
#define exDiscReasonLicenseCantFinishProtocol 0x0106
|
||||
#define exDiscReasonLicenseClientEndedProtocol 0x0107
|
||||
#define exDiscReasonLicenseErrClientEncryption 0x0108
|
||||
#define exDiscReasonLicenseCantUpgradeLicense 0x0109
|
||||
#define exDiscReasonLicenseNoRemoteConnections 0x010a
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
/* SeamlessRDP constants */
|
||||
#define SEAMLESSRDP_NOTYETMAPPED -1
|
||||
#define SEAMLESSRDP_NORMAL 0
|
||||
#define SEAMLESSRDP_MINIMIZED 1
|
||||
#define SEAMLESSRDP_MAXIMIZED 2
|
||||
#define SEAMLESSRDP_POSITION_TIMER 200000
|
||||
|
||||
#define SEAMLESSRDP_CREATE_MODAL 0x0001
|
||||
|
||||
#define SEAMLESSRDP_HELLO_RECONNECT 0x0001
|
||||
#define SEAMLESSRDP_HELLO_HIDDEN 0x0002
|
||||
#endif
|
1246
rosapps/applications/net/tsclient/rdesktop/disk.c
Normal file
1246
rosapps/applications/net/tsclient/rdesktop/disk.c
Normal file
File diff suppressed because it is too large
Load diff
139
rosapps/applications/net/tsclient/rdesktop/disk.h
Normal file
139
rosapps/applications/net/tsclient/rdesktop/disk.h
Normal file
|
@ -0,0 +1,139 @@
|
|||
/*
|
||||
rdesktop: A Remote Desktop Protocol client.
|
||||
Disk Redirection definitions
|
||||
Copyright (C) Jeroen Meijer 2003
|
||||
Copyright (C) Peter Astrand 2004
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#define FILE_ATTRIBUTE_READONLY 0x00000001
|
||||
#define FILE_ATTRIBUTE_HIDDEN 0x00000002
|
||||
#define FILE_ATTRIBUTE_SYSTEM 0x00000004
|
||||
#define FILE_ATTRIBUTE_DIRECTORY 0x00000010
|
||||
#define FILE_ATTRIBUTE_ARCHIVE 0x00000020
|
||||
#define FILE_ATTRIBUTE_DEVICE 0x00000040
|
||||
#define FILE_ATTRIBUTE_UNKNOWNXXX0 0x00000060 /* ??? ACTION i.e. 0x860 == compress this file ? */
|
||||
#define FILE_ATTRIBUTE_NORMAL 0x00000080
|
||||
#define FILE_ATTRIBUTE_TEMPORARY 0x00000100
|
||||
#define FILE_ATTRIBUTE_SPARSE_FILE 0x00000200
|
||||
#define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
|
||||
#define FILE_ATTRIBUTE_COMPRESSED 0x00000800
|
||||
#define FILE_ATTRIBUTE_OFFLINE 0x00001000
|
||||
#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
|
||||
#define FILE_ATTRIBUTE_ENCRYPTED 0x00004000
|
||||
|
||||
#define FILE_FLAG_OPEN_NO_RECALL 0x00100000
|
||||
#define FILE_FLAG_OPEN_REPARSE_POINT 0x00200000
|
||||
#define FILE_FLAG_POSIX_SEMANTICS 0x01000000
|
||||
#define FILE_FLAG_BACKUP_SEMANTICS 0x02000000 /* sometimes used to create a directory */
|
||||
#define FILE_FLAG_DELETE_ON_CLOSE 0x04000000
|
||||
#define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000
|
||||
#define FILE_FLAG_RANDOM_ACCESS 0x10000000
|
||||
#define FILE_FLAG_NO_BUFFERING 0x20000000
|
||||
#define FILE_FLAG_OVERLAPPED 0x40000000
|
||||
#define FILE_FLAG_WRITE_THROUGH 0x80000000
|
||||
|
||||
#define FILE_SHARE_READ 0x01
|
||||
#define FILE_SHARE_WRITE 0x02
|
||||
#define FILE_SHARE_DELETE 0x04
|
||||
|
||||
#define FILE_BASIC_INFORMATION 0x04
|
||||
#define FILE_STANDARD_INFORMATION 0x05
|
||||
|
||||
#define FS_CASE_SENSITIVE 0x00000001
|
||||
#define FS_CASE_IS_PRESERVED 0x00000002
|
||||
#define FS_UNICODE_STORED_ON_DISK 0x00000004
|
||||
#define FS_PERSISTENT_ACLS 0x00000008
|
||||
#define FS_FILE_COMPRESSION 0x00000010
|
||||
#define FS_VOLUME_QUOTAS 0x00000020
|
||||
#define FS_SUPPORTS_SPARSE_FILES 0x00000040
|
||||
#define FS_SUPPORTS_REPARSE_POINTS 0x00000080
|
||||
#define FS_SUPPORTS_REMOTE_STORAGE 0X00000100
|
||||
#define FS_VOL_IS_COMPRESSED 0x00008000
|
||||
#define FILE_READ_ONLY_VOLUME 0x00080000
|
||||
|
||||
#define OPEN_EXISTING 1
|
||||
#define CREATE_NEW 2
|
||||
#define OPEN_ALWAYS 3
|
||||
#define TRUNCATE_EXISTING 4
|
||||
#define CREATE_ALWAYS 5
|
||||
|
||||
#define GENERIC_READ 0x80000000
|
||||
#define GENERIC_WRITE 0x40000000
|
||||
#define GENERIC_EXECUTE 0x20000000
|
||||
#define GENERIC_ALL 0x10000000
|
||||
|
||||
#define ERROR_FILE_NOT_FOUND 2L
|
||||
#define ERROR_ALREADY_EXISTS 183L
|
||||
|
||||
typedef enum _FILE_INFORMATION_CLASS
|
||||
{
|
||||
FileDirectoryInformation = 1,
|
||||
FileFullDirectoryInformation,
|
||||
FileBothDirectoryInformation,
|
||||
FileBasicInformation,
|
||||
FileStandardInformation,
|
||||
FileInternalInformation,
|
||||
FileEaInformation,
|
||||
FileAccessInformation,
|
||||
FileNameInformation,
|
||||
FileRenameInformation,
|
||||
FileLinkInformation,
|
||||
FileNamesInformation,
|
||||
FileDispositionInformation,
|
||||
FilePositionInformation,
|
||||
FileFullEaInformation,
|
||||
FileModeInformation,
|
||||
FileAlignmentInformation,
|
||||
FileAllInformation,
|
||||
FileAllocationInformation,
|
||||
FileEndOfFileInformation,
|
||||
FileAlternateNameInformation,
|
||||
FileStreamInformation,
|
||||
FilePipeInformation,
|
||||
FilePipeLocalInformation,
|
||||
FilePipeRemoteInformation,
|
||||
FileMailslotQueryInformation,
|
||||
FileMailslotSetInformation,
|
||||
FileCompressionInformation,
|
||||
FileCopyOnWriteInformation,
|
||||
FileCompletionInformation,
|
||||
FileMoveClusterInformation,
|
||||
FileOleClassIdInformation,
|
||||
FileOleStateBitsInformation,
|
||||
FileNetworkOpenInformation,
|
||||
FileObjectIdInformation,
|
||||
FileOleAllInformation,
|
||||
FileOleDirectoryInformation,
|
||||
FileContentIndexInformation,
|
||||
FileInheritContentIndexInformation,
|
||||
FileOleInformation,
|
||||
FileMaximumInformation
|
||||
} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
|
||||
|
||||
typedef enum _FSINFOCLASS
|
||||
{
|
||||
FileFsVolumeInformation = 1,
|
||||
FileFsLabelInformation,
|
||||
FileFsSizeInformation,
|
||||
FileFsDeviceInformation,
|
||||
FileFsAttributeInformation,
|
||||
FileFsControlInformation,
|
||||
FileFsFullSizeInformation,
|
||||
FileFsObjectIdInformation,
|
||||
FileFsDriverPathInformation,
|
||||
FileFsMaximumInformation
|
||||
} FS_INFORMATION_CLASS, *PFS_INFORMATION_CLASS;
|
14
rosapps/applications/net/tsclient/rdesktop/doc/AUTHORS
Normal file
14
rosapps/applications/net/tsclient/rdesktop/doc/AUTHORS
Normal file
|
@ -0,0 +1,14 @@
|
|||
This is an attempt at a list of people who have made significant
|
||||
contributions to the code. If you have been unintentionally omitted
|
||||
please let one of the team members know.
|
||||
|
||||
Matt Chapman <matthewc@cse.unsw.edu.au>
|
||||
Peter Kallden <peter.kallden@ub.oru.se>
|
||||
Hugo Trippaers <spark@ision.nl>
|
||||
Jay Sorg <j@american-data.com>
|
||||
Peter Åstrand <peter@cendio.se>
|
||||
Michal Mihalik <mmihalik@sme.sk>
|
||||
Norbert Federa <nob@thinstuff.com>
|
||||
Erik Forsberg <forsberg@cendio.se>
|
||||
Michael Gernoth <michael@gernoth.net>
|
||||
Jeroen Meijer <jeroen@oldambt7.com>
|
86
rosapps/applications/net/tsclient/rdesktop/doc/ChangeLog
Normal file
86
rosapps/applications/net/tsclient/rdesktop/doc/ChangeLog
Normal file
|
@ -0,0 +1,86 @@
|
|||
rdesktop (1.?.?)
|
||||
* SeamlessRDP - seamless windows support
|
||||
* Keymap fixes
|
||||
* Fix connection issues with Windows XP RTM
|
||||
* Keyboard handling improvements and fixes
|
||||
* SGI/Irix sound-driver fixes
|
||||
* Support for clipboard INCR protocol
|
||||
* Session Directory support (patch from Brian Chapeau <lheria@users.sourceforge.net>)
|
||||
* Support for long filenames on redirected drives
|
||||
* XOR ellipse drawing fix
|
||||
* Clipboard unicode support (Ilya Konstantinov)
|
||||
* Refactoring of color depth code (Ilya Konstantinov)
|
||||
|
||||
rdesktop (1.4.1)
|
||||
* persistent bitmap cache optimisations
|
||||
* support for more RDP-orders (ellipse, polygon)
|
||||
* libao sound-driver (for Mac OSX and others)
|
||||
* Unicode support for transmitted strings/filenames
|
||||
* Added korean keymap
|
||||
* Xembed fixes to work with krdc correctly
|
||||
* Portability fixes
|
||||
* Support for RDP-compression (all bpps)
|
||||
* process RDP recv queue if send queue is full (Debian bug #246461)
|
||||
* SGI/Irix sound-driver fixes
|
||||
|
||||
-- Michael Gernoth <michael@gernoth.net> Sun, 8 May 2005 19:55:35 +0200 (CEST)
|
||||
|
||||
rdesktop (1.4.0)
|
||||
* Basic disk-, parallel-, printer- and serial-redirection
|
||||
* Fix timezone-redirection
|
||||
* Backing-store fixes
|
||||
* Fix client-IP sent to TS
|
||||
* XEmbed support for embedding rdesktop in other applications (KRDC)
|
||||
* Support for setting the RDP5 experience
|
||||
* Keyboard and keymap fixes
|
||||
* Performance improvements
|
||||
* Report disconnect-reason
|
||||
* Support for RDP-compression (currently only for 8bpp)
|
||||
* Support for persistent bitmap caching
|
||||
* Sound-driver for SGI/Irix
|
||||
|
||||
-- Michael Gernoth <michael@gernoth.net> Sun, 6 Mar 2005 22:09:55 +0100 (CET)
|
||||
|
||||
rdesktop (1.3.1)
|
||||
* Crypto fixes for RDP5
|
||||
* Keyboard and keymap fixes
|
||||
* some endianess fixes for high color
|
||||
* portability enhancements
|
||||
|
||||
-- Matthew Chapman <matthewc@cse.unsw.edu.au> Tue, 21 Jan 2004 20:34
|
||||
|
||||
rdesktop (1.3.0)
|
||||
|
||||
* RDP5
|
||||
* 15, 16 and 24 bit color depths
|
||||
* Basic clipboard redirection
|
||||
* Sound
|
||||
* IPv6
|
||||
* Attaching to console on Windows 2003
|
||||
|
||||
-- Peter Astrand <peter@cendio.se> Wed, 29 Oct 2003 16:40:58 +0100 (CET)
|
||||
|
||||
rdesktop (1.2.0)
|
||||
|
||||
* new - more portable - key mapping code
|
||||
* support for "high" (128-bit) encryption
|
||||
* toggling out of full-screen mode with Ctrl-Alt-Enter
|
||||
* a few extra options including host:port syntax
|
||||
* many, many bug fixes and optimisations
|
||||
|
||||
-- Matthew Chapman <matthewc@cse.unsw.edu.au> Thu, 30 Jan 2003 04:29
|
||||
|
||||
rdesktop (1.1.0)
|
||||
|
||||
* solves arith.c licensing issue by taking big number routines from
|
||||
OpenSSL
|
||||
* keyboard support not merged from unified patches yet
|
||||
* still no manpage
|
||||
|
||||
-- Matthew Chapman <matthewc@cse.unsw.edu.au> Mon, 17 Sep 2001 23:14:28 +1000 (AEST)
|
||||
|
||||
rdesktop (1.0.0)
|
||||
|
||||
* initial release
|
||||
|
||||
-- Matthew Chapman <matthewc@cse.unsw.edu.au>
|
28
rosapps/applications/net/tsclient/rdesktop/doc/HACKING
Normal file
28
rosapps/applications/net/tsclient/rdesktop/doc/HACKING
Normal file
|
@ -0,0 +1,28 @@
|
|||
|
||||
Code style / indentation
|
||||
------------------------
|
||||
The file indent-all.sh contains information about the current code
|
||||
style. Run this script before commits.
|
||||
|
||||
|
||||
Variable argument macros
|
||||
------------------------
|
||||
Variable argument macros are non-portable in general, and should be
|
||||
avoided. Either use a second set of parentheses like DEBUG, or create
|
||||
a variable argument function like error.
|
||||
|
||||
|
||||
Structure
|
||||
---------
|
||||
The core protocol stack should be system-independent (i.e. ANSI C
|
||||
only) so that it is easy to port. This currently applies to the
|
||||
following files:
|
||||
|
||||
bitmap.c licence.c orders.c rdp.c rdp5.c cache.c iso.c mcs.c
|
||||
secure.c mppc.c channels.c
|
||||
rdesktop.c
|
||||
|
||||
|
||||
RDP resources
|
||||
-------------
|
||||
http://dev.remotenetworktechnology.com/refdata.htm
|
89
rosapps/applications/net/tsclient/rdesktop/doc/TODO
Normal file
89
rosapps/applications/net/tsclient/rdesktop/doc/TODO
Normal file
|
@ -0,0 +1,89 @@
|
|||
|
||||
* Clipboard:
|
||||
|
||||
* Support other data types than plain text.
|
||||
|
||||
* Conversion between different character sets.
|
||||
|
||||
|
||||
* Drive Redirection:
|
||||
|
||||
* Real support for file locking
|
||||
|
||||
* Handle reconnections correctly.
|
||||
|
||||
* Various deficiencies; see FIXMEs in source code.
|
||||
|
||||
|
||||
* Serial Port Redirection:
|
||||
|
||||
* More testing needed.
|
||||
|
||||
|
||||
* Printer Redirection:
|
||||
|
||||
* More testing needed.
|
||||
|
||||
|
||||
* Keymapping:
|
||||
|
||||
|
||||
* Sound redirection
|
||||
|
||||
* Use timestamps in audio packets.
|
||||
|
||||
* Add resampling to supported samplerates of audio-hardware.
|
||||
|
||||
* Lower CPU-usage with an audio thread.
|
||||
|
||||
|
||||
* Smartcard redirection
|
||||
|
||||
* Merge patches currently implementing sc-redirection.
|
||||
|
||||
|
||||
* Miscellaneous
|
||||
|
||||
* Clean up header files. The current "proto.h" and "xproto.h" is far
|
||||
from optimal.
|
||||
|
||||
* Go through the many trackers (bugs/patches/RFEs) at SourceForge.
|
||||
|
||||
* More fancy homepage.
|
||||
|
||||
* Enhance documentation. Write a FAQ.
|
||||
|
||||
|
||||
* SeamlessRDP mode
|
||||
|
||||
* Add a client to server message for starting additional
|
||||
applications.
|
||||
|
||||
* Support cmd.exe.
|
||||
|
||||
* Support for Input Contexts.
|
||||
|
||||
* Enhanced support for WM_DELETE_WINDOW: Instead of terminating
|
||||
rdesktop, close the window on the server side.
|
||||
|
||||
* Systray support.
|
||||
|
||||
* Support for transferring the application taskbar icon.
|
||||
|
||||
* Better support for non-EWMH window managers.
|
||||
|
||||
* Support for non-rectangular windows.
|
||||
|
||||
* The focus handling of menus is a bit crude.
|
||||
|
||||
* Support for sending focus information from client to server.
|
||||
|
||||
* Implement something similiar to explhook.dll - support for running
|
||||
explorer.exe in non-shell mode.
|
||||
|
||||
* Better compatibility with Task Manager.
|
||||
|
||||
* XINERAMA support.
|
||||
|
||||
* When enumerating windows, make sure to send info about windows
|
||||
that are transient for other windows after the referred window.
|
29
rosapps/applications/net/tsclient/rdesktop/doc/ipv6.txt
Normal file
29
rosapps/applications/net/tsclient/rdesktop/doc/ipv6.txt
Normal file
|
@ -0,0 +1,29 @@
|
|||
|
||||
IPv6 support in rdesktop
|
||||
========================
|
||||
The IPv6 support was developed by Mike Dawson <mike@dexy.mine.nu>:
|
||||
|
||||
Attached is a patch to tcp.c to enable IPv6 support. Build with
|
||||
'IPv6' defined to enable it. It's so far only been tested on
|
||||
Linux 2.4.21 connecting to Windows XP SP1.
|
||||
|
||||
Since terminal services doesn't seem to bind to the ipv6 interface
|
||||
on XP I had to run 'netsh interface portproxy add v6tov4
|
||||
listenport=3389 connectport=3389' from the windows command prompt
|
||||
to get it to work.
|
||||
|
||||
|
||||
rdesktop now supports numeric IPv6 addresses:
|
||||
|
||||
It checks for two or more colons in an address to decide what it's
|
||||
dealing with so you can now do:
|
||||
|
||||
rdesktop 2001:1:2:3::4
|
||||
|
||||
without it getting confused with an ipv4:port specification. I've
|
||||
also followed the square bracket convention used by browsers
|
||||
(http://www.ietf.org/rfc/rfc2732.txt) so if you want to specify a
|
||||
non-standard port with an ipv6 address you can use the format:
|
||||
|
||||
rdesktop [2001:1:2:3::4]:3390
|
||||
|
124
rosapps/applications/net/tsclient/rdesktop/doc/keymap-names.txt
Normal file
124
rosapps/applications/net/tsclient/rdesktop/doc/keymap-names.txt
Normal file
|
@ -0,0 +1,124 @@
|
|||
|
||||
0x0436 af Afrikaans
|
||||
0x041C sq Albanian
|
||||
0x0001 ar Arabic
|
||||
0x0401 ar-sa Arabic (Saudi Arabia)
|
||||
0x0801 ar-iq Arabic (Iraq)
|
||||
0x0C01 ar-eg Arabic (Egypt)
|
||||
0x1001 ar-ly Arabic (Libya)
|
||||
0x1401 ar-dz Arabic (Algeria)
|
||||
0x1801 ar-ma Arabic (Morocco)
|
||||
0x1C01 ar-tn Arabic (Tunisia)
|
||||
0x2001 ar-om Arabic (Oman)
|
||||
0x2401 ar-ye Arabic (Yemen)
|
||||
0x2801 ar-sy Arabic (Syria)
|
||||
0x2C01 ar-jo Arabic (Jordan)
|
||||
0x3001 ar-lb Arabic (Lebanon)
|
||||
0x3401 ar-kw Arabic (Kuwait)
|
||||
0x3801 ar-ae Arabic (U.A.E.)
|
||||
0x3C01 ar-bh Arabic (Bahrain)
|
||||
0x4001 ar-qa Arabic (Qatar)
|
||||
0x042D eu Basque
|
||||
0x0402 bg Bulgarian
|
||||
0x0423 be Belarusian
|
||||
0x0403 ca Catalan
|
||||
0x0004 zh Chinese
|
||||
0x0404 zh-tw Chinese (Taiwan)
|
||||
0x0804 zh-cn Chinese (China)
|
||||
0x0C04 zh-hk Chinese (Hong Kong SAR)
|
||||
0x1004 zh-sg Chinese (Singapore)
|
||||
0x041A hr Croatian
|
||||
0x0405 cs Czech
|
||||
0x0406 da Danish
|
||||
0x0413 nl Dutch (Netherlands)
|
||||
0x0813 nl-be Dutch (Belgium)
|
||||
0x0009 en English
|
||||
0x0409 en-us English (United States)
|
||||
0x0809 en-gb English (United Kingdom)
|
||||
0x0C09 en-au English (Australia)
|
||||
0x1009 en-ca English (Canada)
|
||||
0x1409 en-nz English (New Zealand)
|
||||
0x1809 en-ie English (Ireland)
|
||||
0x1C09 en-za English (South Africa)
|
||||
0x2009 en-jm English (Jamaica)
|
||||
0x2809 en-bz English (Belize)
|
||||
0x2C09 en-tt English (Trinidad)
|
||||
0x0425 et Estonian
|
||||
0x0438 fo Faeroese
|
||||
0x0429 fa Farsi
|
||||
0x040B fi Finnish
|
||||
0x040C fr French (France)
|
||||
0x080C fr-be French (Belgium)
|
||||
0x0C0C fr-ca French (Canada)
|
||||
0x100C fr-ch French (Switzerland)
|
||||
0x140C fr-lu French (Luxembourg)
|
||||
0x043C gd Gaelic
|
||||
0x0407 de German (Germany)
|
||||
0x0807 de-ch German (Switzerland)
|
||||
0x0C07 de-at German (Austria)
|
||||
0x1007 de-lu German (Luxembourg)
|
||||
0x1407 de-li German (Liechtenstein)
|
||||
0x0408 el Greek
|
||||
0x040D he Hebrew
|
||||
0x0439 hi Hindi
|
||||
0x040E hu Hungarian
|
||||
0x040F is Icelandic
|
||||
0x0421 in Indonesian
|
||||
0x0410 it Italian (Italy)
|
||||
0x0810 it-ch Italian (Switzerland)
|
||||
0x0411 ja Japanese
|
||||
0x0412 ko Korean
|
||||
0x0426 lv Latvian
|
||||
0x0427 lt Lithuanian
|
||||
0x042F mk FYRO Macedonian
|
||||
0x043E ms Malay (Malaysia)
|
||||
0x043A mt Maltese
|
||||
0x0414 no Norwegian (Bokmal)
|
||||
0x0814 no Norwegian (Nynorsk)
|
||||
0x0415 pl Polish
|
||||
0x0416 pt-br Portuguese (Brazil)
|
||||
0x0816 pt Portuguese (Portugal)
|
||||
0x0417 rm Rhaeto-Romanic
|
||||
0x0418 ro Romanian
|
||||
0x0818 ro-mo Romanian (Moldova)
|
||||
0x0419 ru Russian
|
||||
0x0819 ru-mo Russian (Moldova)
|
||||
0x0C1A sr Serbian (Cyrillic)
|
||||
0x081A sr Serbian (Latin)
|
||||
0x041B sk Slovak
|
||||
0x0424 sl Slovenian
|
||||
0x042E sb Sorbian
|
||||
0x040A es Spanish (Traditional Sort)
|
||||
0x080A es-mx Spanish (Mexico)
|
||||
0x0C0A es Spanish (International Sort)
|
||||
0x100A es-gt Spanish (Guatemala)
|
||||
0x140A es-cr Spanish (Costa Rica)
|
||||
0x180A es-pa Spanish (Panama)
|
||||
0x1C0A es-do Spanish (Dominican Republic)
|
||||
0x200A es-ve Spanish (Venezuela)
|
||||
0x240A es-co Spanish (Colombia)
|
||||
0x280A es-pe Spanish (Peru)
|
||||
0x2C0A es-ar Spanish (Argentina)
|
||||
0x300A es-ec Spanish (Ecuador)
|
||||
0x340A es-cl Spanish (Chile)
|
||||
0x380A es-uy Spanish (Uruguay)
|
||||
0x3C0A es-py Spanish (Paraguay)
|
||||
0x400A es-bo Spanish (Bolivia)
|
||||
0x440A es-sv Spanish (El Salvador)
|
||||
0x480A es-hn Spanish (Honduras)
|
||||
0x4C0A es-ni Spanish (Nicaragua)
|
||||
0x500A es-pr Spanish (Puerto Rico)
|
||||
0x0430 sx Sutu
|
||||
0x041D sv Swedish
|
||||
0x081D sv-fi Swedish (Finland)
|
||||
0x041E th Thai
|
||||
0x0431 ts Tsonga
|
||||
0x0432 tn Tswana
|
||||
0x041F tr Turkish
|
||||
0x0422 uk Ukrainian
|
||||
0x0420 ur Urdu
|
||||
0x042A vi Vietnamese
|
||||
0x0434 xh Xhosa
|
||||
0x043D ji Yiddish
|
||||
0x0435 zu Zulu
|
||||
|
243
rosapps/applications/net/tsclient/rdesktop/doc/keymapping.txt
Normal file
243
rosapps/applications/net/tsclient/rdesktop/doc/keymapping.txt
Normal file
|
@ -0,0 +1,243 @@
|
|||
Keyboard mapping
|
||||
================
|
||||
This release of rdesktop uses a new, portable keyboard mapping
|
||||
implementation. It should hopefully work on all X11 systems. This new
|
||||
implementation only looks at X11 keysyms: Not on (nonportable)
|
||||
keycodes or modifier status. This means that rdesktop will obey your
|
||||
local keyboard configuration. For example, if you have swapped
|
||||
CapsLock and Control, rdesktop will use this mapping.
|
||||
|
||||
XKB is currently not used. It seems like a good idea to me, but since
|
||||
some X servers (like Xvnc) does not support XKB, we still need to use
|
||||
the plain old interface as well, at least.
|
||||
|
||||
There are still some small problems.
|
||||
|
||||
* CapsLock: CapsLock changes are never sent to the RDP
|
||||
server. rdesktop does not know which keys that are modified by
|
||||
CapsLock and which are not. So, the CapsLock indicator in Wordpad
|
||||
etc will always be off.
|
||||
|
||||
Composing/Multi_key is supported. For more information, see:
|
||||
|
||||
MIT: $SRC/xc/nls/X11/locale/Compose/iso8859-1
|
||||
XFree86: /usr/X11R6/lib/X11/locale/*/Compose
|
||||
Solaris' Openwin: /usr/openwin/include/X11/Suncompose.h
|
||||
/usr/openwin/lib/locale/*/Compose
|
||||
Irix6: compose(5)
|
||||
|
||||
|
||||
Keymap files
|
||||
============
|
||||
The names of the keymaps follows RFC1766.
|
||||
|
||||
(You can find a translation from Windows keyboard layout numbers to
|
||||
keymap names by looking at
|
||||
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\RFC1766 in the
|
||||
registry.)
|
||||
|
||||
|
||||
Contents of keymap files
|
||||
========================
|
||||
The keymaps are line based. There are four different types of lines:
|
||||
|
||||
1) include lines
|
||||
Syntax:
|
||||
include <another-map-file>
|
||||
|
||||
Example:
|
||||
include common
|
||||
|
||||
|
||||
2) map lines
|
||||
Syntax:
|
||||
map <hex-number>
|
||||
|
||||
Example:
|
||||
map 0x41d
|
||||
|
||||
Map-lines specifies how the remote RDP server should interpret the
|
||||
sent scancodes.
|
||||
|
||||
|
||||
3) Translation lines
|
||||
Syntax:
|
||||
<keysym-name> <scancode> [flags..]
|
||||
|
||||
Example:
|
||||
onehalf 0x29 shift
|
||||
|
||||
The scancode can be found in scancodes.h. Note: The scancode value for
|
||||
extended keys can be calculated by OR:ing with 0x80. Example: The
|
||||
Delete key have the scancode sequence 0xe0, 0x52. You can get the
|
||||
scancode value to put into the map file by running:
|
||||
|
||||
python -c "print hex(0x80 | 0x52)"
|
||||
|
||||
If flags are "altgr", "shift", the scancode sent for this keysym will
|
||||
be prefixed with AltGr, or Shift.
|
||||
|
||||
If flags includes "addupper", a translation for this keysyms uppercase
|
||||
name will be added as well, in addition to the non-uppercase
|
||||
name. Example:
|
||||
|
||||
x 2d addupper
|
||||
|
||||
...will add an translation for "X" automatically, just like if you
|
||||
would specify:
|
||||
|
||||
X 2d shift
|
||||
|
||||
If flags include "localstate", the modifier to send will be determined
|
||||
by the local modifier state.
|
||||
|
||||
If flags is "inhibit", nothing will be sent to the server.
|
||||
|
||||
If flags is "numlock", rdesktop will make sure that the remote NumLock
|
||||
state is on before generating the key event. Otherwise, it will make
|
||||
sure NumLock is off.
|
||||
|
||||
|
||||
4) enable_compose
|
||||
|
||||
If any line starts with the keyword "enable_compose", rdesktop will
|
||||
enable local Compose/Multi_key handling. Enabling this will often make
|
||||
it impossible to compose characters with dead keys (on the remote
|
||||
side). This is because when local compose support is enabled, dead
|
||||
keys will not be sent to the remote side.
|
||||
|
||||
|
||||
5) sequence lines
|
||||
Syntax:
|
||||
sequence <event-keysym-name> <keysym-name1> <keysym-name2> ...
|
||||
|
||||
Examples:
|
||||
sequence eacute dead_acute e
|
||||
sequence F12 f o o at e x a m p l e period c o m
|
||||
|
||||
Sequence lines allows you to specify that multiple scancodes should be
|
||||
sent to the RDP server, in response to one X11 keyboard event. Note:
|
||||
The sequence is sent at the X11 KeyPress event. Nothing is sent at
|
||||
KeyRelease.
|
||||
|
||||
|
||||
6) keyboard_type lines
|
||||
Syntax:
|
||||
keyboard_type <hex-number>
|
||||
|
||||
keyboard_type lines specifies the keyboard type. Default value is 0x4
|
||||
(en-us 101/104 keys keyboard).
|
||||
|
||||
|
||||
7) keyboard_subtype lines
|
||||
Syntax:
|
||||
keyboard_subtype <hex-number>
|
||||
|
||||
keyboard_subtype lines specifies the keyboard subtype. Default value
|
||||
is 0x0 (en-us 101/104 keys keyboard).
|
||||
|
||||
|
||||
8) keyboard_functionkeys lines
|
||||
Syntax:
|
||||
keyboard_functionkeys <hex-number>
|
||||
|
||||
keyboard_functionkeys specifies the number of keyboard function
|
||||
keys. Default value is 0xc (12, for standard 101/104 keys keyboard).
|
||||
|
||||
|
||||
|
||||
|
||||
Suggested X11 keysym mapping on PCs
|
||||
===================================
|
||||
Unfortunately, there is no standard for which keysyms a given key
|
||||
should generate. If you have a PC-keyboard with Windows keys, I suggest this mapping:
|
||||
|
||||
Keyboard keys:
|
||||
CtrlLeft WinLeft AltLeft Space AltGr WinRight Menu CtrlRight
|
||||
|
||||
...should generate keysyms:
|
||||
Control_L Super_L Alt_L space Mode_switch Super_R Menu Control_R
|
||||
|
||||
Additionally:
|
||||
Shift-Alt should produce Meta_L
|
||||
Shift-AltGr should produce Multi_Key.
|
||||
|
||||
Use a modifier-map like this:
|
||||
|
||||
shift Shift_L (0x32), Shift_R (0x3e)
|
||||
lock Caps_Lock (0x25)
|
||||
control Control_L (0x42), Control_R (0x6d)
|
||||
mod1 Alt_L (0x40)
|
||||
mod2 Num_Lock (0x4d)
|
||||
mod3 Mode_switch (0x71)
|
||||
mod4 Super_L (0x73), Super_R (0x74)
|
||||
mod5 Scroll_Lock (0x4e)
|
||||
|
||||
|
||||
Updating / writing keymap files
|
||||
===============================
|
||||
When writing new or updating keymap files, please use comments and
|
||||
blanks, to increase readability. The "sv" keymap is a good template.
|
||||
|
||||
When you need to add a translation to a keymap file, do:
|
||||
|
||||
1. Get the "key number" for this key, by looking at keynums.png.
|
||||
|
||||
2. Take a look at scancodes.h, and look for
|
||||
SCANCODE_KEY_<my-key-number>. The scancode value is at the end of
|
||||
the line. If the line contains (SCANCODE_EXTENDED | 0xsomething),
|
||||
then you should OR 0x80 to this value. For example, you can do:
|
||||
|
||||
python -c "print hex(0x80 | 0xsomething)"
|
||||
|
||||
3. Put the scancode (from step 2) and keysym name (found in the
|
||||
error message) into the keymap file.
|
||||
|
||||
|
||||
Special keys
|
||||
============
|
||||
|
||||
* The combination Ctrl-Alt-Enter toggles between fullscreen and
|
||||
non-fullscreen mode.
|
||||
|
||||
* Meta, Hyper and Super are treated as windows keys. RDP4 does not
|
||||
support the windows keys though, so if you are running RDP4, these
|
||||
keys will translate to Ctrl-Esc.
|
||||
|
||||
|
||||
Links
|
||||
=====
|
||||
http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html
|
||||
|
||||
|
||||
Test cases
|
||||
==========
|
||||
When changing the keyboard code, make sure all these tests in Notepad
|
||||
works:
|
||||
|
||||
1. Ctrl+f should bring up Find dialog, with CapsLock both on and off.
|
||||
|
||||
2. Ctrl+Shift+arrows should mark text, with CapsLock both on and off.
|
||||
|
||||
3. Test a sequence, like egrave.
|
||||
|
||||
4. Test a char generated with AltGr, such as @ on a swedish keyboard.
|
||||
|
||||
5. Test Ctrl-Alt-Delete.
|
||||
|
||||
6. Ctrl-Alt-Enter should toggle fullscreen.
|
||||
|
||||
7. Test NumLock synchronization using the -N option. Excel is able to
|
||||
indicate the current NumLock state. Verify that the status is
|
||||
updated correctly on reconnects.
|
||||
|
||||
8. Test the Windows keys, standalone as well as in combination with,
|
||||
say, E.
|
||||
|
||||
9. Make sure the system menu (via Alt-space) cannot be accessed in
|
||||
single app mode.
|
||||
|
||||
10. Make sure keymaps can be loaded from ~/.rdesktop/keymaps,
|
||||
KEYMAP_PATH, $CWD/keymaps, and from an absolute path.
|
||||
|
||||
|
BIN
rosapps/applications/net/tsclient/rdesktop/doc/keynums.png
Normal file
BIN
rosapps/applications/net/tsclient/rdesktop/doc/keynums.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9 KiB |
56
rosapps/applications/net/tsclient/rdesktop/doc/licensing.txt
Normal file
56
rosapps/applications/net/tsclient/rdesktop/doc/licensing.txt
Normal file
|
@ -0,0 +1,56 @@
|
|||
|
||||
To be able to connect to Microsoft Windows 2000 Terminal Services (and
|
||||
probably later versions), you'll need to deal with licensing. This is
|
||||
complicated. This file is supposed to contain some information about
|
||||
how rdesktop works with Microsofts license systems.
|
||||
|
||||
There's a lot of information on the MS web site, for example,
|
||||
http://support.microsoft.com/default.aspx?scid=kb;EN-US;287687.
|
||||
|
||||
From the rdesktop mailing list:
|
||||
|
||||
Peter Åstrand <peter@cendio.se>, 2003-02-06
|
||||
|
||||
> We are running rdesktop 1.2 on machine A and connects to a Windows 2000
|
||||
> Server (machine B). The W2K machine has 5 real licenses installed ("Windows
|
||||
> 2000 Terminal Services Client Access License", "Open" type). This can be
|
||||
> verifier by using "Terminal Services Licensing". The problem is that all
|
||||
> issued licenses have an expire-date. The expire date for the license issued
|
||||
> to A was reached today, and no more connections could be made until we
|
||||
> changed the client name (by using -n).
|
||||
>
|
||||
> We also have another similiar systems, with Linux machine C and W2K server
|
||||
> D. This server has 200 licenses installed of the type "Select". On this
|
||||
> server, the issued licenses seems to be permanent: The expire date is set
|
||||
> to "-", and we have no problem with this system.
|
||||
>
|
||||
> The question of course is why the first system issues license with
|
||||
> expiration date, while the second system issues permanent licenses.
|
||||
|
||||
|
||||
Darryn Capes-Davis, 2003-02-07
|
||||
|
||||
> I have been through the problems and can tell you what is going
|
||||
> on. The main difference of Machine B (Server 1) and Machine D (Server
|
||||
> 2) is that from what I see Machine B has Service Pack 3 installed and
|
||||
> Machine D does not. You see in Service Pack 3 there was a change made
|
||||
> to TS Licencing in that Microsoft introduced a licence recovery
|
||||
> mechanism. To cut to the point (I don't know the details) rdesktop 1.2
|
||||
> with SAVE_LICENCE defined works fine. In the new lic method the
|
||||
> terminal server expects a valid licence to be presented to renew
|
||||
> it. Otherwise it just expires it - and a day later you will see it
|
||||
> actually gone (it does housekeeping once a day)! So if SAVE_LICENCE
|
||||
> code is not enabled then it just expires and you can't use the licence
|
||||
> until it cleans it away - and this is where a little gotcha is - if
|
||||
> you move from using an rdesktop without SAVE_LICENCE to one with
|
||||
> SAVE_LICENCE then it still won't recover an 'expired' licence. You
|
||||
> have to wait for the daily housekeeping to clean it up - this really
|
||||
> had me going for half a day or so! This is exactly what happened to
|
||||
> you.
|
||||
>
|
||||
> The Server pre Spk 3 has the old model where licences never expire. To
|
||||
> recover a licence that you never wanted to use again you have to call
|
||||
> the Microsoft Clearing House. That's why they introduced the new
|
||||
> method. And if you upgrade a Pre Spk3 server to Spk3 then the licences
|
||||
> granted still stay with the old method - only new licences granted
|
||||
> will use the new expiry method.
|
|
@ -0,0 +1,39 @@
|
|||
|
||||
Protocol overview
|
||||
=================
|
||||
|
||||
The lspci virtual channel makes it possible for the remote RDP server
|
||||
to enumerate the local PCI devices. The protocol on this channel is
|
||||
text based and line oriented: One single line per request or
|
||||
response. UNIX-style LF line breaks are used. The maximum line length
|
||||
is 1023, newline included.
|
||||
|
||||
rdesktop acts as a server, with only one request:
|
||||
|
||||
LSPCI
|
||||
|
||||
The response is several lines with this syntax:
|
||||
|
||||
<class>,<vendor>,<device>,<subvendor>,<subdevice>,<revision>,<progif>
|
||||
|
||||
After the last line, a line with a single dot is sent.
|
||||
|
||||
Example:
|
||||
|
||||
0300,102b,0525,102b,0338,04,00
|
||||
0401,8086,24d5,1028,0174,02,8f
|
||||
.
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
To enable to lspci virtual channel, run rdesktop with "-r lspci".
|
||||
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
http://www.microsoft.com/msj/1099/terminal/terminal.aspx
|
||||
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/termserv/termserv/terminal_services_virtual_channels.asp
|
||||
|
340
rosapps/applications/net/tsclient/rdesktop/doc/patches.txt
Normal file
340
rosapps/applications/net/tsclient/rdesktop/doc/patches.txt
Normal file
|
@ -0,0 +1,340 @@
|
|||
This file documents some of all patches for rdesktop, floating around
|
||||
the net, and how they are related to the current (CVS) version of
|
||||
rdesktop. Things left to do are marked with TBD (To Be Done).
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/Makefile.diff
|
||||
Description:
|
||||
Makefile changes which makes it possible to compile rdesktop on SunOS
|
||||
and OSF1.
|
||||
Status:
|
||||
Applied (slightly modified)
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/assar_19-7-2.hostlen.patch
|
||||
Description:
|
||||
Fix for hostnames longer than 30 chars.
|
||||
Status:
|
||||
Applied (revision 1.11 of secure.c)
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/backingstore+privatecolormap-for-19-3-9.patch
|
||||
Description:
|
||||
This adds support for 1) Private color maps (useful for 8 bpp mode)
|
||||
and 2) backingstore selection.
|
||||
Status:
|
||||
1) is not needed anymore; rdesktop automatically uses Private color
|
||||
map in 8 bpp mode. 2) is, as far as I understand, also not
|
||||
need. rdesktop automatically uses a software backing store if the
|
||||
Xserver does not provide one.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/ben_xwin.c.diff
|
||||
Description:
|
||||
Fixes for CapsLock and NumLock.
|
||||
Status:
|
||||
Not needed anymore, with the new keyboard mapping implementation.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/ctrl1nohang.diff
|
||||
Description:
|
||||
Fixes problem with ctrl1 hangs.
|
||||
Status:
|
||||
Not needed anymore, with the new keyboard mapping implementation.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/downkeypatch.diff
|
||||
Description:
|
||||
Seems to keep track of the remote modifier status.
|
||||
Status:
|
||||
Not needed anymore, with the new keyboard mapping implementation.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/fasttext2+nobackpixmap.patch
|
||||
Description:
|
||||
(From http://mail.rdesktop.org/archive/2001/msg00218.html):
|
||||
|
||||
1) Added --no-backpixmap option to disable the ugly double drawing in
|
||||
xwin.c (I have a very robust backing storage in my X, so I don't need
|
||||
it ;)
|
||||
|
||||
2) More optimizations to text draw (previous fast-text patch was
|
||||
included in 192-3-6-2). In text drawing with solid background the
|
||||
glyphs are drawn with stippled fill instead of XCopyPlane (runs faster
|
||||
on my S3Trio64 with XFree 3.3.6, please test it on other
|
||||
configurations to validate this). The WinTach not show any improvement
|
||||
with this change, it seems to use all transparent background text
|
||||
draws, but with a old PC Magazine Winbench (3.1) doing the scroll text
|
||||
test the speed gain is significative.
|
||||
|
||||
3) My Previous patch to disable backing storage in fullscreen
|
||||
|
||||
Status:
|
||||
1) is not relevant any more, since rdesktop only uses backing store if
|
||||
the Xserver does not provide backing store.
|
||||
Need to examine if 2) and 3) are still useful. TBD.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/francisco_fix_patblt.html
|
||||
Description:
|
||||
The colors in patterns drawn with "pattern blt" order was inverted (fg
|
||||
& bg). (See the background of the yellow help banners)
|
||||
Status:
|
||||
Applied (in revision 1.29, 2002/07/14)
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/frank_1linerfix.html
|
||||
Description:
|
||||
ui_create_glyph was not called with ipattern.
|
||||
Status:
|
||||
Applied (in revision 1.29, 2002/07/14).
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/frank_fasttext.patch.txt
|
||||
Description:
|
||||
Some kind of performence improvements.
|
||||
Status:
|
||||
From what I can tell, this patch is no longer necessary.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/hostname-patch
|
||||
Description:
|
||||
(From http://mail.rdesktop.org/archive/2001/msg00163.html):
|
||||
|
||||
rdesktop uses gethostname to figure out the hostname, but gethostname
|
||||
under linux returns an error when the hostname is longer than the
|
||||
buffer. This hack gives gethostname a 64 char buffer and then strips
|
||||
the first 16 chars or upto the first '.' and puts the result in
|
||||
hostname[16].
|
||||
|
||||
Status:
|
||||
Applied in version 1.10 of rdesktop.c.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/hove-19-7-2endian.diff
|
||||
Description:
|
||||
Includes a program for testing endianness.
|
||||
Status:
|
||||
rdesktop determines endianness at runtime. This patch is not needed
|
||||
anymore.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/mmihalik_19-7-3-keyfix-4.patch
|
||||
Description:
|
||||
Some kind of new alternative keyboard mapping imlementation.
|
||||
Status:
|
||||
Not needed anymore, with the new keyboard mapping implementation.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/norbert_fullscreen.patch
|
||||
Description:
|
||||
Fullscreen mode.
|
||||
Status:
|
||||
Applied.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/norbert_percent.txt
|
||||
Description:
|
||||
Makes is possible to specify RDP geometry based a percent value of the
|
||||
current desktop size.
|
||||
Status:
|
||||
Not applied. I don't think many people will need this.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/norbert_rdp_tcp_port.diff
|
||||
Description:
|
||||
Command line tcp port argument.
|
||||
Status:
|
||||
Applied.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/patch19-7-2.xyPos.emptyPassword.patch
|
||||
Description:
|
||||
This patch adds:
|
||||
1) Support for empty passwords
|
||||
2) Support for asking for password interactively
|
||||
3) Support for +<xoff>+<yoff> geometry.
|
||||
|
||||
Status:
|
||||
1) and 2) can be solved by the -P parameter; patch not needed.
|
||||
Functionality for 3) is currently missing.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-1.0.0-19-7-1-mmihalik-3.diff
|
||||
Description:
|
||||
Defines DO_GLYPH() etc.
|
||||
Status:
|
||||
As far as I understand, this patch is applied.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-1.0.0-mmihalik-1.diff
|
||||
Description:
|
||||
Misc drawing changes.
|
||||
Status:
|
||||
As far as I understand, this patch is applied.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-1.0.0-pl19-7-2-mmihalik-1.diff
|
||||
Description:
|
||||
Some kind of new alternative keyboard mapping implementation.
|
||||
Status:
|
||||
Not needed anymore, with the new keyboard mapping implementation.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-gmp.patch
|
||||
Description:
|
||||
Use GMP for RSA crypto.
|
||||
Status:
|
||||
Not needed since rdesktop now use OpenSSL for all of the crypto.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-new_kb.patch
|
||||
Description:
|
||||
Modifies one of the old keyboard mapping implementations in some way.
|
||||
Status:
|
||||
Not needed anymore, with the new keyboard mapping implementation.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop-openssl.patch
|
||||
Description:
|
||||
Support for linking rdesktop with OpenSSL.
|
||||
Status:
|
||||
Not needed anymore, rdesktop can optionally use system
|
||||
OpenSSL.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop.vncviewer_patch
|
||||
Description:
|
||||
Hack for making the old (broken) keyboard mapping implementation work
|
||||
with the VNC Xserver.
|
||||
Status:
|
||||
Not needed anymore, with the new keyboard mapping implementation.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdesktop_keymap.patch
|
||||
Description:
|
||||
Some kind of new alternative keyboard mapping implementation.
|
||||
Status:
|
||||
Not needed anymore, with the new keyboard mapping implementation.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/rdp-srvr-19-6-6.diff
|
||||
Description:
|
||||
Basic RDP server.
|
||||
Status:
|
||||
Not applied.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/scroll-to-death-patch.txt
|
||||
Description:
|
||||
Fixes scroll-to-death problem in Excel and other applications.
|
||||
Status:
|
||||
Not needed; fixed in another way in recent versions of rdesktop.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/spark-manpage-patch-19.4
|
||||
Description:
|
||||
Adds a manual page.
|
||||
Status:
|
||||
Not needed; rdesktop contains a manual page now.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/spark-manpage-patch-19.4-1
|
||||
Description:
|
||||
Adds a manual page.
|
||||
Status:
|
||||
Not needed; rdesktop contains a manual page now.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/spark_xinerama-patch2
|
||||
Description:
|
||||
Adds XINERAMA support to rdesktop.
|
||||
Status:
|
||||
Not applied yet. TBD.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/svenni_dis_wmkeybnds.patch
|
||||
Description:
|
||||
Commandline flag to disable keyboard grabbing.
|
||||
Status:
|
||||
Applied.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/svenni_disable_bs_in_x-tiny-patch
|
||||
Description:
|
||||
Disables backing store for TinyX.
|
||||
Status:
|
||||
As far as I understand, this patch is not need any longer.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/vincent_19-7-2.license.patch
|
||||
Description:
|
||||
TBD
|
||||
Status:
|
||||
Not yet examined.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/vincent_19-7-2.secure.patch
|
||||
Description:
|
||||
Fixes a problem during the connection to a French NT4 TSE (a French
|
||||
NT4 TSE doesn't use encryptation).
|
||||
Status:
|
||||
Applied.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/vincent_19-7-3_excel.patch
|
||||
Description:
|
||||
Makes matrixes appear better, such as those found in Excel/toad etc.
|
||||
Status:
|
||||
Applied.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/vincent_8bpp.patch
|
||||
Description:
|
||||
Support a 8bpp display (256 colours).
|
||||
Status:
|
||||
An enhanced version is included in rdesktop; this patch is not needed any more.
|
||||
|
||||
|
||||
URL:
|
||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/vpypatch.txt
|
||||
Description:
|
||||
Various changes for one of the old keyboard stuff.
|
||||
Status:
|
||||
Not needed anymore, with the new keyboard mapping implementation.
|
217
rosapps/applications/net/tsclient/rdesktop/doc/rdesktop.1
Normal file
217
rosapps/applications/net/tsclient/rdesktop/doc/rdesktop.1
Normal file
|
@ -0,0 +1,217 @@
|
|||
.TH rdesktop 1 "November 2005"
|
||||
.SH NAME
|
||||
.I rdesktop
|
||||
\- Remote Desktop Protocol client
|
||||
.SH SYNOPSIS
|
||||
.B rdesktop [options] server[:port]
|
||||
.br
|
||||
.SH DESCRIPTION
|
||||
.I rdesktop
|
||||
is a client for Remote Desktop Protocol (RDP), used in a number of Microsoft
|
||||
products including Windows NT Terminal Server, Windows 2000 Server, Windows XP
|
||||
and Windows 2003 Server.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.BR "-u <username>"
|
||||
Username for authentication on the server.
|
||||
.TP
|
||||
.BR "-d <domain>"
|
||||
Domain for authentication.
|
||||
.TP
|
||||
.BR "-s <shell>"
|
||||
Startup shell for the user - starts a specific application instead of Explorer.
|
||||
.TP
|
||||
.BR "-c <directory>"
|
||||
The initial working directory for the user. Often used in combination with -s
|
||||
to set up a fixed login environment.
|
||||
.TP
|
||||
.BR "-p <password>"
|
||||
The password to authenticate with. Note that this may have no effect if
|
||||
"Always prompt for password" is enabled on the server. WARNING: if you specify
|
||||
a password on the command line it may be visible to other users when they use
|
||||
tools like ps. Use -p - to make rdesktop request a password at startup (from
|
||||
standard input).
|
||||
.TP
|
||||
.BR "-n <hostname>"
|
||||
Client hostname. Normally rdesktop automatically obtains the hostname of the
|
||||
client.
|
||||
.TP
|
||||
.BR "-k <keyboard-map>"
|
||||
Keyboard layout to emulate. This requires a corresponding keymap file to be
|
||||
installed. The standard keymaps provided with rdesktop follow the RFC1766
|
||||
naming scheme: a language code followed by a country code if necessary - e.g.
|
||||
en-us, en-gb, de, fr, sv, etc.
|
||||
|
||||
The default keyboard map depends on the current locale (LC_* and LANG
|
||||
environment variables). If the current locale is unknown, the default
|
||||
keyboard map is en-us (a US English keyboard).
|
||||
|
||||
The keyboard maps are file names, which means that they are case
|
||||
sensitive. The standard keymaps are all in lowercase.
|
||||
|
||||
The keyboard maps are searched relative to the directories
|
||||
$HOME/.rdesktop/keymaps, KEYMAP_PATH (specified at build time), and
|
||||
$CWD/keymaps, in this order. The keyboard-map argument can also be an
|
||||
absolute filename.
|
||||
|
||||
The special value `none' can be used instead of a keyboard map.
|
||||
In this case, rdesktop will guess the scancodes from the X11 event key
|
||||
codes using an internal mapping method. This method only supports the
|
||||
basic alphanumeric keys and may not work properly on all platforms
|
||||
so its use is discouraged.
|
||||
.TP
|
||||
.BR "-g <geometry>"
|
||||
Desktop geometry (WxH). If geometry is the special word "workarea", the geometry
|
||||
will be fetched from the extended window manager hints property _NET_WORKAREA, from
|
||||
the root window. The geometry can also be specified as a percentage of the whole
|
||||
screen, e.g. "-g 80%".
|
||||
.TP
|
||||
.BR "-f"
|
||||
Enable fullscreen mode. This overrides the window manager and causes the
|
||||
rdesktop window to fully cover the current screen. Fullscreen mode can be
|
||||
toggled at any time using Ctrl-Alt-Enter.
|
||||
.TP
|
||||
.BR "-b"
|
||||
Force the server to send screen updates as bitmaps rather than using
|
||||
higher-level drawing operations.
|
||||
.TP
|
||||
.BR "-A"
|
||||
Enable SeamlessRDP. In this mode, rdesktop creates a X11 window for
|
||||
each window on the server side. This mode requires the SeamlessRDP
|
||||
server side component. When using this option, you should specify a
|
||||
startup shell which launches the desired application through
|
||||
SeamlessRDP. Example: rdesktop -A -s 'seamlessrdpshell notepad'.
|
||||
.TP
|
||||
.BR "-B"
|
||||
Use the BackingStore of the Xserver instead of the integrated one in
|
||||
rdesktop.
|
||||
.TP
|
||||
.BR "-e"
|
||||
Disable encryption. This option is only needed (and will only work) if you
|
||||
have a French version of NT TSE.
|
||||
.TP
|
||||
.BR "-E"
|
||||
Disable encryption from client to server. This sends an encrypted login packet,
|
||||
but everything after this is unencrypted (including interactive logins).
|
||||
.TP
|
||||
.BR "-m"
|
||||
Do not send mouse motion events. This saves bandwidth, although some Windows
|
||||
applications may rely on receiving mouse motion.
|
||||
.TP
|
||||
.BR "-C"
|
||||
Use private colourmap. This will improve colour accuracy on an 8-bit display,
|
||||
but rdesktop will appear in false colour when not focused.
|
||||
.TP
|
||||
.BR "-D"
|
||||
Hide window manager decorations, by using MWM hints.
|
||||
.TP
|
||||
.BR "-K"
|
||||
Do not override window manager key bindings. By default rdesktop attempts
|
||||
to grab all keyboard input when it is in focus.
|
||||
.TP
|
||||
.BR "-S <button size>"
|
||||
Enable single application mode. This option can be used when running a
|
||||
single, maximized application (via -s). When the minimize button of
|
||||
the windows application is pressed, the rdesktop window is minimized
|
||||
instead of the remote application. The maximize/restore button is
|
||||
disabled. For this to work, you must specify the correct button
|
||||
size, in pixels. The special word "standard" means 18 pixels.
|
||||
.TP
|
||||
.BR "-T <title>"
|
||||
Sets the window title.
|
||||
.TP
|
||||
.BR "-N"
|
||||
Enable numlock syncronization between the Xserver and the remote RDP
|
||||
session. This is useful with applications that looks at the numlock
|
||||
state, but might cause problems with some Xservers like Xvnc.
|
||||
.TP
|
||||
.BR "-X <windowid>"
|
||||
Embed rdesktop-window in another window. The windowid is expected to
|
||||
be decimal or hexadecimal (prefixed by 0x).
|
||||
.TP
|
||||
.BR "-a <bpp>"
|
||||
Sets the colour depth for the connection (8, 15, 16 or 24).
|
||||
More than 8 bpp are only supported when connecting to Windows XP
|
||||
(up to 16 bpp) or newer. Note that the colour depth may also be
|
||||
limited by the server configuration. The default value is the depth
|
||||
of the root window.
|
||||
.TP
|
||||
.BR "-z"
|
||||
Enable compression of the RDP datastream.
|
||||
.TP
|
||||
.BR "-x <experience>"
|
||||
Changes default bandwidth performance behaviour for RDP5. By default only
|
||||
theming is enabled, and all other options are disabled (corresponding
|
||||
to modem (56 Kbps)). Setting experience to b[roadband] enables menu
|
||||
animations and full window dragging. Setting experience to l[an] will
|
||||
also enable the desktop wallpaper. Setting experience to m[odem]
|
||||
disables all (including themes). Experience can also be a hexidecimal
|
||||
number containing the flags.
|
||||
.TP
|
||||
.BR "-P"
|
||||
Enable caching of bitmaps to disk (persistent bitmap caching). This generally
|
||||
improves performance (especially on low bandwidth connections) and reduces
|
||||
network traffic at the cost of slightly longer startup and some disk space.
|
||||
(10MB for 8-bit colour, 20MB for 15/16-bit colour and 30MB for 24-bit colour
|
||||
sessions)
|
||||
.TP
|
||||
.BR "-r <device>"
|
||||
Enable redirection of the specified device on the client, such
|
||||
that it appears on the server. Note that the allowed
|
||||
redirections may be restricted by the server configuration.
|
||||
|
||||
Following devices are currently supported:
|
||||
.TP
|
||||
.BR "-r comport:<comport>=<device>,..."
|
||||
Redirects serial devices on your client to the
|
||||
server. Note that if you need to change any settings on the serial device(s),
|
||||
do so with an appropriate tool before starting rdesktop. In most
|
||||
OSes you would use stty. Bidirectional/Read support requires Windows XP or newer.
|
||||
In Windows 2000 it will create a port, but it's not seamless, most
|
||||
shell programs will not work with it.
|
||||
.TP
|
||||
.BR "-r disk:<sharename>=<path>,..."
|
||||
Redirects a path to the share \\\\tsclient\\<sharename> on the server
|
||||
(requires Windows XP or newer). The share name is limited to 8
|
||||
characters.
|
||||
.TP
|
||||
.BR "-r lptport:<lptport>=<device>,..."
|
||||
Redirects parallel devices on your client to the server.
|
||||
Bidirectional/Read support requires Windows XP or newer. In Windows 2000
|
||||
it will create a port, but it's not seamless, most shell programs will not work with
|
||||
it.
|
||||
.TP
|
||||
.BR "-r printer:<printername>[=<driver>],..."
|
||||
Redirects a printer queue on the client to the server. The <printername>
|
||||
is the name of the queue in your local system. <driver> defaults to a
|
||||
simple PS-driver unless you specify one. Keep in mind that you need a
|
||||
100% match in the server environment, or the driver will fail. The first
|
||||
printer on the command line will be set as your default printer.
|
||||
.TP
|
||||
.BR "-r sound:[local|off|remote]"
|
||||
Redirects sound generated on the server to the client. "remote" only has
|
||||
any effect when you connect to the console with the -0 option. (Requires
|
||||
Windows XP or newer).
|
||||
.TP
|
||||
.BR "-r lspci"
|
||||
Activates the lspci channel, which allows the server to enumerate the
|
||||
clients PCI devices. See the file lspci-channel.txt in the
|
||||
documentation for more information.
|
||||
.TP
|
||||
.BR "-0"
|
||||
Attach to the console of the server (requires Windows Server 2003
|
||||
or newer).
|
||||
.TP
|
||||
.BR "-4"
|
||||
Use RDP version 4.
|
||||
.TP
|
||||
.BR "-5"
|
||||
Use RDP version 5 (default).
|
||||
.PP
|
||||
.SH LINKS
|
||||
Main website of rdesktop
|
||||
.br
|
||||
\fIhttp://www.rdesktop.org/
|
||||
.LP
|
||||
.PP
|
|
@ -0,0 +1,74 @@
|
|||
|
||||
Syntax for configuring RDP redirection modules
|
||||
==============================================
|
||||
|
||||
General
|
||||
-------
|
||||
|
||||
All redirection is configured using the -r option. The general syntax
|
||||
is:
|
||||
|
||||
-r <module>:<string>
|
||||
|
||||
<module> is the name of the redirection module. The following names
|
||||
are valid: disk, printer, lptport, comport, clipboard, sound.
|
||||
|
||||
<string> is interpreted by each redirection module.
|
||||
|
||||
The redirection modules are described below.
|
||||
|
||||
|
||||
disk mapping
|
||||
-------------
|
||||
Multiple mappings possible: yes
|
||||
Default: no disk redirected
|
||||
Syntax: -r disk:<sharename>=<path>
|
||||
Example: -r disk:home=/home/johndoe
|
||||
|
||||
|
||||
printer mapping
|
||||
---------------
|
||||
Multiple mappings possible: yes
|
||||
Default: no printers redirected
|
||||
Syntax: -r printer:<printername>
|
||||
Example: -r printer:mydeskjet
|
||||
|
||||
|
||||
|
||||
LPT port mapping
|
||||
----------------
|
||||
Multiple mappings possible: yes
|
||||
Default: no LPT ports redirected
|
||||
Syntax: -r lptport:<lptport>=<device>
|
||||
Example: -r lptport:LPT1=/dev/lp0
|
||||
|
||||
|
||||
COM port mapping
|
||||
----------------
|
||||
Multiple mappings possible: yes
|
||||
Default: no COM ports redirected
|
||||
Syntax: -r comport:<comport>=<device>
|
||||
Example: -r comport:COM1=/dev/ttyS0
|
||||
|
||||
|
||||
clipboard mapping
|
||||
-----------------
|
||||
Multiple mappings possible: no
|
||||
Default: yes
|
||||
Syntax: -r clipboard:[yes|no]
|
||||
Example: -r clipboard:no
|
||||
|
||||
|
||||
sound mapping
|
||||
-------------
|
||||
Multiple mappings possible: no
|
||||
Default: off
|
||||
Syntax: -r sound:[local|off|remote]
|
||||
|
||||
"local" means "Bring to this computer"
|
||||
"off" means "Do not play"
|
||||
"remote" means "Leave at remote computer"
|
||||
|
||||
Example: -r sound:remote
|
||||
|
||||
|
|
@ -0,0 +1,284 @@
|
|||
TODO
|
||||
----
|
||||
|
||||
* Command for executing new programs.
|
||||
|
||||
* Commands for changing z order and focus.
|
||||
|
||||
* Command for transferring icon.
|
||||
|
||||
* Think about protocol version management
|
||||
|
||||
* Try to assure that messages aren't repeated or are sent for hidden windows.
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
The protocol is a line based protocol following this simple syntax:
|
||||
|
||||
OPERATION,SERIAL[,ARG1[,ARG2,[...]]]
|
||||
|
||||
Each operation will have an increasing serial number. The initial value is
|
||||
implementation defined.
|
||||
|
||||
The goal is to have a generic protocol that can be used for other display
|
||||
systems (e.g. VNC) as well.
|
||||
|
||||
One line may not exceed 1024 bytes, including newline.
|
||||
|
||||
The protocol has no concept of hidden or unmapped windows. A window does not
|
||||
exist unless it is visible. Note that a minimized window is an exception to
|
||||
this rule.
|
||||
|
||||
The protocol has no way of indicating failure, meaning that all commands are
|
||||
expected to succeed. If a command fails, the receiving end must send a
|
||||
corresponding command back, indicating the actual state.
|
||||
|
||||
Data types
|
||||
==========
|
||||
Window ID are written in hex, like 0x4321.
|
||||
|
||||
Window positions can be negative. This happens when a window is moved
|
||||
outside the desktop.
|
||||
|
||||
All integers fit inside 32 bits.
|
||||
|
||||
Strings are sent in UTF-8 and do not contain any characters less than 0x20 or
|
||||
the character , (comma).
|
||||
|
||||
Server to Client Operations
|
||||
===========================
|
||||
|
||||
CREATE
|
||||
------
|
||||
|
||||
Allocate structures for a new window.
|
||||
|
||||
Syntax:
|
||||
CREATE,<SERIAL>,<ID>,<GRPID>,<PARENT>,<FLAGS>
|
||||
|
||||
Indicates that a window has appeared on the server. If PARENT is non-zero then
|
||||
the new window is a child of that window (it's transient for it). The special
|
||||
value 0xFFFFFFFF for PARENT means that the window is a popup window without a
|
||||
parent. It's commonly used for splash screens, tool tips and context menus.
|
||||
|
||||
The group id identifies a set of windows that belong together. It is currently
|
||||
only used for modal windows and DESTROYGRP.
|
||||
|
||||
Flags:
|
||||
0x0001 : Create a window that's modal with regard to the other windows
|
||||
in the same group.
|
||||
|
||||
Note that very little information is included in this message. Things like
|
||||
title and state will come in subsequent messages. This message should only
|
||||
be used to allocate data structures for the new window.
|
||||
|
||||
DESTROY
|
||||
-------
|
||||
|
||||
Remove a window.
|
||||
|
||||
Syntax:
|
||||
DESTROY,<SERIAL>,<ID>,<FLAGS>
|
||||
|
||||
Remove the window and deallocate all associated structures.
|
||||
|
||||
DESTROYGRP
|
||||
----------
|
||||
|
||||
Destroy an entire group of windows.
|
||||
|
||||
Syntax:
|
||||
DESTROYGRP,<SERIAL>,<GRPID>,<FLAGS>
|
||||
|
||||
Every window that belongs to the group GRPID should be destroyed as if they
|
||||
each got a DESTROY message.
|
||||
|
||||
POSITION
|
||||
--------
|
||||
|
||||
Move and/or resize a window.
|
||||
|
||||
Syntax:
|
||||
POSITION,<SERIAL>,<ID>,<X>,<Y>,<WIDTH>,<HEIGHT>,<FLAGS>
|
||||
|
||||
If the window isn't visible yet (because a
|
||||
STATE hasn't been set or because it's minimized), you must store the position
|
||||
and size. A new POSITION is not guaranteed to be sent when the window changes
|
||||
state.
|
||||
|
||||
TITLE
|
||||
-----
|
||||
|
||||
Sets a window title.
|
||||
|
||||
Syntax:
|
||||
TITLE,<SERIAL>,<ID>,<TITLE>,<FLAGS>
|
||||
|
||||
The text is guaranteed to be stripped of control characters (< 0x20).
|
||||
|
||||
Note that this has the same requirement as POSITION, that the title needs to
|
||||
be stored for newly created windows until a STATE is sent. It is however not
|
||||
guaranteed that a TITLE will be sent before the first STATE.
|
||||
|
||||
|
||||
ZCHANGE
|
||||
-------
|
||||
|
||||
The window moved in z order.
|
||||
|
||||
Syntax:
|
||||
ZCHANGE,<SERIAL>,<ID>,<BEHIND>,<FLAGS>
|
||||
|
||||
The window with the id ID is behind the window with the id BEHIND. If
|
||||
BEHIND is 0, then this window should be brought to the front.
|
||||
|
||||
STATE
|
||||
-----
|
||||
|
||||
Changes the window's state and/or title.
|
||||
|
||||
Syntax:
|
||||
STATE,<SERIAL>,<ID>,<STATE>,<FLAGS>
|
||||
|
||||
State can have one of three values:
|
||||
0 : "Normal" window.
|
||||
1 : Minimized.
|
||||
2 : Maximized.
|
||||
|
||||
The initial STATE for a window will always be preceeded by one CREATE and one
|
||||
POSITION. Optionally, a TITLE may also be sent before the first STATE.
|
||||
|
||||
DEBUG
|
||||
-----
|
||||
|
||||
Debug output from the server component.
|
||||
|
||||
Syntax:
|
||||
DEBUG,<SERIAL>,<STRING>
|
||||
|
||||
Used for debugging.
|
||||
|
||||
SYNCBEGIN
|
||||
---------
|
||||
|
||||
Indicates that a synchronisation has begun.
|
||||
|
||||
Syntax:
|
||||
SYNCBEGIN,<SERIAL>,<FLAGS>
|
||||
|
||||
Sent when the server starts a synchronisation. The client should flush all
|
||||
information at this point.
|
||||
|
||||
SYNCEND
|
||||
-------
|
||||
|
||||
Indicates that a synchronisation is complete.
|
||||
|
||||
Syntac:
|
||||
SYNCEND,<SERIAL>,<FLAGS>
|
||||
|
||||
Sent when the last message that is part of the synchronisation has been sent.
|
||||
This may be followed by duplicate messages and/or messages referring invalid
|
||||
windows that were queued up during the synchronisation.
|
||||
|
||||
HELLO
|
||||
-----
|
||||
|
||||
Initial message sent by server.
|
||||
|
||||
Syntax:
|
||||
HELLO,<SERIAL>,<FLAGS>
|
||||
|
||||
The server starts each connection by sending this message. Normally the client
|
||||
will react by sending a SYNC back to the server.
|
||||
|
||||
Flags:
|
||||
0x0001 : This is a reconnect to an existing session.
|
||||
0x0002 : The desktop is currently hidden (see HIDE).
|
||||
|
||||
ACK
|
||||
---
|
||||
|
||||
Acknowledgement of a request to manipulate a window.
|
||||
|
||||
Syntax:
|
||||
ACK,<SERIAL>,<ACKSERIAL>
|
||||
|
||||
Whenever one of the commands POSITION, ZCHANGE, STATE or FOCUS is executed on
|
||||
the server, the server will send an ACK back to the client. The purpose of this
|
||||
is to inform the client of when the operation was actually performed, allowing
|
||||
high latencies in the channel.
|
||||
|
||||
HIDE
|
||||
----
|
||||
|
||||
The desktop has become hidden on the server.
|
||||
|
||||
Syntax:
|
||||
HIDE,<SERIAL>,<FLAGS>
|
||||
|
||||
This message is sent when the desktop on the server is obscured by something
|
||||
that cannot be tracked. The client should remove all windows and display the
|
||||
entire desktop, allowing the user to handle whatever is blocking the view.
|
||||
|
||||
Note that updates to windows will still be sent as the windows still exist on
|
||||
the server, they are merely not visible.
|
||||
|
||||
UNHIDE
|
||||
------
|
||||
|
||||
The desktop has been restored on the server.
|
||||
|
||||
Syntax:
|
||||
UNHIDE,<SERIAL>,<FLAGS>
|
||||
|
||||
This message is sent some time after a HIDE, indicating that the windowed view
|
||||
has been restored. If the client has dropped all information about windows then
|
||||
it can send a SYNC to re-enumerate them.
|
||||
|
||||
Client to Server Operations
|
||||
===========================
|
||||
|
||||
SYNC
|
||||
----
|
||||
|
||||
Request a synchronisation of window information.
|
||||
|
||||
Syntax:
|
||||
SYNC,<SERIAL>,<FLAGS>
|
||||
|
||||
For each window, the server will send CREATE, POSITION and STATE, in that
|
||||
order, just as if the window was created. Note that a TITLE may also,
|
||||
optionally, be sent before the STATE.
|
||||
|
||||
POSITION
|
||||
--------
|
||||
|
||||
Identical to the command sent from server to client.
|
||||
|
||||
TITLE
|
||||
-----
|
||||
|
||||
Identical to the command sent from server to client.
|
||||
|
||||
ZCHANGE
|
||||
-------
|
||||
|
||||
Identical to the command sent from server to client.
|
||||
|
||||
STATE
|
||||
-----
|
||||
|
||||
Identical to the command sent from server to client.
|
||||
|
||||
FOCUS
|
||||
-----
|
||||
|
||||
Sets which window has input focus.
|
||||
|
||||
Syntax:
|
||||
FOCUS,<SERIAL>,<ID>,<FLAGS>
|
||||
|
||||
Changes which window that will recieve the keyboard events. Note that this
|
||||
might cause the window to change z order.
|
456
rosapps/applications/net/tsclient/rdesktop/ewmhints.c
Normal file
456
rosapps/applications/net/tsclient/rdesktop/ewmhints.c
Normal file
|
@ -0,0 +1,456 @@
|
|||
/* -*- c-basic-offset: 8 -*-
|
||||
rdesktop: A Remote Desktop Protocol client.
|
||||
|
||||
Support functions for Extended Window Manager Hints,
|
||||
http://www.freedesktop.org/wiki/Standards_2fwm_2dspec
|
||||
|
||||
Copyright (C) Peter Astrand <astrand@cendio.se> 2005
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xatom.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include "rdesktop.h"
|
||||
|
||||
#define _NET_WM_STATE_REMOVE 0 /* remove/unset property */
|
||||
#define _NET_WM_STATE_ADD 1 /* add/set property */
|
||||
#define _NET_WM_STATE_TOGGLE 2 /* toggle property */
|
||||
|
||||
/*
|
||||
Get window property value (32 bit format)
|
||||
Returns zero on success, -1 on error
|
||||
*/
|
||||
static int
|
||||
get_property_value(RDPCLIENT * This, Window wnd, char *propname, long max_length,
|
||||
unsigned long *nitems_return, unsigned char **prop_return, int nowarn)
|
||||
{
|
||||
int result;
|
||||
Atom property;
|
||||
Atom actual_type_return;
|
||||
int actual_format_return;
|
||||
unsigned long bytes_after_return;
|
||||
|
||||
property = XInternAtom(This->display, propname, True);
|
||||
if (property == None)
|
||||
{
|
||||
fprintf(stderr, "Atom %s does not exist\n", propname);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
result = XGetWindowProperty(This->display, wnd, property, 0, /* long_offset */
|
||||
max_length, /* long_length */
|
||||
False, /* delete */
|
||||
AnyPropertyType, /* req_type */
|
||||
&actual_type_return,
|
||||
&actual_format_return,
|
||||
nitems_return, &bytes_after_return, prop_return);
|
||||
|
||||
if (result != Success)
|
||||
{
|
||||
fprintf(stderr, "XGetWindowProperty failed\n");
|
||||
return (-1);
|
||||
}
|
||||
|
||||
if (actual_type_return == None || actual_format_return == 0)
|
||||
{
|
||||
if (!nowarn)
|
||||
fprintf(stderr, "Window is missing property %s\n", propname);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
if (bytes_after_return)
|
||||
{
|
||||
fprintf(stderr, "%s is too big for me\n", propname);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
if (actual_format_return != 32)
|
||||
{
|
||||
fprintf(stderr, "%s has bad format\n", propname);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
Get current desktop number
|
||||
Returns -1 on error
|
||||
*/
|
||||
static int
|
||||
get_current_desktop(RDPCLIENT * This)
|
||||
{
|
||||
unsigned long nitems_return;
|
||||
unsigned char *prop_return;
|
||||
int current_desktop;
|
||||
|
||||
if (get_property_value
|
||||
(This, DefaultRootWindow(This->display), "_NET_CURRENT_DESKTOP", 1, &nitems_return,
|
||||
&prop_return, 0) < 0)
|
||||
return (-1);
|
||||
|
||||
if (nitems_return != 1)
|
||||
{
|
||||
fprintf(stderr, "_NET_CURRENT_DESKTOP has bad length\n");
|
||||
return (-1);
|
||||
}
|
||||
|
||||
current_desktop = *prop_return;
|
||||
XFree(prop_return);
|
||||
return current_desktop;
|
||||
}
|
||||
|
||||
/*
|
||||
Get workarea geometry
|
||||
Returns zero on success, -1 on error
|
||||
*/
|
||||
|
||||
int
|
||||
get_current_workarea(RDPCLIENT * This, uint32 * x, uint32 * y, uint32 * width, uint32 * height)
|
||||
{
|
||||
int current_desktop;
|
||||
unsigned long nitems_return;
|
||||
unsigned char *prop_return;
|
||||
uint32 *return_words;
|
||||
const uint32 net_workarea_x_offset = 0;
|
||||
const uint32 net_workarea_y_offset = 1;
|
||||
const uint32 net_workarea_width_offset = 2;
|
||||
const uint32 net_workarea_height_offset = 3;
|
||||
const uint32 max_prop_length = 32 * 4; /* Max 32 desktops */
|
||||
|
||||
if (get_property_value
|
||||
(This, DefaultRootWindow(This->display), "_NET_WORKAREA", max_prop_length, &nitems_return,
|
||||
&prop_return, 0) < 0)
|
||||
return (-1);
|
||||
|
||||
if (nitems_return % 4)
|
||||
{
|
||||
fprintf(stderr, "_NET_WORKAREA has odd length\n");
|
||||
return (-1);
|
||||
}
|
||||
|
||||
current_desktop = get_current_desktop(This);
|
||||
|
||||
if (current_desktop < 0)
|
||||
return -1;
|
||||
|
||||
return_words = (uint32 *) prop_return;
|
||||
|
||||
*x = return_words[current_desktop * 4 + net_workarea_x_offset];
|
||||
*y = return_words[current_desktop * 4 + net_workarea_y_offset];
|
||||
*width = return_words[current_desktop * 4 + net_workarea_width_offset];
|
||||
*height = return_words[current_desktop * 4 + net_workarea_height_offset];
|
||||
|
||||
XFree(prop_return);
|
||||
|
||||
return (0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
ewmh_init(RDPCLIENT * This)
|
||||
{
|
||||
/* FIXME: Use XInternAtoms */
|
||||
This->ewmhints.state_maximized_vert_atom =
|
||||
XInternAtom(This->display, "_NET_WM_STATE_MAXIMIZED_VERT", False);
|
||||
This->ewmhints.state_maximized_horz_atom =
|
||||
XInternAtom(This->display, "_NET_WM_STATE_MAXIMIZED_HORZ", False);
|
||||
This->ewmhints.state_hidden_atom = XInternAtom(This->display, "_NET_WM_STATE_HIDDEN", False);
|
||||
This->ewmhints.state_skip_taskbar_atom =
|
||||
XInternAtom(This->display, "_NET_WM_STATE_SKIP_TASKBAR", False);
|
||||
This->ewmhints.state_skip_pager_atom = XInternAtom(This->display, "_NET_WM_STATE_SKIP_PAGER", False);
|
||||
This->ewmhints.state_modal_atom = XInternAtom(This->display, "_NET_WM_STATE_MODAL", False);
|
||||
This->net_wm_state_atom = XInternAtom(This->display, "_NET_WM_STATE", False);
|
||||
This->net_wm_desktop_atom = XInternAtom(This->display, "_NET_WM_DESKTOP", False);
|
||||
This->ewmhints.name_atom = XInternAtom(This->display, "_NET_WM_NAME", False);
|
||||
This->ewmhints.utf8_string_atom = XInternAtom(This->display, "UTF8_STRING", False);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Get the window state: normal/minimized/maximized.
|
||||
*/
|
||||
#ifndef MAKE_PROTO
|
||||
int
|
||||
ewmh_get_window_state(RDPCLIENT * This, Window w)
|
||||
{
|
||||
unsigned long nitems_return;
|
||||
unsigned char *prop_return;
|
||||
uint32 *return_words;
|
||||
unsigned long item;
|
||||
BOOL maximized_vert, maximized_horz, hidden;
|
||||
|
||||
maximized_vert = maximized_horz = hidden = False;
|
||||
|
||||
if (get_property_value(This, w, "_NET_WM_STATE", 64, &nitems_return, &prop_return, 0) < 0)
|
||||
return SEAMLESSRDP_NORMAL;
|
||||
|
||||
return_words = (uint32 *) prop_return;
|
||||
|
||||
for (item = 0; item < nitems_return; item++)
|
||||
{
|
||||
if (return_words[item] == This->ewmhints.state_maximized_vert_atom)
|
||||
maximized_vert = True;
|
||||
if (return_words[item] == This->ewmhints.state_maximized_horz_atom)
|
||||
maximized_horz = True;
|
||||
if (return_words[item] == This->ewmhints.state_hidden_atom)
|
||||
hidden = True;
|
||||
}
|
||||
|
||||
XFree(prop_return);
|
||||
|
||||
if (maximized_vert && maximized_horz)
|
||||
return SEAMLESSRDP_MAXIMIZED;
|
||||
else if (hidden)
|
||||
return SEAMLESSRDP_MINIMIZED;
|
||||
else
|
||||
return SEAMLESSRDP_NORMAL;
|
||||
}
|
||||
|
||||
static int
|
||||
ewmh_modify_state(RDPCLIENT * This, Window wnd, int add, Atom atom1, Atom atom2)
|
||||
{
|
||||
Status status;
|
||||
XEvent xevent;
|
||||
|
||||
int result;
|
||||
unsigned long nitems;
|
||||
unsigned char *props;
|
||||
uint32 state = WithdrawnState;
|
||||
|
||||
/* The spec states that the window manager must respect any
|
||||
_NET_WM_STATE attributes on a withdrawn window. In order words, we
|
||||
modify the attributes directly for withdrawn windows and ask the WM
|
||||
to do it for active windows. */
|
||||
result = get_property_value(This, wnd, "WM_STATE", 64, &nitems, &props, 1);
|
||||
if ((result >= 0) && nitems)
|
||||
{
|
||||
state = *(uint32 *) props;
|
||||
XFree(props);
|
||||
}
|
||||
|
||||
if (state == WithdrawnState)
|
||||
{
|
||||
if (add)
|
||||
{
|
||||
Atom atoms[2];
|
||||
|
||||
atoms[0] = atom1;
|
||||
nitems = 1;
|
||||
if (atom2)
|
||||
{
|
||||
atoms[1] = atom2;
|
||||
nitems = 2;
|
||||
}
|
||||
|
||||
XChangeProperty(This->display, wnd, This->net_wm_state_atom, XA_ATOM,
|
||||
32, PropModeAppend, (unsigned char *) atoms, nitems);
|
||||
}
|
||||
else
|
||||
{
|
||||
Atom *atoms;
|
||||
int i;
|
||||
|
||||
if (get_property_value(This, wnd, "_NET_WM_STATE", 64, &nitems, &props, 1) < 0)
|
||||
return 0;
|
||||
|
||||
atoms = (Atom *) props;
|
||||
|
||||
for (i = 0; i < nitems; i++)
|
||||
{
|
||||
if ((atoms[i] == atom1) || (atom2 && (atoms[i] == atom2)))
|
||||
{
|
||||
if (i != (nitems - 1))
|
||||
memmove(&atoms[i], &atoms[i + 1],
|
||||
sizeof(Atom) * (nitems - i - 1));
|
||||
nitems--;
|
||||
i--;
|
||||
}
|
||||
}
|
||||
|
||||
XChangeProperty(This->display, wnd, This->net_wm_state_atom, XA_ATOM,
|
||||
32, PropModeReplace, (unsigned char *) atoms, nitems);
|
||||
|
||||
XFree(props);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
xevent.type = ClientMessage;
|
||||
xevent.xclient.window = wnd;
|
||||
xevent.xclient.message_type = This->net_wm_state_atom;
|
||||
xevent.xclient.format = 32;
|
||||
if (add)
|
||||
xevent.xclient.data.l[0] = _NET_WM_STATE_ADD;
|
||||
else
|
||||
xevent.xclient.data.l[0] = _NET_WM_STATE_REMOVE;
|
||||
xevent.xclient.data.l[1] = atom1;
|
||||
xevent.xclient.data.l[2] = atom2;
|
||||
xevent.xclient.data.l[3] = 0;
|
||||
xevent.xclient.data.l[4] = 0;
|
||||
status = XSendEvent(This->display, DefaultRootWindow(This->display), False,
|
||||
SubstructureNotifyMask | SubstructureRedirectMask, &xevent);
|
||||
if (!status)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
Set the window state: normal/minimized/maximized.
|
||||
Returns -1 on failure.
|
||||
*/
|
||||
int
|
||||
ewmh_change_state(RDPCLIENT * This, Window wnd, int state)
|
||||
{
|
||||
/*
|
||||
* Deal with the max atoms
|
||||
*/
|
||||
if (state == SEAMLESSRDP_MAXIMIZED)
|
||||
{
|
||||
if (ewmh_modify_state
|
||||
(This, wnd, 1, This->ewmhints.state_maximized_vert_atom,
|
||||
This->ewmhints.state_maximized_horz_atom) < 0)
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ewmh_modify_state
|
||||
(This, wnd, 0, This->ewmhints.state_maximized_vert_atom,
|
||||
This->ewmhints.state_maximized_horz_atom) < 0)
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
ewmh_get_window_desktop(RDPCLIENT * This, Window wnd)
|
||||
{
|
||||
unsigned long nitems_return;
|
||||
unsigned char *prop_return;
|
||||
int desktop;
|
||||
|
||||
if (get_property_value(This, wnd, "_NET_WM_DESKTOP", 1, &nitems_return, &prop_return, 0) < 0)
|
||||
return (-1);
|
||||
|
||||
if (nitems_return != 1)
|
||||
{
|
||||
fprintf(stderr, "_NET_WM_DESKTOP has bad length\n");
|
||||
return (-1);
|
||||
}
|
||||
|
||||
desktop = *prop_return;
|
||||
XFree(prop_return);
|
||||
return desktop;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
ewmh_move_to_desktop(RDPCLIENT * This, Window wnd, unsigned int desktop)
|
||||
{
|
||||
Status status;
|
||||
XEvent xevent;
|
||||
|
||||
xevent.type = ClientMessage;
|
||||
xevent.xclient.window = wnd;
|
||||
xevent.xclient.message_type = This->net_wm_desktop_atom;
|
||||
xevent.xclient.format = 32;
|
||||
xevent.xclient.data.l[0] = desktop;
|
||||
xevent.xclient.data.l[1] = 0;
|
||||
xevent.xclient.data.l[2] = 0;
|
||||
xevent.xclient.data.l[3] = 0;
|
||||
xevent.xclient.data.l[4] = 0;
|
||||
status = XSendEvent(This->display, DefaultRootWindow(This->display), False,
|
||||
SubstructureNotifyMask | SubstructureRedirectMask, &xevent);
|
||||
if (!status)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
ewmh_set_wm_name(RDPCLIENT * This, Window wnd, const char *title)
|
||||
{
|
||||
int len;
|
||||
|
||||
len = strlen(title);
|
||||
XChangeProperty(This->display, wnd, This->ewmhints.name_atom, This->ewmhints.utf8_string_atom,
|
||||
8, PropModeReplace, (unsigned char *) title, len);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
ewmh_set_window_popup(RDPCLIENT * This, Window wnd)
|
||||
{
|
||||
if (ewmh_modify_state
|
||||
(This, wnd, 1, This->ewmhints.state_skip_taskbar_atom, This->ewmhints.state_skip_pager_atom) < 0)
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
ewmh_set_window_modal(RDPCLIENT * This, Window wnd)
|
||||
{
|
||||
if (ewmh_modify_state(This, wnd, 1, This->ewmhints.state_modal_atom, 0) < 0)
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* MAKE_PROTO */
|
||||
|
||||
|
||||
#if 0
|
||||
|
||||
/* FIXME: _NET_MOVERESIZE_WINDOW is for pagers, not for
|
||||
applications. We should implement _NET_WM_MOVERESIZE instead */
|
||||
|
||||
int
|
||||
ewmh_net_moveresize_window(RDPCLIENT * This, Window wnd, int x, int y, int width, int height)
|
||||
{
|
||||
Status status;
|
||||
XEvent xevent;
|
||||
Atom moveresize;
|
||||
|
||||
moveresize = XInternAtom(This->display, "_NET_MOVERESIZE_WINDOW", False);
|
||||
if (!moveresize)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
xevent.type = ClientMessage;
|
||||
xevent.xclient.window = wnd;
|
||||
xevent.xclient.message_type = moveresize;
|
||||
xevent.xclient.format = 32;
|
||||
xevent.xclient.data.l[0] = StaticGravity | (1 << 8) | (1 << 9) | (1 << 10) | (1 << 11);
|
||||
xevent.xclient.data.l[1] = x;
|
||||
xevent.xclient.data.l[2] = y;
|
||||
xevent.xclient.data.l[3] = width;
|
||||
xevent.xclient.data.l[4] = height;
|
||||
|
||||
status = XSendEvent(This->display, DefaultRootWindow(This->display), False,
|
||||
SubstructureNotifyMask | SubstructureRedirectMask, &xevent);
|
||||
if (!status)
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
3
rosapps/applications/net/tsclient/rdesktop/indent-all.sh
Normal file
3
rosapps/applications/net/tsclient/rdesktop/indent-all.sh
Normal file
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
indent -bli0 -i8 -cli8 -npcs -l100 *.h *.c vnc/*.h vnc/*.c
|
||||
|
251
rosapps/applications/net/tsclient/rdesktop/install-sh
Normal file
251
rosapps/applications/net/tsclient/rdesktop/install-sh
Normal file
|
@ -0,0 +1,251 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# install - install a program, script, or datafile
|
||||
# This comes from X11R5 (mit/util/scripts/install.sh).
|
||||
#
|
||||
# Copyright 1991 by the Massachusetts Institute of Technology
|
||||
#
|
||||
# Permission to use, copy, modify, distribute, and sell this software and its
|
||||
# documentation for any purpose is hereby granted without fee, provided that
|
||||
# the above copyright notice appear in all copies and that both that
|
||||
# copyright notice and this permission notice appear in supporting
|
||||
# documentation, and that the name of M.I.T. not be used in advertising or
|
||||
# publicity pertaining to distribution of the software without specific,
|
||||
# written prior permission. M.I.T. makes no representations about the
|
||||
# suitability of this software for any purpose. It is provided "as is"
|
||||
# without express or implied warranty.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch. It can only install one file at a time, a restriction
|
||||
# shared with many OS's install programs.
|
||||
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit="${DOITPROG-}"
|
||||
|
||||
|
||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||
|
||||
mvprog="${MVPROG-mv}"
|
||||
cpprog="${CPPROG-cp}"
|
||||
chmodprog="${CHMODPROG-chmod}"
|
||||
chownprog="${CHOWNPROG-chown}"
|
||||
chgrpprog="${CHGRPPROG-chgrp}"
|
||||
stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
mkdirprog="${MKDIRPROG-mkdir}"
|
||||
|
||||
transformbasename=""
|
||||
transform_arg=""
|
||||
instcmd="$mvprog"
|
||||
chmodcmd="$chmodprog 0755"
|
||||
chowncmd=""
|
||||
chgrpcmd=""
|
||||
stripcmd=""
|
||||
rmcmd="$rmprog -f"
|
||||
mvcmd="$mvprog"
|
||||
src=""
|
||||
dst=""
|
||||
dir_arg=""
|
||||
|
||||
while [ x"$1" != x ]; do
|
||||
case $1 in
|
||||
-c) instcmd="$cpprog"
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-d) dir_arg=true
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-m) chmodcmd="$chmodprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-s) stripcmd="$stripprog"
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
|
||||
shift
|
||||
continue;;
|
||||
|
||||
*) if [ x"$src" = x ]
|
||||
then
|
||||
src=$1
|
||||
else
|
||||
# this colon is to work around a 386BSD /bin/sh bug
|
||||
:
|
||||
dst=$1
|
||||
fi
|
||||
shift
|
||||
continue;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ x"$src" = x ]
|
||||
then
|
||||
echo "install: no input file specified"
|
||||
exit 1
|
||||
else
|
||||
:
|
||||
fi
|
||||
|
||||
if [ x"$dir_arg" != x ]; then
|
||||
dst=$src
|
||||
src=""
|
||||
|
||||
if [ -d $dst ]; then
|
||||
instcmd=:
|
||||
chmodcmd=""
|
||||
else
|
||||
instcmd=$mkdirprog
|
||||
fi
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
|
||||
if [ -f "$src" ] || [ -d "$src" ]
|
||||
then
|
||||
:
|
||||
else
|
||||
echo "install: $src does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ x"$dst" = x ]
|
||||
then
|
||||
echo "install: no destination specified"
|
||||
exit 1
|
||||
else
|
||||
:
|
||||
fi
|
||||
|
||||
# If destination is a directory, append the input filename; if your system
|
||||
# does not like double slashes in filenames, you may need to add some logic
|
||||
|
||||
if [ -d $dst ]
|
||||
then
|
||||
dst="$dst"/`basename $src`
|
||||
else
|
||||
:
|
||||
fi
|
||||
fi
|
||||
|
||||
## this sed command emulates the dirname command
|
||||
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
||||
|
||||
# Make sure that the destination directory exists.
|
||||
# this part is taken from Noah Friedman's mkinstalldirs script
|
||||
|
||||
# Skip lots of stat calls in the usual case.
|
||||
if [ ! -d "$dstdir" ]; then
|
||||
defaultIFS='
|
||||
'
|
||||
IFS="${IFS-${defaultIFS}}"
|
||||
|
||||
oIFS="${IFS}"
|
||||
# Some sh's can't handle IFS=/ for some reason.
|
||||
IFS='%'
|
||||
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
|
||||
IFS="${oIFS}"
|
||||
|
||||
pathcomp=''
|
||||
|
||||
while [ $# -ne 0 ] ; do
|
||||
pathcomp="${pathcomp}${1}"
|
||||
shift
|
||||
|
||||
if [ ! -d "${pathcomp}" ] ;
|
||||
then
|
||||
$mkdirprog "${pathcomp}"
|
||||
else
|
||||
:
|
||||
fi
|
||||
|
||||
pathcomp="${pathcomp}/"
|
||||
done
|
||||
fi
|
||||
|
||||
if [ x"$dir_arg" != x ]
|
||||
then
|
||||
$doit $instcmd $dst &&
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
|
||||
else
|
||||
|
||||
# If we're going to rename the final executable, determine the name now.
|
||||
|
||||
if [ x"$transformarg" = x ]
|
||||
then
|
||||
dstfile=`basename $dst`
|
||||
else
|
||||
dstfile=`basename $dst $transformbasename |
|
||||
sed $transformarg`$transformbasename
|
||||
fi
|
||||
|
||||
# don't allow the sed command to completely eliminate the filename
|
||||
|
||||
if [ x"$dstfile" = x ]
|
||||
then
|
||||
dstfile=`basename $dst`
|
||||
else
|
||||
:
|
||||
fi
|
||||
|
||||
# Make a temp file name in the proper directory.
|
||||
|
||||
dsttmp=$dstdir/#inst.$$#
|
||||
|
||||
# Move or copy the file name to the temp name
|
||||
|
||||
$doit $instcmd $src $dsttmp &&
|
||||
|
||||
trap "rm -f ${dsttmp}" 0 &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits
|
||||
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
||||
|
||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
|
||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
|
||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
|
||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
|
||||
$doit $rmcmd -f $dstdir/$dstfile &&
|
||||
$doit $mvcmd $dsttmp $dstdir/$dstfile
|
||||
|
||||
fi &&
|
||||
|
||||
|
||||
exit 0
|
240
rosapps/applications/net/tsclient/rdesktop/iso.c
Normal file
240
rosapps/applications/net/tsclient/rdesktop/iso.c
Normal file
|
@ -0,0 +1,240 @@
|
|||
/* -*- c-basic-offset: 8 -*-
|
||||
rdesktop: A Remote Desktop Protocol client.
|
||||
Protocol services - ISO layer
|
||||
Copyright (C) Matthew Chapman 1999-2005
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include "rdesktop.h"
|
||||
|
||||
/* Send a self-contained ISO PDU */
|
||||
static BOOL
|
||||
iso_send_msg(RDPCLIENT * This, uint8 code)
|
||||
{
|
||||
STREAM s;
|
||||
|
||||
s = tcp_init(This, 11);
|
||||
|
||||
if(s == NULL)
|
||||
return False;
|
||||
|
||||
out_uint8(s, 3); /* version */
|
||||
out_uint8(s, 0); /* reserved */
|
||||
out_uint16_be(s, 11); /* length */
|
||||
|
||||
out_uint8(s, 6); /* hdrlen */
|
||||
out_uint8(s, code);
|
||||
out_uint16(s, 0); /* dst_ref */
|
||||
out_uint16(s, 0); /* src_ref */
|
||||
out_uint8(s, 0); /* class */
|
||||
|
||||
s_mark_end(s);
|
||||
return tcp_send(This, s);
|
||||
}
|
||||
|
||||
static BOOL
|
||||
iso_send_connection_request(RDPCLIENT * This, char *cookie)
|
||||
{
|
||||
STREAM s;
|
||||
int cookielen = (int)strlen(cookie);
|
||||
int length = 11 + cookielen;
|
||||
|
||||
s = tcp_init(This, length);
|
||||
|
||||
if(s == NULL)
|
||||
return False;
|
||||
|
||||
out_uint8(s, 3); /* version */
|
||||
out_uint8(s, 0); /* reserved */
|
||||
out_uint16_be(s, length); /* length */
|
||||
|
||||
out_uint8(s, length - 5); /* hdrlen */
|
||||
out_uint8(s, ISO_PDU_CR);
|
||||
out_uint16(s, 0); /* dst_ref */
|
||||
out_uint16(s, 0); /* src_ref */
|
||||
out_uint8(s, 0); /* class */
|
||||
|
||||
out_uint8p(s, cookie, cookielen);
|
||||
|
||||
s_mark_end(s);
|
||||
return tcp_send(This, s);
|
||||
}
|
||||
|
||||
/* Receive a message on the ISO layer, return code */
|
||||
static STREAM
|
||||
iso_recv_msg(RDPCLIENT * This, uint8 * code, uint8 * rdpver)
|
||||
{
|
||||
STREAM s;
|
||||
uint16 length;
|
||||
uint8 version;
|
||||
|
||||
s = tcp_recv(This, NULL, 4);
|
||||
if (s == NULL)
|
||||
return NULL;
|
||||
in_uint8(s, version);
|
||||
if (rdpver != NULL)
|
||||
*rdpver = version;
|
||||
if (version == 3)
|
||||
{
|
||||
in_uint8s(s, 1); /* pad */
|
||||
in_uint16_be(s, length);
|
||||
}
|
||||
else
|
||||
{
|
||||
in_uint8(s, length);
|
||||
if (length & 0x80)
|
||||
{
|
||||
length &= ~0x80;
|
||||
next_be(s, length);
|
||||
}
|
||||
}
|
||||
s = tcp_recv(This, s, length - 4);
|
||||
if (s == NULL)
|
||||
return NULL;
|
||||
if (version != 3)
|
||||
return s;
|
||||
in_uint8s(s, 1); /* hdrlen */
|
||||
in_uint8(s, *code);
|
||||
if (*code == ISO_PDU_DT)
|
||||
{
|
||||
in_uint8s(s, 1); /* eot */
|
||||
return s;
|
||||
}
|
||||
in_uint8s(s, 5); /* dst_ref, src_ref, class */
|
||||
return s;
|
||||
}
|
||||
|
||||
/* Initialise ISO transport data packet */
|
||||
STREAM
|
||||
iso_init(RDPCLIENT * This, int length)
|
||||
{
|
||||
STREAM s;
|
||||
|
||||
s = tcp_init(This, length + 7);
|
||||
|
||||
if(s == NULL)
|
||||
return NULL;
|
||||
|
||||
s_push_layer(s, iso_hdr, 7);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
/* Send an ISO data PDU */
|
||||
BOOL
|
||||
iso_send(RDPCLIENT * This, STREAM s)
|
||||
{
|
||||
uint16 length;
|
||||
|
||||
s_pop_layer(s, iso_hdr);
|
||||
length = (uint16)(s->end - s->p);
|
||||
|
||||
out_uint8(s, 3); /* version */
|
||||
out_uint8(s, 0); /* reserved */
|
||||
out_uint16_be(s, length);
|
||||
|
||||
out_uint8(s, 2); /* hdrlen */
|
||||
out_uint8(s, ISO_PDU_DT); /* code */
|
||||
out_uint8(s, 0x80); /* eot */
|
||||
|
||||
return tcp_send(This, s);
|
||||
}
|
||||
|
||||
/* Receive ISO transport data packet */
|
||||
STREAM
|
||||
iso_recv(RDPCLIENT * This, uint8 * rdpver)
|
||||
{
|
||||
STREAM s;
|
||||
uint8 code = 0;
|
||||
|
||||
s = iso_recv_msg(This, &code, rdpver);
|
||||
if (s == NULL)
|
||||
return NULL;
|
||||
if (rdpver != NULL)
|
||||
if (*rdpver != 3)
|
||||
return s;
|
||||
if (code != ISO_PDU_DT)
|
||||
{
|
||||
error("expected DT, got 0x%x\n", code);
|
||||
return NULL;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
/* Establish a connection up to the ISO layer */
|
||||
BOOL
|
||||
iso_connect(RDPCLIENT * This, char *server, char *cookie)
|
||||
{
|
||||
uint8 code = 0;
|
||||
|
||||
if (!tcp_connect(This, server))
|
||||
return False;
|
||||
|
||||
if (!iso_send_connection_request(This, cookie))
|
||||
return False;
|
||||
|
||||
if (iso_recv_msg(This, &code, NULL) == NULL)
|
||||
return False;
|
||||
|
||||
if (code != ISO_PDU_CC)
|
||||
{
|
||||
error("expected CC, got 0x%x\n", code);
|
||||
tcp_disconnect(This);
|
||||
return False;
|
||||
}
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
/* Establish a reconnection up to the ISO layer */
|
||||
BOOL
|
||||
iso_reconnect(RDPCLIENT * This, char *server, char *cookie)
|
||||
{
|
||||
uint8 code = 0;
|
||||
|
||||
if (!tcp_connect(This, server))
|
||||
return False;
|
||||
|
||||
if (!iso_send_connection_request(This, cookie)) // BUGBUG should we really pass the cookie here?
|
||||
return False;
|
||||
|
||||
if (iso_recv_msg(This, &code, NULL) == NULL)
|
||||
return False;
|
||||
|
||||
if (code != ISO_PDU_CC)
|
||||
{
|
||||
error("expected CC, got 0x%x\n", code);
|
||||
tcp_disconnect(This);
|
||||
return False;
|
||||
}
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
/* Disconnect from the ISO layer */
|
||||
BOOL
|
||||
iso_disconnect(RDPCLIENT * This)
|
||||
{
|
||||
iso_send_msg(This, ISO_PDU_DR);
|
||||
return tcp_disconnect(This);
|
||||
}
|
||||
|
||||
/* reset the state to support reconnecting */
|
||||
void
|
||||
iso_reset_state(RDPCLIENT * This)
|
||||
{
|
||||
tcp_reset_state(This);
|
||||
}
|
98
rosapps/applications/net/tsclient/rdesktop/keymaps/ar
Normal file
98
rosapps/applications/net/tsclient/rdesktop/keymaps/ar
Normal file
|
@ -0,0 +1,98 @@
|
|||
# generated from XKB map ar
|
||||
include common
|
||||
map 0x401
|
||||
exclam 0x02 shift
|
||||
at 0x03 shift
|
||||
numbersign 0x04 shift
|
||||
dollar 0x05 shift
|
||||
percent 0x06 shift
|
||||
asciicircum 0x07 shift
|
||||
ampersand 0x08 shift
|
||||
asterisk 0x09 shift
|
||||
parenleft 0x0a shift
|
||||
parenright 0x0b shift
|
||||
minus 0x0c
|
||||
underscore 0x0c shift
|
||||
equal 0x0d
|
||||
plus 0x0d shift
|
||||
Arabic_dad 0x10 altgr
|
||||
Arabic_fatha 0x10 shift altgr
|
||||
Arabic_sad 0x11 altgr
|
||||
Arabic_fathatan 0x11 shift altgr
|
||||
Arabic_theh 0x12 altgr
|
||||
Arabic_damma 0x12 shift altgr
|
||||
Arabic_qaf 0x13 altgr
|
||||
Arabic_dammatan 0x13 shift altgr
|
||||
Arabic_feh 0x14 altgr
|
||||
UFEF9 0x14 shift altgr
|
||||
Arabic_ghain 0x15 altgr
|
||||
Arabic_hamzaunderalef 0x15 shift altgr
|
||||
Arabic_ain 0x16 altgr
|
||||
grave 0x16 shift altgr
|
||||
Arabic_ha 0x17 altgr
|
||||
division 0x17 shift altgr
|
||||
Arabic_khah 0x18 altgr
|
||||
multiply 0x18 shift altgr
|
||||
Arabic_hah 0x19 altgr
|
||||
Arabic_semicolon 0x19 shift altgr
|
||||
bracketleft 0x1a
|
||||
braceleft 0x1a shift
|
||||
Arabic_jeem 0x1a altgr
|
||||
bracketright 0x1b
|
||||
braceright 0x1b shift
|
||||
Arabic_dal 0x1b altgr
|
||||
Arabic_sheen 0x1e altgr
|
||||
backslash 0x1e shift altgr
|
||||
Arabic_seen 0x1f altgr
|
||||
Arabic_yeh 0x20 altgr
|
||||
bracketleft 0x20 shift altgr
|
||||
Arabic_beh 0x21 altgr
|
||||
bracketright 0x21 shift altgr
|
||||
Arabic_lam 0x22 altgr
|
||||
UFEF7 0x22 shift altgr
|
||||
Arabic_alef 0x23 altgr
|
||||
Arabic_hamzaonalef 0x23 shift altgr
|
||||
Arabic_teh 0x24 altgr
|
||||
Arabic_tatweel 0x24 shift altgr
|
||||
Arabic_noon 0x25 altgr
|
||||
Arabic_comma 0x25 shift altgr
|
||||
Arabic_meem 0x26 altgr
|
||||
slash 0x26 shift altgr
|
||||
semicolon 0x27
|
||||
colon 0x27 shift
|
||||
Arabic_kaf 0x27 altgr
|
||||
apostrophe 0x28
|
||||
quotedbl 0x28 shift
|
||||
Arabic_tah 0x28 altgr
|
||||
grave 0x29
|
||||
asciitilde 0x29 shift
|
||||
Arabic_thal 0x29 altgr
|
||||
Arabic_shadda 0x29 shift altgr
|
||||
backslash 0x2b
|
||||
bar 0x2b shift
|
||||
less 0x2b altgr
|
||||
greater 0x2b shift altgr
|
||||
Arabic_hamzaonyeh 0x2c altgr
|
||||
asciitilde 0x2c shift altgr
|
||||
Arabic_hamza 0x2d altgr
|
||||
Arabic_sukun 0x2d shift altgr
|
||||
Arabic_hamzaonwaw 0x2e altgr
|
||||
Arabic_kasra 0x2e shift altgr
|
||||
Arabic_ra 0x2f altgr
|
||||
Arabic_kasratan 0x2f shift altgr
|
||||
UFEFB 0x30 altgr
|
||||
UFEF5 0x30 shift altgr
|
||||
Arabic_alefmaksura 0x31 altgr
|
||||
Arabic_maddaonalef 0x31 shift altgr
|
||||
Arabic_tehmarbuta 0x32 altgr
|
||||
apostrophe 0x32 shift altgr
|
||||
comma 0x33
|
||||
less 0x33 shift
|
||||
Arabic_waw 0x33 altgr
|
||||
period 0x34
|
||||
greater 0x34 shift
|
||||
Arabic_zain 0x34 altgr
|
||||
slash 0x35
|
||||
question 0x35 shift
|
||||
Arabic_zah 0x35 altgr
|
||||
Arabic_question_mark 0x35 shift altgr
|
229
rosapps/applications/net/tsclient/rdesktop/keymaps/common
Normal file
229
rosapps/applications/net/tsclient/rdesktop/keymaps/common
Normal file
|
@ -0,0 +1,229 @@
|
|||
include modifiers
|
||||
|
||||
#
|
||||
# Top row
|
||||
#
|
||||
1 0x2
|
||||
2 0x3
|
||||
3 0x4
|
||||
4 0x5
|
||||
5 0x6
|
||||
6 0x7
|
||||
7 0x8
|
||||
8 0x9
|
||||
9 0xa
|
||||
0 0xb
|
||||
BackSpace 0xe
|
||||
|
||||
#
|
||||
# QWERTY first row
|
||||
#
|
||||
Tab 0xf localstate
|
||||
ISO_Left_Tab 0xf shift
|
||||
q 0x10 addupper
|
||||
w 0x11 addupper
|
||||
e 0x12 addupper
|
||||
sequence egrave dead_grave e
|
||||
sequence Egrave dead_grave E
|
||||
sequence eacute dead_acute e
|
||||
sequence Eacute dead_acute E
|
||||
sequence ecircumflex dead_circumflex e
|
||||
sequence Ecircumflex dead_circumflex E
|
||||
sequence ediaeresis dead_diaeresis e
|
||||
sequence Ediaeresis dead_diaeresis E
|
||||
r 0x13 addupper
|
||||
t 0x14 addupper
|
||||
y 0x15 addupper
|
||||
sequence ygrave dead_grave y
|
||||
sequence Ygrave dead_grave Y
|
||||
sequence yacute dead_acute y
|
||||
sequence Yacute dead_acute Y
|
||||
sequence ycircumflex dead_circumflex y
|
||||
sequence Ycircumflex dead_circumflex Y
|
||||
sequence ydiaeresis dead_diaeresis y
|
||||
sequence Ydiaeresis dead_diaeresis Y
|
||||
u 0x16 addupper
|
||||
sequence ugrave dead_grave u
|
||||
sequence Ugrave dead_grave U
|
||||
sequence uacute dead_acute u
|
||||
sequence Uacute dead_acute U
|
||||
sequence ucircumflex dead_circumflex u
|
||||
sequence Ucircumflex dead_circumflex U
|
||||
sequence udiaeresis dead_diaeresis u
|
||||
sequence Udiaeresis dead_diaeresis U
|
||||
i 0x17 addupper
|
||||
sequence igrave dead_grave i
|
||||
sequence Igrave dead_grave I
|
||||
sequence iacute dead_acute i
|
||||
sequence Iacute dead_acute I
|
||||
sequence icircumflex dead_circumflex i
|
||||
sequence Icircumflex dead_circumflex I
|
||||
sequence idiaeresis dead_diaeresis i
|
||||
sequence Idiaeresis dead_diaeresis I
|
||||
o 0x18 addupper
|
||||
sequence ograve dead_grave o
|
||||
sequence Ograve dead_grave O
|
||||
sequence oacute dead_acute o
|
||||
sequence Oacute dead_acute O
|
||||
sequence ocircumflex dead_circumflex o
|
||||
sequence Ocircumflex dead_circumflex O
|
||||
sequence odiaeresis dead_diaeresis o
|
||||
sequence Odiaeresis dead_diaeresis O
|
||||
sequence otilde dead_tilde o
|
||||
sequence Otilde dead_tilde O
|
||||
p 0x19 addupper
|
||||
|
||||
#
|
||||
# QWERTY second row
|
||||
#
|
||||
a 0x1e addupper
|
||||
sequence agrave dead_grave a
|
||||
sequence Agrave dead_grave A
|
||||
sequence aacute dead_acute a
|
||||
sequence Aacute dead_acute A
|
||||
sequence acircumflex dead_circumflex a
|
||||
sequence Acircumflex dead_circumflex A
|
||||
sequence adiaeresis dead_diaeresis a
|
||||
sequence Adiaeresis dead_diaeresis A
|
||||
sequence aring dead_abovering a
|
||||
sequence Aring dead_abovering A
|
||||
sequence atilde dead_tilde a
|
||||
sequence Atilde dead_tilde A
|
||||
s 0x1f addupper
|
||||
d 0x20 addupper
|
||||
f 0x21 addupper
|
||||
g 0x22 addupper
|
||||
h 0x23 addupper
|
||||
j 0x24 addupper
|
||||
k 0x25 addupper
|
||||
l 0x26 addupper
|
||||
Return 0x1c localstate
|
||||
|
||||
#
|
||||
# QWERTY third row
|
||||
#
|
||||
z 0x2c addupper
|
||||
x 0x2d addupper
|
||||
c 0x2e addupper
|
||||
sequence ccedilla dead_cedilla c
|
||||
sequence Ccedilla dead_cedilla C
|
||||
v 0x2f addupper
|
||||
b 0x30 addupper
|
||||
n 0x31 addupper
|
||||
sequence ntilde dead_tilde n
|
||||
sequence Ntilde dead_tilde N
|
||||
m 0x32 addupper
|
||||
|
||||
space 0x39 localstate
|
||||
|
||||
less 0x56
|
||||
greater 0x56 shift
|
||||
bar 0x56 altgr
|
||||
brokenbar 0x56 shift altgr
|
||||
|
||||
#
|
||||
# Translations for some other dead keys
|
||||
#
|
||||
sequence asciitilde dead_tilde space
|
||||
sequence diaeresis dead_diaeresis space
|
||||
sequence asciicircum dead_circumflex space
|
||||
sequence apostrophe dead_acute space
|
||||
sequence grave dead_grave space
|
||||
sequence acute dead_acute space
|
||||
|
||||
#
|
||||
# Esc and Function keys
|
||||
#
|
||||
Escape 0x1 localstate
|
||||
F1 0x3b localstate
|
||||
F2 0x3c localstate
|
||||
F3 0x3d localstate
|
||||
F4 0x3e localstate
|
||||
F5 0x3f localstate
|
||||
F6 0x40 localstate
|
||||
F7 0x41 localstate
|
||||
F8 0x42 localstate
|
||||
F9 0x43 localstate
|
||||
F10 0x44 localstate
|
||||
F11 0x57 localstate
|
||||
SunF36 0x57 localstate
|
||||
F12 0x58 localstate
|
||||
SunF37 0x58 localstate
|
||||
|
||||
# Printscreen, Scrollock and Pause
|
||||
# Printscreen really requires four scancodes (0xe0, 0x2a, 0xe0, 0x37),
|
||||
# but (0xe0, 0x37) seems to work.
|
||||
Print 0xb7 localstate
|
||||
Sys_Req 0xb7 localstate
|
||||
Execute 0xb7 localstate
|
||||
F22 0xb7 localstate
|
||||
Scroll_Lock 0x46
|
||||
F23 0x46
|
||||
|
||||
#
|
||||
# Insert - PgDown
|
||||
#
|
||||
Insert 0xd2 localstate
|
||||
Delete 0xd3 localstate
|
||||
Home 0xc7 localstate
|
||||
End 0xcf localstate
|
||||
Page_Up 0xc9 localstate
|
||||
Page_Down 0xd1 localstate
|
||||
|
||||
#
|
||||
# Arrow keys
|
||||
#
|
||||
Left 0xcb localstate
|
||||
Up 0xc8 localstate
|
||||
Down 0xd0 localstate
|
||||
Right 0xcd localstate
|
||||
|
||||
#
|
||||
# Numpad
|
||||
#
|
||||
Num_Lock 0x45
|
||||
KP_Divide 0xb5 localstate
|
||||
KP_Multiply 0x37 localstate
|
||||
KP_Subtract 0x4a localstate
|
||||
KP_Add 0x4e localstate
|
||||
KP_Enter 0x9c localstate
|
||||
|
||||
KP_Decimal 0x53 numlock
|
||||
KP_Separator 0x53 numlock
|
||||
KP_Delete 0x53
|
||||
|
||||
KP_0 0x52 numlock
|
||||
KP_Insert 0x52 localstate
|
||||
|
||||
KP_1 0x4f numlock
|
||||
KP_End 0x4f localstate
|
||||
|
||||
KP_2 0x50 numlock
|
||||
KP_Down 0x50 localstate
|
||||
|
||||
KP_3 0x51 numlock
|
||||
KP_Next 0x51 localstate
|
||||
|
||||
KP_4 0x4b numlock
|
||||
KP_Left 0x4b localstate
|
||||
|
||||
KP_5 0x4c numlock
|
||||
KP_Begin 0x4c localstate
|
||||
|
||||
KP_6 0x4d numlock
|
||||
KP_Right 0x4d localstate
|
||||
|
||||
KP_7 0x47 numlock
|
||||
KP_Home 0x47 localstate
|
||||
|
||||
KP_8 0x48 numlock
|
||||
KP_Up 0x48 localstate
|
||||
|
||||
KP_9 0x49 numlock
|
||||
KP_Prior 0x49 localstate
|
||||
|
||||
#
|
||||
# Inhibited keys
|
||||
#
|
||||
Caps_Lock 0x0 inhibit
|
||||
Multi_key 0x0 inhibit
|
|
@ -0,0 +1,63 @@
|
|||
#!/usr/bin/env python2
|
||||
# -*-Python-*-
|
||||
#
|
||||
#
|
||||
# Copyright (C) 2001 Peter Åstrand <peter@cendio.se>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; version 2 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
import sys
|
||||
|
||||
def main():
|
||||
f = open(sys.argv[1])
|
||||
while 1:
|
||||
line = f.readline()
|
||||
if not line: break
|
||||
|
||||
if line.startswith("#") or line.startswith("include"):
|
||||
print line,
|
||||
continue
|
||||
|
||||
fields = line.split()
|
||||
|
||||
if line.startswith("map"):
|
||||
print "map 0x%s" % fields[1]
|
||||
continue
|
||||
|
||||
scancode = fields[0]
|
||||
for pos in range(1, len(fields)):
|
||||
keysym = fields[pos]
|
||||
|
||||
if pos == 1:
|
||||
modifiers = ""
|
||||
elif pos == 2:
|
||||
modifiers = "shift"
|
||||
elif pos == 3:
|
||||
modifiers = "altgr"
|
||||
elif pos == 4:
|
||||
modifiers = "shift altgr"
|
||||
else:
|
||||
raise("Invalid line: %s" % line)
|
||||
|
||||
print "%s 0x%s %s" % (keysym, scancode, modifiers)
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) < 2:
|
||||
print "Convert old-style keymaps to new style"
|
||||
print "Usage: %s <old-style-keymap>" % sys.argv[0]
|
||||
sys.exit(1)
|
||||
else:
|
||||
main()
|
87
rosapps/applications/net/tsclient/rdesktop/keymaps/cs
Normal file
87
rosapps/applications/net/tsclient/rdesktop/keymaps/cs
Normal file
|
@ -0,0 +1,87 @@
|
|||
# Czech keymap
|
||||
include common
|
||||
map 0x405
|
||||
|
||||
# AltGr
|
||||
ISO_Level3_Shift 0xb8
|
||||
|
||||
#
|
||||
# Top row
|
||||
#
|
||||
|
||||
# `
|
||||
grave 0x29
|
||||
asciitilde 0x29 shift
|
||||
# 1
|
||||
exclam 0x2 shift
|
||||
# 2
|
||||
at 0x3 shift
|
||||
ecaron 0x3 altgr
|
||||
# 3
|
||||
numbersign 0x4 shift
|
||||
# 4
|
||||
dollar 0x5 shift
|
||||
# 5
|
||||
percent 0x6 shift
|
||||
# 6
|
||||
asciicircum 0x7 shift
|
||||
# 7
|
||||
ampersand 0x8 shift
|
||||
# 8
|
||||
asterisk 0x9 shift
|
||||
# 9
|
||||
parenleft 0xa shift
|
||||
# 0
|
||||
parenright 0xb shift
|
||||
# -
|
||||
minus 0xc
|
||||
underscore 0xc shift
|
||||
# =
|
||||
equal 0xd
|
||||
plus 0xd shift
|
||||
|
||||
|
||||
#
|
||||
# QWERTZ first row
|
||||
#
|
||||
|
||||
# q
|
||||
q 0x10 altgr
|
||||
# e
|
||||
e 0x12 altgr
|
||||
# [
|
||||
bracketleft 0x1a
|
||||
braceleft 0x1a shift
|
||||
# ]
|
||||
bracketright 0x1b
|
||||
braceright 0x1b shift
|
||||
|
||||
#
|
||||
# QWERTZ second row
|
||||
#
|
||||
|
||||
# ;
|
||||
semicolon 0x27
|
||||
# ;
|
||||
colon 0x27 shift
|
||||
# '
|
||||
apostrophe 0x28
|
||||
# '
|
||||
quotedbl 0x28 shift
|
||||
|
||||
#
|
||||
# QWERTZ third row
|
||||
#
|
||||
|
||||
# v
|
||||
v 0x2f altgr
|
||||
# ,
|
||||
comma 0x33
|
||||
less 0x33 shift
|
||||
# .
|
||||
period 0x34
|
||||
greater 0x34 shift
|
||||
# /
|
||||
slash 0x35
|
||||
question 0x35 shift
|
||||
|
120
rosapps/applications/net/tsclient/rdesktop/keymaps/da
Normal file
120
rosapps/applications/net/tsclient/rdesktop/keymaps/da
Normal file
|
@ -0,0 +1,120 @@
|
|||
# generated from XKB map dk
|
||||
include common
|
||||
map 0x406
|
||||
exclam 0x02 shift
|
||||
exclamdown 0x02 altgr
|
||||
onesuperior 0x02 shift altgr
|
||||
quotedbl 0x03 shift
|
||||
at 0x03 altgr
|
||||
twosuperior 0x03 shift altgr
|
||||
numbersign 0x04 shift
|
||||
sterling 0x04 altgr
|
||||
threesuperior 0x04 shift altgr
|
||||
currency 0x05 shift
|
||||
dollar 0x05 altgr
|
||||
onequarter 0x05 shift altgr
|
||||
percent 0x06 shift
|
||||
onehalf 0x06 altgr
|
||||
cent 0x06 shift altgr
|
||||
ampersand 0x07 shift
|
||||
yen 0x07 altgr
|
||||
fiveeighths 0x07 shift altgr
|
||||
slash 0x08 shift
|
||||
braceleft 0x08 altgr
|
||||
division 0x08 shift altgr
|
||||
parenleft 0x09 shift
|
||||
bracketleft 0x09 altgr
|
||||
guillemotleft 0x09 shift altgr
|
||||
parenright 0x0a shift
|
||||
bracketright 0x0a altgr
|
||||
guillemotright 0x0a shift altgr
|
||||
equal 0x0b shift
|
||||
braceright 0x0b altgr
|
||||
degree 0x0b shift altgr
|
||||
plus 0x0c
|
||||
question 0x0c shift
|
||||
plusminus 0x0c altgr
|
||||
questiondown 0x0c shift altgr
|
||||
dead_acute 0x0d
|
||||
dead_grave 0x0d shift
|
||||
bar 0x0d altgr
|
||||
brokenbar 0x0d shift altgr
|
||||
Greek_OMEGA 0x10 shift altgr
|
||||
lstroke 0x11 altgr
|
||||
Lstroke 0x11 shift altgr
|
||||
EuroSign 0x12 altgr
|
||||
cent 0x12 shift altgr
|
||||
registered 0x13 altgr
|
||||
thorn 0x14 altgr
|
||||
THORN 0x14 shift altgr
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
downarrow 0x16 altgr
|
||||
uparrow 0x16 shift altgr
|
||||
rightarrow 0x17 altgr
|
||||
idotless 0x17 shift altgr
|
||||
oe 0x18 altgr
|
||||
OE 0x18 shift altgr
|
||||
thorn 0x19 altgr
|
||||
THORN 0x19 shift altgr
|
||||
aring 0x1a
|
||||
Aring 0x1a shift
|
||||
dead_diaeresis 0x1a altgr
|
||||
dead_abovering 0x1a shift altgr
|
||||
dead_diaeresis 0x1b
|
||||
dead_circumflex 0x1b shift
|
||||
dead_tilde 0x1b altgr
|
||||
dead_caron 0x1b shift altgr
|
||||
ordfeminine 0x1e altgr
|
||||
masculine 0x1e shift altgr
|
||||
ssharp 0x1f altgr
|
||||
section 0x1f shift altgr
|
||||
eth 0x20 altgr
|
||||
ETH 0x20 shift altgr
|
||||
dstroke 0x21 altgr
|
||||
ordfeminine 0x21 shift altgr
|
||||
eng 0x22 altgr
|
||||
ENG 0x22 shift altgr
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
kra 0x25 altgr
|
||||
lstroke 0x26 altgr
|
||||
Lstroke 0x26 shift altgr
|
||||
ae 0x27
|
||||
AE 0x27 shift
|
||||
oslash 0x28
|
||||
Ooblique 0x28 shift
|
||||
dead_caron 0x28 shift altgr
|
||||
onehalf 0x29
|
||||
section 0x29 shift
|
||||
threequarters 0x29 altgr
|
||||
paragraph 0x29 shift altgr
|
||||
apostrophe 0x2b
|
||||
asterisk 0x2b shift
|
||||
dead_doubleacute 0x2b altgr
|
||||
multiply 0x2b shift altgr
|
||||
guillemotleft 0x2c altgr
|
||||
guillemotright 0x2d altgr
|
||||
copyright 0x2e altgr
|
||||
leftdoublequotemark 0x2f altgr
|
||||
grave 0x2f shift altgr
|
||||
rightdoublequotemark 0x30 altgr
|
||||
mu 0x32 altgr
|
||||
masculine 0x32 shift altgr
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
dead_cedilla 0x33 altgr
|
||||
dead_ogonek 0x33 shift altgr
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
dead_abovedot 0x34 shift altgr
|
||||
minus 0x35
|
||||
underscore 0x35 shift
|
||||
hyphen 0x35 altgr
|
||||
macron 0x35 shift altgr
|
||||
nobreakspace 0x39 altgr
|
||||
less 0x56
|
||||
greater 0x56 shift
|
||||
backslash 0x56 altgr
|
||||
notsign 0x56 shift altgr
|
114
rosapps/applications/net/tsclient/rdesktop/keymaps/de
Normal file
114
rosapps/applications/net/tsclient/rdesktop/keymaps/de
Normal file
|
@ -0,0 +1,114 @@
|
|||
# generated from XKB map de
|
||||
include common
|
||||
map 0x407
|
||||
exclam 0x02 shift
|
||||
onesuperior 0x02 altgr
|
||||
exclamdown 0x02 shift altgr
|
||||
quotedbl 0x03 shift
|
||||
twosuperior 0x03 altgr
|
||||
oneeighth 0x03 shift altgr
|
||||
section 0x04 shift
|
||||
threesuperior 0x04 altgr
|
||||
sterling 0x04 shift altgr
|
||||
dollar 0x05 shift
|
||||
onequarter 0x05 altgr
|
||||
currency 0x05 shift altgr
|
||||
percent 0x06 shift
|
||||
onehalf 0x06 altgr
|
||||
threeeighths 0x06 shift altgr
|
||||
ampersand 0x07 shift
|
||||
threequarters 0x07 altgr
|
||||
fiveeighths 0x07 shift altgr
|
||||
slash 0x08 shift
|
||||
braceleft 0x08 altgr
|
||||
seveneighths 0x08 shift altgr
|
||||
parenleft 0x09 shift
|
||||
bracketleft 0x09 altgr
|
||||
trademark 0x09 shift altgr
|
||||
parenright 0x0a shift
|
||||
bracketright 0x0a altgr
|
||||
plusminus 0x0a shift altgr
|
||||
equal 0x0b shift
|
||||
braceright 0x0b altgr
|
||||
ssharp 0x0c
|
||||
question 0x0c shift
|
||||
backslash 0x0c altgr
|
||||
questiondown 0x0c shift altgr
|
||||
acute 0x0d
|
||||
dead_acute 0x0d
|
||||
grave 0x0d shift
|
||||
dead_grave 0x0d shift
|
||||
dead_cedilla 0x0d altgr
|
||||
dead_ogonek 0x0d shift altgr
|
||||
at 0x10 altgr
|
||||
Greek_OMEGA 0x10 shift altgr
|
||||
EuroSign 0x12 altgr
|
||||
paragraph 0x13 altgr
|
||||
registered 0x13 shift altgr
|
||||
tslash 0x14 altgr
|
||||
Tslash 0x14 shift altgr
|
||||
z 0x15 addupper
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
downarrow 0x16 altgr
|
||||
uparrow 0x16 shift altgr
|
||||
rightarrow 0x17 altgr
|
||||
idotless 0x17 shift altgr
|
||||
oslash 0x18 altgr
|
||||
Ooblique 0x18 shift altgr
|
||||
thorn 0x19 altgr
|
||||
THORN 0x19 shift altgr
|
||||
udiaeresis 0x1a
|
||||
Udiaeresis 0x1a shift
|
||||
dead_diaeresis 0x1a altgr
|
||||
dead_abovering 0x1a shift altgr
|
||||
plus 0x1b
|
||||
asterisk 0x1b shift
|
||||
asciitilde 0x1b altgr
|
||||
dead_tilde 0x1b altgr
|
||||
dead_macron 0x1b shift altgr
|
||||
ae 0x1e altgr
|
||||
AE 0x1e shift altgr
|
||||
eth 0x20 altgr
|
||||
ETH 0x20 shift altgr
|
||||
dstroke 0x21 altgr
|
||||
ordfeminine 0x21 shift altgr
|
||||
eng 0x22 altgr
|
||||
ENG 0x22 shift altgr
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
kra 0x25 altgr
|
||||
odiaeresis 0x27
|
||||
Odiaeresis 0x27 shift
|
||||
dead_doubleacute 0x27 altgr
|
||||
adiaeresis 0x28
|
||||
Adiaeresis 0x28 shift
|
||||
dead_caron 0x28 shift altgr
|
||||
asciicircum 0x29
|
||||
dead_circumflex 0x29
|
||||
degree 0x29 shift
|
||||
notsign 0x29 altgr
|
||||
numbersign 0x2b
|
||||
apostrophe 0x2b shift
|
||||
dead_breve 0x2b shift altgr
|
||||
y 0x2c addupper
|
||||
guillemotleft 0x2c altgr
|
||||
guillemotright 0x2d altgr
|
||||
cent 0x2e altgr
|
||||
copyright 0x2e shift altgr
|
||||
leftdoublequotemark 0x2f altgr
|
||||
rightdoublequotemark 0x30 altgr
|
||||
mu 0x32 altgr
|
||||
masculine 0x32 shift altgr
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
horizconnector 0x33 altgr
|
||||
multiply 0x33 shift altgr
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
division 0x34 shift altgr
|
||||
minus 0x35
|
||||
underscore 0x35 shift
|
||||
dead_belowdot 0x35 altgr
|
||||
dead_abovedot 0x35 shift altgr
|
169
rosapps/applications/net/tsclient/rdesktop/keymaps/de-ch
Normal file
169
rosapps/applications/net/tsclient/rdesktop/keymaps/de-ch
Normal file
|
@ -0,0 +1,169 @@
|
|||
# rdesktop Swiss-German (de-ch) keymap file
|
||||
# 2003-06-03 by noldi@tristar.ch
|
||||
#
|
||||
include common
|
||||
map 0x00000807
|
||||
#
|
||||
# Scan Code 1
|
||||
section 0x29
|
||||
degree 0x29 shift
|
||||
notsign 0x29 altgr inhibit
|
||||
#
|
||||
# Scan Code 2
|
||||
plus 0x2 shift
|
||||
brokenbar 0x02 altgr
|
||||
#
|
||||
# Scan Code 3
|
||||
quotedbl 0x03 shift
|
||||
at 0x03 altgr
|
||||
#
|
||||
# Scan Code 4
|
||||
asterisk 0x04 shift
|
||||
numbersign 0x04 altgr
|
||||
#
|
||||
# Scan Code 5
|
||||
ccedilla 0x05 shift
|
||||
onequarter 0x05 altgr inhibit
|
||||
#
|
||||
# Scan Code 6
|
||||
percent 0x06 shift
|
||||
onehalf 0x06 altgr inhibit
|
||||
#
|
||||
# Scan Code 7
|
||||
ampersand 0x07 shift
|
||||
notsign 0x07 altgr
|
||||
#
|
||||
# Scan Code 8
|
||||
slash 0x08 shift
|
||||
bar 0x08 altgr
|
||||
#
|
||||
# Scan Code 9
|
||||
parenleft 0x09 shift
|
||||
cent 0x09 altgr
|
||||
#
|
||||
# Scan Code 10
|
||||
parenright 0x0a shift
|
||||
#
|
||||
# Scan Code 11
|
||||
equal 0x0b shift
|
||||
braceright 0x0b altgr inhibit
|
||||
#
|
||||
# Scan Code 12
|
||||
apostrophe 0x0c
|
||||
question 0x0c shift
|
||||
dead_acute 0x0c altgr
|
||||
#
|
||||
# Scan Code 13
|
||||
dead_circumflex 0x0d
|
||||
dead_grave 0x0d shift
|
||||
dead_tilde 0x0d altgr
|
||||
#
|
||||
# Scan Code 19
|
||||
EuroSign 0x12 altgr
|
||||
#
|
||||
# Scan Code 22
|
||||
z 0x15 addupper
|
||||
#
|
||||
# Scan Code 27
|
||||
udiaeresis 0x1a
|
||||
egrave 0x1a shift
|
||||
bracketleft 0x1a altgr
|
||||
#
|
||||
# Scan Code 28
|
||||
dead_diaeresis 0x1b
|
||||
exclam 0x1b shift
|
||||
bracketright 0x1b altgr
|
||||
#
|
||||
# Scan Code 40
|
||||
odiaeresis 0x27
|
||||
eacute 0x27 shift
|
||||
#
|
||||
# Scan Code 41
|
||||
adiaeresis 0x28
|
||||
agrave 0x28 shift
|
||||
braceleft 0x28 altgr
|
||||
#
|
||||
# Scan Code 42 (only on international keyboards)
|
||||
dollar 0x2b
|
||||
sterling 0x2b shift
|
||||
braceright 0x2b altgr
|
||||
#
|
||||
# Scan Code 45 (only on international keyboards)
|
||||
backslash 0x56 altgr
|
||||
#
|
||||
# Scan Code 46
|
||||
y 0x2c addupper
|
||||
#
|
||||
# Scan Code 53
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
#
|
||||
# Scan Code 54
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
#
|
||||
# Scan Code 55
|
||||
minus 0x35
|
||||
underscore 0x35 shift
|
||||
#
|
||||
# Suppress Windows unsupported AltGr keys
|
||||
#
|
||||
# Scan Code 17
|
||||
paragraph 0x10 altgr inhibit
|
||||
#
|
||||
# Scan Code 21
|
||||
tslash 0x14 altgr inhibit
|
||||
#
|
||||
# Scan Code 22
|
||||
leftarrow 0x15 altgr inhibit
|
||||
#
|
||||
# Scan Code 23
|
||||
downarrow 0x16 altgr inhibit
|
||||
#
|
||||
# Scan Code 24
|
||||
rightarrow 0x17 altgr inhibit
|
||||
#
|
||||
# Scan Code 25
|
||||
oslash 0x18 altgr inhibit
|
||||
#
|
||||
# Scan Code 26
|
||||
thorn 0x19 altgr inhibit
|
||||
#
|
||||
# Scan Code 31
|
||||
ae 0x1e altgr inhibit
|
||||
#
|
||||
# Scan Code 32
|
||||
ssharp 0x1f altgr inhibit
|
||||
#
|
||||
# Scan Code 33
|
||||
eth 0x20 altgr inhibit
|
||||
#
|
||||
# Scan Code 34
|
||||
dstroke 0x21 altgr inhibit
|
||||
#
|
||||
# Scan Code 35
|
||||
eng 0x22 altgr inhibit
|
||||
#
|
||||
# Scan Code 36
|
||||
hstroke 0x23 altgr inhibit
|
||||
#
|
||||
# Scan Code 38
|
||||
kra 0x25 altgr inhibit
|
||||
#
|
||||
# Scan Code 39
|
||||
lstroke 0x26 altgr inhibit
|
||||
#
|
||||
# Scan Code 46
|
||||
guillemotleft 0x2c altgr inhibit
|
||||
#
|
||||
# Scan Code 47
|
||||
guillemotright 0x2d altgr inhibit
|
||||
#
|
||||
# Scan Code 49
|
||||
leftdoublequotemark 0x2f altgr inhibit
|
||||
#
|
||||
# Scan Code 50
|
||||
rightdoublequotemark 0x30 altgr inhibit
|
||||
#
|
||||
# Scan Code 52
|
||||
mu 0x32 altgr inhibit
|
216
rosapps/applications/net/tsclient/rdesktop/keymaps/en-dv
Normal file
216
rosapps/applications/net/tsclient/rdesktop/keymaps/en-dv
Normal file
|
@ -0,0 +1,216 @@
|
|||
# American Dvorak
|
||||
map 0x10409
|
||||
|
||||
# Note: we are not including the common section
|
||||
include modifiers
|
||||
|
||||
#
|
||||
# Top row
|
||||
#
|
||||
1 0x2
|
||||
2 0x3
|
||||
3 0x4
|
||||
4 0x5
|
||||
5 0x6
|
||||
6 0x7
|
||||
7 0x8
|
||||
8 0x9
|
||||
9 0xa
|
||||
0 0xb
|
||||
BackSpace 0xe
|
||||
|
||||
#
|
||||
# QWERTY first row
|
||||
|
||||
# QWERTY:
|
||||
# q w e r t y u i o p
|
||||
|
||||
# Dvorak:
|
||||
# ' , . p y f g c r l
|
||||
|
||||
Tab 0xf localstate
|
||||
ISO_Left_Tab 0xf shift
|
||||
q 0x2d addupper
|
||||
w 0x33 addupper
|
||||
e 0x20 addupper
|
||||
r 0x18 addupper
|
||||
t 0x25 addupper
|
||||
y 0x14 addupper
|
||||
u 0x21 addupper
|
||||
i 0x22 addupper
|
||||
o 0x1f addupper
|
||||
p 0x13 addupper
|
||||
|
||||
#
|
||||
# QWERTY second row
|
||||
|
||||
# QUERTY:
|
||||
# a s d f g h j k l
|
||||
|
||||
# Dvorak:
|
||||
# a o e u i d h t n
|
||||
|
||||
a 0x1e addupper
|
||||
s 0x27 addupper
|
||||
d 0x23 addupper
|
||||
f 0x15 addupper
|
||||
g 0x16 addupper
|
||||
h 0x24 addupper
|
||||
j 0x2e addupper
|
||||
k 0x2f addupper
|
||||
l 0x19 addupper
|
||||
Return 0x1c localstate
|
||||
|
||||
#
|
||||
# QWERTY third row
|
||||
|
||||
# QUERTY:
|
||||
# z x c v b n m
|
||||
|
||||
# Dvorak:
|
||||
# ; q j k x b m
|
||||
|
||||
z 0x35 addupper
|
||||
x 0x30 addupper
|
||||
c 0x17 addupper
|
||||
v 0x34 addupper
|
||||
b 0x31 addupper
|
||||
n 0x26 addupper
|
||||
m 0x32 addupper
|
||||
|
||||
space 0x39 localstate
|
||||
|
||||
less 0x56
|
||||
greater 0x56 shift
|
||||
bar 0x56 altgr
|
||||
brokenbar 0x56 shift altgr
|
||||
|
||||
#
|
||||
# Esc and Function keys
|
||||
#
|
||||
Escape 0x1 localstate
|
||||
F1 0x3b localstate
|
||||
F2 0x3c localstate
|
||||
F3 0x3d localstate
|
||||
F4 0x3e localstate
|
||||
F5 0x3f localstate
|
||||
F6 0x40 localstate
|
||||
F7 0x41 localstate
|
||||
F8 0x42 localstate
|
||||
F9 0x43 localstate
|
||||
F10 0x44 localstate
|
||||
F11 0x57 localstate
|
||||
SunF36 0x57 localstate
|
||||
F12 0x58 localstate
|
||||
SunF37 0x58 localstate
|
||||
|
||||
# Printscreen, Scrollock and Pause
|
||||
# Printscreen really requires four scancodes (0xe0, 0x2a, 0xe0, 0x37),
|
||||
# but (0xe0, 0x37) seems to work.
|
||||
Print 0xb7 localstate
|
||||
Sys_Req 0xb7 localstate
|
||||
Execute 0xb7 localstate
|
||||
F22 0xb7 localstate
|
||||
Scroll_Lock 0x46
|
||||
F23 0x46
|
||||
|
||||
#
|
||||
# Insert - PgDown
|
||||
#
|
||||
Insert 0xd2 localstate
|
||||
Delete 0xd3 localstate
|
||||
Home 0xc7 localstate
|
||||
End 0xcf localstate
|
||||
Page_Up 0xc9 localstate
|
||||
Page_Down 0xd1 localstate
|
||||
|
||||
#
|
||||
# Arrow keys
|
||||
#
|
||||
Left 0xcb localstate
|
||||
Up 0xc8 localstate
|
||||
Down 0xd0 localstate
|
||||
Right 0xcd localstate
|
||||
|
||||
#
|
||||
# Numpad
|
||||
#
|
||||
Num_Lock 0x45
|
||||
KP_Divide 0xb5
|
||||
KP_Multiply 0x37
|
||||
KP_Subtract 0x4a
|
||||
KP_Add 0x4e
|
||||
KP_Enter 0x9c
|
||||
|
||||
KP_Decimal 0x53 numlock
|
||||
KP_Separator 0x53 numlock
|
||||
KP_Delete 0x53
|
||||
|
||||
KP_0 0x52 numlock
|
||||
KP_Insert 0x52
|
||||
|
||||
KP_1 0x4f numlock
|
||||
KP_End 0x4f
|
||||
|
||||
KP_2 0x50 numlock
|
||||
KP_Down 0x50
|
||||
|
||||
KP_3 0x51 numlock
|
||||
KP_Next 0x51
|
||||
|
||||
KP_4 0x4b numlock
|
||||
KP_Left 0x4b
|
||||
|
||||
KP_5 0x4c numlock
|
||||
KP_Begin 0x4c
|
||||
|
||||
KP_6 0x4d numlock
|
||||
KP_Right 0x4d
|
||||
|
||||
KP_7 0x47 numlock
|
||||
KP_Home 0x47
|
||||
|
||||
KP_8 0x48 numlock
|
||||
KP_Up 0x48
|
||||
|
||||
KP_9 0x49 numlock
|
||||
KP_Prior 0x49
|
||||
|
||||
#
|
||||
# Inhibited keys
|
||||
#
|
||||
Caps_Lock 0x0 inhibit
|
||||
Multi_key 0x0 inhibit
|
||||
|
||||
exclam 0x02 shift
|
||||
at 0x03 shift
|
||||
numbersign 0x04 shift
|
||||
dollar 0x05 shift
|
||||
percent 0x06 shift
|
||||
asciicircum 0x07 shift
|
||||
ampersand 0x08 shift
|
||||
asterisk 0x09 shift
|
||||
parenleft 0x0a shift
|
||||
parenright 0x0b shift
|
||||
minus 0x28
|
||||
underscore 0x28 shift
|
||||
equal 0x1b
|
||||
plus 0x1b shift
|
||||
bracketleft 0x0c
|
||||
braceleft 0x0c shift
|
||||
bracketright 0x0d
|
||||
braceright 0x0d shift
|
||||
semicolon 0x2c
|
||||
colon 0x2c shift
|
||||
apostrophe 0x10
|
||||
quotedbl 0x10 shift
|
||||
grave 0x29
|
||||
asciitilde 0x29 shift
|
||||
backslash 0x2b
|
||||
bar 0x2b shift
|
||||
comma 0x11
|
||||
less 0x11 shift
|
||||
period 0x12
|
||||
greater 0x12 shift
|
||||
slash 0x1a
|
||||
question 0x1a shift
|
119
rosapps/applications/net/tsclient/rdesktop/keymaps/en-gb
Normal file
119
rosapps/applications/net/tsclient/rdesktop/keymaps/en-gb
Normal file
|
@ -0,0 +1,119 @@
|
|||
# generated from XKB map gb
|
||||
include common
|
||||
map 0x809
|
||||
exclam 0x02 shift
|
||||
onesuperior 0x02 altgr
|
||||
exclamdown 0x02 shift altgr
|
||||
quotedbl 0x03 shift
|
||||
twosuperior 0x03 altgr
|
||||
oneeighth 0x03 shift altgr
|
||||
sterling 0x04 shift
|
||||
threesuperior 0x04 altgr
|
||||
dollar 0x05 shift
|
||||
EuroSign 0x05 altgr
|
||||
percent 0x06 shift
|
||||
onehalf 0x06 altgr
|
||||
threeeighths 0x06 shift altgr
|
||||
asciicircum 0x07 shift
|
||||
threequarters 0x07 altgr
|
||||
fiveeighths 0x07 shift altgr
|
||||
ampersand 0x08 shift
|
||||
braceleft 0x08 altgr
|
||||
seveneighths 0x08 shift altgr
|
||||
asterisk 0x09 shift
|
||||
bracketleft 0x09 altgr
|
||||
trademark 0x09 shift altgr
|
||||
parenleft 0x0a shift
|
||||
bracketright 0x0a altgr
|
||||
plusminus 0x0a shift altgr
|
||||
parenright 0x0b shift
|
||||
braceright 0x0b altgr
|
||||
degree 0x0b shift altgr
|
||||
minus 0x0c
|
||||
underscore 0x0c shift
|
||||
backslash 0x0c altgr
|
||||
questiondown 0x0c shift altgr
|
||||
equal 0x0d
|
||||
plus 0x0d shift
|
||||
dead_cedilla 0x0d altgr
|
||||
dead_ogonek 0x0d shift altgr
|
||||
at 0x10 altgr
|
||||
Greek_OMEGA 0x10 shift altgr
|
||||
lstroke 0x11 altgr
|
||||
Lstroke 0x11 shift altgr
|
||||
paragraph 0x13 altgr
|
||||
registered 0x13 shift altgr
|
||||
tslash 0x14 altgr
|
||||
Tslash 0x14 shift altgr
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
downarrow 0x16 altgr
|
||||
uparrow 0x16 shift altgr
|
||||
rightarrow 0x17 altgr
|
||||
idotless 0x17 shift altgr
|
||||
oslash 0x18 altgr
|
||||
Ooblique 0x18 shift altgr
|
||||
thorn 0x19 altgr
|
||||
THORN 0x19 shift altgr
|
||||
bracketleft 0x1a
|
||||
braceleft 0x1a shift
|
||||
dead_diaeresis 0x1a altgr
|
||||
dead_abovering 0x1a shift altgr
|
||||
bracketright 0x1b
|
||||
braceright 0x1b shift
|
||||
dead_tilde 0x1b altgr
|
||||
dead_macron 0x1b shift altgr
|
||||
ae 0x1e altgr
|
||||
AE 0x1e shift altgr
|
||||
ssharp 0x1f altgr
|
||||
section 0x1f shift altgr
|
||||
eth 0x20 altgr
|
||||
ETH 0x20 shift altgr
|
||||
dstroke 0x21 altgr
|
||||
ordfeminine 0x21 shift altgr
|
||||
eng 0x22 altgr
|
||||
ENG 0x22 shift altgr
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
kra 0x25 altgr
|
||||
lstroke 0x26 altgr
|
||||
Lstroke 0x26 shift altgr
|
||||
semicolon 0x27
|
||||
colon 0x27 shift
|
||||
dead_acute 0x27 altgr
|
||||
dead_doubleacute 0x27 shift altgr
|
||||
apostrophe 0x28
|
||||
at 0x28 shift
|
||||
dead_circumflex 0x28 altgr
|
||||
dead_caron 0x28 shift altgr
|
||||
grave 0x29
|
||||
notsign 0x29 shift
|
||||
bar 0x29 altgr
|
||||
numbersign 0x2b
|
||||
asciitilde 0x2b shift
|
||||
dead_grave 0x2b altgr
|
||||
dead_breve 0x2b shift altgr
|
||||
guillemotleft 0x2c altgr
|
||||
less 0x2c shift altgr
|
||||
guillemotright 0x2d altgr
|
||||
greater 0x2d shift altgr
|
||||
cent 0x2e altgr
|
||||
copyright 0x2e shift altgr
|
||||
leftdoublequotemark 0x2f altgr
|
||||
rightdoublequotemark 0x30 altgr
|
||||
mu 0x32 altgr
|
||||
masculine 0x32 shift altgr
|
||||
comma 0x33
|
||||
less 0x33 shift
|
||||
horizconnector 0x33 altgr
|
||||
multiply 0x33 shift altgr
|
||||
period 0x34
|
||||
greater 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
division 0x34 shift altgr
|
||||
slash 0x35
|
||||
question 0x35 shift
|
||||
dead_belowdot 0x35 altgr
|
||||
dead_abovedot 0x35 shift altgr
|
||||
backslash 0x56
|
||||
bar 0x56 shift
|
35
rosapps/applications/net/tsclient/rdesktop/keymaps/en-us
Normal file
35
rosapps/applications/net/tsclient/rdesktop/keymaps/en-us
Normal file
|
@ -0,0 +1,35 @@
|
|||
# generated from XKB map us
|
||||
include common
|
||||
map 0x409
|
||||
exclam 0x02 shift
|
||||
at 0x03 shift
|
||||
numbersign 0x04 shift
|
||||
dollar 0x05 shift
|
||||
percent 0x06 shift
|
||||
asciicircum 0x07 shift
|
||||
ampersand 0x08 shift
|
||||
asterisk 0x09 shift
|
||||
parenleft 0x0a shift
|
||||
parenright 0x0b shift
|
||||
minus 0x0c
|
||||
underscore 0x0c shift
|
||||
equal 0x0d
|
||||
plus 0x0d shift
|
||||
bracketleft 0x1a
|
||||
braceleft 0x1a shift
|
||||
bracketright 0x1b
|
||||
braceright 0x1b shift
|
||||
semicolon 0x27
|
||||
colon 0x27 shift
|
||||
apostrophe 0x28
|
||||
quotedbl 0x28 shift
|
||||
grave 0x29
|
||||
asciitilde 0x29 shift
|
||||
backslash 0x2b
|
||||
bar 0x2b shift
|
||||
comma 0x33
|
||||
less 0x33 shift
|
||||
period 0x34
|
||||
greater 0x34 shift
|
||||
slash 0x35
|
||||
question 0x35 shift
|
105
rosapps/applications/net/tsclient/rdesktop/keymaps/es
Normal file
105
rosapps/applications/net/tsclient/rdesktop/keymaps/es
Normal file
|
@ -0,0 +1,105 @@
|
|||
# generated from XKB map es
|
||||
include common
|
||||
map 0x40a
|
||||
exclam 0x02 shift
|
||||
bar 0x02 altgr
|
||||
quotedbl 0x03 shift
|
||||
at 0x03 altgr
|
||||
oneeighth 0x03 shift altgr
|
||||
periodcentered 0x04 shift
|
||||
numbersign 0x04 altgr
|
||||
sterling 0x04 shift altgr
|
||||
dollar 0x05 shift
|
||||
asciitilde 0x05 altgr
|
||||
percent 0x06 shift
|
||||
onehalf 0x06 altgr
|
||||
threeeighths 0x06 shift altgr
|
||||
ampersand 0x07 shift
|
||||
notsign 0x07 altgr
|
||||
fiveeighths 0x07 shift altgr
|
||||
slash 0x08 shift
|
||||
seveneighths 0x08 shift altgr
|
||||
parenleft 0x09 shift
|
||||
trademark 0x09 shift altgr
|
||||
parenright 0x0a shift
|
||||
plusminus 0x0a shift altgr
|
||||
equal 0x0b shift
|
||||
degree 0x0b shift altgr
|
||||
apostrophe 0x0c
|
||||
question 0x0c shift
|
||||
exclamdown 0x0d
|
||||
questiondown 0x0d shift
|
||||
Greek_OMEGA 0x10 shift altgr
|
||||
lstroke 0x11 altgr
|
||||
Lstroke 0x11 shift altgr
|
||||
EuroSign 0x12 altgr
|
||||
paragraph 0x13 altgr
|
||||
registered 0x13 shift altgr
|
||||
tslash 0x14 altgr
|
||||
Tslash 0x14 shift altgr
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
downarrow 0x16 altgr
|
||||
uparrow 0x16 shift altgr
|
||||
rightarrow 0x17 altgr
|
||||
idotless 0x17 shift altgr
|
||||
oslash 0x18 altgr
|
||||
Ooblique 0x18 shift altgr
|
||||
thorn 0x19 altgr
|
||||
THORN 0x19 shift altgr
|
||||
dead_grave 0x1a
|
||||
dead_circumflex 0x1a shift
|
||||
bracketleft 0x1a altgr
|
||||
dead_abovering 0x1a shift altgr
|
||||
plus 0x1b
|
||||
asterisk 0x1b shift
|
||||
bracketright 0x1b altgr
|
||||
dead_macron 0x1b shift altgr
|
||||
ae 0x1e altgr
|
||||
AE 0x1e shift altgr
|
||||
ssharp 0x1f altgr
|
||||
section 0x1f shift altgr
|
||||
eth 0x20 altgr
|
||||
ETH 0x20 shift altgr
|
||||
dstroke 0x21 altgr
|
||||
eng 0x22 altgr
|
||||
ENG 0x22 shift altgr
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
kra 0x25 altgr
|
||||
lstroke 0x26 altgr
|
||||
Lstroke 0x26 shift altgr
|
||||
ntilde 0x27
|
||||
Ntilde 0x27 shift
|
||||
dead_doubleacute 0x27 shift altgr
|
||||
dead_acute 0x28
|
||||
dead_diaeresis 0x28 shift
|
||||
braceleft 0x28 altgr
|
||||
masculine 0x29
|
||||
ordfeminine 0x29 shift
|
||||
backslash 0x29 altgr
|
||||
ccedilla 0x2b
|
||||
Ccedilla 0x2b shift
|
||||
braceright 0x2b altgr
|
||||
dead_breve 0x2b shift altgr
|
||||
guillemotleft 0x2c altgr
|
||||
less 0x56
|
||||
greater 0x56 shift
|
||||
guillemotright 0x2d altgr
|
||||
cent 0x2e altgr
|
||||
copyright 0x2e shift altgr
|
||||
leftdoublequotemark 0x2f altgr
|
||||
grave 0x2f shift altgr
|
||||
rightdoublequotemark 0x30 altgr
|
||||
mu 0x32 altgr
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
horizconnector 0x33 altgr
|
||||
multiply 0x33 shift altgr
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
division 0x34 shift altgr
|
||||
minus 0x35
|
||||
underscore 0x35 shift
|
||||
dead_belowdot 0x35 altgr
|
||||
dead_abovedot 0x35 shift altgr
|
86
rosapps/applications/net/tsclient/rdesktop/keymaps/et
Normal file
86
rosapps/applications/net/tsclient/rdesktop/keymaps/et
Normal file
|
@ -0,0 +1,86 @@
|
|||
map 0x00000425
|
||||
include common
|
||||
|
||||
#
|
||||
# Top row
|
||||
#
|
||||
dead_caron 0x29
|
||||
dead_tilde 0x29 shift
|
||||
|
||||
# 1
|
||||
exclam 0x2 shift
|
||||
|
||||
# 2
|
||||
quotedbl 0x3 shift
|
||||
at 0x3 altgr
|
||||
|
||||
# 3
|
||||
numbersign 0x4 shift
|
||||
sterling 0x4 altgr
|
||||
# 4
|
||||
currency 0x5 shift
|
||||
dollar 0x5 altgr
|
||||
# 5
|
||||
percent 0x6 shift
|
||||
# 6
|
||||
ampersand 0x7 shift
|
||||
# 7
|
||||
slash 0x8 shift
|
||||
braceleft 0x8 altgr
|
||||
# 8
|
||||
parenleft 0x9 shift
|
||||
bracketleft 0x9 altgr
|
||||
# 9
|
||||
parenright 0xa shift
|
||||
bracketright 0xa altgr
|
||||
# 0
|
||||
equal 0xb shift
|
||||
braceright 0xb altgr
|
||||
|
||||
plus 0xc
|
||||
question 0xc shift
|
||||
backslash 0xc altgr
|
||||
|
||||
acute 0xd
|
||||
dead_acute 0xd
|
||||
grave 0xd shift
|
||||
dead_grave 0xd shift
|
||||
|
||||
#
|
||||
# QWERTY first row
|
||||
#
|
||||
EuroSign 0x12 altgr
|
||||
udiaeresis 0x1a
|
||||
Udiaeresis 0x1a shift
|
||||
otilde 0x1b
|
||||
Otilde 0x1b shift
|
||||
section 0x1b altgr
|
||||
|
||||
#
|
||||
# QWERTY second row
|
||||
#
|
||||
scaron 0x1f altgr
|
||||
Scaron 0x1f altgr shift
|
||||
odiaeresis 0x27
|
||||
Odiaeresis 0x27 shift
|
||||
adiaeresis 0x28
|
||||
Adiaeresis 0x28 shift
|
||||
asciicircum 0x28 altgr
|
||||
apostrophe 0x2b
|
||||
asterisk 0x2b shift
|
||||
onehalf 0x2b altgr
|
||||
#
|
||||
# QWERTY third row
|
||||
#
|
||||
less 0x56
|
||||
greater 0x56 shift
|
||||
bar 0x56 altgr
|
||||
zcaron 0x2c altgr
|
||||
Zcaron 0x2c altgr shift
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
minus 0x35
|
||||
underscore 0x35 shift
|
||||
|
122
rosapps/applications/net/tsclient/rdesktop/keymaps/fi
Normal file
122
rosapps/applications/net/tsclient/rdesktop/keymaps/fi
Normal file
|
@ -0,0 +1,122 @@
|
|||
# Finnish keyboard layout
|
||||
# Originally generated from XKB map se_FI (wrong!), modified afterwards.
|
||||
|
||||
include common
|
||||
map 0x40b
|
||||
|
||||
exclam 0x02 shift
|
||||
exclamdown 0x02 altgr
|
||||
onesuperior 0x02 shift altgr
|
||||
quotedbl 0x03 shift
|
||||
at 0x03 altgr
|
||||
twosuperior 0x03 shift altgr
|
||||
numbersign 0x04 shift
|
||||
sterling 0x04 altgr
|
||||
threesuperior 0x04 shift altgr
|
||||
currency 0x05 shift
|
||||
dollar 0x05 altgr
|
||||
onequarter 0x05 shift altgr
|
||||
percent 0x06 shift
|
||||
onehalf 0x06 altgr
|
||||
cent 0x06 shift altgr
|
||||
ampersand 0x07 shift
|
||||
yen 0x07 altgr
|
||||
fiveeighths 0x07 shift altgr
|
||||
slash 0x08 shift
|
||||
braceleft 0x08 altgr
|
||||
division 0x08 shift altgr
|
||||
parenleft 0x09 shift
|
||||
bracketleft 0x09 altgr
|
||||
guillemotleft 0x09 shift altgr
|
||||
parenright 0x0a shift
|
||||
bracketright 0x0a altgr
|
||||
guillemotright 0x0a shift altgr
|
||||
equal 0x0b shift
|
||||
braceright 0x0b altgr
|
||||
degree 0x0b shift altgr
|
||||
plus 0x0c
|
||||
question 0x0c shift
|
||||
backslash 0x0c altgr
|
||||
questiondown 0x0c shift altgr
|
||||
dead_acute 0x0d
|
||||
dead_grave 0x0d shift
|
||||
plusminus 0x0d altgr
|
||||
notsign 0x0d shift altgr
|
||||
Greek_OMEGA 0x10 shift altgr
|
||||
lstroke 0x11 altgr
|
||||
Lstroke 0x11 shift altgr
|
||||
EuroSign 0x12 altgr
|
||||
cent 0x12 shift altgr
|
||||
registered 0x13 altgr
|
||||
thorn 0x14 altgr
|
||||
THORN 0x14 shift altgr
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
downarrow 0x16 altgr
|
||||
uparrow 0x16 shift altgr
|
||||
rightarrow 0x17 altgr
|
||||
idotless 0x17 shift altgr
|
||||
oe 0x18 altgr
|
||||
OE 0x18 shift altgr
|
||||
thorn 0x19 altgr
|
||||
THORN 0x19 shift altgr
|
||||
aring 0x1a
|
||||
Aring 0x1a shift
|
||||
dead_diaeresis 0x1a altgr
|
||||
dead_abovering 0x1a shift altgr
|
||||
dead_diaeresis 0x1b
|
||||
dead_circumflex 0x1b shift
|
||||
dead_tilde 0x1b altgr
|
||||
dead_caron 0x1b shift altgr
|
||||
ordfeminine 0x1e altgr
|
||||
masculine 0x1e shift altgr
|
||||
ssharp 0x1f altgr
|
||||
section 0x1f shift altgr
|
||||
eth 0x20 altgr
|
||||
ETH 0x20 shift altgr
|
||||
dstroke 0x21 altgr
|
||||
ordfeminine 0x21 shift altgr
|
||||
eng 0x22 altgr
|
||||
ENG 0x22 shift altgr
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
kra 0x25 altgr
|
||||
lstroke 0x26 altgr
|
||||
Lstroke 0x26 shift altgr
|
||||
odiaeresis 0x27
|
||||
Odiaeresis 0x27 shift
|
||||
oslash 0x27 altgr
|
||||
Ooblique 0x27 shift altgr
|
||||
adiaeresis 0x28
|
||||
Adiaeresis 0x28 shift
|
||||
ae 0x28 altgr
|
||||
AE 0x28 shift altgr
|
||||
section 0x29
|
||||
onehalf 0x29 shift
|
||||
paragraph 0x29 altgr
|
||||
threequarters 0x29 shift altgr
|
||||
apostrophe 0x2b
|
||||
asterisk 0x2b shift
|
||||
acute 0x2b altgr
|
||||
multiply 0x2b shift altgr
|
||||
guillemotleft 0x2c altgr
|
||||
guillemotright 0x2d altgr
|
||||
copyright 0x2e altgr
|
||||
leftdoublequotemark 0x2f altgr
|
||||
grave 0x2f shift altgr
|
||||
rightdoublequotemark 0x30 altgr
|
||||
mu 0x32 altgr
|
||||
masculine 0x32 shift altgr
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
dead_cedilla 0x33 altgr
|
||||
dead_ogonek 0x33 shift altgr
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
dead_abovedot 0x34 shift altgr
|
||||
minus 0x35
|
||||
underscore 0x35 shift
|
||||
hyphen 0x35 altgr
|
||||
macron 0x35 shift altgr
|
||||
nobreakspace 0x39 altgr
|
77
rosapps/applications/net/tsclient/rdesktop/keymaps/fo
Normal file
77
rosapps/applications/net/tsclient/rdesktop/keymaps/fo
Normal file
|
@ -0,0 +1,77 @@
|
|||
map 0x438
|
||||
include common
|
||||
|
||||
#
|
||||
# Top row
|
||||
#
|
||||
onehalf 0x29
|
||||
section 0x29 shift
|
||||
|
||||
# 1
|
||||
exclam 0x2 shift
|
||||
|
||||
# 2
|
||||
quotedbl 0x3 shift
|
||||
at 0x3 altgr
|
||||
|
||||
# 3
|
||||
numbersign 0x4 shift
|
||||
sterling 0x4 altgr
|
||||
# 4
|
||||
currency 0x5 shift
|
||||
dollar 0x5 altgr
|
||||
# 5
|
||||
percent 0x6 shift
|
||||
# 6
|
||||
ampersand 0x7 shift
|
||||
# 7
|
||||
slash 0x8 shift
|
||||
braceleft 0x8 altgr
|
||||
# 8
|
||||
parenleft 0x9 shift
|
||||
bracketleft 0x9 altgr
|
||||
# 9
|
||||
parenright 0xa shift
|
||||
bracketright 0xa altgr
|
||||
# 0
|
||||
equal 0xb shift
|
||||
braceright 0xb altgr
|
||||
|
||||
plus 0xc
|
||||
question 0xc shift
|
||||
plusminus 0xc altgr
|
||||
|
||||
bar 0xd altgr
|
||||
dead_acute 0xd
|
||||
|
||||
#
|
||||
# QWERTY first row
|
||||
#
|
||||
EuroSign 0x12 altgr
|
||||
aring 0x1a
|
||||
Aring 0x1a shift
|
||||
eth 0x1b addupper
|
||||
asciitilde 0x1b altgr
|
||||
|
||||
#
|
||||
# QWERTY second row
|
||||
#
|
||||
ae 0x27 addupper
|
||||
oslash 0x28
|
||||
Ooblique 0x28 shift
|
||||
apostrophe 0x2b
|
||||
asterisk 0x2b shift
|
||||
|
||||
#
|
||||
# QWERTY third row
|
||||
#
|
||||
less 0x56
|
||||
greater 0x56 shift
|
||||
backslash 0x56 altgr
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
minus 0x35
|
||||
underscore 0x35 shift
|
||||
|
181
rosapps/applications/net/tsclient/rdesktop/keymaps/fr
Normal file
181
rosapps/applications/net/tsclient/rdesktop/keymaps/fr
Normal file
|
@ -0,0 +1,181 @@
|
|||
include common
|
||||
map 0x40c
|
||||
#
|
||||
# Top row
|
||||
#
|
||||
twosuperior 0x29
|
||||
notsign 0x29 altgr
|
||||
|
||||
ampersand 0x02
|
||||
1 0x02 shift
|
||||
onesuperior 0x02 altgr
|
||||
exclamdown 0x02 shift altgr
|
||||
|
||||
eacute 0x03
|
||||
2 0x03 shift
|
||||
asciitilde 0x03 altgr
|
||||
oneeighth 0x03 shift altgr
|
||||
|
||||
quotedbl 0x04
|
||||
3 0x04 shift
|
||||
numbersign 0x04 altgr
|
||||
|
||||
apostrophe 0x05
|
||||
4 0x05 shift
|
||||
braceleft 0x05 altgr
|
||||
|
||||
parenleft 0x06
|
||||
5 0x06 shift
|
||||
bracketleft 0x06 altgr
|
||||
threeeighths 0x06 shift altgr
|
||||
|
||||
minus 0x07
|
||||
6 0x07 shift
|
||||
bar 0x07 altgr
|
||||
fiveeighths 0x07 shift altgr
|
||||
|
||||
egrave 0x08
|
||||
7 0x08 shift
|
||||
grave 0x08 altgr
|
||||
seveneighths 0x08 shift altgr
|
||||
|
||||
underscore 0x09
|
||||
8 0x09 shift
|
||||
backslash 0x09 altgr
|
||||
trademark 0x09 shift altgr
|
||||
|
||||
ccedilla 0x0a
|
||||
9 0x0a shift
|
||||
asciicircum 0x0a altgr
|
||||
plusminus 0x0a shift altgr
|
||||
|
||||
agrave 0x0b
|
||||
0 0x0b shift
|
||||
at 0x0b altgr
|
||||
|
||||
parenright 0x0c
|
||||
degree 0x0c shift
|
||||
bracketright 0x0c altgr
|
||||
questiondown 0x0c shift altgr
|
||||
|
||||
equal 0x0d
|
||||
plus 0x0d shift
|
||||
braceright 0x0d altgr
|
||||
dead_ogonek 0x0d shift altgr
|
||||
|
||||
#
|
||||
# AZERTY first row
|
||||
#
|
||||
|
||||
a 0x10 addupper
|
||||
ae 0x10 altgr
|
||||
AE 0x10 shift altgr
|
||||
|
||||
z 0x11 addupper
|
||||
guillemotleft 0x11 altgr
|
||||
|
||||
EuroSign 0x12 altgr
|
||||
|
||||
paragraph 0x13 altgr
|
||||
registered 0x13 shift altgr
|
||||
|
||||
tslash 0x14 altgr
|
||||
Tslash 0x14 shift altgr
|
||||
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
|
||||
downarrow 0x16 altgr
|
||||
uparrow 0x16 shift altgr
|
||||
|
||||
rightarrow 0x17 altgr
|
||||
idotless 0x17 shift altgr
|
||||
|
||||
oslash 0x18 altgr
|
||||
Ooblique 0x18 shift altgr
|
||||
|
||||
thorn 0x19 altgr
|
||||
THORN 0x19 shift altgr
|
||||
|
||||
dead_circumflex 0x1a
|
||||
dead_diaeresis 0x1a shift
|
||||
dead_abovering 0x1a shift altgr
|
||||
|
||||
dollar 0x1b
|
||||
sterling 0x1b shift
|
||||
currency 0x1b altgr
|
||||
dead_macron 0x1b shift altgr
|
||||
|
||||
#
|
||||
# AZERTY second row
|
||||
#
|
||||
q 0x1e addupper
|
||||
Greek_OMEGA 0x1e shift altgr
|
||||
|
||||
ssharp 0x1f altgr
|
||||
|
||||
eth 0x20 altgr
|
||||
ETH 0x20 shift altgr
|
||||
|
||||
dstroke 0x21 altgr
|
||||
ordfeminine 0x21 shift altgr
|
||||
|
||||
eng 0x22 altgr
|
||||
ENG 0x22 shift altgr
|
||||
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
|
||||
kra 0x25 altgr
|
||||
|
||||
lstroke 0x26 altgr
|
||||
Lstroke 0x26 shift altgr
|
||||
|
||||
m 0x27 addupper
|
||||
masculine 0x27 shift altgr
|
||||
|
||||
ugrave 0x28
|
||||
percent 0x28 shift
|
||||
dead_caron 0x28 shift altgr
|
||||
|
||||
asterisk 0x2b
|
||||
mu 0x2b shift
|
||||
dead_grave 0x2b altgr
|
||||
dead_breve 0x2b shift altgr
|
||||
|
||||
#
|
||||
# AZERTY third row
|
||||
#
|
||||
less 0x56
|
||||
greater 0x56 shift
|
||||
|
||||
w 0x2c addupper
|
||||
|
||||
guillemotright 0x2d altgr
|
||||
|
||||
cent 0x2e altgr
|
||||
copyright 0x2e shift altgr
|
||||
|
||||
leftdoublequotemark 0x2f altgr
|
||||
|
||||
rightdoublequotemark 0x30 altgr
|
||||
|
||||
comma 0x32
|
||||
question 0x32 shift
|
||||
dead_acute 0x32 altgr
|
||||
dead_doubleacute 0x32 shift altgr
|
||||
|
||||
semicolon 0x33
|
||||
period 0x33 shift
|
||||
horizconnector 0x33 altgr
|
||||
multiply 0x33 shift altgr
|
||||
|
||||
colon 0x34
|
||||
slash 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
division 0x34 shift altgr
|
||||
|
||||
exclam 0x35
|
||||
section 0x35 shift
|
||||
dead_belowdot 0x35 altgr
|
||||
dead_abovedot 0x35 shift altgr
|
135
rosapps/applications/net/tsclient/rdesktop/keymaps/fr-be
Normal file
135
rosapps/applications/net/tsclient/rdesktop/keymaps/fr-be
Normal file
|
@ -0,0 +1,135 @@
|
|||
# generated from XKB map be
|
||||
include common
|
||||
map 0x80c
|
||||
ampersand 0x02
|
||||
1 0x02 shift
|
||||
bar 0x02 altgr
|
||||
exclamdown 0x02 shift altgr
|
||||
eacute 0x03
|
||||
2 0x03 shift
|
||||
at 0x03 altgr
|
||||
oneeighth 0x03 shift altgr
|
||||
quotedbl 0x04
|
||||
3 0x04 shift
|
||||
numbersign 0x04 altgr
|
||||
sterling 0x04 shift altgr
|
||||
apostrophe 0x05
|
||||
4 0x05 shift
|
||||
onequarter 0x05 altgr
|
||||
dollar 0x05 shift altgr
|
||||
parenleft 0x06
|
||||
5 0x06 shift
|
||||
onehalf 0x06 altgr
|
||||
threeeighths 0x06 shift altgr
|
||||
section 0x07
|
||||
6 0x07 shift
|
||||
asciicircum 0x07 altgr
|
||||
fiveeighths 0x07 shift altgr
|
||||
egrave 0x08
|
||||
7 0x08 shift
|
||||
braceleft 0x08 altgr
|
||||
seveneighths 0x08 shift altgr
|
||||
exclam 0x09
|
||||
8 0x09 shift
|
||||
bracketleft 0x09 altgr
|
||||
trademark 0x09 shift altgr
|
||||
ccedilla 0x0a
|
||||
9 0x0a shift
|
||||
braceleft 0x0a altgr
|
||||
plusminus 0x0a shift altgr
|
||||
agrave 0x0b
|
||||
0 0x0b shift
|
||||
braceright 0x0b altgr
|
||||
degree 0x0b shift altgr
|
||||
parenright 0x0c
|
||||
degree 0x0c shift
|
||||
backslash 0x0c altgr
|
||||
questiondown 0x0c shift altgr
|
||||
minus 0x0d
|
||||
underscore 0x0d shift
|
||||
dead_cedilla 0x0d altgr
|
||||
dead_ogonek 0x0d shift altgr
|
||||
a 0x10 addupper
|
||||
Greek_OMEGA 0x10 shift altgr
|
||||
z 0x11 addupper
|
||||
lstroke 0x11 altgr
|
||||
Lstroke 0x11 shift altgr
|
||||
EuroSign 0x12 altgr
|
||||
cent 0x12 shift altgr
|
||||
paragraph 0x13 altgr
|
||||
registered 0x13 shift altgr
|
||||
tslash 0x14 altgr
|
||||
Tslash 0x14 shift altgr
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
downarrow 0x16 altgr
|
||||
uparrow 0x16 shift altgr
|
||||
rightarrow 0x17 altgr
|
||||
idotless 0x17 shift altgr
|
||||
oslash 0x18 altgr
|
||||
Ooblique 0x18 shift altgr
|
||||
thorn 0x19 altgr
|
||||
THORN 0x19 shift altgr
|
||||
dead_circumflex 0x1a
|
||||
dead_diaeresis 0x1a shift
|
||||
bracketleft 0x1a altgr
|
||||
dead_abovering 0x1a shift altgr
|
||||
dollar 0x1b
|
||||
asterisk 0x1b shift
|
||||
bracketright 0x1b altgr
|
||||
dead_macron 0x1b shift altgr
|
||||
q 0x1e addupper
|
||||
ae 0x1e altgr
|
||||
AE 0x1e shift altgr
|
||||
ssharp 0x1f altgr
|
||||
eth 0x20 altgr
|
||||
ETH 0x20 shift altgr
|
||||
dstroke 0x21 altgr
|
||||
ordfeminine 0x21 shift altgr
|
||||
eng 0x22 altgr
|
||||
ENG 0x22 shift altgr
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
kra 0x25 altgr
|
||||
lstroke 0x26 altgr
|
||||
Lstroke 0x26 shift altgr
|
||||
m 0x27 addupper
|
||||
dead_acute 0x27 altgr
|
||||
dead_doubleacute 0x27 shift altgr
|
||||
ugrave 0x28
|
||||
percent 0x28 shift
|
||||
dead_acute 0x28 altgr
|
||||
dead_caron 0x28 shift altgr
|
||||
twosuperior 0x29
|
||||
threesuperior 0x29 shift
|
||||
notsign 0x29 altgr
|
||||
mu 0x2b
|
||||
sterling 0x2b shift
|
||||
dead_grave 0x2b altgr
|
||||
dead_breve 0x2b shift altgr
|
||||
w 0x2c addupper
|
||||
guillemotleft 0x2c altgr
|
||||
guillemotright 0x2d altgr
|
||||
cent 0x2e altgr
|
||||
copyright 0x2e shift altgr
|
||||
leftdoublequotemark 0x2f altgr
|
||||
grave 0x2f shift altgr
|
||||
rightdoublequotemark 0x30 altgr
|
||||
comma 0x32
|
||||
question 0x32 shift
|
||||
dead_cedilla 0x32 altgr
|
||||
masculine 0x32 shift altgr
|
||||
semicolon 0x33
|
||||
period 0x33 shift
|
||||
horizconnector 0x33 altgr
|
||||
multiply 0x33 shift altgr
|
||||
colon 0x34
|
||||
slash 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
division 0x34 shift altgr
|
||||
equal 0x35
|
||||
plus 0x35 shift
|
||||
dead_tilde 0x35 altgr
|
||||
dead_abovedot 0x35 shift altgr
|
||||
backslash 0x56 altgr
|
||||
|
50
rosapps/applications/net/tsclient/rdesktop/keymaps/fr-ca
Normal file
50
rosapps/applications/net/tsclient/rdesktop/keymaps/fr-ca
Normal file
|
@ -0,0 +1,50 @@
|
|||
# Canadian French
|
||||
# By Simon Germain
|
||||
include common
|
||||
map 0xc0c
|
||||
|
||||
backslash 0x29 altgr
|
||||
plusminus 0x2 altgr
|
||||
at 0x3 altgr
|
||||
sterling 0x4 altgr
|
||||
cent 0x5 altgr
|
||||
currency 0x6 altgr
|
||||
notsign 0x7 altgr
|
||||
bar 0x29 shift
|
||||
twosuperior 0x9 altgr
|
||||
threesuperior 0xa altgr
|
||||
onequarter 0xb altgr
|
||||
onehalf 0xc altgr
|
||||
threequarters 0xd altgr
|
||||
section 0x18 altgr
|
||||
paragraph 0x19 altgr
|
||||
bracketleft 0x1a altgr
|
||||
bracketright 0x1b altgr
|
||||
asciitilde 0x27 altgr
|
||||
braceleft 0x28 altgr
|
||||
braceright 0x2b altgr
|
||||
less 0x2b
|
||||
greater 0x2b shift
|
||||
guillemotleft 0x56
|
||||
guillemotright 0x56 shift
|
||||
degree 0x56 altgr
|
||||
mu 0x32 altgr
|
||||
eacute 0x35
|
||||
dead_acute 0x35 altgr
|
||||
dead_grave 0x28
|
||||
dead_circumflex 0x1a
|
||||
dead_circumflex 0x1a shift
|
||||
dead_cedilla 0x1b
|
||||
dead_diaeresis 0x1b shift
|
||||
exclam 0x2 shift
|
||||
quotedbl 0x3 shift
|
||||
slash 0x4 shift
|
||||
dollar 0x5 shift
|
||||
percent 0x6 shift
|
||||
question 0x7 shift
|
||||
ampersand 0x8 shift
|
||||
asterisk 0x9 shift
|
||||
parenleft 0xa shift
|
||||
parenright 0xb shift
|
||||
underscore 0xc shift
|
||||
plus 0xd shift
|
169
rosapps/applications/net/tsclient/rdesktop/keymaps/fr-ch
Normal file
169
rosapps/applications/net/tsclient/rdesktop/keymaps/fr-ch
Normal file
|
@ -0,0 +1,169 @@
|
|||
# rdesktop suisse-french keymap file
|
||||
#
|
||||
#map 0x00000807
|
||||
map 0x0000100C
|
||||
include common
|
||||
#
|
||||
# Scan Code 1
|
||||
section 0x29
|
||||
degree 0x29 shift
|
||||
notsign 0x29 altgr inhibit
|
||||
#
|
||||
# Scan Code 2
|
||||
plus 0x2 shift
|
||||
brokenbar 0x02 altgr
|
||||
#
|
||||
# Scan Code 3
|
||||
quotedbl 0x03 shift
|
||||
at 0x03 altgr
|
||||
#
|
||||
# Scan Code 4
|
||||
asterisk 0x04 shift
|
||||
numbersign 0x04 altgr
|
||||
#
|
||||
# Scan Code 5
|
||||
ccedilla 0x05 shift
|
||||
onequarter 0x05 altgr inhibit
|
||||
#
|
||||
# Scan Code 6
|
||||
percent 0x06 shift
|
||||
onehalf 0x06 altgr inhibit
|
||||
#
|
||||
# Scan Code 7
|
||||
ampersand 0x07 shift
|
||||
notsign 0x07 altgr
|
||||
#
|
||||
# Scan Code 8
|
||||
slash 0x08 shift
|
||||
bar 0x08 altgr
|
||||
#
|
||||
# Scan Code 9
|
||||
parenleft 0x09 shift
|
||||
cent 0x09 altgr
|
||||
#
|
||||
# Scan Code 10
|
||||
parenright 0x0a shift
|
||||
#
|
||||
# Scan Code 11
|
||||
equal 0x0b shift
|
||||
braceright 0x0b altgr inhibit
|
||||
#
|
||||
# Scan Code 12
|
||||
apostrophe 0x0c
|
||||
question 0x0c shift
|
||||
dead_acute 0x0c altgr
|
||||
#
|
||||
# Scan Code 13
|
||||
dead_circumflex 0x0d
|
||||
dead_grave 0x0d shift
|
||||
dead_tilde 0x0d altgr
|
||||
#
|
||||
# Scan Code 19
|
||||
EuroSign 0x12 altgr
|
||||
#
|
||||
# Scan Code 22
|
||||
z 0x15 addupper
|
||||
#
|
||||
# Scan Code 27
|
||||
udiaeresis 0x1a shift
|
||||
egrave 0x1a
|
||||
bracketleft 0x1a altgr
|
||||
#
|
||||
# Scan Code 28
|
||||
dead_diaeresis 0x1b
|
||||
exclam 0x1b shift
|
||||
bracketright 0x1b altgr
|
||||
#
|
||||
# Scan Code 40
|
||||
odiaeresis 0x27 shift
|
||||
eacute 0x27
|
||||
#
|
||||
# Scan Code 41
|
||||
adiaeresis 0x28 shift
|
||||
agrave 0x28
|
||||
braceleft 0x28 altgr
|
||||
#
|
||||
# Scan Code 42 (only on international keyboards)
|
||||
dollar 0x2b
|
||||
sterling 0x2b shift
|
||||
braceright 0x2b altgr
|
||||
#
|
||||
# Scan Code 45 (only on international keyboards)
|
||||
backslash 0x56 altgr
|
||||
#
|
||||
# Scan Code 46
|
||||
y 0x2c addupper
|
||||
#
|
||||
# Scan Code 53
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
#
|
||||
# Scan Code 54
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
#
|
||||
# Scan Code 55
|
||||
minus 0x35
|
||||
underscore 0x35 shift
|
||||
#
|
||||
# Suppress Windows unsupported AltGr keys
|
||||
#
|
||||
# Scan Code 17
|
||||
paragraph 0x10 altgr inhibit
|
||||
#
|
||||
# Scan Code 21
|
||||
tslash 0x14 altgr inhibit
|
||||
#
|
||||
# Scan Code 22
|
||||
leftarrow 0x15 altgr inhibit
|
||||
#
|
||||
# Scan Code 23
|
||||
downarrow 0x16 altgr inhibit
|
||||
#
|
||||
# Scan Code 24
|
||||
rightarrow 0x17 altgr inhibit
|
||||
#
|
||||
# Scan Code 25
|
||||
oslash 0x18 altgr inhibit
|
||||
#
|
||||
# Scan Code 26
|
||||
thorn 0x19 altgr inhibit
|
||||
#
|
||||
# Scan Code 31
|
||||
ae 0x1e altgr inhibit
|
||||
#
|
||||
# Scan Code 32
|
||||
ssharp 0x1f altgr inhibit
|
||||
#
|
||||
# Scan Code 33
|
||||
eth 0x20 altgr inhibit
|
||||
#
|
||||
# Scan Code 34
|
||||
dstroke 0x21 altgr inhibit
|
||||
#
|
||||
# Scan Code 35
|
||||
eng 0x22 altgr inhibit
|
||||
#
|
||||
# Scan Code 36
|
||||
hstroke 0x23 altgr inhibit
|
||||
#
|
||||
# Scan Code 38
|
||||
kra 0x25 altgr inhibit
|
||||
#
|
||||
# Scan Code 39
|
||||
lstroke 0x26 altgr inhibit
|
||||
#
|
||||
# Scan Code 46
|
||||
guillemotleft 0x2c altgr inhibit
|
||||
#
|
||||
# Scan Code 47
|
||||
guillemotright 0x2d altgr inhibit
|
||||
#
|
||||
# Scan Code 49
|
||||
leftdoublequotemark 0x2f altgr inhibit
|
||||
#
|
||||
# Scan Code 50
|
||||
rightdoublequotemark 0x30 altgr inhibit
|
||||
#
|
||||
# Scan Code 52
|
||||
mu 0x32 altgr inhibit
|
91
rosapps/applications/net/tsclient/rdesktop/keymaps/he
Normal file
91
rosapps/applications/net/tsclient/rdesktop/keymaps/he
Normal file
|
@ -0,0 +1,91 @@
|
|||
# Generated by Shlomil
|
||||
# Please send your comments and corrections to <shlomister@gmail.com>
|
||||
include common
|
||||
map 0x040D
|
||||
|
||||
|
||||
#
|
||||
# Top row
|
||||
#
|
||||
|
||||
slash 0x10 altgr
|
||||
apostrophe 0x11 altgr
|
||||
hebrew_qoph 0x12 altgr
|
||||
hebrew_resh 0x13 altgr
|
||||
hebrew_aleph 0x14 altgr
|
||||
hebrew_tet 0x15 altgr
|
||||
hebrew_waw 0x16 altgr
|
||||
hebrew_finalnun 0x17 altgr
|
||||
hebrew_finalmem 0x18 altgr
|
||||
hebrew_pe 0x19 altgr
|
||||
|
||||
#
|
||||
# Second row
|
||||
#
|
||||
|
||||
hebrew_shin 0x1e altgr
|
||||
hebrew_dalet 0x1f altgr
|
||||
hebrew_gimel 0x20 altgr
|
||||
hebrew_kaph 0x21 altgr
|
||||
hebrew_ayin 0x22 altgr
|
||||
hebrew_yod 0x23 altgr
|
||||
hebrew_chet 0x24 altgr
|
||||
hebrew_lamed 0x25 altgr
|
||||
hebrew_finalkaph 0x26 altgr
|
||||
hebrew_finalpe 0x27 altgr
|
||||
comma 0x28 altgr
|
||||
|
||||
#
|
||||
# Third row
|
||||
#
|
||||
|
||||
hebrew_zain 0x2c altgr
|
||||
hebrew_samech 0x2d altgr
|
||||
hebrew_bet 0x2e altgr
|
||||
hebrew_he 0x2f altgr
|
||||
hebrew_nun 0x30 altgr
|
||||
hebrew_mem 0x31 altgr
|
||||
hebrew_zade 0x32 altgr
|
||||
|
||||
hebrew_taw 0x33 altgr
|
||||
hebrew_finalzade 0x34 altgr
|
||||
period 0x35 altgr
|
||||
|
||||
|
||||
#
|
||||
# en-us
|
||||
#
|
||||
|
||||
|
||||
exclam 0x02 shift
|
||||
at 0x03 shift
|
||||
numbersign 0x04 shift
|
||||
dollar 0x05 shift
|
||||
percent 0x06 shift
|
||||
asciicircum 0x07 shift
|
||||
ampersand 0x08 shift
|
||||
asterisk 0x09 shift
|
||||
parenleft 0x0a shift
|
||||
parenright 0x0b shift
|
||||
minus 0x0c
|
||||
underscore 0x0c shift
|
||||
equal 0x0d
|
||||
plus 0x0d shift
|
||||
bracketleft 0x1a
|
||||
braceleft 0x1a shift
|
||||
bracketright 0x1b
|
||||
braceright 0x1b shift
|
||||
semicolon 0x27
|
||||
colon 0x27 shift
|
||||
apostrophe 0x28
|
||||
quotedbl 0x28 shift
|
||||
grave 0x29
|
||||
asciitilde 0x29 shift
|
||||
backslash 0x2b
|
||||
bar 0x2b shift
|
||||
comma 0x33
|
||||
less 0x33 shift
|
||||
period 0x34
|
||||
greater 0x34 shift
|
||||
slash 0x35
|
||||
question 0x35 shift
|
125
rosapps/applications/net/tsclient/rdesktop/keymaps/hr
Normal file
125
rosapps/applications/net/tsclient/rdesktop/keymaps/hr
Normal file
|
@ -0,0 +1,125 @@
|
|||
# generated from XKB map hr
|
||||
include common
|
||||
map 0x41a
|
||||
exclam 0x02 shift
|
||||
asciitilde 0x02 altgr
|
||||
dead_tilde 0x02 shift altgr
|
||||
quotedbl 0x03 shift
|
||||
dead_caron 0x03 altgr
|
||||
caron 0x03 shift altgr
|
||||
numbersign 0x04 shift
|
||||
asciicircum 0x04 altgr
|
||||
dead_circumflex 0x04 shift altgr
|
||||
dollar 0x05 shift
|
||||
dead_breve 0x05 altgr
|
||||
breve 0x05 shift altgr
|
||||
percent 0x06 shift
|
||||
degree 0x06 altgr
|
||||
dead_abovering 0x06 shift altgr
|
||||
ampersand 0x07 shift
|
||||
dead_ogonek 0x07 altgr
|
||||
ogonek 0x07 shift altgr
|
||||
slash 0x08 shift
|
||||
grave 0x08 altgr
|
||||
dead_grave 0x08 shift altgr
|
||||
parenleft 0x09 shift
|
||||
dead_abovedot 0x09 altgr
|
||||
abovedot 0x09 shift altgr
|
||||
parenright 0x0a shift
|
||||
dead_acute 0x0a altgr
|
||||
apostrophe 0x0a shift altgr
|
||||
equal 0x0b shift
|
||||
dead_doubleacute 0x0b altgr
|
||||
doubleacute 0x0b shift altgr
|
||||
apostrophe 0x0c
|
||||
question 0x0c shift
|
||||
dead_diaeresis 0x0c altgr
|
||||
diaeresis 0x0c shift altgr
|
||||
plus 0x0d
|
||||
asterisk 0x0d shift
|
||||
dead_cedilla 0x0d altgr
|
||||
cedilla 0x0d shift altgr
|
||||
backslash 0x10 altgr
|
||||
Greek_OMEGA 0x10 shift altgr
|
||||
bar 0x11 altgr
|
||||
Lstroke 0x11 shift altgr
|
||||
EuroSign 0x12 altgr
|
||||
paragraph 0x13 altgr
|
||||
registered 0x13 shift altgr
|
||||
tslash 0x14 altgr
|
||||
Tslash 0x14 shift altgr
|
||||
z 0x15 addupper
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
downarrow 0x16 altgr
|
||||
uparrow 0x16 shift altgr
|
||||
rightarrow 0x17 altgr
|
||||
idotless 0x17 shift altgr
|
||||
oslash 0x18 altgr
|
||||
Ooblique 0x18 shift altgr
|
||||
thorn 0x19 altgr
|
||||
THORN 0x19 shift altgr
|
||||
scaron 0x1a
|
||||
Scaron 0x1a shift
|
||||
division 0x1a altgr
|
||||
dead_abovering 0x1a shift altgr
|
||||
dstroke 0x1b
|
||||
Dstroke 0x1b shift
|
||||
multiply 0x1b altgr
|
||||
dead_macron 0x1b shift altgr
|
||||
ae 0x1e altgr
|
||||
AE 0x1e shift altgr
|
||||
ssharp 0x1f altgr
|
||||
section 0x1f shift altgr
|
||||
eth 0x20 altgr
|
||||
ETH 0x20 shift altgr
|
||||
bracketleft 0x21 altgr
|
||||
ordfeminine 0x21 shift altgr
|
||||
bracketright 0x22 altgr
|
||||
ENG 0x22 shift altgr
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
lstroke 0x25 altgr
|
||||
ampersand 0x25 shift altgr
|
||||
Lstroke 0x26 altgr
|
||||
ccaron 0x27
|
||||
Ccaron 0x27 shift
|
||||
dead_acute 0x27 altgr
|
||||
dead_doubleacute 0x27 shift altgr
|
||||
cacute 0x28
|
||||
Cacute 0x28 shift
|
||||
ssharp 0x28 altgr
|
||||
dead_caron 0x28 shift altgr
|
||||
dead_cedilla 0x29
|
||||
dead_diaeresis 0x29 shift
|
||||
notsign 0x29 altgr
|
||||
zcaron 0x2b
|
||||
Zcaron 0x2b shift
|
||||
currency 0x2b altgr
|
||||
dead_breve 0x2b shift altgr
|
||||
y 0x2c addupper
|
||||
guillemotleft 0x2c altgr
|
||||
less 0x2c shift altgr
|
||||
guillemotright 0x2d altgr
|
||||
greater 0x2d shift altgr
|
||||
cent 0x2e altgr
|
||||
copyright 0x2e shift altgr
|
||||
at 0x2f altgr
|
||||
grave 0x2f shift altgr
|
||||
braceleft 0x30 altgr
|
||||
apostrophe 0x30 shift altgr
|
||||
braceright 0x31 altgr
|
||||
section 0x32 altgr
|
||||
masculine 0x32 shift altgr
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
horizconnector 0x33 altgr
|
||||
multiply 0x33 shift altgr
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
division 0x34 shift altgr
|
||||
minus 0x35
|
||||
underscore 0x35 shift
|
||||
dead_belowdot 0x35 altgr
|
||||
dead_abovedot 0x35 shift altgr
|
115
rosapps/applications/net/tsclient/rdesktop/keymaps/hu
Normal file
115
rosapps/applications/net/tsclient/rdesktop/keymaps/hu
Normal file
|
@ -0,0 +1,115 @@
|
|||
# Hungarian keyboard layout (QWERTZ)
|
||||
# Created by: The NeverGone <never@delfin.klte.hu>
|
||||
|
||||
include common
|
||||
map 0x40e
|
||||
|
||||
|
||||
# AltGr keys:
|
||||
notsign 0x29 altgr
|
||||
asciitilde 0x02 altgr
|
||||
caron 0x03 altgr
|
||||
asciicircum 0x04 altgr
|
||||
breve 0x05 altgr
|
||||
degree 0x06 altgr
|
||||
ogonek 0x07 altgr
|
||||
grave 0x08 altgr
|
||||
abovedot 0x09 altgr
|
||||
acute 0x0a altgr
|
||||
doubleacute 0x0b altgr
|
||||
diaeresis 0x0c altgr
|
||||
cedilla 0x0d altgr
|
||||
backslash 0x10 altgr
|
||||
bar 0x11 altgr
|
||||
EuroSign 0x12 altgr
|
||||
Iacute 0x17 altgr
|
||||
division 0x1a altgr
|
||||
multiply 0x1b altgr
|
||||
dstroke 0x1f altgr
|
||||
Dstroke 0x20 altgr
|
||||
bracketleft 0x21 altgr
|
||||
bracketright 0x22 altgr
|
||||
iacute 0x24 altgr
|
||||
lstroke 0x25 altgr
|
||||
Lstroke 0x26 altgr
|
||||
dollar 0x27 altgr
|
||||
ssharp 0x28 altgr
|
||||
currency 0x2b altgr
|
||||
less 0x56 altgr
|
||||
greater 0x2c altgr
|
||||
numbersign 0x2d altgr
|
||||
ampersand 0x2e altgr
|
||||
at 0x2f altgr
|
||||
braceleft 0x30 altgr
|
||||
braceright 0x31 altgr
|
||||
semicolon 0x33 altgr
|
||||
asterisk 0x35 altgr
|
||||
|
||||
|
||||
# Shift keys:
|
||||
section 0x29 shift
|
||||
apostrophe 0x02 shift
|
||||
quotedbl 0x03 shift
|
||||
plus 0x04 shift
|
||||
exclam 0x05 shift
|
||||
percent 0x06 shift
|
||||
slash 0x07 shift
|
||||
equal 0x08 shift
|
||||
parenleft 0x09 shift
|
||||
parenright 0x0a shift
|
||||
Odiaeresis 0x0b shift
|
||||
Udiaeresis 0x0c shift
|
||||
Oacute 0x0d shift
|
||||
Z 0x15 shift
|
||||
Odoubleacute 0x1a shift
|
||||
Uacute 0x1b shift
|
||||
Eacute 0x27 shift
|
||||
Aacute 0x28 shift
|
||||
Udoubleacute 0x2b shift
|
||||
Y 0x2c shift
|
||||
question 0x33 shift
|
||||
colon 0x34 shift
|
||||
underscore 0x35 shift
|
||||
F13 0x3b shift
|
||||
F14 0x3c shift
|
||||
F15 0x3d shift
|
||||
F16 0x3e shift
|
||||
F17 0x3f shift
|
||||
F18 0x40 shift
|
||||
F19 0x41 shift
|
||||
F20 0x42 shift
|
||||
F21 0x43 shift
|
||||
F22 0x44 shift
|
||||
F23 0x57 shift
|
||||
F24 0x58 shift
|
||||
|
||||
|
||||
# Ctrl keys:
|
||||
F25 0x3b ctrl
|
||||
F26 0x3c ctrl
|
||||
F27 0x3d ctrl
|
||||
F28 0x3e ctrl
|
||||
F29 0x3f ctrl
|
||||
F30 0x40 ctrl
|
||||
F31 0x41 ctrl
|
||||
F32 0x42 ctrl
|
||||
F33 0x43 ctrl
|
||||
F34 0x44 ctrl
|
||||
F35 0x57 ctrl
|
||||
#NoSymbol 0x58 ctrl
|
||||
|
||||
|
||||
0 0x29
|
||||
odiaeresis 0x0b
|
||||
udiaeresis 0x0c
|
||||
oacute 0x0d
|
||||
z 0x15
|
||||
odoubleacute 0x1a
|
||||
uacute 0x1b
|
||||
eacute 0x27
|
||||
aacute 0x28
|
||||
udoubleacute 0x2b
|
||||
y 0x2c
|
||||
comma 0x33
|
||||
period 0x34
|
||||
minus 0x35
|
140
rosapps/applications/net/tsclient/rdesktop/keymaps/is
Normal file
140
rosapps/applications/net/tsclient/rdesktop/keymaps/is
Normal file
|
@ -0,0 +1,140 @@
|
|||
# 2004-03-16 Halldór Guðmundsson and Morten Lange
|
||||
# Keyboard definition file for the Icelandic keyboard
|
||||
# to be used in rdesktop 1.3.x ( See rdesktop.org)
|
||||
# generated from XKB map de, and changed manually
|
||||
# Location for example /usr/local/share/rdesktop/keymaps/is
|
||||
include common
|
||||
map 0x40f
|
||||
exclam 0x02 shift
|
||||
onesuperior 0x02 altgr
|
||||
exclamdown 0x02 shift altgr
|
||||
quotedbl 0x03 shift
|
||||
twosuperior 0x03 altgr
|
||||
oneeighth 0x03 shift altgr
|
||||
#section 0x04 shift
|
||||
numbersign 0x04 shift
|
||||
threesuperior 0x04 altgr
|
||||
sterling 0x04 shift altgr
|
||||
dollar 0x05 shift
|
||||
onequarter 0x05 altgr
|
||||
currency 0x05 shift altgr
|
||||
percent 0x06 shift
|
||||
onehalf 0x06 altgr
|
||||
threeeighths 0x06 shift altgr
|
||||
ampersand 0x07 shift
|
||||
threequarters 0x07 altgr
|
||||
fiveeighths 0x07 shift altgr
|
||||
slash 0x08 shift
|
||||
braceleft 0x08 altgr
|
||||
seveneighths 0x08 shift altgr
|
||||
parenleft 0x09 shift
|
||||
bracketleft 0x09 altgr
|
||||
trademark 0x09 shift altgr
|
||||
parenright 0x0a shift
|
||||
bracketright 0x0a altgr
|
||||
plusminus 0x0a shift altgr
|
||||
equal 0x0b shift
|
||||
braceright 0x0b altgr
|
||||
#ssharp 0x0c
|
||||
odiaeresis 0x0c
|
||||
#question 0x0c shift
|
||||
Odiaeresis 0x0c shift
|
||||
backslash 0x0c altgr
|
||||
questiondown 0x0c shift altgr
|
||||
#acute 0x0d
|
||||
minus 0x0d
|
||||
#dead_acute 0x0d
|
||||
#grave 0x0d shift
|
||||
#dead_grave 0x0d shift
|
||||
underscore 0x0d shift
|
||||
dead_cedilla 0x0d altgr
|
||||
dead_ogonek 0x0d shift altgr
|
||||
at 0x10 altgr
|
||||
Greek_OMEGA 0x10 shift altgr
|
||||
EuroSign 0x12 altgr
|
||||
paragraph 0x13 altgr
|
||||
registered 0x13 shift altgr
|
||||
tslash 0x14 altgr
|
||||
Tslash 0x14 shift altgr
|
||||
#z 0x15 addupper
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
downarrow 0x16 altgr
|
||||
uparrow 0x16 shift altgr
|
||||
rightarrow 0x17 altgr
|
||||
idotless 0x17 shift altgr
|
||||
oslash 0x18 altgr
|
||||
Ooblique 0x18 shift altgr
|
||||
#thorn 0x19 altgr
|
||||
#THORN 0x19 shift altgr
|
||||
#udiaeresis 0x1a
|
||||
#Udiaeresis 0x1a shift
|
||||
#dead_diaeresis 0x1a altgr
|
||||
#dead_abovering 0x1a shift altgr
|
||||
eth 0x1a
|
||||
ETH 0x1a shift
|
||||
apostrophe 0x1b
|
||||
question 0x1b shift
|
||||
#plus 0x1b
|
||||
#asterisk 0x1b shift
|
||||
asciitilde 0x1b altgr
|
||||
#grave 0x1b altgr
|
||||
#dead_tilde 0x1b altgr
|
||||
#dead_macron 0x1b shift altgr
|
||||
#ae 0x1e altgr
|
||||
#AE 0x1e shift altgr
|
||||
#eth 0x20 altgr
|
||||
#eth 0x20
|
||||
#ETH 0x20 shift altgr
|
||||
#ETH 0x20 shift
|
||||
dstroke 0x21 altgr
|
||||
ordfeminine 0x21 shift altgr
|
||||
eng 0x22 altgr
|
||||
ENG 0x22 shift altgr
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
kra 0x25 altgr
|
||||
#adiaeresis 0x27
|
||||
#Adiaeresis 0x27 shift
|
||||
ae 0x27
|
||||
AE 0x27 shift
|
||||
dead_doubleacute 0x27 altgr
|
||||
#adiaeresis 0x28
|
||||
#Adiaeresis 0x28 shift
|
||||
#dead_caron 0x28 shift altgr
|
||||
#asciicircum 0x29
|
||||
acute 0x28
|
||||
dead_acute 0x28
|
||||
#dead_circumflex 0x29
|
||||
#degree 0x29 shift
|
||||
#notsign 0x29 altgr
|
||||
plus 0x2b
|
||||
asterisk 0x2b shift
|
||||
grave 0x2b altgr
|
||||
#numbersign 0x2b
|
||||
#apostrophe 0x2b shift
|
||||
#dead_breve 0x2b shift altgr
|
||||
#y 0x2c addupper
|
||||
guillemotleft 0x2c altgr
|
||||
guillemotright 0x2d altgr
|
||||
cent 0x2e altgr
|
||||
copyright 0x2e shift altgr
|
||||
leftdoublequotemark 0x2f altgr
|
||||
rightdoublequotemark 0x30 altgr
|
||||
mu 0x32 altgr
|
||||
masculine 0x32 shift altgr
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
horizconnector 0x33 altgr
|
||||
multiply 0x33 shift altgr
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
division 0x34 shift altgr
|
||||
#minus 0x35
|
||||
#underscore 0x35 shift
|
||||
thorn 0x35
|
||||
THORN 0x35 shift
|
||||
dead_belowdot 0x35 altgr
|
||||
dead_abovedot 0x35 shift altgr
|
||||
|
115
rosapps/applications/net/tsclient/rdesktop/keymaps/it
Normal file
115
rosapps/applications/net/tsclient/rdesktop/keymaps/it
Normal file
|
@ -0,0 +1,115 @@
|
|||
# generated from XKB map it
|
||||
include common
|
||||
map 0x410
|
||||
exclam 0x02 shift
|
||||
onesuperior 0x02 altgr
|
||||
exclamdown 0x02 shift altgr
|
||||
quotedbl 0x03 shift
|
||||
twosuperior 0x03 altgr
|
||||
oneeighth 0x03 shift altgr
|
||||
sterling 0x04 shift
|
||||
threesuperior 0x04 altgr
|
||||
dollar 0x05 shift
|
||||
onequarter 0x05 altgr
|
||||
percent 0x06 shift
|
||||
onehalf 0x06 altgr
|
||||
threeeighths 0x06 shift altgr
|
||||
ampersand 0x07 shift
|
||||
threequarters 0x07 altgr
|
||||
fiveeighths 0x07 shift altgr
|
||||
slash 0x08 shift
|
||||
braceleft 0x08 altgr
|
||||
seveneighths 0x08 shift altgr
|
||||
parenleft 0x09 shift
|
||||
trademark 0x09 shift altgr
|
||||
parenright 0x0a shift
|
||||
plusminus 0x0a shift altgr
|
||||
equal 0x0b shift
|
||||
braceright 0x0b altgr
|
||||
degree 0x0b shift altgr
|
||||
apostrophe 0x0c
|
||||
question 0x0c shift
|
||||
grave 0x0c altgr
|
||||
questiondown 0x0c shift altgr
|
||||
igrave 0x0d
|
||||
asciicircum 0x0d shift
|
||||
asciitilde 0x0d altgr
|
||||
dead_ogonek 0x0d shift altgr
|
||||
at 0x10 altgr
|
||||
Greek_OMEGA 0x10 shift altgr
|
||||
lstroke 0x11 altgr
|
||||
Lstroke 0x11 shift altgr
|
||||
EuroSign 0x12 altgr
|
||||
cent 0x12 shift altgr
|
||||
paragraph 0x13 altgr
|
||||
registered 0x13 shift altgr
|
||||
tslash 0x14 altgr
|
||||
Tslash 0x14 shift altgr
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
downarrow 0x16 altgr
|
||||
uparrow 0x16 shift altgr
|
||||
rightarrow 0x17 altgr
|
||||
idotless 0x17 shift altgr
|
||||
oslash 0x18 altgr
|
||||
Ooblique 0x18 shift altgr
|
||||
thorn 0x19 altgr
|
||||
THORN 0x19 shift altgr
|
||||
egrave 0x1a
|
||||
eacute 0x1a shift
|
||||
bracketleft 0x1a altgr
|
||||
dead_abovering 0x1a shift altgr
|
||||
plus 0x1b
|
||||
asterisk 0x1b shift
|
||||
bracketright 0x1b altgr
|
||||
dead_macron 0x1b shift altgr
|
||||
ae 0x1e altgr
|
||||
AE 0x1e shift altgr
|
||||
ssharp 0x1f altgr
|
||||
section 0x1f shift altgr
|
||||
eth 0x20 altgr
|
||||
ETH 0x20 shift altgr
|
||||
dstroke 0x21 altgr
|
||||
ordfeminine 0x21 shift altgr
|
||||
eng 0x22 altgr
|
||||
ENG 0x22 shift altgr
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
kra 0x25 altgr
|
||||
lstroke 0x26 altgr
|
||||
Lstroke 0x26 shift altgr
|
||||
ograve 0x27
|
||||
ccedilla 0x27 shift
|
||||
at 0x27 altgr
|
||||
dead_doubleacute 0x27 shift altgr
|
||||
agrave 0x28
|
||||
degree 0x28 shift
|
||||
numbersign 0x28 altgr
|
||||
backslash 0x29
|
||||
bar 0x29 shift
|
||||
notsign 0x29 altgr
|
||||
ugrave 0x2b
|
||||
section 0x2b shift
|
||||
dead_grave 0x2b altgr
|
||||
dead_breve 0x2b shift altgr
|
||||
guillemotleft 0x2c altgr
|
||||
guillemotright 0x2d altgr
|
||||
cent 0x2e altgr
|
||||
copyright 0x2e shift altgr
|
||||
leftdoublequotemark 0x2f altgr
|
||||
grave 0x2f shift altgr
|
||||
rightdoublequotemark 0x30 altgr
|
||||
mu 0x32 altgr
|
||||
masculine 0x32 shift altgr
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
horizconnector 0x33 altgr
|
||||
multiply 0x33 shift altgr
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
division 0x34 shift altgr
|
||||
minus 0x35
|
||||
underscore 0x35 shift
|
||||
dead_belowdot 0x35 altgr
|
||||
dead_abovedot 0x35 shift altgr
|
107
rosapps/applications/net/tsclient/rdesktop/keymaps/ja
Normal file
107
rosapps/applications/net/tsclient/rdesktop/keymaps/ja
Normal file
|
@ -0,0 +1,107 @@
|
|||
# generated from XKB map jp106
|
||||
include common
|
||||
map 0xe0010411
|
||||
keyboard_type 0x7
|
||||
keyboard_subtype 0x2
|
||||
keyboard_functionkeys 0xc
|
||||
exclam 0x02 shift
|
||||
kana_NU 0x02 altgr
|
||||
quotedbl 0x03 shift
|
||||
kana_FU 0x03 altgr
|
||||
numbersign 0x04 shift
|
||||
kana_A 0x04 altgr
|
||||
kana_a 0x04 shift altgr
|
||||
dollar 0x05 shift
|
||||
kana_U 0x05 altgr
|
||||
kana_u 0x05 shift altgr
|
||||
percent 0x06 shift
|
||||
kana_E 0x06 altgr
|
||||
kana_e 0x06 shift altgr
|
||||
ampersand 0x07 shift
|
||||
kana_O 0x07 altgr
|
||||
kana_o 0x07 shift altgr
|
||||
apostrophe 0x08 shift
|
||||
kana_YA 0x08 altgr
|
||||
kana_ya 0x08 shift altgr
|
||||
parenleft 0x09 shift
|
||||
kana_YU 0x09 altgr
|
||||
kana_yu 0x09 shift altgr
|
||||
parenright 0x0a shift
|
||||
kana_YO 0x0a altgr
|
||||
kana_yo 0x0a shift altgr
|
||||
asciitilde 0x0b shift
|
||||
kana_WA 0x0b altgr
|
||||
kana_WO 0x0b shift altgr
|
||||
minus 0x0c
|
||||
equal 0x0c shift
|
||||
kana_HO 0x0c altgr
|
||||
asciicircum 0x0d
|
||||
asciitilde 0x0d shift
|
||||
kana_HE 0x0d altgr
|
||||
kana_TA 0x10 altgr
|
||||
kana_TE 0x11 altgr
|
||||
kana_I 0x12 altgr
|
||||
kana_i 0x12 shift altgr
|
||||
kana_SU 0x13 altgr
|
||||
kana_KA 0x14 altgr
|
||||
kana_N 0x15 altgr
|
||||
kana_NA 0x16 altgr
|
||||
kana_NI 0x17 altgr
|
||||
kana_RA 0x18 altgr
|
||||
kana_SE 0x19 altgr
|
||||
at 0x1a
|
||||
grave 0x1a shift
|
||||
voicedsound 0x1a altgr
|
||||
bracketleft 0x1b
|
||||
braceleft 0x1b shift
|
||||
semivoicedsound 0x1b altgr
|
||||
kana_openingbracket 0x1b shift altgr
|
||||
kana_CHI 0x1e altgr
|
||||
kana_TO 0x1f altgr
|
||||
kana_SHI 0x20 altgr
|
||||
kana_HA 0x21 altgr
|
||||
kana_KI 0x22 altgr
|
||||
kana_KU 0x23 altgr
|
||||
kana_MA 0x24 altgr
|
||||
kana_NO 0x25 altgr
|
||||
kana_RI 0x26 altgr
|
||||
semicolon 0x27
|
||||
plus 0x27 shift
|
||||
kana_RE 0x27 altgr
|
||||
colon 0x28
|
||||
asterisk 0x28 shift
|
||||
kana_KE 0x28 altgr
|
||||
Zenkaku_Hankaku 0x29
|
||||
bracketright 0x2b
|
||||
braceright 0x2b shift
|
||||
kana_MU 0x2b altgr
|
||||
kana_closingbracket 0x2b shift altgr
|
||||
kana_TSU 0x2c altgr
|
||||
kana_tsu 0x2c shift altgr
|
||||
kana_SA 0x2d altgr
|
||||
kana_SO 0x2e altgr
|
||||
kana_HI 0x2f altgr
|
||||
kana_KO 0x30 altgr
|
||||
kana_MI 0x31 altgr
|
||||
kana_MO 0x32 altgr
|
||||
comma 0x33
|
||||
less 0x33 shift
|
||||
kana_NE 0x33 altgr
|
||||
kana_comma 0x33 shift altgr
|
||||
period 0x34
|
||||
greater 0x34 shift
|
||||
kana_RU 0x34 altgr
|
||||
kana_fullstop 0x34 shift altgr
|
||||
slash 0x35
|
||||
question 0x35 shift
|
||||
kana_ME 0x35 altgr
|
||||
kana_conjunctive 0x35 shift altgr
|
||||
Eisu_toggle 0x3a shift
|
||||
Execute 0x54 shift
|
||||
Kanji 0x70
|
||||
backslash 0x73
|
||||
bar 0x7d shift
|
||||
underscore 0x73 shift
|
||||
Henkan_Mode 0x79
|
||||
Katakana 0x70
|
||||
Muhenkan 0x7b
|
37
rosapps/applications/net/tsclient/rdesktop/keymaps/ko
Normal file
37
rosapps/applications/net/tsclient/rdesktop/keymaps/ko
Normal file
|
@ -0,0 +1,37 @@
|
|||
# generated from XKB map ko
|
||||
include common
|
||||
map 0xe0010412
|
||||
exclam 0x02 shift
|
||||
at 0x03 shift
|
||||
numbersign 0x04 shift
|
||||
dollar 0x05 shift
|
||||
percent 0x06 shift
|
||||
asciicircum 0x07 shift
|
||||
ampersand 0x08 shift
|
||||
asterisk 0x09 shift
|
||||
parenleft 0x0a shift
|
||||
parenright 0x0b shift
|
||||
minus 0x0c
|
||||
underscore 0x0c shift
|
||||
equal 0x0d
|
||||
plus 0x0d shift
|
||||
bracketleft 0x1a
|
||||
braceleft 0x1a shift
|
||||
bracketright 0x1b
|
||||
braceright 0x1b shift
|
||||
semicolon 0x27
|
||||
colon 0x27 shift
|
||||
apostrophe 0x28
|
||||
quotedbl 0x28 shift
|
||||
grave 0x29
|
||||
asciitilde 0x29 shift
|
||||
backslash 0x2b
|
||||
bar 0x2b shift
|
||||
comma 0x33
|
||||
less 0x33 shift
|
||||
period 0x34
|
||||
greater 0x34 shift
|
||||
slash 0x35
|
||||
question 0x35 shift
|
||||
Hangul 0xf2
|
||||
Hangul_Hanja 0xf1
|
57
rosapps/applications/net/tsclient/rdesktop/keymaps/lt
Normal file
57
rosapps/applications/net/tsclient/rdesktop/keymaps/lt
Normal file
|
@ -0,0 +1,57 @@
|
|||
# generated from XKB map lt
|
||||
include common
|
||||
map 0x427
|
||||
exclam 0x02 shift
|
||||
aogonek 0x02 altgr
|
||||
Aogonek 0x02 shift altgr
|
||||
at 0x03 shift
|
||||
ccaron 0x03 altgr
|
||||
Ccaron 0x03 shift altgr
|
||||
numbersign 0x04 shift
|
||||
eogonek 0x04 altgr
|
||||
Eogonek 0x04 shift altgr
|
||||
dollar 0x05 shift
|
||||
eabovedot 0x05 altgr
|
||||
Eabovedot 0x05 shift altgr
|
||||
percent 0x06 shift
|
||||
iogonek 0x06 altgr
|
||||
Iogonek 0x06 shift altgr
|
||||
asciicircum 0x07 shift
|
||||
scaron 0x07 altgr
|
||||
Scaron 0x07 shift altgr
|
||||
ampersand 0x08 shift
|
||||
uogonek 0x08 altgr
|
||||
Uogonek 0x08 shift altgr
|
||||
asterisk 0x09 shift
|
||||
umacron 0x09 altgr
|
||||
Umacron 0x09 shift altgr
|
||||
parenleft 0x0a shift
|
||||
doublelowquotemark 0x0a altgr
|
||||
parenright 0x0b shift
|
||||
leftdoublequotemark 0x0b altgr
|
||||
minus 0x0c
|
||||
underscore 0x0c shift
|
||||
equal 0x0d
|
||||
plus 0x0d shift
|
||||
zcaron 0x0d altgr
|
||||
Zcaron 0x0d shift altgr
|
||||
bracketleft 0x1a
|
||||
braceleft 0x1a shift
|
||||
bracketright 0x1b
|
||||
braceright 0x1b shift
|
||||
semicolon 0x27
|
||||
colon 0x27 shift
|
||||
apostrophe 0x28
|
||||
quotedbl 0x28 shift
|
||||
grave 0x29
|
||||
asciitilde 0x29 shift
|
||||
backslash 0x2b
|
||||
bar 0x2b shift
|
||||
comma 0x33
|
||||
less 0x33 shift
|
||||
period 0x34
|
||||
greater 0x34 shift
|
||||
slash 0x35
|
||||
question 0x35 shift
|
||||
endash 0x56
|
||||
EuroSign 0x56 shift
|
128
rosapps/applications/net/tsclient/rdesktop/keymaps/lv
Normal file
128
rosapps/applications/net/tsclient/rdesktop/keymaps/lv
Normal file
|
@ -0,0 +1,128 @@
|
|||
# generated from XKB map lv
|
||||
include common
|
||||
map 0x426
|
||||
exclam 0x02 shift
|
||||
onesuperior 0x02 altgr
|
||||
exclamdown 0x02 shift altgr
|
||||
at 0x03 shift
|
||||
twosuperior 0x03 altgr
|
||||
oneeighth 0x03 shift altgr
|
||||
numbersign 0x04 shift
|
||||
threesuperior 0x04 altgr
|
||||
sterling 0x04 shift altgr
|
||||
dollar 0x05 shift
|
||||
EuroSign 0x05 altgr
|
||||
cent 0x05 shift altgr
|
||||
percent 0x06 shift
|
||||
onehalf 0x06 altgr
|
||||
threeeighths 0x06 shift altgr
|
||||
asciicircum 0x07 shift
|
||||
threequarters 0x07 altgr
|
||||
fiveeighths 0x07 shift altgr
|
||||
ampersand 0x08 shift
|
||||
braceleft 0x08 altgr
|
||||
seveneighths 0x08 shift altgr
|
||||
asterisk 0x09 shift
|
||||
bracketleft 0x09 altgr
|
||||
trademark 0x09 shift altgr
|
||||
parenleft 0x0a shift
|
||||
bracketright 0x0a altgr
|
||||
plusminus 0x0a shift altgr
|
||||
parenright 0x0b shift
|
||||
braceright 0x0b altgr
|
||||
degree 0x0b shift altgr
|
||||
minus 0x0c
|
||||
underscore 0x0c shift
|
||||
backslash 0x0c altgr
|
||||
questiondown 0x0c shift altgr
|
||||
equal 0x0d
|
||||
plus 0x0d shift
|
||||
dead_cedilla 0x0d altgr
|
||||
dead_ogonek 0x0d shift altgr
|
||||
at 0x10 altgr
|
||||
Greek_OMEGA 0x10 shift altgr
|
||||
lstroke 0x11 altgr
|
||||
Lstroke 0x11 shift altgr
|
||||
emacron 0x12 altgr
|
||||
Emacron 0x12 shift altgr
|
||||
rcedilla 0x13 altgr
|
||||
Rcedilla 0x13 shift altgr
|
||||
tslash 0x14 altgr
|
||||
Tslash 0x14 shift altgr
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
umacron 0x16 altgr
|
||||
Umacron 0x16 shift altgr
|
||||
imacron 0x17 altgr
|
||||
Imacron 0x17 shift altgr
|
||||
omacron 0x18 altgr
|
||||
Omacron 0x18 shift altgr
|
||||
thorn 0x19 altgr
|
||||
THORN 0x19 shift altgr
|
||||
bracketleft 0x1a
|
||||
braceleft 0x1a shift
|
||||
dead_diaeresis 0x1a altgr
|
||||
dead_abovering 0x1a shift altgr
|
||||
bracketright 0x1b
|
||||
braceright 0x1b shift
|
||||
dead_tilde 0x1b altgr
|
||||
dead_macron 0x1b shift altgr
|
||||
ISO_Next_Group 0x1c shift
|
||||
amacron 0x1e altgr
|
||||
Amacron 0x1e shift altgr
|
||||
scaron 0x1f altgr
|
||||
Scaron 0x1f shift altgr
|
||||
eth 0x20 altgr
|
||||
ETH 0x20 shift altgr
|
||||
dstroke 0x21 altgr
|
||||
ordfeminine 0x21 shift altgr
|
||||
gcedilla 0x22 altgr
|
||||
Gcedilla 0x22 shift altgr
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
kcedilla 0x25 altgr
|
||||
Kcedilla 0x25 shift altgr
|
||||
lcedilla 0x26 altgr
|
||||
Lcedilla 0x26 shift altgr
|
||||
semicolon 0x27
|
||||
colon 0x27 shift
|
||||
dead_acute 0x27 altgr
|
||||
dead_doubleacute 0x27 shift altgr
|
||||
apostrophe 0x28
|
||||
quotedbl 0x28 shift
|
||||
leftdoublequotemark 0x28 altgr
|
||||
doublelowquotemark 0x28 shift altgr
|
||||
grave 0x29
|
||||
asciitilde 0x29 shift
|
||||
notsign 0x29 altgr
|
||||
backslash 0x2b
|
||||
bar 0x2b shift
|
||||
dead_grave 0x2b altgr
|
||||
dead_breve 0x2b shift altgr
|
||||
zcaron 0x2c altgr
|
||||
Zcaron 0x2c shift altgr
|
||||
guillemotright 0x2d altgr
|
||||
greater 0x2d shift altgr
|
||||
ccaron 0x2e altgr
|
||||
Ccaron 0x2e shift altgr
|
||||
leftdoublequotemark 0x2f altgr
|
||||
grave 0x2f shift altgr
|
||||
rightdoublequotemark 0x30 altgr
|
||||
apostrophe 0x30 shift altgr
|
||||
ncedilla 0x31 altgr
|
||||
Ncedilla 0x31 shift altgr
|
||||
mu 0x32 altgr
|
||||
masculine 0x32 shift altgr
|
||||
comma 0x33
|
||||
less 0x33 shift
|
||||
horizconnector 0x33 altgr
|
||||
multiply 0x33 shift altgr
|
||||
period 0x34
|
||||
greater 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
division 0x34 shift altgr
|
||||
slash 0x35
|
||||
question 0x35 shift
|
||||
dead_belowdot 0x35 altgr
|
||||
dead_abovedot 0x35 shift altgr
|
||||
nobreakspace 0x39 altgr
|
101
rosapps/applications/net/tsclient/rdesktop/keymaps/mk
Normal file
101
rosapps/applications/net/tsclient/rdesktop/keymaps/mk
Normal file
|
@ -0,0 +1,101 @@
|
|||
# generated from XKB map mk
|
||||
include common
|
||||
map 0x42f
|
||||
exclam 0x02 shift
|
||||
at 0x03 shift
|
||||
doublelowquotemark 0x03 shift altgr
|
||||
numbersign 0x04 shift
|
||||
leftdoublequotemark 0x04 shift altgr
|
||||
dollar 0x05 shift
|
||||
percent 0x06 shift
|
||||
asciicircum 0x07 shift
|
||||
ampersand 0x08 shift
|
||||
asterisk 0x09 shift
|
||||
parenleft 0x0a shift
|
||||
parenright 0x0b shift
|
||||
minus 0x0c
|
||||
underscore 0x0c shift
|
||||
equal 0x0d
|
||||
plus 0x0d shift
|
||||
Cyrillic_lje 0x10 altgr
|
||||
Cyrillic_LJE 0x10 shift altgr
|
||||
Cyrillic_nje 0x11 altgr
|
||||
Cyrillic_NJE 0x11 shift altgr
|
||||
Cyrillic_ie 0x12 altgr
|
||||
Cyrillic_IE 0x12 shift altgr
|
||||
Cyrillic_er 0x13 altgr
|
||||
Cyrillic_ER 0x13 shift altgr
|
||||
Cyrillic_te 0x14 altgr
|
||||
Cyrillic_TE 0x14 shift altgr
|
||||
Macedonia_dse 0x15 altgr
|
||||
Macedonia_DSE 0x15 shift altgr
|
||||
Cyrillic_u 0x16 altgr
|
||||
Cyrillic_U 0x16 shift altgr
|
||||
Cyrillic_i 0x17 altgr
|
||||
Cyrillic_I 0x17 shift altgr
|
||||
Cyrillic_o 0x18 altgr
|
||||
Cyrillic_O 0x18 shift altgr
|
||||
Cyrillic_pe 0x19 altgr
|
||||
Cyrillic_PE 0x19 shift altgr
|
||||
bracketleft 0x1a
|
||||
braceleft 0x1a shift
|
||||
Cyrillic_sha 0x1a altgr
|
||||
Cyrillic_SHA 0x1a shift altgr
|
||||
bracketright 0x1b
|
||||
braceright 0x1b shift
|
||||
Macedonia_gje 0x1b altgr
|
||||
Macedonia_GJE 0x1b shift altgr
|
||||
Cyrillic_a 0x1e altgr
|
||||
Cyrillic_A 0x1e shift altgr
|
||||
Cyrillic_es 0x1f altgr
|
||||
Cyrillic_ES 0x1f shift altgr
|
||||
Cyrillic_de 0x20 altgr
|
||||
Cyrillic_DE 0x20 shift altgr
|
||||
Cyrillic_ef 0x21 altgr
|
||||
Cyrillic_EF 0x21 shift altgr
|
||||
Cyrillic_ghe 0x22 altgr
|
||||
Cyrillic_GHE 0x22 shift altgr
|
||||
Cyrillic_ha 0x23 altgr
|
||||
Cyrillic_HA 0x23 shift altgr
|
||||
Cyrillic_je 0x24 altgr
|
||||
Cyrillic_JE 0x24 shift altgr
|
||||
Cyrillic_ka 0x25 altgr
|
||||
Cyrillic_KA 0x25 shift altgr
|
||||
Cyrillic_el 0x26 altgr
|
||||
Cyrillic_EL 0x26 shift altgr
|
||||
semicolon 0x27
|
||||
colon 0x27 shift
|
||||
Cyrillic_che 0x27 altgr
|
||||
Cyrillic_CHE 0x27 shift altgr
|
||||
apostrophe 0x28
|
||||
quotedbl 0x28 shift
|
||||
Macedonia_kje 0x28 altgr
|
||||
Macedonia_KJE 0x28 shift altgr
|
||||
grave 0x29
|
||||
asciitilde 0x29 shift
|
||||
backslash 0x2b
|
||||
bar 0x2b shift
|
||||
Cyrillic_zhe 0x2b altgr
|
||||
Cyrillic_ZHE 0x2b shift altgr
|
||||
Cyrillic_ze 0x2c altgr
|
||||
Cyrillic_ZE 0x2c shift altgr
|
||||
Cyrillic_dzhe 0x2d altgr
|
||||
Cyrillic_DZHE 0x2d shift altgr
|
||||
Cyrillic_tse 0x2e altgr
|
||||
Cyrillic_TSE 0x2e shift altgr
|
||||
Cyrillic_ve 0x2f altgr
|
||||
Cyrillic_VE 0x2f shift altgr
|
||||
Cyrillic_be 0x30 altgr
|
||||
Cyrillic_BE 0x30 shift altgr
|
||||
Cyrillic_en 0x31 altgr
|
||||
Cyrillic_EN 0x31 shift altgr
|
||||
Cyrillic_em 0x32 altgr
|
||||
Cyrillic_EM 0x32 shift altgr
|
||||
comma 0x33
|
||||
less 0x33 shift
|
||||
semicolon 0x33 shift altgr
|
||||
period 0x34
|
||||
greater 0x34 shift
|
||||
colon 0x34 shift altgr
|
||||
slash 0x35
|
||||
question 0x35 shift
|
18
rosapps/applications/net/tsclient/rdesktop/keymaps/modifiers
Normal file
18
rosapps/applications/net/tsclient/rdesktop/keymaps/modifiers
Normal file
|
@ -0,0 +1,18 @@
|
|||
Shift_R 0x36
|
||||
Shift_L 0x2a
|
||||
|
||||
Alt_R 0xb8
|
||||
Mode_switch 0xb8
|
||||
ISO_Level3_Shift 0xb8
|
||||
|
||||
Alt_L 0x38
|
||||
|
||||
Control_R 0x9d
|
||||
Control_L 0x1d
|
||||
|
||||
# Translate Meta, Super and Hyper to Windows keys.
|
||||
# This is hardcoded. See documentation for details.
|
||||
|
||||
# Translate Menu to the Windows Application key.
|
||||
# This one does not work either.
|
||||
Menu 0xdd
|
60
rosapps/applications/net/tsclient/rdesktop/keymaps/nl
Normal file
60
rosapps/applications/net/tsclient/rdesktop/keymaps/nl
Normal file
|
@ -0,0 +1,60 @@
|
|||
# Dutch (Netherlands)
|
||||
include common
|
||||
map 0x413
|
||||
|
||||
exclam 0x02 shift
|
||||
onesuperior 0x02 altgr
|
||||
quotebl 0x03 shift
|
||||
twosuperior 0x03 altgr
|
||||
numbersign 0x04 shift
|
||||
threesuperior 0x04 altgr
|
||||
dollar 0x05 shift
|
||||
onequarter 0x05 altgr
|
||||
percent 0x06 shift
|
||||
onehalf 0x06 altgr
|
||||
ampersand 0x07 shift
|
||||
threequarters 0x07 altgr
|
||||
underscore 0x08 shift
|
||||
sterling 0x08 altgr
|
||||
parenleft 0x09 shift
|
||||
braceleft 0x09 altgr
|
||||
parenright 0x0a shift
|
||||
braceright 0x0a altgr
|
||||
apostrophe 0x0b shift
|
||||
slash 0x0c
|
||||
question 0x0c shift
|
||||
backslash 0x0c altgr
|
||||
degree 0x0d
|
||||
dead_tilde 0x0d shift
|
||||
dead_cedilla 0x0d altgr
|
||||
EuroSign 0x12 altgr
|
||||
paragraph 0x13 altgr
|
||||
dead_diaeresis 0x1a
|
||||
dead_circumflex 0x1a shift
|
||||
asterisk 0x1b
|
||||
bar 0x1b shift
|
||||
ssharp 0x1f altgr
|
||||
plus 0x27
|
||||
plusminus 0x27 shift
|
||||
dead_acute 0x28
|
||||
dead_grave 0x28 shift
|
||||
at 0x29
|
||||
section 0x29 shift
|
||||
notsign 0x29 altgr
|
||||
less 0x2b
|
||||
greater 0x2b shift
|
||||
guillemotleft 0x2c altgr
|
||||
guillemotright 0x2d altgr
|
||||
copyright 0x2e altgr
|
||||
mu 0x32 altgr
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
hyphen 0x35
|
||||
equal 0x35 shift
|
||||
bracketright 0x56
|
||||
bracketleft 0x56 shift
|
||||
brokenbar 0x56 altgr
|
||||
|
142
rosapps/applications/net/tsclient/rdesktop/keymaps/nl-be
Normal file
142
rosapps/applications/net/tsclient/rdesktop/keymaps/nl-be
Normal file
|
@ -0,0 +1,142 @@
|
|||
# Dutch (Belgium)
|
||||
map 0x813
|
||||
include common
|
||||
ampersand 0x02
|
||||
1 0x02 shift
|
||||
bar 0x02 altgr
|
||||
exclamdown 0x02 shift altgr
|
||||
eacute 0x03
|
||||
2 0x03 shift
|
||||
at 0x03 altgr
|
||||
oneeighth 0x03 shift altgr
|
||||
quotedbl 0x04
|
||||
3 0x04 shift
|
||||
numbersign 0x04 altgr
|
||||
sterling 0x04 shift altgr
|
||||
apostrophe 0x05
|
||||
4 0x05 shift
|
||||
onequarter 0x05 altgr
|
||||
dollar 0x05 shift altgr
|
||||
parenleft 0x06
|
||||
5 0x06 shift
|
||||
onehalf 0x06 altgr
|
||||
threeeighths 0x06 shift altgr
|
||||
section 0x07
|
||||
6 0x07 shift
|
||||
asciicircum 0x07 altgr
|
||||
fiveeighths 0x07 shift altgr
|
||||
egrave 0x08
|
||||
7 0x08 shift
|
||||
braceleft 0x08 altgr
|
||||
seveneighths 0x08 shift altgr
|
||||
exclam 0x09
|
||||
8 0x09 shift
|
||||
bracketleft 0x09 altgr
|
||||
trademark 0x09 shift altgr
|
||||
ccedilla 0x0a
|
||||
9 0x0a shift
|
||||
braceleft 0x0a altgr
|
||||
plusminus 0x0a shift altgr
|
||||
agrave 0x0b
|
||||
0 0x0b shift
|
||||
braceright 0x0b altgr
|
||||
degree 0x0b shift altgr
|
||||
parenright 0x0c
|
||||
degree 0x0c shift
|
||||
backslash 0x0c altgr
|
||||
questiondown 0x0c shift altgr
|
||||
minus 0x0d
|
||||
underscore 0x0d shift
|
||||
dead_cedilla 0x0d altgr
|
||||
dead_ogonek 0x0d shift altgr
|
||||
a 0x10 addupper
|
||||
# at 0x10 altgr
|
||||
Greek_OMEGA 0x10 shift altgr
|
||||
z 0x11 addupper
|
||||
lstroke 0x11 altgr
|
||||
Lstroke 0x11 shift altgr
|
||||
EuroSign 0x12 altgr
|
||||
cent 0x12 shift altgr
|
||||
paragraph 0x13 altgr
|
||||
registered 0x13 shift altgr
|
||||
tslash 0x14 altgr
|
||||
Tslash 0x14 shift altgr
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
downarrow 0x16 altgr
|
||||
uparrow 0x16 shift altgr
|
||||
rightarrow 0x17 altgr
|
||||
idotless 0x17 shift altgr
|
||||
oslash 0x18 altgr
|
||||
Ooblique 0x18 shift altgr
|
||||
thorn 0x19 altgr
|
||||
THORN 0x19 shift altgr
|
||||
dead_circumflex 0x1a
|
||||
dead_diaeresis 0x1a shift
|
||||
bracketleft 0x1a altgr
|
||||
dead_abovering 0x1a shift altgr
|
||||
dollar 0x1b
|
||||
asterisk 0x1b shift
|
||||
bracketright 0x1b altgr
|
||||
dead_macron 0x1b shift altgr
|
||||
q 0x1e addupper
|
||||
ae 0x1e altgr
|
||||
AE 0x1e shift altgr
|
||||
ssharp 0x1f altgr
|
||||
section 0x1f shift altgr
|
||||
eth 0x20 altgr
|
||||
ETH 0x20 shift altgr
|
||||
dstroke 0x21 altgr
|
||||
ordfeminine 0x21 shift altgr
|
||||
eng 0x22 altgr
|
||||
ENG 0x22 shift altgr
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
kra 0x25 altgr
|
||||
# ampersand 0x25 shift altgr
|
||||
lstroke 0x26 altgr
|
||||
Lstroke 0x26 shift altgr
|
||||
m 0x27 addupper
|
||||
dead_acute 0x27 altgr
|
||||
dead_doubleacute 0x27 shift altgr
|
||||
ugrave 0x28
|
||||
percent 0x28 shift
|
||||
dead_acute 0x28 altgr
|
||||
dead_caron 0x28 shift altgr
|
||||
twosuperior 0x29
|
||||
threesuperior 0x29 shift
|
||||
notsign 0x29 altgr
|
||||
mu 0x2b
|
||||
sterling 0x2b shift
|
||||
dead_grave 0x2b altgr
|
||||
dead_breve 0x2b shift altgr
|
||||
w 0x2c addupper
|
||||
guillemotleft 0x2c altgr
|
||||
less 0x2c shift altgr
|
||||
guillemotright 0x2d altgr
|
||||
greater 0x2d shift altgr
|
||||
cent 0x2e altgr
|
||||
copyright 0x2e shift altgr
|
||||
leftdoublequotemark 0x2f altgr
|
||||
grave 0x2f shift altgr
|
||||
rightdoublequotemark 0x30 altgr
|
||||
# apostrophe 0x30 shift altgr
|
||||
comma 0x32
|
||||
question 0x32 shift
|
||||
dead_cedilla 0x32 altgr
|
||||
masculine 0x32 shift altgr
|
||||
semicolon 0x33
|
||||
period 0x33 shift
|
||||
horizconnector 0x33 altgr
|
||||
multiply 0x33 shift altgr
|
||||
colon 0x34
|
||||
slash 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
division 0x34 shift altgr
|
||||
equal 0x35
|
||||
plus 0x35 shift
|
||||
dead_tilde 0x35 altgr
|
||||
dead_abovedot 0x35 shift altgr
|
||||
backslash 0x56 altgr
|
||||
less 0x56
|
||||
greater 0x56 shift
|
119
rosapps/applications/net/tsclient/rdesktop/keymaps/no
Normal file
119
rosapps/applications/net/tsclient/rdesktop/keymaps/no
Normal file
|
@ -0,0 +1,119 @@
|
|||
# generated from XKB map no
|
||||
include common
|
||||
map 0x414
|
||||
exclam 0x02 shift
|
||||
exclamdown 0x02 altgr
|
||||
onesuperior 0x02 shift altgr
|
||||
quotedbl 0x03 shift
|
||||
at 0x03 altgr
|
||||
twosuperior 0x03 shift altgr
|
||||
numbersign 0x04 shift
|
||||
sterling 0x04 altgr
|
||||
threesuperior 0x04 shift altgr
|
||||
currency 0x05 shift
|
||||
dollar 0x05 altgr
|
||||
onequarter 0x05 shift altgr
|
||||
percent 0x06 shift
|
||||
onehalf 0x06 altgr
|
||||
cent 0x06 shift altgr
|
||||
ampersand 0x07 shift
|
||||
yen 0x07 altgr
|
||||
fiveeighths 0x07 shift altgr
|
||||
slash 0x08 shift
|
||||
braceleft 0x08 altgr
|
||||
division 0x08 shift altgr
|
||||
parenleft 0x09 shift
|
||||
bracketleft 0x09 altgr
|
||||
guillemotleft 0x09 shift altgr
|
||||
parenright 0x0a shift
|
||||
bracketright 0x0a altgr
|
||||
guillemotright 0x0a shift altgr
|
||||
equal 0x0b shift
|
||||
braceright 0x0b altgr
|
||||
degree 0x0b shift altgr
|
||||
plus 0x0c
|
||||
question 0x0c shift
|
||||
plusminus 0x0c altgr
|
||||
questiondown 0x0c shift altgr
|
||||
backslash 0x0d
|
||||
dead_grave 0x0d shift
|
||||
dead_acute 0x0d altgr
|
||||
notsign 0x0d shift altgr
|
||||
Greek_OMEGA 0x10 shift altgr
|
||||
lstroke 0x11 altgr
|
||||
Lstroke 0x11 shift altgr
|
||||
EuroSign 0x12 altgr
|
||||
cent 0x12 shift altgr
|
||||
registered 0x13 altgr
|
||||
thorn 0x14 altgr
|
||||
THORN 0x14 shift altgr
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
downarrow 0x16 altgr
|
||||
uparrow 0x16 shift altgr
|
||||
rightarrow 0x17 altgr
|
||||
idotless 0x17 shift altgr
|
||||
oe 0x18 altgr
|
||||
OE 0x18 shift altgr
|
||||
thorn 0x19 altgr
|
||||
THORN 0x19 shift altgr
|
||||
aring 0x1a
|
||||
Aring 0x1a shift
|
||||
dead_diaeresis 0x1a altgr
|
||||
dead_abovering 0x1a shift altgr
|
||||
dead_diaeresis 0x1b
|
||||
dead_circumflex 0x1b shift
|
||||
asciicircum 0x01b shift
|
||||
dead_tilde 0x1b altgr
|
||||
asciitilde 0x1b altgr
|
||||
dead_caron 0x1b shift altgr
|
||||
ordfeminine 0x1e altgr
|
||||
masculine 0x1e shift altgr
|
||||
ssharp 0x1f altgr
|
||||
section 0x1f shift altgr
|
||||
eth 0x20 altgr
|
||||
ETH 0x20 shift altgr
|
||||
dstroke 0x21 altgr
|
||||
ordfeminine 0x21 shift altgr
|
||||
eng 0x22 altgr
|
||||
ENG 0x22 shift altgr
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
kra 0x25 altgr
|
||||
lstroke 0x26 altgr
|
||||
Lstroke 0x26 shift altgr
|
||||
oslash 0x27
|
||||
Ooblique 0x27 shift
|
||||
dead_doubleacute 0x27 shift altgr
|
||||
ae 0x28
|
||||
AE 0x28 shift
|
||||
dead_caron 0x28 shift altgr
|
||||
bar 0x29
|
||||
section 0x29 shift
|
||||
brokenbar 0x29 altgr
|
||||
paragraph 0x29 shift altgr
|
||||
apostrophe 0x2b
|
||||
asterisk 0x2b shift
|
||||
multiply 0x2b shift altgr
|
||||
guillemotleft 0x2c altgr
|
||||
guillemotright 0x2d altgr
|
||||
copyright 0x2e altgr
|
||||
leftdoublequotemark 0x2f altgr
|
||||
rightdoublequotemark 0x30 altgr
|
||||
mu 0x32 altgr
|
||||
masculine 0x32 shift altgr
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
dead_cedilla 0x33 altgr
|
||||
dead_ogonek 0x33 shift altgr
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
dead_abovedot 0x34 shift altgr
|
||||
minus 0x35
|
||||
underscore 0x35 shift
|
||||
hyphen 0x35 altgr
|
||||
macron 0x35 shift altgr
|
||||
nobreakspace 0x39 altgr
|
||||
onehalf 0x56 altgr
|
||||
threequarters 0x56 shift altgr
|
122
rosapps/applications/net/tsclient/rdesktop/keymaps/pl
Normal file
122
rosapps/applications/net/tsclient/rdesktop/keymaps/pl
Normal file
|
@ -0,0 +1,122 @@
|
|||
# generated from XKB map pl
|
||||
include common
|
||||
map 0x415
|
||||
exclam 0x02 shift
|
||||
onesuperior 0x02 altgr
|
||||
exclamdown 0x02 shift altgr
|
||||
at 0x03 shift
|
||||
twosuperior 0x03 altgr
|
||||
oneeighth 0x03 shift altgr
|
||||
numbersign 0x04 shift
|
||||
threesuperior 0x04 altgr
|
||||
sterling 0x04 shift altgr
|
||||
dollar 0x05 shift
|
||||
onequarter 0x05 altgr
|
||||
percent 0x06 shift
|
||||
onehalf 0x06 altgr
|
||||
threeeighths 0x06 shift altgr
|
||||
asciicircum 0x07 shift
|
||||
threequarters 0x07 altgr
|
||||
fiveeighths 0x07 shift altgr
|
||||
ampersand 0x08 shift
|
||||
braceleft 0x08 altgr
|
||||
seveneighths 0x08 shift altgr
|
||||
asterisk 0x09 shift
|
||||
bracketleft 0x09 altgr
|
||||
trademark 0x09 shift altgr
|
||||
parenleft 0x0a shift
|
||||
bracketright 0x0a altgr
|
||||
plusminus 0x0a shift altgr
|
||||
parenright 0x0b shift
|
||||
braceright 0x0b altgr
|
||||
degree 0x0b shift altgr
|
||||
minus 0x0c
|
||||
underscore 0x0c shift
|
||||
backslash 0x0c altgr
|
||||
questiondown 0x0c shift altgr
|
||||
equal 0x0d
|
||||
plus 0x0d shift
|
||||
dead_cedilla 0x0d altgr
|
||||
dead_ogonek 0x0d shift altgr
|
||||
Greek_OMEGA 0x10 shift altgr
|
||||
lstroke 0x11 altgr
|
||||
Lstroke 0x11 shift altgr
|
||||
eogonek 0x12 altgr
|
||||
Eogonek 0x12 shift altgr
|
||||
paragraph 0x13 altgr
|
||||
registered 0x13 shift altgr
|
||||
tslash 0x14 altgr
|
||||
Tslash 0x14 shift altgr
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
EuroSign 0x16 altgr
|
||||
uparrow 0x16 shift altgr
|
||||
rightarrow 0x17 altgr
|
||||
idotless 0x17 shift altgr
|
||||
oacute 0x18 altgr
|
||||
Oacute 0x18 shift altgr
|
||||
thorn 0x19 altgr
|
||||
THORN 0x19 shift altgr
|
||||
bracketleft 0x1a
|
||||
braceleft 0x1a shift
|
||||
dead_diaeresis 0x1a altgr
|
||||
dead_abovering 0x1a shift altgr
|
||||
bracketright 0x1b
|
||||
braceright 0x1b shift
|
||||
dead_tilde 0x1b altgr
|
||||
dead_macron 0x1b shift altgr
|
||||
aogonek 0x1e altgr
|
||||
Aogonek 0x1e shift altgr
|
||||
sacute 0x1f altgr
|
||||
Sacute 0x1f shift altgr
|
||||
eth 0x20 altgr
|
||||
ETH 0x20 shift altgr
|
||||
dstroke 0x21 altgr
|
||||
ordfeminine 0x21 shift altgr
|
||||
eng 0x22 altgr
|
||||
ENG 0x22 shift altgr
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
kra 0x25 altgr
|
||||
lstroke 0x26 altgr
|
||||
Lstroke 0x26 shift altgr
|
||||
semicolon 0x27
|
||||
colon 0x27 shift
|
||||
dead_acute 0x27 altgr
|
||||
dead_doubleacute 0x27 shift altgr
|
||||
apostrophe 0x28
|
||||
quotedbl 0x28 shift
|
||||
dead_circumflex 0x28 altgr
|
||||
dead_caron 0x28 shift altgr
|
||||
grave 0x29
|
||||
asciitilde 0x29 shift
|
||||
notsign 0x29 altgr
|
||||
backslash 0x2b
|
||||
bar 0x2b shift
|
||||
dead_grave 0x2b altgr
|
||||
dead_breve 0x2b shift altgr
|
||||
zabovedot 0x2c altgr
|
||||
Zabovedot 0x2c shift altgr
|
||||
zacute 0x2d altgr
|
||||
Zacute 0x2d shift altgr
|
||||
cacute 0x2e altgr
|
||||
Cacute 0x2e shift altgr
|
||||
leftdoublequotemark 0x2f altgr
|
||||
grave 0x2f shift altgr
|
||||
rightdoublequotemark 0x30 altgr
|
||||
nacute 0x31 altgr
|
||||
Nacute 0x31 shift altgr
|
||||
mu 0x32 altgr
|
||||
masculine 0x32 shift altgr
|
||||
comma 0x33
|
||||
less 0x33 shift
|
||||
horizconnector 0x33 altgr
|
||||
multiply 0x33 shift altgr
|
||||
period 0x34
|
||||
greater 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
division 0x34 shift altgr
|
||||
slash 0x35
|
||||
question 0x35 shift
|
||||
dead_belowdot 0x35 altgr
|
||||
dead_abovedot 0x35 shift altgr
|
113
rosapps/applications/net/tsclient/rdesktop/keymaps/pt
Normal file
113
rosapps/applications/net/tsclient/rdesktop/keymaps/pt
Normal file
|
@ -0,0 +1,113 @@
|
|||
# generated from XKB map pt
|
||||
include common
|
||||
map 0x816
|
||||
exclam 0x02 shift
|
||||
onesuperior 0x02 altgr
|
||||
exclamdown 0x02 shift altgr
|
||||
quotedbl 0x03 shift
|
||||
at 0x03 altgr
|
||||
oneeighth 0x03 shift altgr
|
||||
numbersign 0x04 shift
|
||||
sterling 0x04 altgr
|
||||
dollar 0x05 shift
|
||||
section 0x05 altgr
|
||||
percent 0x06 shift
|
||||
onehalf 0x06 altgr
|
||||
threeeighths 0x06 shift altgr
|
||||
ampersand 0x07 shift
|
||||
threequarters 0x07 altgr
|
||||
fiveeighths 0x07 shift altgr
|
||||
slash 0x08 shift
|
||||
braceleft 0x08 altgr
|
||||
seveneighths 0x08 shift altgr
|
||||
parenleft 0x09 shift
|
||||
bracketleft 0x09 altgr
|
||||
trademark 0x09 shift altgr
|
||||
parenright 0x0a shift
|
||||
bracketright 0x0a altgr
|
||||
plusminus 0x0a shift altgr
|
||||
equal 0x0b shift
|
||||
braceright 0x0b altgr
|
||||
degree 0x0b shift altgr
|
||||
apostrophe 0x0c
|
||||
question 0x0c shift
|
||||
backslash 0x0c altgr
|
||||
questiondown 0x0c shift altgr
|
||||
guillemotleft 0x0d
|
||||
guillemotright 0x0d shift
|
||||
dead_cedilla 0x0d altgr
|
||||
dead_ogonek 0x0d shift altgr
|
||||
Greek_OMEGA 0x10 shift altgr
|
||||
lstroke 0x11 altgr
|
||||
Lstroke 0x11 shift altgr
|
||||
EuroSign 0x12 altgr
|
||||
cent 0x12 shift altgr
|
||||
paragraph 0x13 altgr
|
||||
registered 0x13 shift altgr
|
||||
tslash 0x14 altgr
|
||||
Tslash 0x14 shift altgr
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
downarrow 0x16 altgr
|
||||
uparrow 0x16 shift altgr
|
||||
rightarrow 0x17 altgr
|
||||
idotless 0x17 shift altgr
|
||||
oslash 0x18 altgr
|
||||
Ooblique 0x18 shift altgr
|
||||
thorn 0x19 altgr
|
||||
THORN 0x19 shift altgr
|
||||
plus 0x1a
|
||||
asterisk 0x1a shift
|
||||
dead_diaeresis 0x1a altgr
|
||||
dead_abovering 0x1a shift altgr
|
||||
dead_acute 0x1b
|
||||
dead_grave 0x1b shift
|
||||
dead_tilde 0x1b altgr
|
||||
dead_macron 0x1b shift altgr
|
||||
ae 0x1e altgr
|
||||
AE 0x1e shift altgr
|
||||
ssharp 0x1f altgr
|
||||
eth 0x20 altgr
|
||||
ETH 0x20 shift altgr
|
||||
dstroke 0x21 altgr
|
||||
ordfeminine 0x21 shift altgr
|
||||
eng 0x22 altgr
|
||||
ENG 0x22 shift altgr
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
kra 0x25 altgr
|
||||
lstroke 0x26 altgr
|
||||
Lstroke 0x26 shift altgr
|
||||
ccedilla 0x27
|
||||
Ccedilla 0x27 shift
|
||||
dead_doubleacute 0x27 shift altgr
|
||||
masculine 0x28
|
||||
ordfeminine 0x28 shift
|
||||
dead_circumflex 0x28 altgr
|
||||
dead_caron 0x28 shift altgr
|
||||
backslash 0x29
|
||||
bar 0x29 shift
|
||||
notsign 0x29 altgr
|
||||
dead_tilde 0x2b
|
||||
dead_circumflex 0x2b shift
|
||||
dead_breve 0x2b shift altgr
|
||||
less 0x56
|
||||
greater 0x56 shift
|
||||
cent 0x2e altgr
|
||||
copyright 0x2e shift altgr
|
||||
leftdoublequotemark 0x2f altgr
|
||||
grave 0x2f shift altgr
|
||||
rightdoublequotemark 0x30 altgr
|
||||
mu 0x32 altgr
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
horizconnector 0x33 altgr
|
||||
multiply 0x33 shift altgr
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
division 0x34 shift altgr
|
||||
minus 0x35
|
||||
underscore 0x35 shift
|
||||
dead_belowdot 0x35 altgr
|
||||
dead_abovedot 0x35 shift altgr
|
69
rosapps/applications/net/tsclient/rdesktop/keymaps/pt-br
Normal file
69
rosapps/applications/net/tsclient/rdesktop/keymaps/pt-br
Normal file
|
@ -0,0 +1,69 @@
|
|||
# generated from XKB map br
|
||||
include common
|
||||
map 0x416
|
||||
exclam 0x02 shift
|
||||
onesuperior 0x02 altgr
|
||||
exclamdown 0x02 shift altgr
|
||||
at 0x03 shift
|
||||
twosuperior 0x03 altgr
|
||||
onehalf 0x03 shift altgr
|
||||
numbersign 0x04 shift
|
||||
threesuperior 0x04 altgr
|
||||
threequarters 0x04 shift altgr
|
||||
dollar 0x05 shift
|
||||
sterling 0x05 altgr
|
||||
onequarter 0x05 shift altgr
|
||||
percent 0x06 shift
|
||||
cent 0x06 altgr
|
||||
dead_diaeresis 0x07 shift
|
||||
notsign 0x07 altgr
|
||||
diaeresis 0x07 shift altgr
|
||||
ampersand 0x08 shift
|
||||
braceleft 0x08 altgr
|
||||
asterisk 0x09 shift
|
||||
bracketleft 0x09 altgr
|
||||
parenleft 0x0a shift
|
||||
bracketright 0x0a altgr
|
||||
parenright 0x0b shift
|
||||
braceright 0x0b altgr
|
||||
minus 0x0c
|
||||
underscore 0x0c shift
|
||||
backslash 0x0c altgr
|
||||
equal 0x0d
|
||||
plus 0x0d shift
|
||||
section 0x0d altgr
|
||||
EuroSign 0x12 altgr
|
||||
registered 0x13 altgr
|
||||
dead_acute 0x1a
|
||||
dead_grave 0x1a shift
|
||||
acute 0x1a altgr
|
||||
grave 0x1a shift altgr
|
||||
bracketleft 0x1b
|
||||
braceleft 0x1b shift
|
||||
ordfeminine 0x1b altgr
|
||||
ccedilla 0x27
|
||||
Ccedilla 0x27 shift
|
||||
dead_tilde 0x28
|
||||
dead_circumflex 0x28 shift
|
||||
asciitilde 0x28 altgr
|
||||
asciicircum 0x28 shift altgr
|
||||
apostrophe 0x29
|
||||
quotedbl 0x29 shift
|
||||
bracketright 0x2b
|
||||
braceright 0x2b shift
|
||||
masculine 0x2b altgr
|
||||
copyright 0x2e altgr
|
||||
mu 0x32 altgr
|
||||
comma 0x33
|
||||
less 0x33 shift
|
||||
period 0x34
|
||||
greater 0x34 shift
|
||||
semicolon 0x35
|
||||
colon 0x35 shift
|
||||
comma 0x53 numlock
|
||||
backslash 0x56
|
||||
bar 0x56 shift
|
||||
slash 0x73
|
||||
question 0x73 shift
|
||||
degree 0x73 altgr
|
||||
KP_Decimal 0x34
|
109
rosapps/applications/net/tsclient/rdesktop/keymaps/ru
Normal file
109
rosapps/applications/net/tsclient/rdesktop/keymaps/ru
Normal file
|
@ -0,0 +1,109 @@
|
|||
# generated from XKB map ru
|
||||
include common
|
||||
map 0x419
|
||||
exclam 0x02 shift
|
||||
at 0x03 shift
|
||||
quotedbl 0x03 shift altgr
|
||||
numbersign 0x04 shift
|
||||
dollar 0x05 shift
|
||||
asterisk 0x05 shift altgr
|
||||
percent 0x06 shift
|
||||
colon 0x06 shift altgr
|
||||
asciicircum 0x07 shift
|
||||
comma 0x07 shift altgr
|
||||
ampersand 0x08 shift
|
||||
period 0x08 shift altgr
|
||||
asterisk 0x09 shift
|
||||
semicolon 0x09 shift altgr
|
||||
parenleft 0x0a shift
|
||||
parenright 0x0b shift
|
||||
minus 0x0c
|
||||
underscore 0x0c shift
|
||||
equal 0x0d
|
||||
plus 0x0d shift
|
||||
Cyrillic_shorti 0x10 altgr
|
||||
Cyrillic_SHORTI 0x10 shift altgr
|
||||
Cyrillic_tse 0x11 altgr
|
||||
Cyrillic_TSE 0x11 shift altgr
|
||||
Cyrillic_u 0x12 altgr
|
||||
Cyrillic_U 0x12 shift altgr
|
||||
Cyrillic_ka 0x13 altgr
|
||||
Cyrillic_KA 0x13 shift altgr
|
||||
Cyrillic_ie 0x14 altgr
|
||||
Cyrillic_IE 0x14 shift altgr
|
||||
Cyrillic_en 0x15 altgr
|
||||
Cyrillic_EN 0x15 shift altgr
|
||||
Cyrillic_ghe 0x16 altgr
|
||||
Cyrillic_GHE 0x16 shift altgr
|
||||
Cyrillic_sha 0x17 altgr
|
||||
Cyrillic_SHA 0x17 shift altgr
|
||||
Cyrillic_shcha 0x18 altgr
|
||||
Cyrillic_SHCHA 0x18 shift altgr
|
||||
Cyrillic_ze 0x19 altgr
|
||||
Cyrillic_ZE 0x19 shift altgr
|
||||
bracketleft 0x1a
|
||||
braceleft 0x1a shift
|
||||
Cyrillic_ha 0x1a altgr
|
||||
Cyrillic_HA 0x1a shift altgr
|
||||
bracketright 0x1b
|
||||
braceright 0x1b shift
|
||||
Cyrillic_hardsign 0x1b altgr
|
||||
Cyrillic_HARDSIGN 0x1b shift altgr
|
||||
Cyrillic_ef 0x1e altgr
|
||||
Cyrillic_EF 0x1e shift altgr
|
||||
Cyrillic_yeru 0x1f altgr
|
||||
Cyrillic_YERU 0x1f shift altgr
|
||||
Cyrillic_ve 0x20 altgr
|
||||
Cyrillic_VE 0x20 shift altgr
|
||||
Cyrillic_a 0x21 altgr
|
||||
Cyrillic_A 0x21 shift altgr
|
||||
Cyrillic_pe 0x22 altgr
|
||||
Cyrillic_PE 0x22 shift altgr
|
||||
Cyrillic_er 0x23 altgr
|
||||
Cyrillic_ER 0x23 shift altgr
|
||||
Cyrillic_o 0x24 altgr
|
||||
Cyrillic_O 0x24 shift altgr
|
||||
Cyrillic_el 0x25 altgr
|
||||
Cyrillic_EL 0x25 shift altgr
|
||||
Cyrillic_de 0x26 altgr
|
||||
Cyrillic_DE 0x26 shift altgr
|
||||
semicolon 0x27
|
||||
colon 0x27 shift
|
||||
Cyrillic_zhe 0x27 altgr
|
||||
Cyrillic_ZHE 0x27 shift altgr
|
||||
apostrophe 0x28
|
||||
quotedbl 0x28 shift
|
||||
Cyrillic_e 0x28 altgr
|
||||
Cyrillic_E 0x28 shift altgr
|
||||
grave 0x29
|
||||
asciitilde 0x29 shift
|
||||
Cyrillic_io 0x29 altgr
|
||||
Cyrillic_IO 0x29 shift altgr
|
||||
backslash 0x2b
|
||||
bar 0x2b shift
|
||||
Cyrillic_ya 0x2c altgr
|
||||
Cyrillic_YA 0x2c shift altgr
|
||||
Cyrillic_che 0x2d altgr
|
||||
Cyrillic_CHE 0x2d shift altgr
|
||||
Cyrillic_es 0x2e altgr
|
||||
Cyrillic_ES 0x2e shift altgr
|
||||
Cyrillic_em 0x2f altgr
|
||||
Cyrillic_EM 0x2f shift altgr
|
||||
Cyrillic_i 0x30 altgr
|
||||
Cyrillic_I 0x30 shift altgr
|
||||
Cyrillic_te 0x31 altgr
|
||||
Cyrillic_TE 0x31 shift altgr
|
||||
Cyrillic_softsign 0x32 altgr
|
||||
Cyrillic_SOFTSIGN 0x32 shift altgr
|
||||
comma 0x33
|
||||
less 0x33 shift
|
||||
Cyrillic_be 0x33 altgr
|
||||
Cyrillic_BE 0x33 shift altgr
|
||||
period 0x34
|
||||
greater 0x34 shift
|
||||
Cyrillic_yu 0x34 altgr
|
||||
Cyrillic_YU 0x34 shift altgr
|
||||
slash 0x35
|
||||
question 0x35 shift
|
||||
slash 0x56 altgr
|
||||
bar 0x56 shift altgr
|
110
rosapps/applications/net/tsclient/rdesktop/keymaps/sl
Normal file
110
rosapps/applications/net/tsclient/rdesktop/keymaps/sl
Normal file
|
@ -0,0 +1,110 @@
|
|||
# generated from XKB map sl
|
||||
include common
|
||||
map 0x424
|
||||
exclam 0x02 shift
|
||||
asciitilde 0x02 altgr
|
||||
dead_tilde 0x02 shift altgr
|
||||
quotedbl 0x03 shift
|
||||
dead_caron 0x03 altgr
|
||||
caron 0x03 shift altgr
|
||||
numbersign 0x04 shift
|
||||
asciicircum 0x04 altgr
|
||||
dead_circumflex 0x04 shift altgr
|
||||
dollar 0x05 shift
|
||||
dead_breve 0x05 altgr
|
||||
breve 0x05 shift altgr
|
||||
percent 0x06 shift
|
||||
degree 0x06 altgr
|
||||
dead_abovering 0x06 shift altgr
|
||||
ampersand 0x07 shift
|
||||
dead_ogonek 0x07 altgr
|
||||
ogonek 0x07 shift altgr
|
||||
slash 0x08 shift
|
||||
grave 0x08 altgr
|
||||
dead_grave 0x08 shift altgr
|
||||
parenleft 0x09 shift
|
||||
dead_abovedot 0x09 altgr
|
||||
abovedot 0x09 shift altgr
|
||||
parenright 0x0a shift
|
||||
dead_acute 0x0a altgr
|
||||
equal 0x0b shift
|
||||
dead_doubleacute 0x0b altgr
|
||||
doubleacute 0x0b shift altgr
|
||||
apostrophe 0x0c
|
||||
question 0x0c shift
|
||||
dead_diaeresis 0x0c altgr
|
||||
diaeresis 0x0c shift altgr
|
||||
plus 0x0d
|
||||
asterisk 0x0d shift
|
||||
dead_cedilla 0x0d altgr
|
||||
cedilla 0x0d shift altgr
|
||||
backslash 0x10 altgr
|
||||
Greek_OMEGA 0x10 shift altgr
|
||||
bar 0x11 altgr
|
||||
Lstroke 0x11 shift altgr
|
||||
EuroSign 0x12 altgr
|
||||
paragraph 0x13 altgr
|
||||
registered 0x13 shift altgr
|
||||
tslash 0x14 altgr
|
||||
Tslash 0x14 shift altgr
|
||||
z 0x15 addupper
|
||||
leftarrow 0x15 altgr
|
||||
yen 0x15 shift altgr
|
||||
downarrow 0x16 altgr
|
||||
uparrow 0x16 shift altgr
|
||||
rightarrow 0x17 altgr
|
||||
idotless 0x17 shift altgr
|
||||
oslash 0x18 altgr
|
||||
Ooblique 0x18 shift altgr
|
||||
thorn 0x19 altgr
|
||||
THORN 0x19 shift altgr
|
||||
scaron 0x1a
|
||||
Scaron 0x1a shift
|
||||
division 0x1a altgr
|
||||
dstroke 0x1b
|
||||
Dstroke 0x1b shift
|
||||
multiply 0x1b altgr
|
||||
dead_macron 0x1b shift altgr
|
||||
ae 0x1e altgr
|
||||
AE 0x1e shift altgr
|
||||
ssharp 0x1f altgr
|
||||
section 0x1f shift altgr
|
||||
eth 0x20 altgr
|
||||
ETH 0x20 shift altgr
|
||||
bracketleft 0x21 altgr
|
||||
ordfeminine 0x21 shift altgr
|
||||
bracketright 0x22 altgr
|
||||
ENG 0x22 shift altgr
|
||||
hstroke 0x23 altgr
|
||||
Hstroke 0x23 shift altgr
|
||||
lstroke 0x25 altgr
|
||||
Lstroke 0x26 altgr
|
||||
ccaron 0x27
|
||||
Ccaron 0x27 shift
|
||||
cacute 0x28
|
||||
Cacute 0x28 shift
|
||||
ssharp 0x28 altgr
|
||||
dead_cedilla 0x29
|
||||
notsign 0x29 altgr
|
||||
zcaron 0x2b
|
||||
Zcaron 0x2b shift
|
||||
currency 0x2b altgr
|
||||
y 0x2c addupper
|
||||
guillemotleft 0x2c altgr
|
||||
guillemotright 0x2d altgr
|
||||
cent 0x2e altgr
|
||||
copyright 0x2e shift altgr
|
||||
at 0x2f altgr
|
||||
braceleft 0x30 altgr
|
||||
braceright 0x31 altgr
|
||||
section 0x32 altgr
|
||||
masculine 0x32 shift altgr
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
horizconnector 0x33 altgr
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
periodcentered 0x34 altgr
|
||||
minus 0x35
|
||||
underscore 0x35 shift
|
||||
dead_belowdot 0x35 altgr
|
80
rosapps/applications/net/tsclient/rdesktop/keymaps/sv
Normal file
80
rosapps/applications/net/tsclient/rdesktop/keymaps/sv
Normal file
|
@ -0,0 +1,80 @@
|
|||
map 0x0000041d
|
||||
include common
|
||||
|
||||
#
|
||||
# Top row
|
||||
#
|
||||
section 0x29
|
||||
onehalf 0x29 shift
|
||||
|
||||
# 1
|
||||
exclam 0x2 shift
|
||||
|
||||
# 2
|
||||
quotedbl 0x3 shift
|
||||
at 0x3 altgr
|
||||
|
||||
# 3
|
||||
numbersign 0x4 shift
|
||||
sterling 0x4 altgr
|
||||
# 4
|
||||
currency 0x5 shift
|
||||
dollar 0x5 altgr
|
||||
# 5
|
||||
percent 0x6 shift
|
||||
# 6
|
||||
ampersand 0x7 shift
|
||||
# 7
|
||||
slash 0x8 shift
|
||||
braceleft 0x8 altgr
|
||||
# 8
|
||||
parenleft 0x9 shift
|
||||
bracketleft 0x9 altgr
|
||||
# 9
|
||||
parenright 0xa shift
|
||||
bracketright 0xa altgr
|
||||
# 0
|
||||
equal 0xb shift
|
||||
braceright 0xb altgr
|
||||
|
||||
plus 0xc
|
||||
question 0xc shift
|
||||
backslash 0xc altgr
|
||||
|
||||
dead_acute 0xd
|
||||
dead_grave 0xd shift
|
||||
|
||||
#
|
||||
# QWERTY first row
|
||||
#
|
||||
EuroSign 0x12 altgr
|
||||
aring 0x1a
|
||||
Aring 0x1a shift
|
||||
dead_diaeresis 0x1b
|
||||
dead_circumflex 0x1b shift
|
||||
dead_tilde 0x1b altgr
|
||||
|
||||
#
|
||||
# QWERTY second row
|
||||
#
|
||||
odiaeresis 0x27
|
||||
Odiaeresis 0x27 shift
|
||||
adiaeresis 0x28
|
||||
Adiaeresis 0x28 shift
|
||||
apostrophe 0x2b
|
||||
asterisk 0x2b shift
|
||||
|
||||
#
|
||||
# QWERTY third row
|
||||
#
|
||||
less 0x56
|
||||
greater 0x56 shift
|
||||
bar 0x56 altgr
|
||||
mu 0x32 altgr
|
||||
comma 0x33
|
||||
semicolon 0x33 shift
|
||||
period 0x34
|
||||
colon 0x34 shift
|
||||
minus 0x35
|
||||
underscore 0x35 shift
|
||||
|
131
rosapps/applications/net/tsclient/rdesktop/keymaps/th
Normal file
131
rosapps/applications/net/tsclient/rdesktop/keymaps/th
Normal file
|
@ -0,0 +1,131 @@
|
|||
# generated from XKB map th
|
||||
include common
|
||||
map 0x41e
|
||||
exclam 0x02 shift
|
||||
Thai_lakkhangyao 0x02 altgr
|
||||
plus 0x02 shift altgr
|
||||
at 0x03 shift
|
||||
slash 0x03 altgr
|
||||
Thai_leknung 0x03 shift altgr
|
||||
numbersign 0x04 shift
|
||||
minus 0x04 altgr
|
||||
Thai_leksong 0x04 shift altgr
|
||||
dollar 0x05 shift
|
||||
Thai_phosamphao 0x05 altgr
|
||||
Thai_leksam 0x05 shift altgr
|
||||
percent 0x06 shift
|
||||
Thai_thothung 0x06 altgr
|
||||
Thai_leksi 0x06 shift altgr
|
||||
asciicircum 0x07 shift
|
||||
Thai_sarau 0x07 altgr
|
||||
Thai_sarauu 0x07 shift altgr
|
||||
ampersand 0x08 shift
|
||||
Thai_saraue 0x08 altgr
|
||||
Thai_baht 0x08 shift altgr
|
||||
asterisk 0x09 shift
|
||||
Thai_khokhwai 0x09 altgr
|
||||
Thai_lekha 0x09 shift altgr
|
||||
parenleft 0x0a shift
|
||||
Thai_totao 0x0a altgr
|
||||
Thai_lekhok 0x0a shift altgr
|
||||
parenright 0x0b shift
|
||||
Thai_chochan 0x0b altgr
|
||||
Thai_lekchet 0x0b shift altgr
|
||||
minus 0x0c
|
||||
underscore 0x0c shift
|
||||
Thai_khokhai 0x0c altgr
|
||||
Thai_lekpaet 0x0c shift altgr
|
||||
equal 0x0d
|
||||
plus 0x0d shift
|
||||
Thai_chochang 0x0d altgr
|
||||
Thai_lekkao 0x0d shift altgr
|
||||
Thai_maiyamok 0x10 altgr
|
||||
Thai_leksun 0x10 shift altgr
|
||||
Thai_saraaimaimalai 0x11 altgr
|
||||
quotedbl 0x11 shift altgr
|
||||
Thai_saraam 0x12 altgr
|
||||
Thai_dochada 0x12 shift altgr
|
||||
Thai_phophan 0x13 altgr
|
||||
Thai_thonangmontho 0x13 shift altgr
|
||||
Thai_saraa 0x14 altgr
|
||||
Thai_thothong 0x14 shift altgr
|
||||
Thai_maihanakat 0x15 altgr
|
||||
Thai_nikhahit 0x15 shift altgr
|
||||
Thai_saraii 0x16 altgr
|
||||
Thai_maitri 0x16 shift altgr
|
||||
Thai_rorua 0x17 altgr
|
||||
Thai_nonen 0x17 shift altgr
|
||||
Thai_nonu 0x18 altgr
|
||||
Thai_paiyannoi 0x18 shift altgr
|
||||
Thai_yoyak 0x19 altgr
|
||||
Thai_yoying 0x19 shift altgr
|
||||
bracketleft 0x1a
|
||||
braceleft 0x1a shift
|
||||
Thai_bobaimai 0x1a altgr
|
||||
Thai_thothan 0x1a shift altgr
|
||||
bracketright 0x1b
|
||||
braceright 0x1b shift
|
||||
Thai_loling 0x1b altgr
|
||||
comma 0x1b shift altgr
|
||||
Thai_fofan 0x1e altgr
|
||||
Thai_ru 0x1e shift altgr
|
||||
Thai_hohip 0x1f altgr
|
||||
Thai_khorakhang 0x1f shift altgr
|
||||
Thai_kokai 0x20 altgr
|
||||
Thai_topatak 0x20 shift altgr
|
||||
Thai_dodek 0x21 altgr
|
||||
Thai_sarao 0x21 shift altgr
|
||||
Thai_sarae 0x22 altgr
|
||||
Thai_chochoe 0x22 shift altgr
|
||||
Thai_maitho 0x23 altgr
|
||||
Thai_maitaikhu 0x23 shift altgr
|
||||
Thai_maiek 0x24 altgr
|
||||
Thai_maichattawa 0x24 shift altgr
|
||||
Thai_saraaa 0x25 altgr
|
||||
Thai_sorusi 0x25 shift altgr
|
||||
Thai_sosua 0x26 altgr
|
||||
Thai_sosala 0x26 shift altgr
|
||||
semicolon 0x27
|
||||
colon 0x27 shift
|
||||
Thai_wowaen 0x27 altgr
|
||||
Thai_soso 0x27 shift altgr
|
||||
apostrophe 0x28
|
||||
quotedbl 0x28 shift
|
||||
Thai_ngongu 0x28 altgr
|
||||
period 0x28 shift altgr
|
||||
grave 0x29
|
||||
asciitilde 0x29 shift
|
||||
underscore 0x29 altgr
|
||||
percent 0x29 shift altgr
|
||||
ISO_First_Group 0x2a shift
|
||||
backslash 0x2b
|
||||
bar 0x2b shift
|
||||
Thai_khokhuat 0x2b altgr
|
||||
Thai_khokhon 0x2b shift altgr
|
||||
Thai_phophung 0x2c altgr
|
||||
parenleft 0x2c shift altgr
|
||||
Thai_popla 0x2d altgr
|
||||
parenright 0x2d shift altgr
|
||||
Thai_saraae 0x2e altgr
|
||||
Thai_choching 0x2e shift altgr
|
||||
Thai_oang 0x2f altgr
|
||||
Thai_honokhuk 0x2f shift altgr
|
||||
Thai_sarai 0x30 altgr
|
||||
Thai_phinthu 0x30 shift altgr
|
||||
Thai_sarauee 0x31 altgr
|
||||
Thai_thanthakhat 0x31 shift altgr
|
||||
Thai_thothahan 0x32 altgr
|
||||
question 0x32 shift altgr
|
||||
comma 0x33
|
||||
less 0x33 shift
|
||||
Thai_moma 0x33 altgr
|
||||
Thai_thophuthao 0x33 shift altgr
|
||||
period 0x34
|
||||
greater 0x34 shift
|
||||
Thai_saraaimaimuan 0x34 altgr
|
||||
Thai_lochula 0x34 shift altgr
|
||||
slash 0x35
|
||||
question 0x35 shift
|
||||
Thai_fofa 0x35 altgr
|
||||
Thai_lu 0x35 shift altgr
|
||||
ISO_Last_Group 0x36 shift
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue