diff --git a/.gitignore b/.gitignore index 49cb2ed..e2d0596 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,35 @@ build/Win32/ PluginSource/VS2015/.vs/ *.db *.opendb + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# Build results +[Oo]bj/ +[Ll]og/ +*.obj +*.tlog +*.log +*.pdb +*.ipch +*.tlog/ + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb \ No newline at end of file diff --git a/PluginSource/VS2017/RealVNCPlugin.sln b/PluginSource/VS2017/RealVNCPlugin.sln new file mode 100644 index 0000000..4ba21e5 --- /dev/null +++ b/PluginSource/VS2017/RealVNCPlugin.sln @@ -0,0 +1,123 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26730.16 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "network", "Realvnc\common\network\network.vcxproj", "{15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rdr", "Realvnc\common\rdr\rdr.vcxproj", "{24E0C894-0886-49F1-80C0-DE306A1CD0C3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RealVNCPlugin", "RealVNCPlugin\RealVNCPlugin.vcxproj", "{F7CFEF5A-54BD-42E8-A59E-54ABAEB4EA9C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rfb", "Realvnc\common\rfb\rfb.vcxproj", "{C6CD91E8-1978-4945-B6EC-296230A35D41}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rfb_win32", "Realvnc\win\rfb_win32\rfb_win32.vcxproj", "{B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vncviewer", "Realvnc\win\vncviewer\vncviewer.vcxproj", "{DBB955AF-768C-4121-A2A1-30012B9FF417}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Xregion", "Realvnc\common\Xregion\Xregion.vcxproj", "{8DE3C792-2672-4AD0-AA6E-331476C53485}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "Realvnc\common\zlib\zlib.vcxproj", "{2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug Unicode|Win32 = Debug Unicode|Win32 + Debug Unicode|x64 = Debug Unicode|x64 + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Debug Unicode|Win32.ActiveCfg = Debug Unicode|Win32 + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Debug Unicode|Win32.Build.0 = Debug Unicode|Win32 + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Debug Unicode|x64.ActiveCfg = Debug Unicode|Win32 + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Debug|Win32.ActiveCfg = Debug|Win32 + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Debug|Win32.Build.0 = Debug|Win32 + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Debug|x64.ActiveCfg = Debug|Win32 + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Release|Win32.ActiveCfg = Release|Win32 + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Release|Win32.Build.0 = Release|Win32 + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Release|x64.ActiveCfg = Release|x64 + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Release|x64.Build.0 = Release|x64 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug Unicode|Win32.ActiveCfg = Debug Unicode|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug Unicode|Win32.Build.0 = Debug Unicode|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug Unicode|x64.ActiveCfg = Debug Unicode|x64 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug Unicode|x64.Build.0 = Debug Unicode|x64 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug|Win32.ActiveCfg = Debug|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug|Win32.Build.0 = Debug|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug|x64.ActiveCfg = Debug|x64 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug|x64.Build.0 = Debug|x64 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Release|Win32.ActiveCfg = Release|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Release|Win32.Build.0 = Release|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Release|x64.ActiveCfg = Release|x64 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Release|x64.Build.0 = Release|x64 + {F7CFEF5A-54BD-42E8-A59E-54ABAEB4EA9C}.Debug Unicode|Win32.ActiveCfg = Debug|Win32 + {F7CFEF5A-54BD-42E8-A59E-54ABAEB4EA9C}.Debug Unicode|Win32.Build.0 = Debug|Win32 + {F7CFEF5A-54BD-42E8-A59E-54ABAEB4EA9C}.Debug Unicode|x64.ActiveCfg = Debug|x64 + {F7CFEF5A-54BD-42E8-A59E-54ABAEB4EA9C}.Debug Unicode|x64.Build.0 = Debug|x64 + {F7CFEF5A-54BD-42E8-A59E-54ABAEB4EA9C}.Debug|Win32.ActiveCfg = Debug|Win32 + {F7CFEF5A-54BD-42E8-A59E-54ABAEB4EA9C}.Debug|Win32.Build.0 = Debug|Win32 + {F7CFEF5A-54BD-42E8-A59E-54ABAEB4EA9C}.Debug|x64.ActiveCfg = Debug|x64 + {F7CFEF5A-54BD-42E8-A59E-54ABAEB4EA9C}.Debug|x64.Build.0 = Debug|x64 + {F7CFEF5A-54BD-42E8-A59E-54ABAEB4EA9C}.Release|Win32.ActiveCfg = Release|Win32 + {F7CFEF5A-54BD-42E8-A59E-54ABAEB4EA9C}.Release|Win32.Build.0 = Release|Win32 + {F7CFEF5A-54BD-42E8-A59E-54ABAEB4EA9C}.Release|x64.ActiveCfg = Release|x64 + {F7CFEF5A-54BD-42E8-A59E-54ABAEB4EA9C}.Release|x64.Build.0 = Release|x64 + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Debug Unicode|Win32.ActiveCfg = Debug Unicode|Win32 + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Debug Unicode|Win32.Build.0 = Debug Unicode|Win32 + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Debug Unicode|x64.ActiveCfg = Debug Unicode|Win32 + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Debug|Win32.ActiveCfg = Debug|Win32 + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Debug|Win32.Build.0 = Debug|Win32 + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Debug|x64.ActiveCfg = Debug|Win32 + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Release|Win32.ActiveCfg = Release|Win32 + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Release|Win32.Build.0 = Release|Win32 + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Release|x64.ActiveCfg = Release|x64 + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Release|x64.Build.0 = Release|x64 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug Unicode|Win32.ActiveCfg = Debug Unicode|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug Unicode|Win32.Build.0 = Debug Unicode|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug Unicode|x64.ActiveCfg = Debug Unicode|x64 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug Unicode|x64.Build.0 = Debug Unicode|x64 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug|Win32.ActiveCfg = Debug|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug|Win32.Build.0 = Debug|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug|x64.ActiveCfg = Debug|x64 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug|x64.Build.0 = Debug|x64 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Release|Win32.ActiveCfg = Release|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Release|Win32.Build.0 = Release|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Release|x64.ActiveCfg = Release|x64 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Release|x64.Build.0 = Release|x64 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Debug Unicode|Win32.ActiveCfg = Debug Unicode|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Debug Unicode|Win32.Build.0 = Debug Unicode|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Debug Unicode|x64.ActiveCfg = Debug Unicode|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Debug|Win32.ActiveCfg = Debug|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Debug|Win32.Build.0 = Debug|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Debug|x64.ActiveCfg = Debug|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Release|Win32.ActiveCfg = Release|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Release|x64.ActiveCfg = Release|x64 + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Debug Unicode|Win32.ActiveCfg = Debug Unicode|Win32 + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Debug Unicode|Win32.Build.0 = Debug Unicode|Win32 + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Debug Unicode|x64.ActiveCfg = Debug Unicode|Win32 + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Debug|Win32.ActiveCfg = Debug|Win32 + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Debug|Win32.Build.0 = Debug|Win32 + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Debug|x64.ActiveCfg = Debug|Win32 + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Release|Win32.ActiveCfg = Release|Win32 + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Release|Win32.Build.0 = Release|Win32 + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Release|x64.ActiveCfg = Release|x64 + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Release|x64.Build.0 = Release|x64 + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Debug Unicode|Win32.ActiveCfg = Debug Unicode|Win32 + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Debug Unicode|Win32.Build.0 = Debug Unicode|Win32 + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Debug Unicode|x64.ActiveCfg = Debug Unicode|Win32 + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Debug|Win32.ActiveCfg = Debug|Win32 + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Debug|Win32.Build.0 = Debug|Win32 + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Debug|x64.ActiveCfg = Debug|Win32 + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Release|Win32.ActiveCfg = Release|Win32 + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Release|Win32.Build.0 = Release|Win32 + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Release|x64.ActiveCfg = Release|x64 + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {F9309767-E18E-4567-8542-FCA2DB6AA857} + EndGlobalSection +EndGlobal diff --git a/PluginSource/VS2017/RealVNCPlugin/RealVNCPlugin.def b/PluginSource/VS2017/RealVNCPlugin/RealVNCPlugin.def new file mode 100644 index 0000000..38dcd8e --- /dev/null +++ b/PluginSource/VS2017/RealVNCPlugin/RealVNCPlugin.def @@ -0,0 +1,18 @@ +; file used by Visual Studio plugin builds, mostly for 32-bit +; to stop mangling our exported function names + +LIBRARY + +EXPORTS + UnityPluginLoad + UnityPluginUnload + GetRenderEventFunc + Connect + Disconnect + IsConnected + SetTextureFromUnity + GetDebugLog + getDesktopWidth + getDesktopHeight + getConnectionState + MouseEvent \ No newline at end of file diff --git a/PluginSource/VS2017/RealVNCPlugin/RealVNCPlugin.vcxproj b/PluginSource/VS2017/RealVNCPlugin/RealVNCPlugin.vcxproj new file mode 100644 index 0000000..707561b --- /dev/null +++ b/PluginSource/VS2017/RealVNCPlugin/RealVNCPlugin.vcxproj @@ -0,0 +1,277 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {F7CFEF5A-54BD-42E8-A59E-54ABAEB4EA9C} + RealVNCPlugin + Win32Proj + 10.0.15063.0 + + + + DynamicLibrary + v141 + MultiByte + true + + + DynamicLibrary + v141 + MultiByte + true + + + DynamicLibrary + v141 + Unicode + + + DynamicLibrary + v141 + MultiByte + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>12.0.30501.0 + + + $(SolutionDir)..\..\build\$(Platform)\$(Configuration)\ + $(SolutionDir)..\..\build\$(Platform)\$(Configuration)\ + true + + + true + $(SolutionDir)..\..\build\$(Platform)\$(Configuration)\ + $(SolutionDir)..\..\build\$(Platform)\$(Configuration)\ + + + $(SolutionDir)..\..\build\$(Platform)\$(Configuration)\ + $(SolutionDir)..\..\build\$(Platform)\$(Configuration)\ + false + + + false + $(SolutionDir)..\..\build\$(Platform)\$(Configuration)\ + $(SolutionDir)..\..\build\$(Platform)\$(Configuration)\ + + + + Disabled + GLEW_STATIC;WIN32;_DEBUG;_WINDOWS;_USRDLL;REALVNCPLUGIN_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + + Level3 + EditAndContinue + ../Realvnc/common;%(AdditionalIncludeDirectories);../Realvnc/win + + + opengl32.lib;ws2_32.lib;version.lib;%(AdditionalDependencies) + true + Windows + MachineX86 + RealVNCPlugin.def + ..\Realvnc\common\Debug;..\Realvnc\win\Debug;%(AdditionalLibraryDirectories) + + + SETLOCAL + +if "$(PlatformShortName)" == "x86" ( + set TARGET_PLUGIN_PATH=$(SolutionDir)..\..\Unity-VNC-Client\Assets\IVNCClients\RealVNCPlugins\Plugins\x86 +) else ( + set TARGET_PLUGIN_PATH=$(SolutionDir)..\..\Unity-VNC-Client\Assets\IVNCClients\RealVNCPlugins\Plugins\x86_64 +) +echo Target Plugin Path is %TARGET_PLUGIN_PATH% +copy /Y "$(TargetPath)" "%TARGET_PLUGIN_PATH%\$(TargetFileName)" + +ENDLOCAL + + + + false + + + + + Disabled + GLEW_STATIC;WIN32;_DEBUG;_WINDOWS;_USRDLL;REALVNCPLUGIN_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + + Level3 + ProgramDatabase + ../Realvnc/common;%(AdditionalIncludeDirectories);../Realvnc/win + + + opengl32.lib;%(AdditionalDependencies);rfb_win32.lib;rfb.lib;rdr.lib;network.lib;ws2_32.lib;zlib.lib;version.lib;comctl32.lib;xregion.lib + true + Windows + RealVNCPlugin.def + ..\Realvnc\common\Debug;..\Realvnc\win\Debug;%(AdditionalLibraryDirectories) + + + SETLOCAL + +if "$(PlatformShortName)" == "x86" ( + set TARGET_PLUGIN_PATH=$(SolutionDir)..\..\Unity-VNC-Client\Assets\IVNCClients\RealVNCPlugins\Plugins\x86 +) else ( + set TARGET_PLUGIN_PATH=$(SolutionDir)..\..\Unity-VNC-Client\Assets\IVNCClients\RealVNCPlugins\Plugins\x86_64 +) +echo Target Plugin Path is %TARGET_PLUGIN_PATH% +copy /Y "$(TargetPath)" "%TARGET_PLUGIN_PATH%\$(TargetFileName)" + +ENDLOCAL + + + + + + MaxSpeed + true + GLEW_STATIC;WIN32;NDEBUG;_WINDOWS;_USRDLL;REALVNCPLUGIN_EXPORTS;%(PreprocessorDefinitions) + MultiThreaded + true + + Level3 + ProgramDatabase + ..;$(SolutionDir)../source/Realvnc/common;$(SolutionDir)../source/Realvnc/win;%(AdditionalIncludeDirectories) + + + network.lib;opengl32.lib;rdr.lib;rfb.lib;rfb_win32.lib;ws2_32.lib;Xregion.lib;zlib.lib;%(AdditionalDependencies) + true + Windows + true + true + MachineX86 + RealVNCPlugin.def + ..\Realvnc\common\Release;..\Realvnc\win\Release;%(AdditionalLibraryDirectories) + + + SETLOCAL + +if "$(PlatformShortName)" == "x86" ( + set TARGET_PLUGIN_PATH=$(SolutionDir)..\..\Unity-VNC-Client\Assets\IVNCClients\RealVNCPlugins\Plugins\x86 +) else ( + set TARGET_PLUGIN_PATH=$(SolutionDir)..\..\Unity-VNC-Client\Assets\IVNCClients\RealVNCPlugins\Plugins\x86_64 +) +echo Target Plugin Path is %TARGET_PLUGIN_PATH% +copy /Y "$(TargetPath)" "%TARGET_PLUGIN_PATH%\$(TargetFileName)" + +ENDLOCAL + + + + + MaxSpeed + true + GLEW_STATIC;WIN32;NDEBUG;_WINDOWS;_USRDLL;REALVNCPLUGIN_EXPORTS;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreaded + true + + + Level3 + ProgramDatabase + ..;$(SolutionDir)../source/Realvnc/common;$(SolutionDir)../source/Realvnc/win;%(AdditionalIncludeDirectories) + + + network.lib;OpenGL32.lib;rdr.lib;rfb.lib;rfb_win32.lib;ws2_32.lib;Xregion.lib;zlib.lib;%(AdditionalDependencies) + true + Windows + true + true + RealVNCPlugin.def + ..\Realvnc\common\Release;..\Realvnc\win\Release;%(AdditionalLibraryDirectories) + + + SETLOCAL + +if "$(PlatformShortName)" == "x86" ( + set TARGET_PLUGIN_PATH=$(SolutionDir)..\..\Unity-VNC-Client\Assets\IVNCClients\RealVNCPlugins\Plugins\x86 +) else ( + set TARGET_PLUGIN_PATH=$(SolutionDir)..\..\Unity-VNC-Client\Assets\IVNCClients\RealVNCPlugins\Plugins\x86_64 +) +echo Target Plugin Path is %TARGET_PLUGIN_PATH% +copy /Y "$(TargetPath)" "%TARGET_PLUGIN_PATH%\$(TargetFileName)" + +ENDLOCAL + + + + + + \ No newline at end of file diff --git a/PluginSource/VS2017/RealVNCPlugin/RealVNCPlugin.vcxproj.filters b/PluginSource/VS2017/RealVNCPlugin/RealVNCPlugin.vcxproj.filters new file mode 100644 index 0000000..b32d0a3 --- /dev/null +++ b/PluginSource/VS2017/RealVNCPlugin/RealVNCPlugin.vcxproj.filters @@ -0,0 +1,93 @@ + + + + + + + + + + + + + UnityPlugin + + + UnityPlugin + + + UnityPlugin + + + UnityPlugin + + + UnityPlugin + + + UnityPlugin + + + UnityPlugin\GLEW + + + + + UnityPlugin + + + + + + {9b79898f-ac56-46f7-a10d-516b1f59e172} + + + {833d5fd2-17c0-4dfb-bbec-aa8644cca9e5} + + + {7da2856a-4939-4aab-b144-da65171fa74a} + + + + + + + + + + + + UnityPlugin + + + UnityPlugin + + + UnityPlugin\Unity + + + UnityPlugin\Unity + + + UnityPlugin\Unity + + + UnityPlugin\Unity + + + UnityPlugin\Unity + + + UnityPlugin\Unity + + + UnityPlugin\GLEW + + + UnityPlugin\GLEW + + + UnityPlugin\GLEW + + + \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/common/Makefile.in b/PluginSource/VS2017/Realvnc/common/Makefile.in new file mode 100644 index 0000000..b55d23e --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/Makefile.in @@ -0,0 +1,4 @@ + +SUBDIRS = @ZLIB_DIR@ rdr network Xregion rfb + +# followed by boilerplate.mk diff --git a/PluginSource/VS2017/Realvnc/common/Release/Xregion.lib b/PluginSource/VS2017/Realvnc/common/Release/Xregion.lib new file mode 100644 index 0000000..76f623f Binary files /dev/null and b/PluginSource/VS2017/Realvnc/common/Release/Xregion.lib differ diff --git a/PluginSource/VS2017/Realvnc/common/Release/network.lib b/PluginSource/VS2017/Realvnc/common/Release/network.lib new file mode 100644 index 0000000..0b04588 Binary files /dev/null and b/PluginSource/VS2017/Realvnc/common/Release/network.lib differ diff --git a/PluginSource/VS2017/Realvnc/common/Release/rdr.lib b/PluginSource/VS2017/Realvnc/common/Release/rdr.lib new file mode 100644 index 0000000..44d3030 Binary files /dev/null and b/PluginSource/VS2017/Realvnc/common/Release/rdr.lib differ diff --git a/PluginSource/VS2017/Realvnc/common/Release/rfb.lib b/PluginSource/VS2017/Realvnc/common/Release/rfb.lib new file mode 100644 index 0000000..2a3d2ed Binary files /dev/null and b/PluginSource/VS2017/Realvnc/common/Release/rfb.lib differ diff --git a/PluginSource/VS2017/Realvnc/common/Release/zlib.lib b/PluginSource/VS2017/Realvnc/common/Release/zlib.lib new file mode 100644 index 0000000..7f33f14 Binary files /dev/null and b/PluginSource/VS2017/Realvnc/common/Release/zlib.lib differ diff --git a/PluginSource/VS2017/Realvnc/common/Xregion/Makefile.in b/PluginSource/VS2017/Realvnc/common/Xregion/Makefile.in new file mode 100644 index 0000000..878a29b --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/Xregion/Makefile.in @@ -0,0 +1,15 @@ + +SRCS = Region.c + +OBJS = $(SRCS:.c=.o) + +library = libXregion.a + +all:: $(library) + +$(library): $(OBJS) + rm -f $(library) + $(AR) $(library) $(OBJS) + $(RANLIB) $(library) + +# followed by boilerplate.mk diff --git a/PluginSource/VS2017/Realvnc/common/Xregion/UpgradeLog.htm b/PluginSource/VS2017/Realvnc/common/Xregion/UpgradeLog.htm new file mode 100644 index 0000000..0d6dbd6 Binary files /dev/null and b/PluginSource/VS2017/Realvnc/common/Xregion/UpgradeLog.htm differ diff --git a/PluginSource/VS2017/Realvnc/common/Xregion/Xregion.dsp b/PluginSource/VS2017/Realvnc/common/Xregion/Xregion.dsp new file mode 100644 index 0000000..d6611c9 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/Xregion/Xregion.dsp @@ -0,0 +1,132 @@ +# Microsoft Developer Studio Project File - Name="Xregion" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=Xregion - Win32 Debug Unicode +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "Xregion.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "Xregion.mak" CFG="Xregion - Win32 Debug Unicode" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "Xregion - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "Xregion - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "Xregion - Win32 Debug Unicode" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "Xregion - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\Release" +# PROP Intermediate_Dir "..\Release\Xregion" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I ".." /D "NDEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "Xregion - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\Debug" +# PROP Intermediate_Dir "..\Debug\Xregion" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I ".." /D "_DEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /FD /GZ /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "Xregion - Win32 Debug Unicode" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Xregion___Win32_Debug_Unicode" +# PROP BASE Intermediate_Dir "Xregion___Win32_Debug_Unicode" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\Debug_Unicode" +# PROP Intermediate_Dir "..\Debug_Unicode\Xregion" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I ".." /D "_DEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /FD /GZ /c +# SUBTRACT BASE CPP /YX +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I ".." /D "_LIB" /D "_DEBUG" /D "WIN32" /D "_UNICODE" /D "UNICODE" /FD /GZ /c +# SUBTRACT CPP /YX +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "Xregion - Win32 Release" +# Name "Xregion - Win32 Debug" +# Name "Xregion - Win32 Debug Unicode" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\Region.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\region.h +# End Source File +# Begin Source File + +SOURCE=.\Xregion.h +# End Source File +# End Group +# End Target +# End Project diff --git a/PluginSource/VS2017/Realvnc/common/Xregion/Xregion.sln b/PluginSource/VS2017/Realvnc/common/Xregion/Xregion.sln new file mode 100644 index 0000000..25524aa --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/Xregion/Xregion.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26730.16 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Xregion", "Xregion.vcxproj", "{8DE3C792-2672-4AD0-AA6E-331476C53485}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug Unicode|x86 = Debug Unicode|x86 + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Debug Unicode|x86.ActiveCfg = Debug Unicode|Win32 + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Debug Unicode|x86.Build.0 = Debug Unicode|Win32 + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Debug|x86.ActiveCfg = Debug|Win32 + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Debug|x86.Build.0 = Debug|Win32 + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Release|x86.ActiveCfg = Release|Win32 + {8DE3C792-2672-4AD0-AA6E-331476C53485}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FE3A2FBA-02A2-4426-8820-47B383BE5466} + EndGlobalSection +EndGlobal diff --git a/PluginSource/VS2017/Realvnc/common/Xregion/Xregion.vcproj b/PluginSource/VS2017/Realvnc/common/Xregion/Xregion.vcproj new file mode 100644 index 0000000..338f4fa --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/Xregion/Xregion.vcproj @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PluginSource/VS2017/Realvnc/common/Xregion/Xregion.vcxproj b/PluginSource/VS2017/Realvnc/common/Xregion/Xregion.vcxproj new file mode 100644 index 0000000..6be33d2 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/Xregion/Xregion.vcxproj @@ -0,0 +1,316 @@ + + + + + Debug Unicode + Win32 + + + Debug Unicode + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + + + + + {8DE3C792-2672-4AD0-AA6E-331476C53485} + 10.0.15063.0 + + + + StaticLibrary + v141 + false + Unicode + + + StaticLibrary + v141 + false + Unicode + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .\..\Debug\ + .\..\Debug\Xregion\ + true + + + true + + + .\..\Release\ + .\..\Release\Xregion\ + false + + + false + .\..\Release\ + .\..\Release\xregion\ + + + .\..\Debug_Unicode\ + .\..\Debug_Unicode\Xregion\ + true + + + true + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + true + EditAndContinue + ..;%(AdditionalIncludeDirectories) + _DEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + .\..\Debug\Xregion\ + .\..\Debug\Xregion\Xregion.pch + .\..\Debug\Xregion\ + .\..\Debug\Xregion\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug\Xregion.bsc + + + true + .\..\Debug\Xregion.lib + + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + ProgramDatabase + ..;%(AdditionalIncludeDirectories) + _DEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + .\..\Debug\Xregion\ + .\..\Debug\Xregion\Xregion.pch + .\..\Debug\Xregion\ + .\..\Debug\Xregion\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug\Xregion.bsc + + + true + .\..\Debug\Xregion.lib + + + + + MultiThreaded + Default + true + true + MaxSpeed + true + Level3 + ..;$(SolutionDir)../source/Realvnc/common;%(AdditionalIncludeDirectories) + NDEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + .\..\Release\Xregion\ + .\..\Release\Xregion\Xregion.pch + .\..\Release\Xregion\ + .\..\Release\Xregion\ + + + 0x0809 + NDEBUG;%(PreprocessorDefinitions) + + + true + .\..\Release\Xregion.bsc + + + true + .\..\Release\Xregion.lib + + + + + MultiThreaded + Default + true + true + MaxSpeed + true + Level3 + ..;$(SolutionDir)../source/Realvnc/common;%(AdditionalIncludeDirectories) + NDEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + .\..\Release\Xregion\ + .\..\Release\Xregion\Xregion.pch + .\..\Release\Xregion\ + .\..\Release\Xregion\ + + + 0x0809 + NDEBUG;%(PreprocessorDefinitions) + + + true + .\..\Release\Xregion.bsc + + + true + .\..\Release\Xregion.lib + + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + true + EditAndContinue + ..;%(AdditionalIncludeDirectories) + _LIB;_DEBUG;WIN32;UNICODE;%(PreprocessorDefinitions) + .\..\Debug_Unicode\Xregion\ + .\..\Debug_Unicode\Xregion\Xregion.pch + .\..\Debug_Unicode\Xregion\ + .\..\Debug_Unicode\Xregion\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug_Unicode\Xregion.bsc + + + true + .\..\Debug_Unicode\Xregion.lib + + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + ProgramDatabase + ..;%(AdditionalIncludeDirectories) + _LIB;_DEBUG;WIN32;UNICODE;%(PreprocessorDefinitions) + .\..\Debug_Unicode\Xregion\ + .\..\Debug_Unicode\Xregion\Xregion.pch + .\..\Debug_Unicode\Xregion\ + .\..\Debug_Unicode\Xregion\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug_Unicode\Xregion.bsc + + + true + .\..\Debug_Unicode\Xregion.lib + + + + + + \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/common/Xregion/Xregion.vcxproj.filters b/PluginSource/VS2017/Realvnc/common/Xregion/Xregion.vcxproj.filters new file mode 100644 index 0000000..09537b0 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/Xregion/Xregion.vcxproj.filters @@ -0,0 +1,26 @@ + + + + + {2d3b4332-3373-49b0-a020-b34d50318eb3} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {7bd53409-9173-4d9b-8f70-19e18b45ed6f} + h;hpp;hxx;hm;inl + + + + + Source Files + + + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/common/boilerplate.mk b/PluginSource/VS2017/Realvnc/common/boilerplate.mk new file mode 100644 index 0000000..979731c --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/boilerplate.mk @@ -0,0 +1,35 @@ + +all:: + @subdirs="$(SUBDIRS)"; for d in $$subdirs; do (cd $$d; $(MAKE) $@) || exit 1; done + +clean:: + @subdirs="$(SUBDIRS)"; for d in $$subdirs; do (cd $$d; $(MAKE) $@) || exit 1; done + +clean:: + rm -f $(program) $(library) *.o + +SHELL = @SHELL@ +top_srcdir = @top_srcdir@ +@SET_MAKE@ +CC = @CC@ +CFLAGS = @CFLAGS@ $(DIR_CFLAGS) +CCLD = $(CC) +CXX = @CXX@ +CXXFLAGS = @CXXFLAGS@ +CXXLD = $(CXX) +CPPFLAGS = @CPPFLAGS@ +DEFS = @DEFS@ +ALL_CPPFLAGS = $(CPPFLAGS) $(DEFS) $(DIR_CPPFLAGS) +LIBS = @LIBS@ +LDFLAGS = @LDFLAGS@ +RANLIB = @RANLIB@ +AR = ar cq + +.SUFFIXES: +.SUFFIXES: .cxx .c .o + +.c.o: + $(CC) $(ALL_CPPFLAGS) $(CFLAGS) -c $< + +.cxx.o: + $(CXX) $(ALL_CPPFLAGS) $(CXXFLAGS) -c $< diff --git a/PluginSource/VS2017/Realvnc/common/configure b/PluginSource/VS2017/Realvnc/common/configure new file mode 100644 index 0000000..c7be2ed --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/configure @@ -0,0 +1,2344 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --with-x use the X Window System" +ac_help="$ac_help + --with-installed-zlib use the version of zlib which is installed on the + system instead of the one distributed with VNC" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=rdr/InStream.h + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_cv_prog_cc_g=no +ac_cv_prog_cxx_g=no + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:537: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:567: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:618: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:650: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext << EOF + +#line 661 "configure" +#include "confdefs.h" + +main(){return(0);} +EOF +if { (eval echo configure:666: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:692: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:697: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +else + GCC= +fi + +ac_test_CFLAGS="${CFLAGS+set}" +ac_save_CFLAGS="$CFLAGS" +CFLAGS= +echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:725: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi + +for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:761: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CXX="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CXX="$ac_cv_prog_CXX" +if test -n "$CXX"; then + echo "$ac_t""$CXX" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$CXX" && break +done +test -n "$CXX" || CXX="gcc" + + +echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:793: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 + +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + +cat > conftest.$ac_ext << EOF + +#line 804 "configure" +#include "confdefs.h" + +int main(){return(0);} +EOF +if { (eval echo configure:809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cxx_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cxx_cross=no + else + ac_cv_prog_cxx_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cxx_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6 +if test $ac_cv_prog_cxx_works = no; then + { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:835: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 +cross_compiling=$ac_cv_prog_cxx_cross + +echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 +echo "configure:840: checking whether we are using GNU C++" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.C <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gxx=yes +else + ac_cv_prog_gxx=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gxx" 1>&6 + +if test $ac_cv_prog_gxx = yes; then + GXX=yes +else + GXX= +fi + +ac_test_CXXFLAGS="${CXXFLAGS+set}" +ac_save_CXXFLAGS="$CXXFLAGS" +CXXFLAGS= +echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 +echo "configure:868: checking whether ${CXX-g++} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.cc +if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then + ac_cv_prog_cxx_g=yes +else + ac_cv_prog_cxx_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6 +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS="$ac_save_CXXFLAGS" +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi + +for ac_declaration in \ + ''\ + '#include ' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' +do + cat > conftest.$ac_ext < +$ac_declaration +int main() { +exit (42); +; return 0; } +EOF +if { (eval echo configure:917: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + continue +fi +rm -f conftest* + cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + break +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 +fi +rm -f conftest* +done +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>confdefs.h +fi + + +# Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:953: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:981: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + + +case "`(uname -sr) 2>/dev/null`" in +"SunOS 5"*) + SOLARIS=yes + USE_MITSHM=yes + ;; +"Linux"*) + LINUX=yes + USE_MITSHM=yes + ;; +esac + +if test "$USE_MITSHM" = yes; then + MITSHM_CPPFLAGS="-DMITSHM" +fi + + +if test "$GCC" = yes; then + CFLAGS="$CFLAGS -Wall" + if test "$SOLARIS" = yes; then + CFLAGS="$CFLAGS -Wno-unknown-pragmas -Wno-implicit-int" + fi +fi +if test "$GXX" = yes; then + CXXFLAGS="$CXXFLAGS -Wall" + if test "$SOLARIS" = yes; then + CXXFLAGS="$CXXFLAGS -Wno-unknown-pragmas -Wno-implicit-int -fpermissive" + fi +fi + +echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 +echo "configure:1045: checking how to run the C++ preprocessor" >&5 +if test -z "$CXXCPP"; then +if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross + CXXCPP="${CXX-g++} -E" + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1063: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CXXCPP=/lib/cpp +fi +rm -f conftest* + ac_cv_prog_CXXCPP="$CXXCPP" +ac_ext=C +# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cxx_cross +fi +fi +CXXCPP="$ac_cv_prog_CXXCPP" +echo "$ac_t""$CXXCPP" 1>&6 + +# If we find X, set shell vars x_includes and x_libraries to the +# paths, otherwise set no_x=yes. +# Uses ac_ vars as temps to allow command line to override cache and checks. +# --without-x overrides everything else, but does not touch the cache. +echo $ac_n "checking for X""... $ac_c" 1>&6 +echo "configure:1092: checking for X" >&5 + +# Check whether --with-x or --without-x was given. +if test "${with_x+set}" = set; then + withval="$with_x" + : +fi + +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then + # Both variables are already set. + have_x=yes + else +if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=NO ac_x_libraries=NO +rm -fr conftestdir +if mkdir conftestdir; then + cd conftestdir + # Make sure to not put "make" in the Imakefile rules, since we grep it out. + cat > Imakefile <<'EOF' +acfindx: + @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' +EOF + if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. + eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl; do + if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && + test -f $ac_im_libdir/libX11.$ac_extension; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case "$ac_im_incroot" in + /usr/include) ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;; + esac + case "$ac_im_usrlibdir" in + /usr/lib | /lib) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;; + esac + fi + cd .. + rm -fr conftestdir +fi + +if test "$ac_x_includes" = NO; then + # Guess where to find include files, by looking for this one X11 .h file. + test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h + + # First, try using that file with no special directory specified. +cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1159: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + # We can compile using X headers with no special include directory. +ac_x_includes= +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + # Look for the header file in a standard set of common directories. +# Check X11 before X11Rn because it is often a symlink to the current release. + for ac_dir in \ + /usr/X11/include \ + /usr/X11R6/include \ + /usr/X11R5/include \ + /usr/X11R4/include \ + \ + /usr/include/X11 \ + /usr/include/X11R6 \ + /usr/include/X11R5 \ + /usr/include/X11R4 \ + \ + /usr/local/X11/include \ + /usr/local/X11R6/include \ + /usr/local/X11R5/include \ + /usr/local/X11R4/include \ + \ + /usr/local/include/X11 \ + /usr/local/include/X11R6 \ + /usr/local/include/X11R5 \ + /usr/local/include/X11R4 \ + \ + /usr/X386/include \ + /usr/x386/include \ + /usr/XFree86/include/X11 \ + \ + /usr/include \ + /usr/local/include \ + /usr/unsupported/include \ + /usr/athena/include \ + /usr/local/x11r5/include \ + /usr/lpp/Xamples/include \ + \ + /usr/openwin/include \ + /usr/openwin/share/include \ + ; \ + do + if test -r "$ac_dir/$x_direct_test_include"; then + ac_x_includes=$ac_dir + break + fi + done +fi +rm -f conftest* +fi # $ac_x_includes = NO + +if test "$ac_x_libraries" = NO; then + # Check for the libraries. + + test -z "$x_direct_test_library" && x_direct_test_library=Xt + test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc + + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS="$LIBS" + LIBS="-l$x_direct_test_library $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + LIBS="$ac_save_LIBS" +# We can link X programs with no special library path. +ac_x_libraries= +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + LIBS="$ac_save_LIBS" +# First see if replacing the include by lib works. +# Check X11 before X11Rn because it is often a symlink to the current release. +for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \ + /usr/X11/lib \ + /usr/X11R6/lib \ + /usr/X11R5/lib \ + /usr/X11R4/lib \ + \ + /usr/lib/X11 \ + /usr/lib/X11R6 \ + /usr/lib/X11R5 \ + /usr/lib/X11R4 \ + \ + /usr/local/X11/lib \ + /usr/local/X11R6/lib \ + /usr/local/X11R5/lib \ + /usr/local/X11R4/lib \ + \ + /usr/local/lib/X11 \ + /usr/local/lib/X11R6 \ + /usr/local/lib/X11R5 \ + /usr/local/lib/X11R4 \ + \ + /usr/X386/lib \ + /usr/x386/lib \ + /usr/XFree86/lib/X11 \ + \ + /usr/lib \ + /usr/local/lib \ + /usr/unsupported/lib \ + /usr/athena/lib \ + /usr/local/x11r5/lib \ + /usr/lpp/Xamples/lib \ + /lib/usr/lib/X11 \ + \ + /usr/openwin/lib \ + /usr/openwin/share/lib \ + ; \ +do + for ac_extension in a so sl; do + if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f conftest* +fi # $ac_x_libraries = NO + +if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then + # Didn't find X anywhere. Cache the known absence of X. + ac_cv_have_x="have_x=no" +else + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" +fi +fi + fi + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + echo "$ac_t""$have_x" 1>&6 + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$x_includes ac_x_libraries=$x_libraries" + echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6 +fi + +if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. + cat >> confdefs.h <<\EOF +#define X_DISPLAY_MISSING 1 +EOF + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" + fi + + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + case "`(uname -sr) 2>/dev/null`" in + "SunOS 5"*) + echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 +echo "configure:1341: checking whether -R must be followed by a space" >&5 + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_R_nospace=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_R_nospace=no +fi +rm -f conftest* + if test $ac_R_nospace = yes; then + echo "$ac_t""no" 1>&6 + X_LIBS="$X_LIBS -R$x_libraries" + else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_R_space=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_R_space=no +fi +rm -f conftest* + if test $ac_R_space = yes; then + echo "$ac_t""yes" 1>&6 + X_LIBS="$X_LIBS -R $x_libraries" + else + echo "$ac_t""neither works" 1>&6 + fi + fi + LIBS="$ac_xsave_LIBS" + esac + fi + + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And karl@cs.umb.edu says + # the Alpha needs dnet_stub (dnet does not exist). + echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 +echo "configure:1406: checking for dnet_ntoa in -ldnet" >&5 +ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldnet $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 +echo "configure:1450: checking for dnet_ntoa in -ldnet_stub" >&5 +ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldnet_stub $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # chad@anasazi.com says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to dickey@clark.net. + echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 +echo "configure:1501: checking for gethostbyname" >&5 +if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname) +choke me +#else +gethostbyname(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_gethostbyname=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_gethostbyname=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_gethostbyname = no; then + echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 +echo "configure:1553: checking for gethostbyname in -lnsl" >&5 +ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lnsl $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says simon@lia.di.epfl.ch: it contains + # gethostby* variants that don't use the nameserver (or something). + # -lsocket must be given before -lnsl if both are needed. + # We assume that if connect needs -lnsl, so does gethostbyname. + echo $ac_n "checking for connect""... $ac_c" 1>&6 +echo "configure:1605: checking for connect" >&5 +if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char connect(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_connect) || defined (__stub___connect) +choke me +#else +connect(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_connect=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_connect=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_connect = no; then + echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 +echo "configure:1657: checking for connect in -lsocket" >&5 +ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. + echo $ac_n "checking for remove""... $ac_c" 1>&6 +echo "configure:1703: checking for remove" >&5 +if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char remove(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_remove) || defined (__stub___remove) +choke me +#else +remove(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1734: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_remove=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_remove=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'remove`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_remove = no; then + echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 +echo "configure:1755: checking for remove in -lposix" >&5 +ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lposix $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + echo $ac_n "checking for shmat""... $ac_c" 1>&6 +echo "configure:1801: checking for shmat" >&5 +if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char shmat(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_shmat) || defined (__stub___shmat) +choke me +#else +shmat(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_shmat=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_shmat=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'shmat`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_shmat = no; then + echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 +echo "configure:1853: checking for shmat in -lipc" >&5 +ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lipc $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +else + echo "$ac_t""no" 1>&6 +fi + + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. + ac_save_LDFLAGS="$LDFLAGS" + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. + # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. + echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 +echo "configure:1908: checking for IceConnectionNumber in -lICE" >&5 +ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lICE $X_EXTRA_LIBS $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" +else + echo "$ac_t""no" 1>&6 +fi + + LDFLAGS="$ac_save_LDFLAGS" + +fi + + +# Check whether --with-installed-zlib or --without-installed-zlib was given. +if test "${with_installed_zlib+set}" = set; then + withval="$with_installed_zlib" + : +fi + + +if test "$with_installed_zlib" = yes; then + echo "using installed zlib" + ZLIB_LIB=-lz +else + ZLIB_DIR=zlib + ZLIB_INCLUDE='-I$(top_srcdir)/zlib' + ZLIB_LIB='$(top_srcdir)/zlib/libz.a' + echo "configuring zlib..." + (cd zlib; ./configure) + echo "...done configuring zlib" +fi + + + + + +if test "$SOLARIS" = yes; then + VSNPRINTF_DEFINE= +else + echo $ac_n "checking for vsnprintf""... $ac_c" 1>&6 +echo "configure:1982: checking for vsnprintf" >&5 +if eval "test \"`echo '$''{'ac_cv_func_vsnprintf'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +#ifdef __cplusplus +extern "C" +#endif +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char vsnprintf(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_vsnprintf) || defined (__stub___vsnprintf) +choke me +#else +vsnprintf(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_vsnprintf=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_vsnprintf=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'vsnprintf`\" = yes"; then + echo "$ac_t""yes" 1>&6 + VSNPRINTF_DEFINE='-DHAVE_VSNPRINTF' +else + echo "$ac_t""no" 1>&6 +VSNPRINTF_DEFINE= +fi + +fi + + +echo $ac_n "checking for socklen_t""... $ac_c" 1>&6 +echo "configure:2037: checking for socklen_t" >&5 +cat > conftest.$ac_ext < + #include +int main() { +socklen_t x; +accept(0, 0, &x); +; return 0; } +EOF +if { (eval echo configure:2048: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + echo "$ac_t""yes" 1>&6 +SOCKLEN_T_DEFINE='-DVNC_SOCKLEN_T=socklen_t' +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""using int" 1>&6 +SOCKLEN_T_DEFINE='-DVNC_SOCKLEN_T=int' +fi +rm -f conftest* + + +BOILERPLATE=boilerplate.mk + +if (sh -c "make --version" 2>/dev/null | grep GNU 2>&1 >/dev/null); then + if sh -c "vncmkdepend" >/dev/null 2>&1; then + BOILERPLATE="$BOILERPLATE:depend.mk" + fi +fi + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS </dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir + +trap 'rm -fr `echo "Makefile:Makefile.in:$BOILERPLATE \ + rdr/Makefile:rdr/Makefile.in:$BOILERPLATE \ + network/Makefile:network/Makefile.in:$BOILERPLATE \ + Xregion/Makefile:Xregion/Makefile.in:$BOILERPLATE \ + rfb/Makefile:rfb/Makefile.in:$BOILERPLATE \ +" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@CC@%$CC%g +s%@CXX@%$CXX%g +s%@RANLIB@%$RANLIB%g +s%@SET_MAKE@%$SET_MAKE%g +s%@MITSHM_CPPFLAGS@%$MITSHM_CPPFLAGS%g +s%@CXXCPP@%$CXXCPP%g +s%@X_CFLAGS@%$X_CFLAGS%g +s%@X_PRE_LIBS@%$X_PRE_LIBS%g +s%@X_LIBS@%$X_LIBS%g +s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g +s%@ZLIB_DIR@%$ZLIB_DIR%g +s%@ZLIB_INCLUDE@%$ZLIB_INCLUDE%g +s%@ZLIB_LIB@%$ZLIB_LIB%g +s%@VSNPRINTF_DEFINE@%$VSNPRINTF_DEFINE%g +s%@SOCKLEN_T_DEFINE@%$SOCKLEN_T_DEFINE%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/PluginSource/VS2017/Realvnc/common/configure.in b/PluginSource/VS2017/Realvnc/common/configure.in new file mode 100644 index 0000000..cc1897a --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/configure.in @@ -0,0 +1,99 @@ +dnl Process this file with autoconf to produce a configure script. +AC_INIT(rdr/InStream.h) + +dnl dirty hack to prevent use of -g in CFLAGS and CXXFLAGS +ac_cv_prog_cc_g=no +ac_cv_prog_cxx_g=no + +dnl Checks for programs. +AC_PROG_CC +AC_PROG_CXX +AC_PROG_RANLIB +AC_PROG_MAKE_SET +AC_LANG_CPLUSPLUS + +case "`(uname -sr) 2>/dev/null`" in +"SunOS 5"*) + SOLARIS=yes + USE_MITSHM=yes + ;; +"Linux"*) + LINUX=yes + USE_MITSHM=yes + ;; +esac + +if test "$USE_MITSHM" = yes; then + MITSHM_CPPFLAGS="-DMITSHM" +fi +AC_SUBST(MITSHM_CPPFLAGS) + +if test "$GCC" = yes; then + CFLAGS="$CFLAGS -Wall" + if test "$SOLARIS" = yes; then + CFLAGS="$CFLAGS -Wno-unknown-pragmas -Wno-implicit-int" + fi +fi +if test "$GXX" = yes; then + CXXFLAGS="$CXXFLAGS -Wall" + if test "$SOLARIS" = yes; then + CXXFLAGS="$CXXFLAGS -Wno-unknown-pragmas -Wno-implicit-int -fpermissive" + fi +fi + +AC_PATH_XTRA + +AC_ARG_WITH(installed-zlib, +[ --with-installed-zlib use the version of zlib which is installed on the + system instead of the one distributed with VNC]) + +if test "$with_installed_zlib" = yes; then + echo "using installed zlib" + ZLIB_LIB=-lz +else + ZLIB_DIR=zlib + ZLIB_INCLUDE='-I$(top_srcdir)/zlib' + ZLIB_LIB='$(top_srcdir)/zlib/libz.a' + echo "configuring zlib..." + (cd zlib; ./configure) + echo "...done configuring zlib" +fi + +AC_SUBST(ZLIB_DIR) +AC_SUBST(ZLIB_INCLUDE) +AC_SUBST(ZLIB_LIB) + +if test "$SOLARIS" = yes; then + dnl Solaris 2.5 lacks vsnprintf, so use our own version & support 2.5 + VSNPRINTF_DEFINE= +else + AC_CHECK_FUNC(vsnprintf,VSNPRINTF_DEFINE='-DHAVE_VSNPRINTF',VSNPRINTF_DEFINE=) +fi +AC_SUBST(VSNPRINTF_DEFINE) + +AC_MSG_CHECKING(for socklen_t) +AC_TRY_COMPILE( +[#include + #include ], +[socklen_t x; +accept(0, 0, &x);], +AC_MSG_RESULT(yes) +SOCKLEN_T_DEFINE='-DVNC_SOCKLEN_T=socklen_t', +AC_MSG_RESULT(using int) +SOCKLEN_T_DEFINE='-DVNC_SOCKLEN_T=int') +AC_SUBST(SOCKLEN_T_DEFINE) + +BOILERPLATE=boilerplate.mk + +if (sh -c "make --version" 2>/dev/null | grep GNU 2>&1 >/dev/null); then + if sh -c "vncmkdepend" >/dev/null 2>&1; then + BOILERPLATE="$BOILERPLATE:depend.mk" + fi +fi + +AC_OUTPUT(Makefile:Makefile.in:$BOILERPLATE \ + rdr/Makefile:rdr/Makefile.in:$BOILERPLATE \ + network/Makefile:network/Makefile.in:$BOILERPLATE \ + Xregion/Makefile:Xregion/Makefile.in:$BOILERPLATE \ + rfb/Makefile:rfb/Makefile.in:$BOILERPLATE \ +) diff --git a/PluginSource/VS2017/Realvnc/common/depend.mk b/PluginSource/VS2017/Realvnc/common/depend.mk new file mode 100644 index 0000000..51d4cd6 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/depend.mk @@ -0,0 +1,76 @@ +# +# C / C++ header dependency stuff +# +# Needs GNU make and vncmkdepend, a hacked version of makedepend + +.SUFFIXES: .d + +CMAKEDEPEND = vncmkdepend +CXXMAKEDEPEND = vncmkdepend + +# +# The recommended method of doing dependency analysis in the GNU make manual +# turns out to be painfully slow. This method is similar but it's +# substantially faster and retains the desirable property that the user doesn't +# need to manually invoke a "make depend" step. +# +# As with the method described in the manual, we generate a separate dependency +# (.d) file for each source file. The .d file records the header files that +# each C or C++ source file includes. Any source file recorded in SRCS or +# CXXSRCS will cause us to try and include the corresponding .d file and GNU +# make then treats each .d file as a target to be remade. +# +# Unlike the manual's method, the rule we provide for making the .d file is +# actually a fake. All it does is record in a temporary file that the .d file +# needs to be remade. But as well as all the .d files, we also try to include +# a file called "depend.phony". This file never exists, but it causes GNU make +# to try and make the target "depend.phony". The rule for depend.phony then +# looks at the temporary files generated by the .d rules and then invokes the +# "omkdepend" program on all of the source files in one go. +# + +# +# We use simple assignment here to remove any of the depend.tmp files +# at the time make parses this bit. +# + +dummyvariable := $(shell $(RM) cdepend.tmp cxxdepend.tmp) + +# +# Now the "fake" rules for generating .d files. +# + +%.d: %.c + @echo "$<" >> cdepend.tmp + +%.d: %.cxx + @echo "$<" >> cxxdepend.tmp + +# +# The depend.phony rule which actually runs omkdepend. +# + +depend.phony: + @if [ -f cdepend.tmp ]; then \ + echo $(CMAKEDEPEND) $(ALL_CPPFLAGS) `cat cdepend.tmp`; \ + $(CMAKEDEPEND) $(ALL_CPPFLAGS) `cat cdepend.tmp`; \ + rm -f cdepend.tmp; \ + fi; \ + if [ -f cxxdepend.tmp ]; then \ + echo $(CXXMAKEDEPEND) $(ALL_CPPFLAGS) `cat cxxdepend.tmp`; \ + $(CXXMAKEDEPEND) $(ALL_CPPFLAGS) `cat cxxdepend.tmp`; \ + rm -f cxxdepend.tmp; \ + fi + +# +# Now include the .d files and the "depend.phony" file which never exists. +# For some reason GNU make evaluates the targets in reverse order, so we need +# to include depend.phony first. The "-" tells make not to complain that it +# can't find the file. +# + +-include depend.phony + +ifdef SRCS +-include $(patsubst %.c,%.d,$(patsubst %.cxx,%.d,$(SRCS))) +endif diff --git a/PluginSource/VS2017/Realvnc/common/javabin/index.vnc b/PluginSource/VS2017/Realvnc/common/javabin/index.vnc new file mode 100644 index 0000000..aecb613 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/javabin/index.vnc @@ -0,0 +1,13 @@ + + + +VNC viewer for Java + + + + + + + + diff --git a/PluginSource/VS2017/Realvnc/common/javabin/logo150x150.gif b/PluginSource/VS2017/Realvnc/common/javabin/logo150x150.gif new file mode 100644 index 0000000..f1699ba Binary files /dev/null and b/PluginSource/VS2017/Realvnc/common/javabin/logo150x150.gif differ diff --git a/PluginSource/VS2017/Realvnc/common/javabin/vncviewer.jar b/PluginSource/VS2017/Realvnc/common/javabin/vncviewer.jar new file mode 100644 index 0000000..9916d39 Binary files /dev/null and b/PluginSource/VS2017/Realvnc/common/javabin/vncviewer.jar differ diff --git a/PluginSource/VS2017/Realvnc/common/network/Makefile.in b/PluginSource/VS2017/Realvnc/common/network/Makefile.in new file mode 100644 index 0000000..8aed303 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/network/Makefile.in @@ -0,0 +1,17 @@ + +SRCS = TcpSocket.cxx + +OBJS = $(SRCS:.cxx=.o) + +DIR_CPPFLAGS = -I$(top_srcdir) @SOCKLEN_T_DEFINE@ + +library = libnetwork.a + +all:: $(library) + +$(library): $(OBJS) + rm -f $(library) + $(AR) $(library) $(OBJS) + $(RANLIB) $(library) + +# followed by boilerplate.mk diff --git a/PluginSource/VS2017/Realvnc/common/network/UpgradeLog.htm b/PluginSource/VS2017/Realvnc/common/network/UpgradeLog.htm new file mode 100644 index 0000000..4489150 Binary files /dev/null and b/PluginSource/VS2017/Realvnc/common/network/UpgradeLog.htm differ diff --git a/PluginSource/VS2017/Realvnc/common/network/network.dsp b/PluginSource/VS2017/Realvnc/common/network/network.dsp new file mode 100644 index 0000000..fa25fc6 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/network/network.dsp @@ -0,0 +1,129 @@ +# Microsoft Developer Studio Project File - Name="network" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=network - Win32 Debug Unicode +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "network.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "network.mak" CFG="network - Win32 Debug Unicode" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "network - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "network - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "network - Win32 Debug Unicode" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "network - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\Release" +# PROP Intermediate_Dir "..\Release\network" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O1 /I ".." /FI"rdr/msvcwarning.h" /D "NDEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "network - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\Debug" +# PROP Intermediate_Dir "..\Debug\network" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".." /FI"rdr/msvcwarning.h" /D "_DEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "network - Win32 Debug Unicode" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "network___Win32_Debug_Unicode" +# PROP BASE Intermediate_Dir "network___Win32_Debug_Unicode" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\Debug_Unicode" +# PROP Intermediate_Dir "..\Debug_Unicode\network" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".." /FI"msvcwarning.h" /D "_DEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".." /FI"rdr/msvcwarning.h" /D "_LIB" /D "_DEBUG" /D "WIN32" /D "_UNICODE" /D "UNICODE" /YX /FD /GZ /c +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "network - Win32 Release" +# Name "network - Win32 Debug" +# Name "network - Win32 Debug Unicode" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\TcpSocket.cxx +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\Socket.h +# End Source File +# Begin Source File + +SOURCE=.\TcpSocket.h +# End Source File +# End Group +# End Target +# End Project diff --git a/PluginSource/VS2017/Realvnc/common/network/network.sln b/PluginSource/VS2017/Realvnc/common/network/network.sln new file mode 100644 index 0000000..ee0ad5a --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/network/network.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26730.16 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "network", "network.vcxproj", "{15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug Unicode|x86 = Debug Unicode|x86 + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Debug Unicode|x86.ActiveCfg = Debug Unicode|Win32 + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Debug Unicode|x86.Build.0 = Debug Unicode|Win32 + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Debug|x86.ActiveCfg = Debug|Win32 + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Debug|x86.Build.0 = Debug|Win32 + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Release|x86.ActiveCfg = Release|Win32 + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {C239A360-A09C-4C25-96B2-EA88073FC8E0} + EndGlobalSection +EndGlobal diff --git a/PluginSource/VS2017/Realvnc/common/network/network.vcproj b/PluginSource/VS2017/Realvnc/common/network/network.vcproj new file mode 100644 index 0000000..c5977a8 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/network/network.vcproj @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PluginSource/VS2017/Realvnc/common/network/network.vcxproj b/PluginSource/VS2017/Realvnc/common/network/network.vcxproj new file mode 100644 index 0000000..9afe9cd --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/network/network.vcxproj @@ -0,0 +1,318 @@ + + + + + Debug Unicode + Win32 + + + Debug Unicode + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {15A9DE4F-13C9-427F-BE7D-03BF9BF628E6} + 10.0.15063.0 + + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + Unicode + + + StaticLibrary + v141 + false + Unicode + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .\..\Debug\ + .\..\Debug\network\ + true + + + true + + + .\..\Debug_Unicode\ + .\..\Debug_Unicode\network\ + true + + + true + + + .\..\Release\ + .\..\Release\network\ + false + + + false + .\..\Release\ + .\..\Release\network\ + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + true + ..;%(AdditionalIncludeDirectories) + rdr/msvcwarning.h;%(ForcedIncludeFiles) + _DEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + .\..\Debug\network\ + .\..\Debug\network\network.pch + .\..\Debug\network\ + .\..\Debug\network\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug\network.bsc + + + true + .\..\Debug\network.lib + + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + ..;%(AdditionalIncludeDirectories) + rdr/msvcwarning.h;%(ForcedIncludeFiles) + _DEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + .\..\Debug\network\ + .\..\Debug\network\network.pch + .\..\Debug\network\ + .\..\Debug\network\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug\network.bsc + + + true + .\..\Debug\network.lib + + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + true + ..;%(AdditionalIncludeDirectories) + rdr/msvcwarning.h;%(ForcedIncludeFiles) + _LIB;_DEBUG;WIN32;UNICODE;%(PreprocessorDefinitions) + .\..\Debug_Unicode\network\ + .\..\Debug_Unicode\network\network.pch + .\..\Debug_Unicode\network\ + .\..\Debug_Unicode\network\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug_Unicode\network.bsc + + + true + .\..\Debug_Unicode\network.lib + + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + ..;%(AdditionalIncludeDirectories) + rdr/msvcwarning.h;%(ForcedIncludeFiles) + _LIB;_DEBUG;WIN32;UNICODE;%(PreprocessorDefinitions) + .\..\Debug_Unicode\network\ + .\..\Debug_Unicode\network\network.pch + .\..\Debug_Unicode\network\ + .\..\Debug_Unicode\network\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug_Unicode\network.bsc + + + true + .\..\Debug_Unicode\network.lib + + + + + MultiThreaded + Default + true + true + MinSpace + true + Level3 + ..;$(SolutionDir)../source/Realvnc/common;%(AdditionalIncludeDirectories) + rdr/msvcwarning.h;%(ForcedIncludeFiles) + NDEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + .\..\Release\network\ + .\..\Release\network\network.pch + .\..\Release\network\ + .\..\Release\network\ + + + 0x0809 + NDEBUG;%(PreprocessorDefinitions) + + + true + .\..\Release\network.bsc + + + true + .\..\Release\network.lib + + + + + MultiThreaded + Default + true + true + MinSpace + true + Level3 + ..;$(SolutionDir)../source/Realvnc/common;%(AdditionalIncludeDirectories) + rdr/msvcwarning.h;%(ForcedIncludeFiles) + NDEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + .\..\Release\network\ + .\..\Release\network\network.pch + .\..\Release\network\ + .\..\Release\network\ + + + 0x0809 + NDEBUG;%(PreprocessorDefinitions) + + + true + .\..\Release\network.bsc + + + true + .\..\Release\network.lib + + + + + + + + + + + + + \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/common/network/network.vcxproj.filters b/PluginSource/VS2017/Realvnc/common/network/network.vcxproj.filters new file mode 100644 index 0000000..1cdec53 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/network/network.vcxproj.filters @@ -0,0 +1,26 @@ + + + + + {2ed8dfb0-c774-4706-bc47-464ca6b73901} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {b20cd7b8-5312-4381-bd08-330a321c2e95} + h;hpp;hxx;hm;inl + + + + + Source Files + + + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/common/rdr/Makefile.in b/PluginSource/VS2017/Realvnc/common/rdr/Makefile.in new file mode 100644 index 0000000..09fa554 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/rdr/Makefile.in @@ -0,0 +1,19 @@ + +SRCS = Exception.cxx FdInStream.cxx FdOutStream.cxx InStream.cxx \ + RandomStream.cxx ZlibInStream.cxx ZlibOutStream.cxx \ + HexInStream.cxx HexOutStream.cxx + +OBJS = $(SRCS:.cxx=.o) + +DIR_CPPFLAGS = -I$(top_srcdir) @ZLIB_INCLUDE@ + +library = librdr.a + +all:: $(library) + +$(library): $(OBJS) + rm -f $(library) + $(AR) $(library) $(OBJS) + $(RANLIB) $(library) + +# followed by boilerplate.mk diff --git a/PluginSource/VS2017/Realvnc/common/rdr/rdr.dsp b/PluginSource/VS2017/Realvnc/common/rdr/rdr.dsp new file mode 100644 index 0000000..4ea3c33 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/rdr/rdr.dsp @@ -0,0 +1,222 @@ +# Microsoft Developer Studio Project File - Name="rdr" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=rdr - Win32 Debug Unicode +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "rdr.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "rdr.mak" CFG="rdr - Win32 Debug Unicode" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "rdr - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "rdr - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "rdr - Win32 Debug Unicode" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "rdr - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\Release" +# PROP Intermediate_Dir "..\Release\rdr" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O1 /I ".." /FI"rdr/msvcwarning.h" /D "NDEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "rdr - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\Debug" +# PROP Intermediate_Dir "..\Debug\rdr" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".." /FI"rdr/msvcwarning.h" /D "_DEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "rdr - Win32 Debug Unicode" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "rdr___Win32_Debug_Unicode" +# PROP BASE Intermediate_Dir "rdr___Win32_Debug_Unicode" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\Debug_Unicode" +# PROP Intermediate_Dir "..\Debug_Unicode\rdr" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".." /FI"msvcwarning.h" /D "_DEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".." /FI"rdr/msvcwarning.h" /D "_LIB" /D "_DEBUG" /D "WIN32" /D "_UNICODE" /D "UNICODE" /YX /FD /GZ /c +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "rdr - Win32 Release" +# Name "rdr - Win32 Debug" +# Name "rdr - Win32 Debug Unicode" +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\Exception.h +# End Source File +# Begin Source File + +SOURCE=.\FdInStream.h +# End Source File +# Begin Source File + +SOURCE=.\FdOutStream.h +# End Source File +# Begin Source File + +SOURCE=.\FixedMemOutStream.h +# End Source File +# Begin Source File + +SOURCE=.\HexInStream.h +# End Source File +# Begin Source File + +SOURCE=.\HexOutStream.h +# End Source File +# Begin Source File + +SOURCE=.\InStream.h +# End Source File +# Begin Source File + +SOURCE=.\MemInStream.h +# End Source File +# Begin Source File + +SOURCE=.\MemOutStream.h +# End Source File +# Begin Source File + +SOURCE=.\msvcwarning.h +# End Source File +# Begin Source File + +SOURCE=.\OutStream.h +# End Source File +# Begin Source File + +SOURCE=.\RandomStream.h +# End Source File +# Begin Source File + +SOURCE=.\SubstitutingInStream.h +# End Source File +# Begin Source File + +SOURCE=.\types.h +# End Source File +# Begin Source File + +SOURCE=.\ZlibInStream.h +# End Source File +# Begin Source File + +SOURCE=.\ZlibOutStream.h +# End Source File +# End Group +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\Exception.cxx +# End Source File +# Begin Source File + +SOURCE=.\FdInStream.cxx +# ADD CPP /I "../zlib" +# End Source File +# Begin Source File + +SOURCE=.\FdOutStream.cxx +# ADD CPP /I "../zlib" +# End Source File +# Begin Source File + +SOURCE=.\HexInStream.cxx +# End Source File +# Begin Source File + +SOURCE=.\HexOutStream.cxx +# End Source File +# Begin Source File + +SOURCE=.\InStream.cxx +# ADD CPP /I "../zlib" +# End Source File +# Begin Source File + +SOURCE=.\RandomStream.cxx +# End Source File +# Begin Source File + +SOURCE=.\ZlibInStream.cxx +# ADD CPP /I "../zlib" +# End Source File +# Begin Source File + +SOURCE=.\ZlibOutStream.cxx +# ADD CPP /I "../zlib" +# End Source File +# End Group +# End Target +# End Project diff --git a/PluginSource/VS2017/Realvnc/common/rdr/rdr.vcproj b/PluginSource/VS2017/Realvnc/common/rdr/rdr.vcproj new file mode 100644 index 0000000..b84a4cf --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/rdr/rdr.vcproj @@ -0,0 +1,521 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PluginSource/VS2017/Realvnc/common/rdr/rdr.vcxproj b/PluginSource/VS2017/Realvnc/common/rdr/rdr.vcxproj new file mode 100644 index 0000000..6ad89e9 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/rdr/rdr.vcxproj @@ -0,0 +1,312 @@ + + + + + Debug Unicode + Win32 + + + Debug Unicode + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {24E0C894-0886-49F1-80C0-DE306A1CD0C3} + 10.0.15063.0 + + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + Unicode + + + StaticLibrary + v141 + false + Unicode + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>14.0.25123.0 + + + .\..\Release\ + .\..\Release\rdr\ + + + .\..\Release\ + .\..\Release\rdr\ + + + .\..\Debug_Unicode\ + .\..\Debug_Unicode\rdr\ + + + .\..\Debug\ + .\..\Debug\rdr\ + + + + MinSpace + OnlyExplicitInline + ..;$(SolutionDir)../source/Realvnc/common;$(SolutionDir)../source/Realvnc/common/zlib;%(AdditionalIncludeDirectories) + NDEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + true + MultiThreaded + true + + .\..\Release\rdr/rdr.pch + .\..\Release\rdr/ + .\..\Release\rdr/ + .\..\Release\rdr/ + Level3 + true + Default + rdr/msvcwarning.h;%(ForcedIncludeFiles) + + + .\..\Release\rdr.lib + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0809 + + + + + MinSpace + OnlyExplicitInline + ..;$(SolutionDir)../source/Realvnc/common;$(SolutionDir)../source/Realvnc/common/zlib;%(AdditionalIncludeDirectories) + NDEBUG;_LIB;WIN32;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + true + MultiThreaded + true + + + .\..\Release\rdr/rdr.pch + .\..\Release\rdr/ + .\..\Release\rdr/ + .\..\Release\rdr/ + Level3 + true + Default + rdr/msvcwarning.h;%(ForcedIncludeFiles) + + + .\..\Release\rdr.lib + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0809 + + + + + Disabled + ..;%(AdditionalIncludeDirectories) + _LIB;_DEBUG;WIN32;UNICODE;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + .\..\Debug_Unicode\rdr/rdr.pch + .\..\Debug_Unicode\rdr/ + .\..\Debug_Unicode\rdr/ + .\..\Debug_Unicode\rdr/ + Level3 + true + ProgramDatabase + Default + rdr/msvcwarning.h;%(ForcedIncludeFiles) + + + .\..\Debug_Unicode\rdr.lib + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + + + Disabled + ..;%(AdditionalIncludeDirectories) + _LIB;_DEBUG;WIN32;UNICODE;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + EnableFastChecks + MultiThreadedDebug + + + .\..\Debug_Unicode\rdr/rdr.pch + .\..\Debug_Unicode\rdr/ + .\..\Debug_Unicode\rdr/ + .\..\Debug_Unicode\rdr/ + Level3 + true + ProgramDatabase + Default + rdr/msvcwarning.h;%(ForcedIncludeFiles) + + + .\..\Debug_Unicode\rdr.lib + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + + + Disabled + ..;%(AdditionalIncludeDirectories) + _DEBUG;_LIB;WIN32;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + EnableFastChecks + MultiThreadedDebug + + .\..\Debug\rdr/rdr.pch + .\..\Debug\rdr/ + .\..\Debug\rdr/ + .\..\Debug\rdr/ + Level3 + true + ProgramDatabase + Default + rdr/msvcwarning.h;%(ForcedIncludeFiles) + + + .\..\Debug\rdr.lib + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + + + Disabled + ..;%(AdditionalIncludeDirectories) + _DEBUG;_LIB;WIN32;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + EnableFastChecks + MultiThreadedDebug + + + .\..\Debug\rdr/rdr.pch + .\..\Debug\rdr/ + .\..\Debug\rdr/ + .\..\Debug\rdr/ + Level3 + true + ProgramDatabase + Default + rdr/msvcwarning.h;%(ForcedIncludeFiles) + + + .\..\Debug\rdr.lib + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/common/rdr/rdr.vcxproj.filters b/PluginSource/VS2017/Realvnc/common/rdr/rdr.vcxproj.filters new file mode 100644 index 0000000..b01da40 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/rdr/rdr.vcxproj.filters @@ -0,0 +1,92 @@ + + + + + {55e1a487-bfea-4c2a-8671-7fc94e5fecfd} + h;hpp;hxx;hm;inl + + + {2900dd34-7996-405d-b037-067081459841} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/common/rfb/Makefile.in b/PluginSource/VS2017/Realvnc/common/rfb/Makefile.in new file mode 100644 index 0000000..76e8fb3 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/rfb/Makefile.in @@ -0,0 +1,68 @@ + +CXXSRCS = \ + Blacklist.cxx \ + CConnection.cxx \ + CMsgHandler.cxx \ + CMsgReader.cxx \ + CMsgReaderV3.cxx \ + CMsgWriter.cxx \ + CMsgWriterV3.cxx \ + CSecurityVncAuth.cxx \ + ComparingUpdateTracker.cxx \ + Configuration.cxx \ + ConnParams.cxx \ + Cursor.cxx \ + Decoder.cxx \ + Encoder.cxx \ + HTTPServer.cxx \ + HextileDecoder.cxx \ + HextileEncoder.cxx \ + KeyRemapper.cxx \ + LogWriter.cxx \ + Logger.cxx \ + Logger_file.cxx \ + Logger_stdio.cxx \ + Password.cxx \ + PixelBuffer.cxx \ + PixelFormat.cxx \ + RREEncoder.cxx \ + RREDecoder.cxx \ + RawDecoder.cxx \ + RawEncoder.cxx \ + Region.cxx \ + SConnection.cxx \ + SMsgHandler.cxx \ + SMsgReader.cxx \ + SMsgReaderV3.cxx \ + SMsgWriter.cxx \ + SMsgWriterV3.cxx \ + ServerCore.cxx \ + SSecurityFactoryStandard.cxx \ + SSecurityVncAuth.cxx \ + Timer.cxx \ + TransImageGetter.cxx \ + UpdateTracker.cxx \ + VNCSConnectionST.cxx \ + VNCServerST.cxx \ + ZRLEEncoder.cxx \ + ZRLEDecoder.cxx \ + encodings.cxx \ + secTypes.cxx \ + util.cxx + +SRCS = d3des.c $(CXXSRCS) + +OBJS = d3des.o $(CXXSRCS:.cxx=.o) + +DIR_CPPFLAGS = -I$(top_srcdir) @VSNPRINTF_DEFINE@ + +library = librfb.a + +all:: $(library) + +$(library): $(OBJS) + rm -f $(library) + $(AR) $(library) $(OBJS) + $(RANLIB) $(library) + +# followed by boilerplate.mk diff --git a/PluginSource/VS2017/Realvnc/common/rfb/Timer.cxx b/PluginSource/VS2017/Realvnc/common/rfb/Timer.cxx new file mode 100644 index 0000000..59d250e --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/rfb/Timer.cxx @@ -0,0 +1,174 @@ +/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved. + * + * This 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 software 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 software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +// -=- Timer.cxx + +#include +#ifdef WIN32 +#include +#ifndef _WIN32_WCE +#include +#endif +#endif +#include +#include +#include + +using namespace rfb; + +#ifndef __NO_DEFINE_VLOG__ +static LogWriter vlog("Timer"); +#endif + + +// Win32 does not provide gettimeofday, so we emulate it to simplify the +// Timer code. + +#ifdef _WIN32 +static void gettimeofday(struct timeval* tv, void*) +{ + LARGE_INTEGER counts, countsPerSec; + static double usecPerCount = 0.0; + + if (QueryPerformanceCounter(&counts)) { + if (usecPerCount == 0.0) { + QueryPerformanceFrequency(&countsPerSec); + usecPerCount = 1000000.0 / countsPerSec.QuadPart; + } + + LONGLONG usecs = (LONGLONG)(counts.QuadPart * usecPerCount); + tv->tv_usec = (long)(usecs % 1000000); + tv->tv_sec = (long)(usecs / 1000000); + + } else { +#ifndef _WIN32_WCE + struct timeb tb; + ftime(&tb); + tv->tv_sec = tb.time; + tv->tv_usec = tb.millitm * 1000; +#else + throw SystemException("QueryPerformanceCounter", GetLastError()); +#endif + } +} +#endif + + +// Millisecond timeout processing helper functions + +inline static timeval addMillis(timeval inTime, int millis) { + int secs = millis / 1000; + millis = millis % 1000; + inTime.tv_sec += secs; + inTime.tv_usec += millis * 1000; + if (inTime.tv_usec >= 1000000) { + inTime.tv_sec++; + inTime.tv_usec -= 1000000; + } + return inTime; +} + +inline static int diffTimeMillis(timeval later, timeval earlier) { + return ((later.tv_sec - earlier.tv_sec) * 1000) + ((later.tv_usec - earlier.tv_usec) / 1000); +} + +std::list Timer::pending; + +int Timer::checkTimeouts() { + if (pending.empty()) + return 0; + timeval now; + gettimeofday(&now, 0); + while (pending.front()->isBefore(now)) { + Timer* timer = pending.front(); + pending.pop_front(); + vlog.debug("handleTimeout(%p)", timer); + if (timer->cb->handleTimeout(timer)) { + timer->dueTime = addMillis(timer->dueTime, timer->timeoutMs); + if (timer->isBefore(now)) { + // Time has jumped forwards! + vlog.info("time has moved forwards!"); + timer->dueTime = addMillis(now, timer->timeoutMs); + } + insertTimer(timer); + } else if (pending.empty()) { + return 0; + } + } + return getNextTimeout(); +} + +int Timer::getNextTimeout() { + timeval now; + gettimeofday(&now, 0); + int toWait = __rfbmax(1, diffTimeMillis(pending.front()->dueTime, now)); + if (toWait > pending.front()->timeoutMs) { + if (toWait - pending.front()->timeoutMs < 1000) { + vlog.info("gettimeofday is broken..."); + return toWait; + } + // Time has jumped backwards! + vlog.info("time has moved backwards!"); + pending.front()->dueTime = now; + toWait = 1; + } + return toWait; +} + +void Timer::insertTimer(Timer* t) { + std::list::iterator i; + for (i=pending.begin(); i!=pending.end(); i++) { + if (t->isBefore((*i)->dueTime)) { + pending.insert(i, t); + return; + } + } + pending.push_back(t); +} + +void Timer::start(int timeoutMs_) { + timeval now; + gettimeofday(&now, 0); + stop(); + timeoutMs = timeoutMs_; + dueTime = addMillis(now, timeoutMs); + insertTimer(this); +} + +void Timer::stop() { + pending.remove(this); +} + +bool Timer::isStarted() { + std::list::iterator i; + for (i=pending.begin(); i!=pending.end(); i++) { + if (*i == this) + return true; + } + return false; +} + +int Timer::getTimeoutMs() { + return timeoutMs; +} + +bool Timer::isBefore(timeval other) { + return (dueTime.tv_sec < other.tv_sec) || + ((dueTime.tv_sec == other.tv_sec) && + (dueTime.tv_usec < other.tv_usec)); +} diff --git a/PluginSource/VS2017/Realvnc/common/rfb/Timer.h b/PluginSource/VS2017/Realvnc/common/rfb/Timer.h new file mode 100644 index 0000000..e295b82 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/rfb/Timer.h @@ -0,0 +1,102 @@ +/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved. + * + * This 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 software 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 software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#ifndef __RFB_TIMER_H__ +#define __RFB_TIMER_H__ + +#include +#ifdef WIN32 +#include +#else +#include +#endif + +namespace rfb { + + /* Timer + + Cross-platform timeout handling. The caller creates instances of Timer and passes a + Callback implementation to each. The Callback will then be called with a pointer to + the Timer instance that timed-out when the timeout occurs. + + The static methods of Timer are used by the main loop of the application both to + dispatch elapsed Timer callbacks and to determine how long to wait in select() for + the next timeout to occur. + + */ + + struct Timer { + + struct Callback { + // handleTimeout + // Passed a pointer to the Timer that has timed out. If the handler returns true + // then the Timer is reset and left running, causing another timeout after the + // appropriate interval. + // If the handler returns false then the Timer is cancelled. + virtual bool handleTimeout(Timer* t) = 0; + }; + + // checkTimeouts() + // Dispatches any elapsed Timers, and returns the number of milliseconds until the + // next Timer will timeout. + static int checkTimeouts(); + + // getNextTimeout() + // Returns the number of milliseconds until the next timeout, without dispatching + // any elapsed Timers. + static int getNextTimeout(); + + // Create a Timer with the specified callback handler + Timer(Callback* cb_) {cb = cb_;} + ~Timer() {stop();} + + // startTimer + // Starts the timer, causing a timeout after the specified number of milliseconds. + // If the timer is already active then it will be implicitly cancelled and re-started. + void start(int timeoutMs_); + + // stopTimer + // Cancels the timer. + void stop(); + + // isStarted + // Determines whether the timer is started. + bool isStarted(); + + // getTimeoutMs + // Determines the previously used timeout value, if any. + // Usually used with isStarted() to get the _current_ timeout. + int getTimeoutMs(); + + // isBefore + // Determine whether the Timer will timeout before the specified time. + bool isBefore(timeval other); + + protected: + timeval dueTime; + int timeoutMs; + Callback* cb; + + static void insertTimer(Timer* t); + // The list of currently active Timers, ordered by time left until timeout. + static std::list pending; + }; + +}; + +#endif diff --git a/PluginSource/VS2017/Realvnc/common/rfb/UpgradeLog.htm b/PluginSource/VS2017/Realvnc/common/rfb/UpgradeLog.htm new file mode 100644 index 0000000..e29d01c Binary files /dev/null and b/PluginSource/VS2017/Realvnc/common/rfb/UpgradeLog.htm differ diff --git a/PluginSource/VS2017/Realvnc/common/rfb/rfb.dsp b/PluginSource/VS2017/Realvnc/common/rfb/rfb.dsp new file mode 100644 index 0000000..f5b1a10 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/rfb/rfb.dsp @@ -0,0 +1,621 @@ +# Microsoft Developer Studio Project File - Name="rfb" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=rfb - Win32 Debug Unicode +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "rfb.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "rfb.mak" CFG="rfb - Win32 Debug Unicode" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "rfb - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "rfb - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "rfb - Win32 Debug Unicode" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "rfb - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\Release" +# PROP Intermediate_Dir "..\Release\rfb" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O1 /I ".." /I "../../win" /FI"rdr/msvcwarning.h" /D "NDEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "rfb - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\Debug" +# PROP Intermediate_Dir "..\Debug\rfb" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".." /I "../../win" /FI"rdr/msvcwarning.h" /D "_DEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "rfb - Win32 Debug Unicode" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "rfb___Win32_Debug_Unicode" +# PROP BASE Intermediate_Dir "rfb___Win32_Debug_Unicode" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\Debug_Unicode" +# PROP Intermediate_Dir "..\Debug_Unicode\rfb" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".." /FI"msvcwarning.h" /D "_DEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".." /I "../../win" /FI"rdr/msvcwarning.h" /D "_LIB" /D "_DEBUG" /D "WIN32" /D "_UNICODE" /D "UNICODE" /YX /FD /GZ /c +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "rfb - Win32 Release" +# Name "rfb - Win32 Debug" +# Name "rfb - Win32 Debug Unicode" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\Blacklist.cxx +# End Source File +# Begin Source File + +SOURCE=.\CConnection.cxx +# End Source File +# Begin Source File + +SOURCE=.\CMsgHandler.cxx +# End Source File +# Begin Source File + +SOURCE=.\CMsgReader.cxx +# End Source File +# Begin Source File + +SOURCE=.\CMsgReaderV3.cxx +# End Source File +# Begin Source File + +SOURCE=.\CMsgWriter.cxx +# End Source File +# Begin Source File + +SOURCE=.\CMsgWriterV3.cxx +# End Source File +# Begin Source File + +SOURCE=.\ComparingUpdateTracker.cxx +# End Source File +# Begin Source File + +SOURCE=.\Configuration.cxx +# End Source File +# Begin Source File + +SOURCE=.\ConnParams.cxx +# End Source File +# Begin Source File + +SOURCE=.\CSecurityVncAuth.cxx +# End Source File +# Begin Source File + +SOURCE=.\Cursor.cxx +# End Source File +# Begin Source File + +SOURCE=.\d3des.c +# End Source File +# Begin Source File + +SOURCE=.\Decoder.cxx +# End Source File +# Begin Source File + +SOURCE=.\Encoder.cxx +# End Source File +# Begin Source File + +SOURCE=.\encodings.cxx +# End Source File +# Begin Source File + +SOURCE=.\HextileDecoder.cxx +# End Source File +# Begin Source File + +SOURCE=.\HextileEncoder.cxx +# End Source File +# Begin Source File + +SOURCE=.\HTTPServer.cxx +# End Source File +# Begin Source File + +SOURCE=.\KeyRemapper.cxx +# End Source File +# Begin Source File + +SOURCE=.\Logger.cxx +# End Source File +# Begin Source File + +SOURCE=.\Logger_file.cxx +# End Source File +# Begin Source File + +SOURCE=.\Logger_stdio.cxx +# End Source File +# Begin Source File + +SOURCE=.\LogWriter.cxx +# End Source File +# Begin Source File + +SOURCE=.\Password.cxx +# End Source File +# Begin Source File + +SOURCE=.\PixelBuffer.cxx +# End Source File +# Begin Source File + +SOURCE=.\PixelFormat.cxx +# End Source File +# Begin Source File + +SOURCE=.\RawDecoder.cxx +# End Source File +# Begin Source File + +SOURCE=.\RawEncoder.cxx +# End Source File +# Begin Source File + +SOURCE=.\Region.cxx +# End Source File +# Begin Source File + +SOURCE=.\RREDecoder.cxx +# End Source File +# Begin Source File + +SOURCE=.\RREEncoder.cxx +# End Source File +# Begin Source File + +SOURCE=.\SConnection.cxx +# End Source File +# Begin Source File + +SOURCE=.\secTypes.cxx +# End Source File +# Begin Source File + +SOURCE=.\ServerCore.cxx +# End Source File +# Begin Source File + +SOURCE=.\SMsgHandler.cxx +# End Source File +# Begin Source File + +SOURCE=.\SMsgReader.cxx +# End Source File +# Begin Source File + +SOURCE=.\SMsgReaderV3.cxx +# End Source File +# Begin Source File + +SOURCE=.\SMsgWriter.cxx +# End Source File +# Begin Source File + +SOURCE=.\SMsgWriterV3.cxx +# End Source File +# Begin Source File + +SOURCE=.\SSecurityFactoryStandard.cxx +# End Source File +# Begin Source File + +SOURCE=.\SSecurityVncAuth.cxx +# End Source File +# Begin Source File + +SOURCE=.\TransImageGetter.cxx +# End Source File +# Begin Source File + +SOURCE=.\UpdateTracker.cxx +# End Source File +# Begin Source File + +SOURCE=.\util.cxx +# End Source File +# Begin Source File + +SOURCE=.\VNCSConnectionST.cxx +# End Source File +# Begin Source File + +SOURCE=.\VNCServerST.cxx +# End Source File +# Begin Source File + +SOURCE=.\ZRLEDecoder.cxx +# End Source File +# Begin Source File + +SOURCE=.\ZRLEEncoder.cxx +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\Blacklist.h +# End Source File +# Begin Source File + +SOURCE=.\CConnection.h +# End Source File +# Begin Source File + +SOURCE=.\CMsgHandler.h +# End Source File +# Begin Source File + +SOURCE=.\CMsgReader.h +# End Source File +# Begin Source File + +SOURCE=.\CMsgReaderV3.h +# End Source File +# Begin Source File + +SOURCE=.\CMsgWriter.h +# End Source File +# Begin Source File + +SOURCE=.\CMsgWriterV3.h +# End Source File +# Begin Source File + +SOURCE=.\ColourCube.h +# End Source File +# Begin Source File + +SOURCE=.\ColourMap.h +# End Source File +# Begin Source File + +SOURCE=.\ComparingUpdateTracker.h +# End Source File +# Begin Source File + +SOURCE=.\Configuration.h +# End Source File +# Begin Source File + +SOURCE=.\ConnParams.h +# End Source File +# Begin Source File + +SOURCE=.\CSecurity.h +# End Source File +# Begin Source File + +SOURCE=.\CSecurityNone.h +# End Source File +# Begin Source File + +SOURCE=.\CSecurityVncAuth.h +# End Source File +# Begin Source File + +SOURCE=.\Cursor.h +# End Source File +# Begin Source File + +SOURCE=.\d3des.h +# End Source File +# Begin Source File + +SOURCE=.\Decoder.h +# End Source File +# Begin Source File + +SOURCE=.\Encoder.h +# End Source File +# Begin Source File + +SOURCE=.\encodings.h +# End Source File +# Begin Source File + +SOURCE=.\Exception.h +# End Source File +# Begin Source File + +SOURCE=.\hextileConstants.h +# End Source File +# Begin Source File + +SOURCE=.\hextileDecode.h +# End Source File +# Begin Source File + +SOURCE=.\HextileDecoder.h +# End Source File +# Begin Source File + +SOURCE=.\hextileEncode.h +# End Source File +# Begin Source File + +SOURCE=.\HextileEncoder.h +# End Source File +# Begin Source File + +SOURCE=.\Hostname.h +# End Source File +# Begin Source File + +SOURCE=.\HTTPServer.h +# End Source File +# Begin Source File + +SOURCE=.\ImageGetter.h +# End Source File +# Begin Source File + +SOURCE=.\InputHandler.h +# End Source File +# Begin Source File + +SOURCE=.\KeyRemapper.h +# End Source File +# Begin Source File + +SOURCE=.\keysymdef.h +# End Source File +# Begin Source File + +SOURCE=.\Logger.h +# End Source File +# Begin Source File + +SOURCE=.\Logger_file.h +# End Source File +# Begin Source File + +SOURCE=.\Logger_stdio.h +# End Source File +# Begin Source File + +SOURCE=.\LogWriter.h +# End Source File +# Begin Source File + +SOURCE=.\msgTypes.h +# End Source File +# Begin Source File + +SOURCE=.\Password.h +# End Source File +# Begin Source File + +SOURCE=.\Pixel.h +# End Source File +# Begin Source File + +SOURCE=.\PixelBuffer.h +# End Source File +# Begin Source File + +SOURCE=.\PixelFormat.h +# End Source File +# Begin Source File + +SOURCE=.\RawDecoder.h +# End Source File +# Begin Source File + +SOURCE=.\RawEncoder.h +# End Source File +# Begin Source File + +SOURCE=.\Rect.h +# End Source File +# Begin Source File + +SOURCE=.\Region.h +# End Source File +# Begin Source File + +SOURCE=.\rreDecode.h +# End Source File +# Begin Source File + +SOURCE=.\RREDecoder.h +# End Source File +# Begin Source File + +SOURCE=.\rreEncode.h +# End Source File +# Begin Source File + +SOURCE=.\RREEncoder.h +# End Source File +# Begin Source File + +SOURCE=.\SConnection.h +# End Source File +# Begin Source File + +SOURCE=.\SDesktop.h +# End Source File +# Begin Source File + +SOURCE=.\secTypes.h +# End Source File +# Begin Source File + +SOURCE=.\ServerCore.h +# End Source File +# Begin Source File + +SOURCE=.\SMsgHandler.h +# End Source File +# Begin Source File + +SOURCE=.\SMsgReader.h +# End Source File +# Begin Source File + +SOURCE=.\SMsgReaderV3.h +# End Source File +# Begin Source File + +SOURCE=.\SMsgWriter.h +# End Source File +# Begin Source File + +SOURCE=.\SMsgWriterV3.h +# End Source File +# Begin Source File + +SOURCE=.\SSecurity.h +# End Source File +# Begin Source File + +SOURCE=.\SSecurityFactoryStandard.h +# End Source File +# Begin Source File + +SOURCE=.\SSecurityNone.h +# End Source File +# Begin Source File + +SOURCE=.\SSecurityVncAuth.h +# End Source File +# Begin Source File + +SOURCE=.\Threading.h +# End Source File +# Begin Source File + +SOURCE=.\TransImageGetter.h +# End Source File +# Begin Source File + +SOURCE=.\transInitTempl.h +# End Source File +# Begin Source File + +SOURCE=.\transTempl.h +# End Source File +# Begin Source File + +SOURCE=.\TrueColourMap.h +# End Source File +# Begin Source File + +SOURCE=.\UpdateTracker.h +# End Source File +# Begin Source File + +SOURCE=.\UserPasswdGetter.h +# End Source File +# Begin Source File + +SOURCE=.\util.h +# End Source File +# Begin Source File + +SOURCE=.\VNCSConnectionST.h +# End Source File +# Begin Source File + +SOURCE=.\VNCServer.h +# End Source File +# Begin Source File + +SOURCE=.\VNCServerST.h +# End Source File +# Begin Source File + +SOURCE=.\zrleDecode.h +# End Source File +# Begin Source File + +SOURCE=.\ZRLEDecoder.h +# End Source File +# Begin Source File + +SOURCE=.\zrleEncode.h +# End Source File +# Begin Source File + +SOURCE=.\ZRLEEncoder.h +# End Source File +# End Group +# End Target +# End Project diff --git a/PluginSource/VS2017/Realvnc/common/rfb/rfb.sln b/PluginSource/VS2017/Realvnc/common/rfb/rfb.sln new file mode 100644 index 0000000..9d02a90 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/rfb/rfb.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26730.16 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rfb", "rfb.vcxproj", "{C6CD91E8-1978-4945-B6EC-296230A35D41}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug Unicode|x86 = Debug Unicode|x86 + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Debug Unicode|x86.ActiveCfg = Debug Unicode|Win32 + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Debug Unicode|x86.Build.0 = Debug Unicode|Win32 + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Debug|x86.ActiveCfg = Debug|Win32 + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Debug|x86.Build.0 = Debug|Win32 + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Release|x86.ActiveCfg = Release|Win32 + {C6CD91E8-1978-4945-B6EC-296230A35D41}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2972116C-2BAC-4AF9-884C-A29B8020729C} + EndGlobalSection +EndGlobal diff --git a/PluginSource/VS2017/Realvnc/common/rfb/rfb.vcproj b/PluginSource/VS2017/Realvnc/common/rfb/rfb.vcproj new file mode 100644 index 0000000..fdbf659 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/rfb/rfb.vcproj @@ -0,0 +1,1984 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PluginSource/VS2017/Realvnc/common/rfb/rfb.vcxproj b/PluginSource/VS2017/Realvnc/common/rfb/rfb.vcxproj new file mode 100644 index 0000000..f7bd45f --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/rfb/rfb.vcxproj @@ -0,0 +1,443 @@ + + + + + Debug Unicode + Win32 + + + Debug Unicode + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {C6CD91E8-1978-4945-B6EC-296230A35D41} + 10.0.15063.0 + + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + Unicode + + + StaticLibrary + v141 + false + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .\..\Debug_Unicode\ + .\..\Debug_Unicode\rfb\ + true + + + true + + + .\..\Debug\ + .\..\Debug\rfb\ + true + + + true + + + .\..\Release\ + .\..\Release\rfb\ + false + + + false + .\..\Release\ + .\..\Release\rfb\ + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + true + ..;../../win;%(AdditionalIncludeDirectories) + rdr/msvcwarning.h;%(ForcedIncludeFiles) + _LIB;_DEBUG;WIN32;UNICODE;%(PreprocessorDefinitions) + .\..\Debug_Unicode\rfb\ + .\..\Debug_Unicode\rfb\rfb.pch + .\..\Debug_Unicode\rfb\ + .\..\Debug_Unicode\rfb\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug_Unicode\rfb.bsc + + + true + .\..\Debug_Unicode\rfb.lib + + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + ..;../../win;%(AdditionalIncludeDirectories) + rdr/msvcwarning.h;%(ForcedIncludeFiles) + _LIB;_DEBUG;WIN32;UNICODE;%(PreprocessorDefinitions) + .\..\Debug_Unicode\rfb\ + .\..\Debug_Unicode\rfb\rfb.pch + .\..\Debug_Unicode\rfb\ + .\..\Debug_Unicode\rfb\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug_Unicode\rfb.bsc + + + true + .\..\Debug_Unicode\rfb.lib + + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + true + ..;../../win;%(AdditionalIncludeDirectories) + rdr/msvcwarning.h;%(ForcedIncludeFiles) + _DEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + .\..\Debug\rfb\ + .\..\Debug\rfb\rfb.pch + .\..\Debug\rfb\ + .\..\Debug\rfb\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug\rfb.bsc + + + true + .\..\Debug\rfb.lib + + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + ..;../../win;%(AdditionalIncludeDirectories) + rdr/msvcwarning.h;%(ForcedIncludeFiles) + _DEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + .\..\Debug\rfb\ + .\..\Debug\rfb\rfb.pch + .\..\Debug\rfb\ + .\..\Debug\rfb\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug\rfb.bsc + + + true + .\..\Debug\rfb.lib + + + + + MultiThreaded + Default + true + true + MinSpace + true + Level3 + ..;$(SolutionDir)../source/Realvnc/common;$(SolutionDir)../source/Realvnc/win;%(AdditionalIncludeDirectories) + rdr/msvcwarning.h;%(ForcedIncludeFiles) + NDEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + .\..\Release\rfb\ + .\..\Release\rfb\rfb.pch + .\..\Release\rfb\ + .\..\Release\rfb\ + + + 0x0809 + NDEBUG;%(PreprocessorDefinitions) + + + true + .\..\Release\rfb.bsc + + + true + .\..\Release\rfb.lib + + + + + MultiThreaded + Default + true + true + MinSpace + true + Level3 + ..;$(SolutionDir)../source/Realvnc/common;$(SolutionDir)../source/Realvnc/win;%(AdditionalIncludeDirectories) + rdr/msvcwarning.h;%(ForcedIncludeFiles) + NDEBUG;_LIB;WIN32;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + .\..\Release\rfb\ + .\..\Release\rfb\rfb.pch + .\..\Release\rfb\ + .\..\Release\rfb\ + + + 0x0809 + NDEBUG;%(PreprocessorDefinitions) + + + true + .\..\Release\rfb.bsc + + + true + .\..\Release\rfb.lib + + + + + + \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/common/rfb/rfb.vcxproj.filters b/PluginSource/VS2017/Realvnc/common/rfb/rfb.vcxproj.filters new file mode 100644 index 0000000..221b9c2 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/rfb/rfb.vcxproj.filters @@ -0,0 +1,401 @@ + + + + + {e28644c8-671a-494b-ba6e-c76252318b61} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {acc583d5-0759-472e-8e7e-b378e03c9c15} + h;hpp;hxx;hm;inl + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/common/zlib/ChangeLog b/PluginSource/VS2017/Realvnc/common/zlib/ChangeLog new file mode 100644 index 0000000..bf2e3f9 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/ChangeLog @@ -0,0 +1,481 @@ + + ChangeLog file for zlib + +Changes in 1.1.4 (11 March 2002) +- ZFREE was repeated on same allocation on some error conditions. + This creates a security problem described in + http://www.zlib.org/advisory-2002-03-11.txt +- Returned incorrect error (Z_MEM_ERROR) on some invalid data +- Avoid accesses before window for invalid distances with inflate window + less than 32K. +- force windowBits > 8 to avoid a bug in the encoder for a window size + of 256 bytes. (A complete fix will be available in 1.1.5). + +Changes in 1.1.3 (9 July 1998) +- fix "an inflate input buffer bug that shows up on rare but persistent + occasions" (Mark) +- fix gzread and gztell for concatenated .gz files (Didier Le Botlan) +- fix gzseek(..., SEEK_SET) in write mode +- fix crc check after a gzeek (Frank Faubert) +- fix miniunzip when the last entry in a zip file is itself a zip file + (J Lillge) +- add contrib/asm586 and contrib/asm686 (Brian Raiter) + See http://www.muppetlabs.com/~breadbox/software/assembly.html +- add support for Delphi 3 in contrib/delphi (Bob Dellaca) +- add support for C++Builder 3 and Delphi 3 in contrib/delphi2 (Davide Moretti) +- do not exit prematurely in untgz if 0 at start of block (Magnus Holmgren) +- use macro EXTERN instead of extern to support DLL for BeOS (Sander Stoks) +- added a FAQ file + +- Support gzdopen on Mac with Metrowerks (Jason Linhart) +- Do not redefine Byte on Mac (Brad Pettit & Jason Linhart) +- define SEEK_END too if SEEK_SET is not defined (Albert Chin-A-Young) +- avoid some warnings with Borland C (Tom Tanner) +- fix a problem in contrib/minizip/zip.c for 16-bit MSDOS (Gilles Vollant) +- emulate utime() for WIN32 in contrib/untgz (Gilles Vollant) +- allow several arguments to configure (Tim Mooney, Frodo Looijaard) +- use libdir and includedir in Makefile.in (Tim Mooney) +- support shared libraries on OSF1 V4 (Tim Mooney) +- remove so_locations in "make clean" (Tim Mooney) +- fix maketree.c compilation error (Glenn, Mark) +- Python interface to zlib now in Python 1.5 (Jeremy Hylton) +- new Makefile.riscos (Rich Walker) +- initialize static descriptors in trees.c for embedded targets (Nick Smith) +- use "foo-gz" in example.c for RISCOS and VMS (Nick Smith) +- add the OS/2 files in Makefile.in too (Andrew Zabolotny) +- fix fdopen and halloc macros for Microsoft C 6.0 (Tom Lane) +- fix maketree.c to allow clean compilation of inffixed.h (Mark) +- fix parameter check in deflateCopy (Gunther Nikl) +- cleanup trees.c, use compressed_len only in debug mode (Christian Spieler) +- Many portability patches by Christian Spieler: + . zutil.c, zutil.h: added "const" for zmem* + . Make_vms.com: fixed some typos + . Make_vms.com: msdos/Makefile.*: removed zutil.h from some dependency lists + . msdos/Makefile.msc: remove "default rtl link library" info from obj files + . msdos/Makefile.*: use model-dependent name for the built zlib library + . msdos/Makefile.emx, nt/Makefile.emx, nt/Makefile.gcc: + new makefiles, for emx (DOS/OS2), emx&rsxnt and mingw32 (Windows 9x / NT) +- use define instead of typedef for Bytef also for MSC small/medium (Tom Lane) +- replace __far with _far for better portability (Christian Spieler, Tom Lane) +- fix test for errno.h in configure (Tim Newsham) + +Changes in 1.1.2 (19 March 98) +- added contrib/minzip, mini zip and unzip based on zlib (Gilles Vollant) + See http://www.winimage.com/zLibDll/unzip.html +- preinitialize the inflate tables for fixed codes, to make the code + completely thread safe (Mark) +- some simplifications and slight speed-up to the inflate code (Mark) +- fix gzeof on non-compressed files (Allan Schrum) +- add -std1 option in configure for OSF1 to fix gzprintf (Martin Mokrejs) +- use default value of 4K for Z_BUFSIZE for 16-bit MSDOS (Tim Wegner + Glenn) +- added os2/Makefile.def and os2/zlib.def (Andrew Zabolotny) +- add shared lib support for UNIX_SV4.2MP (MATSUURA Takanori) +- do not wrap extern "C" around system includes (Tom Lane) +- mention zlib binding for TCL in README (Andreas Kupries) +- added amiga/Makefile.pup for Amiga powerUP SAS/C PPC (Andreas Kleinert) +- allow "make install prefix=..." even after configure (Glenn Randers-Pehrson) +- allow "configure --prefix $HOME" (Tim Mooney) +- remove warnings in example.c and gzio.c (Glenn Randers-Pehrson) +- move Makefile.sas to amiga/Makefile.sas + +Changes in 1.1.1 (27 Feb 98) +- fix macros _tr_tally_* in deflate.h for debug mode (Glenn Randers-Pehrson) +- remove block truncation heuristic which had very marginal effect for zlib + (smaller lit_bufsize than in gzip 1.2.4) and degraded a little the + compression ratio on some files. This also allows inlining _tr_tally for + matches in deflate_slow. +- added msdos/Makefile.w32 for WIN32 Microsoft Visual C++ (Bob Frazier) + +Changes in 1.1.0 (24 Feb 98) +- do not return STREAM_END prematurely in inflate (John Bowler) +- revert to the zlib 1.0.8 inflate to avoid the gcc 2.8.0 bug (Jeremy Buhler) +- compile with -DFASTEST to get compression code optimized for speed only +- in minigzip, try mmap'ing the input file first (Miguel Albrecht) +- increase size of I/O buffers in minigzip.c and gzio.c (not a big gain + on Sun but significant on HP) + +- add a pointer to experimental unzip library in README (Gilles Vollant) +- initialize variable gcc in configure (Chris Herborth) + +Changes in 1.0.9 (17 Feb 1998) +- added gzputs and gzgets functions +- do not clear eof flag in gzseek (Mark Diekhans) +- fix gzseek for files in transparent mode (Mark Diekhans) +- do not assume that vsprintf returns the number of bytes written (Jens Krinke) +- replace EXPORT with ZEXPORT to avoid conflict with other programs +- added compress2 in zconf.h, zlib.def, zlib.dnt +- new asm code from Gilles Vollant in contrib/asm386 +- simplify the inflate code (Mark): + . Replace ZALLOC's in huft_build() with single ZALLOC in inflate_blocks_new() + . ZALLOC the length list in inflate_trees_fixed() instead of using stack + . ZALLOC the value area for huft_build() instead of using stack + . Simplify Z_FINISH check in inflate() + +- Avoid gcc 2.8.0 comparison bug a little differently than zlib 1.0.8 +- in inftrees.c, avoid cc -O bug on HP (Farshid Elahi) +- in zconf.h move the ZLIB_DLL stuff earlier to avoid problems with + the declaration of FAR (Gilles VOllant) +- install libz.so* with mode 755 (executable) instead of 644 (Marc Lehmann) +- read_buf buf parameter of type Bytef* instead of charf* +- zmemcpy parameters are of type Bytef*, not charf* (Joseph Strout) +- do not redeclare unlink in minigzip.c for WIN32 (John Bowler) +- fix check for presence of directories in "make install" (Ian Willis) + +Changes in 1.0.8 (27 Jan 1998) +- fixed offsets in contrib/asm386/gvmat32.asm (Gilles Vollant) +- fix gzgetc and gzputc for big endian systems (Markus Oberhumer) +- added compress2() to allow setting the compression level +- include sys/types.h to get off_t on some systems (Marc Lehmann & QingLong) +- use constant arrays for the static trees in trees.c instead of computing + them at run time (thanks to Ken Raeburn for this suggestion). To create + trees.h, compile with GEN_TREES_H and run "make test". +- check return code of example in "make test" and display result +- pass minigzip command line options to file_compress +- simplifying code of inflateSync to avoid gcc 2.8 bug + +- support CC="gcc -Wall" in configure -s (QingLong) +- avoid a flush caused by ftell in gzopen for write mode (Ken Raeburn) +- fix test for shared library support to avoid compiler warnings +- zlib.lib -> zlib.dll in msdos/zlib.rc (Gilles Vollant) +- check for TARGET_OS_MAC in addition to MACOS (Brad Pettit) +- do not use fdopen for Metrowerks on Mac (Brad Pettit)) +- add checks for gzputc and gzputc in example.c +- avoid warnings in gzio.c and deflate.c (Andreas Kleinert) +- use const for the CRC table (Ken Raeburn) +- fixed "make uninstall" for shared libraries +- use Tracev instead of Trace in infblock.c +- in example.c use correct compressed length for test_sync +- suppress +vnocompatwarnings in configure for HPUX (not always supported) + +Changes in 1.0.7 (20 Jan 1998) +- fix gzseek which was broken in write mode +- return error for gzseek to negative absolute position +- fix configure for Linux (Chun-Chung Chen) +- increase stack space for MSC (Tim Wegner) +- get_crc_table and inflateSyncPoint are EXPORTed (Gilles Vollant) +- define EXPORTVA for gzprintf (Gilles Vollant) +- added man page zlib.3 (Rick Rodgers) +- for contrib/untgz, fix makedir() and improve Makefile + +- check gzseek in write mode in example.c +- allocate extra buffer for seeks only if gzseek is actually called +- avoid signed/unsigned comparisons (Tim Wegner, Gilles Vollant) +- add inflateSyncPoint in zconf.h +- fix list of exported functions in nt/zlib.dnt and mdsos/zlib.def + +Changes in 1.0.6 (19 Jan 1998) +- add functions gzprintf, gzputc, gzgetc, gztell, gzeof, gzseek, gzrewind and + gzsetparams (thanks to Roland Giersig and Kevin Ruland for some of this code) +- Fix a deflate bug occuring only with compression level 0 (thanks to + Andy Buckler for finding this one). +- In minigzip, pass transparently also the first byte for .Z files. +- return Z_BUF_ERROR instead of Z_OK if output buffer full in uncompress() +- check Z_FINISH in inflate (thanks to Marc Schluper) +- Implement deflateCopy (thanks to Adam Costello) +- make static libraries by default in configure, add --shared option. +- move MSDOS or Windows specific files to directory msdos +- suppress the notion of partial flush to simplify the interface + (but the symbol Z_PARTIAL_FLUSH is kept for compatibility with 1.0.4) +- suppress history buffer provided by application to simplify the interface + (this feature was not implemented anyway in 1.0.4) +- next_in and avail_in must be initialized before calling inflateInit or + inflateInit2 +- add EXPORT in all exported functions (for Windows DLL) +- added Makefile.nt (thanks to Stephen Williams) +- added the unsupported "contrib" directory: + contrib/asm386/ by Gilles Vollant + 386 asm code replacing longest_match(). + contrib/iostream/ by Kevin Ruland + A C++ I/O streams interface to the zlib gz* functions + contrib/iostream2/ by Tyge Løvset + Another C++ I/O streams interface + contrib/untgz/ by "Pedro A. Aranda Guti\irrez" + A very simple tar.gz file extractor using zlib + contrib/visual-basic.txt by Carlos Rios + How to use compress(), uncompress() and the gz* functions from VB. +- pass params -f (filtered data), -h (huffman only), -1 to -9 (compression + level) in minigzip (thanks to Tom Lane) + +- use const for rommable constants in deflate +- added test for gzseek and gztell in example.c +- add undocumented function inflateSyncPoint() (hack for Paul Mackerras) +- add undocumented function zError to convert error code to string + (for Tim Smithers) +- Allow compilation of gzio with -DNO_DEFLATE to avoid the compression code. +- Use default memcpy for Symantec MSDOS compiler. +- Add EXPORT keyword for check_func (needed for Windows DLL) +- add current directory to LD_LIBRARY_PATH for "make test" +- create also a link for libz.so.1 +- added support for FUJITSU UXP/DS (thanks to Toshiaki Nomura) +- use $(SHAREDLIB) instead of libz.so in Makefile.in (for HPUX) +- added -soname for Linux in configure (Chun-Chung Chen, +- assign numbers to the exported functions in zlib.def (for Windows DLL) +- add advice in zlib.h for best usage of deflateSetDictionary +- work around compiler bug on Atari (cast Z_NULL in call of s->checkfn) +- allow compilation with ANSI keywords only enabled for TurboC in large model +- avoid "versionString"[0] (Borland bug) +- add NEED_DUMMY_RETURN for Borland +- use variable z_verbose for tracing in debug mode (L. Peter Deutsch). +- allow compilation with CC +- defined STDC for OS/2 (David Charlap) +- limit external names to 8 chars for MVS (Thomas Lund) +- in minigzip.c, use static buffers only for 16-bit systems +- fix suffix check for "minigzip -d foo.gz" +- do not return an error for the 2nd of two consecutive gzflush() (Felix Lee) +- use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau) +- added makelcc.bat for lcc-win32 (Tom St Denis) +- in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe) +- Avoid expanded $Id$. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion. +- check for unistd.h in configure (for off_t) +- remove useless check parameter in inflate_blocks_free +- avoid useless assignment of s->check to itself in inflate_blocks_new +- do not flush twice in gzclose (thanks to Ken Raeburn) +- rename FOPEN as F_OPEN to avoid clash with /usr/include/sys/file.h +- use NO_ERRNO_H instead of enumeration of operating systems with errno.h +- work around buggy fclose on pipes for HP/UX +- support zlib DLL with BORLAND C++ 5.0 (thanks to Glenn Randers-Pehrson) +- fix configure if CC is already equal to gcc + +Changes in 1.0.5 (3 Jan 98) +- Fix inflate to terminate gracefully when fed corrupted or invalid data +- Use const for rommable constants in inflate +- Eliminate memory leaks on error conditions in inflate +- Removed some vestigial code in inflate +- Update web address in README + +Changes in 1.0.4 (24 Jul 96) +- In very rare conditions, deflate(s, Z_FINISH) could fail to produce an EOF + bit, so the decompressor could decompress all the correct data but went + on to attempt decompressing extra garbage data. This affected minigzip too. +- zlibVersion and gzerror return const char* (needed for DLL) +- port to RISCOS (no fdopen, no multiple dots, no unlink, no fileno) +- use z_error only for DEBUG (avoid problem with DLLs) + +Changes in 1.0.3 (2 Jul 96) +- use z_streamp instead of z_stream *, which is now a far pointer in MSDOS + small and medium models; this makes the library incompatible with previous + versions for these models. (No effect in large model or on other systems.) +- return OK instead of BUF_ERROR if previous deflate call returned with + avail_out as zero but there is nothing to do +- added memcmp for non STDC compilers +- define NO_DUMMY_DECL for more Mac compilers (.h files merged incorrectly) +- define __32BIT__ if __386__ or i386 is defined (pb. with Watcom and SCO) +- better check for 16-bit mode MSC (avoids problem with Symantec) + +Changes in 1.0.2 (23 May 96) +- added Windows DLL support +- added a function zlibVersion (for the DLL support) +- fixed declarations using Bytef in infutil.c (pb with MSDOS medium model) +- Bytef is define's instead of typedef'd only for Borland C +- avoid reading uninitialized memory in example.c +- mention in README that the zlib format is now RFC1950 +- updated Makefile.dj2 +- added algorithm.doc + +Changes in 1.0.1 (20 May 96) [1.0 skipped to avoid confusion] +- fix array overlay in deflate.c which sometimes caused bad compressed data +- fix inflate bug with empty stored block +- fix MSDOS medium model which was broken in 0.99 +- fix deflateParams() which could generated bad compressed data. +- Bytef is define'd instead of typedef'ed (work around Borland bug) +- added an INDEX file +- new makefiles for DJGPP (Makefile.dj2), 32-bit Borland (Makefile.b32), + Watcom (Makefile.wat), Amiga SAS/C (Makefile.sas) +- speed up adler32 for modern machines without auto-increment +- added -ansi for IRIX in configure +- static_init_done in trees.c is an int +- define unlink as delete for VMS +- fix configure for QNX +- add configure branch for SCO and HPUX +- avoid many warnings (unused variables, dead assignments, etc...) +- no fdopen for BeOS +- fix the Watcom fix for 32 bit mode (define FAR as empty) +- removed redefinition of Byte for MKWERKS +- work around an MWKERKS bug (incorrect merge of all .h files) + +Changes in 0.99 (27 Jan 96) +- allow preset dictionary shared between compressor and decompressor +- allow compression level 0 (no compression) +- add deflateParams in zlib.h: allow dynamic change of compression level + and compression strategy. +- test large buffers and deflateParams in example.c +- add optional "configure" to build zlib as a shared library +- suppress Makefile.qnx, use configure instead +- fixed deflate for 64-bit systems (detected on Cray) +- fixed inflate_blocks for 64-bit systems (detected on Alpha) +- declare Z_DEFLATED in zlib.h (possible parameter for deflateInit2) +- always return Z_BUF_ERROR when deflate() has nothing to do +- deflateInit and inflateInit are now macros to allow version checking +- prefix all global functions and types with z_ with -DZ_PREFIX +- make falloc completely reentrant (inftrees.c) +- fixed very unlikely race condition in ct_static_init +- free in reverse order of allocation to help memory manager +- use zlib-1.0/* instead of zlib/* inside the tar.gz +- make zlib warning-free with "gcc -O3 -Wall -Wwrite-strings -Wpointer-arith + -Wconversion -Wstrict-prototypes -Wmissing-prototypes" +- allow gzread on concatenated .gz files +- deflateEnd now returns Z_DATA_ERROR if it was premature +- deflate is finally (?) fully deterministic (no matches beyond end of input) +- Document Z_SYNC_FLUSH +- add uninstall in Makefile +- Check for __cpluplus in zlib.h +- Better test in ct_align for partial flush +- avoid harmless warnings for Borland C++ +- initialize hash_head in deflate.c +- avoid warning on fdopen (gzio.c) for HP cc -Aa +- include stdlib.h for STDC compilers +- include errno.h for Cray +- ignore error if ranlib doesn't exist +- call ranlib twice for NeXTSTEP +- use exec_prefix instead of prefix for libz.a +- renamed ct_* as _tr_* to avoid conflict with applications +- clear z->msg in inflateInit2 before any error return +- initialize opaque in example.c, gzio.c, deflate.c and inflate.c +- fixed typo in zconf.h (_GNUC__ => __GNUC__) +- check for WIN32 in zconf.h and zutil.c (avoid farmalloc in 32-bit mode) +- fix typo in Make_vms.com (f$trnlnm -> f$getsyi) +- in fcalloc, normalize pointer if size > 65520 bytes +- don't use special fcalloc for 32 bit Borland C++ +- use STDC instead of __GO32__ to avoid redeclaring exit, calloc, etc... +- use Z_BINARY instead of BINARY +- document that gzclose after gzdopen will close the file +- allow "a" as mode in gzopen. +- fix error checking in gzread +- allow skipping .gz extra-field on pipes +- added reference to Perl interface in README +- put the crc table in FAR data (I dislike more and more the medium model :) +- added get_crc_table +- added a dimension to all arrays (Borland C can't count). +- workaround Borland C bug in declaration of inflate_codes_new & inflate_fast +- guard against multiple inclusion of *.h (for precompiled header on Mac) +- Watcom C pretends to be Microsoft C small model even in 32 bit mode. +- don't use unsized arrays to avoid silly warnings by Visual C++: + warning C4746: 'inflate_mask' : unsized array treated as '__far' + (what's wrong with far data in far model?). +- define enum out of inflate_blocks_state to allow compilation with C++ + +Changes in 0.95 (16 Aug 95) +- fix MSDOS small and medium model (now easier to adapt to any compiler) +- inlined send_bits +- fix the final (:-) bug for deflate with flush (output was correct but + not completely flushed in rare occasions). +- default window size is same for compression and decompression + (it's now sufficient to set MAX_WBITS in zconf.h). +- voidp -> voidpf and voidnp -> voidp (for consistency with other + typedefs and because voidnp was not near in large model). + +Changes in 0.94 (13 Aug 95) +- support MSDOS medium model +- fix deflate with flush (could sometimes generate bad output) +- fix deflateReset (zlib header was incorrectly suppressed) +- added support for VMS +- allow a compression level in gzopen() +- gzflush now calls fflush +- For deflate with flush, flush even if no more input is provided. +- rename libgz.a as libz.a +- avoid complex expression in infcodes.c triggering Turbo C bug +- work around a problem with gcc on Alpha (in INSERT_STRING) +- don't use inline functions (problem with some gcc versions) +- allow renaming of Byte, uInt, etc... with #define. +- avoid warning about (unused) pointer before start of array in deflate.c +- avoid various warnings in gzio.c, example.c, infblock.c, adler32.c, zutil.c +- avoid reserved word 'new' in trees.c + +Changes in 0.93 (25 June 95) +- temporarily disable inline functions +- make deflate deterministic +- give enough lookahead for PARTIAL_FLUSH +- Set binary mode for stdin/stdout in minigzip.c for OS/2 +- don't even use signed char in inflate (not portable enough) +- fix inflate memory leak for segmented architectures + +Changes in 0.92 (3 May 95) +- don't assume that char is signed (problem on SGI) +- Clear bit buffer when starting a stored block +- no memcpy on Pyramid +- suppressed inftest.c +- optimized fill_window, put longest_match inline for gcc +- optimized inflate on stored blocks. +- untabify all sources to simplify patches + +Changes in 0.91 (2 May 95) +- Default MEM_LEVEL is 8 (not 9 for Unix) as documented in zlib.h +- Document the memory requirements in zconf.h +- added "make install" +- fix sync search logic in inflateSync +- deflate(Z_FULL_FLUSH) now works even if output buffer too short +- after inflateSync, don't scare people with just "lo world" +- added support for DJGPP + +Changes in 0.9 (1 May 95) +- don't assume that zalloc clears the allocated memory (the TurboC bug + was Mark's bug after all :) +- let again gzread copy uncompressed data unchanged (was working in 0.71) +- deflate(Z_FULL_FLUSH), inflateReset and inflateSync are now fully implemented +- added a test of inflateSync in example.c +- moved MAX_WBITS to zconf.h because users might want to change that. +- document explicitly that zalloc(64K) on MSDOS must return a normalized + pointer (zero offset) +- added Makefiles for Microsoft C, Turbo C, Borland C++ +- faster crc32() + +Changes in 0.8 (29 April 95) +- added fast inflate (inffast.c) +- deflate(Z_FINISH) now returns Z_STREAM_END when done. Warning: this + is incompatible with previous versions of zlib which returned Z_OK. +- work around a TurboC compiler bug (bad code for b << 0, see infutil.h) + (actually that was not a compiler bug, see 0.81 above) +- gzread no longer reads one extra byte in certain cases +- In gzio destroy(), don't reference a freed structure +- avoid many warnings for MSDOS +- avoid the ERROR symbol which is used by MS Windows + +Changes in 0.71 (14 April 95) +- Fixed more MSDOS compilation problems :( There is still a bug with + TurboC large model. + +Changes in 0.7 (14 April 95) +- Added full inflate support. +- Simplified the crc32() interface. The pre- and post-conditioning + (one's complement) is now done inside crc32(). WARNING: this is + incompatible with previous versions; see zlib.h for the new usage. + +Changes in 0.61 (12 April 95) +- workaround for a bug in TurboC. example and minigzip now work on MSDOS. + +Changes in 0.6 (11 April 95) +- added minigzip.c +- added gzdopen to reopen a file descriptor as gzFile +- added transparent reading of non-gziped files in gzread. +- fixed bug in gzread (don't read crc as data) +- fixed bug in destroy (gzio.c) (don't return Z_STREAM_END for gzclose). +- don't allocate big arrays in the stack (for MSDOS) +- fix some MSDOS compilation problems + +Changes in 0.5: +- do real compression in deflate.c. Z_PARTIAL_FLUSH is supported but + not yet Z_FULL_FLUSH. +- support decompression but only in a single step (forced Z_FINISH) +- added opaque object for zalloc and zfree. +- added deflateReset and inflateReset +- added a variable zlib_version for consistency checking. +- renamed the 'filter' parameter of deflateInit2 as 'strategy'. + Added Z_FILTERED and Z_HUFFMAN_ONLY constants. + +Changes in 0.4: +- avoid "zip" everywhere, use zlib instead of ziplib. +- suppress Z_BLOCK_FLUSH, interpret Z_PARTIAL_FLUSH as block flush + if compression method == 8. +- added adler32 and crc32 +- renamed deflateOptions as deflateInit2, call one or the other but not both +- added the method parameter for deflateInit2. +- added inflateInit2 +- simplied considerably deflateInit and inflateInit by not supporting + user-provided history buffer. This is supported only in deflateInit2 + and inflateInit2. + +Changes in 0.3: +- prefix all macro names with Z_ +- use Z_FINISH instead of deflateEnd to finish compression. +- added Z_HUFFMAN_ONLY +- added gzerror() diff --git a/PluginSource/VS2017/Realvnc/common/zlib/FAQ b/PluginSource/VS2017/Realvnc/common/zlib/FAQ new file mode 100644 index 0000000..47a7d60 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/FAQ @@ -0,0 +1,100 @@ + + Frequently Asked Questions about zlib + + +If your question is not there, please check the zlib home page +http://www.zlib.org which may have more recent information. +The lastest zlib FAQ is at http://www.gzip.org/zlib/zlib_faq.html + + + 1. Is zlib Y2K-compliant? + + Yes. zlib doesn't handle dates. + + 2. Where can I get a Windows DLL version? + + The zlib sources can be compiled without change to produce a DLL. If you + want a precompiled DLL, see http://www.winimage.com/zLibDll/ . Questions + about the zlib DLL should be sent to Gilles Vollant (info@winimage.com). + + 3. Where can I get a Visual Basic interface to zlib? + + See + * http://www.winimage.com/zLibDll/cmp-z-it.zip + * http://www.dogma.net/markn/articles/zlibtool/zlibtool.htm + * contrib/visual-basic.txt in the zlib distribution + + 4. compress() returns Z_BUF_ERROR + + Make sure that before the call of compress, the length of the compressed + buffer is equal to the total size of the compressed buffer and not + zero. For Visual Basic, check that this parameter is passed by reference + ("as any"), not by value ("as long"). + + 5. deflate() or inflate() returns Z_BUF_ERROR + + Before making the call, make sure that avail_in and avail_out are not + zero. When setting the parameter flush equal to Z_FINISH, also make sure + that avail_out is big enough to allow processing all pending input. + + 6. Where's the zlib documentation (man pages, etc.)? + + It's in zlib.h for the moment, and Francis S. Lin has converted it to a + web page zlib.html. Volunteers to transform this to Unix-style man pages, + please contact Jean-loup Gailly (jloup@gzip.org). Examples of zlib usage + are in the files example.c and minigzip.c. + + 7. Why don't you use GNU autoconf or libtool or ...? + + Because we would like to keep zlib as a very small and simple + package. zlib is rather portable and doesn't need much configuration. + + 8. I found a bug in zlib. + + Most of the time, such problems are due to an incorrect usage of + zlib. Please try to reproduce the problem with a small program and send + the corresponding source to us at zlib@gzip.org . Do not send + multi-megabyte data files without prior agreement. + + 9. Why do I get "undefined reference to gzputc"? + + If "make test" produces something like + + example.o(.text+0x154): undefined reference to `gzputc' + + check that you don't have old files libz.* in /usr/lib, /usr/local/lib or + /usr/X11R6/lib. Remove any old versions, then do "make install". + +10. I need a Delphi interface to zlib. + + See the directories contrib/delphi and contrib/delphi2 in the zlib + distribution. + +11. Can zlib handle .zip archives? + + See the directory contrib/minizip in the zlib distribution. + +12. Can zlib handle .Z files? + + No, sorry. You have to spawn an uncompress or gunzip subprocess, or adapt + the code of uncompress on your own. + +13. How can I make a Unix shared library? + + make clean + ./configure -s + make + +14. Why does "make test" fail on Mac OS X? + + Mac OS X already includes zlib as a shared library, and so -lz links the + shared library instead of the one that the "make" compiled. For zlib + 1.1.3, the two are incompatible due to different compile-time + options. Simply change the -lz in the Makefile to libz.a, and it will use + the compiled library instead of the shared one and the "make test" will + succeed. + +15. I have a question about OttoPDF + + We are not the authors of OttoPDF. The real author is on the OttoPDF web + site Joel Hainley jhainley@myndkryme.com. diff --git a/PluginSource/VS2017/Realvnc/common/zlib/INDEX b/PluginSource/VS2017/Realvnc/common/zlib/INDEX new file mode 100644 index 0000000..8a24576 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/INDEX @@ -0,0 +1,86 @@ +ChangeLog history of changes +INDEX this file +FAQ Frequently Asked Questions about zlib +Make_vms.com script for Vax/VMS +Makefile makefile for Unix (generated by configure) +Makefile.in makefile for Unix (template for configure) +Makefile.riscos makefile for RISCOS +README guess what +algorithm.txt description of the (de)compression algorithm +configure configure script for Unix +descrip.mms makefile for Vax/VMS +zlib.3 mini man page for zlib (volunteers to write full + man pages from zlib.h welcome. write to jloup@gzip.org) + +amiga/Makefile.sas makefile for Amiga SAS/C +amiga/Makefile.pup makefile for Amiga powerUP SAS/C PPC + +msdos/Makefile.w32 makefile for Microsoft Visual C++ 32-bit +msdos/Makefile.b32 makefile for Borland C++ 32-bit +msdos/Makefile.bor makefile for Borland C/C++ 16-bit +msdos/Makefile.dj2 makefile for DJGPP 2.x +msdos/Makefile.emx makefile for EMX 0.9c (32-bit DOS/OS2) +msdos/Makefile.msc makefile for Microsoft C 16-bit +msdos/Makefile.tc makefile for Turbo C +msdos/Makefile.wat makefile for Watcom C +msdos/zlib.def definition file for Windows DLL +msdos/zlib.rc definition file for Windows DLL + +nt/Makefile.nt makefile for Windows NT +nt/zlib.dnt definition file for Windows NT DLL +nt/Makefile.emx makefile for EMX 0.9c/RSXNT 1.41 (Win32 Intel) +nt/Makefile.gcc makefile for Windows NT using GCC (mingw32) + + + zlib public header files (must be kept): +zconf.h +zlib.h + + private source files used to build the zlib library: +adler32.c +compress.c +crc32.c +deflate.c +deflate.h +gzio.c +infblock.c +infblock.h +infcodes.c +infcodes.h +inffast.c +inffast.h +inflate.c +inftrees.c +inftrees.h +infutil.c +infutil.h +maketree.c +trees.c +uncompr.c +zutil.c +zutil.h + + source files for sample programs: +example.c +minigzip.c + + unsupported contribution by third parties + +contrib/asm386/ by Gilles Vollant + 386 asm code replacing longest_match(). + +contrib/minizip/ by Gilles Vollant + Mini zip and unzip based on zlib + See http://www.winimage.com/zLibDll/unzip.html + +contrib/iostream/ by Kevin Ruland + A C++ I/O streams interface to the zlib gz* functions + +contrib/iostream2/ by Tyge Løvset + Another C++ I/O streams interface + +contrib/untgz/ by "Pedro A. Aranda Guti\irrez" + A very simple tar.gz extractor using zlib + +contrib/visual-basic.txt by Carlos Rios + How to use compress(), uncompress() and the gz* functions from VB. diff --git a/PluginSource/VS2017/Realvnc/common/zlib/Make_vms.com b/PluginSource/VS2017/Realvnc/common/zlib/Make_vms.com new file mode 100644 index 0000000..1c57e8f --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/Make_vms.com @@ -0,0 +1,115 @@ +$! make libz under VMS +$! written by Martin P.J. Zinser +$! +$! Look for the compiler used +$! +$ ccopt = "" +$ if f$getsyi("HW_MODEL").ge.1024 +$ then +$ ccopt = "/prefix=all"+ccopt +$ comp = "__decc__=1" +$ if f$trnlnm("SYS").eqs."" then define sys sys$library: +$ else +$ if f$search("SYS$SYSTEM:DECC$COMPILER.EXE").eqs."" +$ then +$ comp = "__vaxc__=1" +$ if f$trnlnm("SYS").eqs."" then define sys sys$library: +$ else +$ if f$trnlnm("SYS").eqs."" then define sys decc$library_include: +$ ccopt = "/decc/prefix=all"+ccopt +$ comp = "__decc__=1" +$ endif +$ endif +$! +$! Build the thing plain or with mms +$! +$ write sys$output "Compiling Zlib sources ..." +$ if f$search("SYS$SYSTEM:MMS.EXE").eqs."" +$ then +$ dele example.obj;*,minigzip.obj;* +$ CALL MAKE adler32.OBJ "CC ''CCOPT' adler32" - + adler32.c zlib.h zconf.h +$ CALL MAKE compress.OBJ "CC ''CCOPT' compress" - + compress.c zlib.h zconf.h +$ CALL MAKE crc32.OBJ "CC ''CCOPT' crc32" - + crc32.c zlib.h zconf.h +$ CALL MAKE deflate.OBJ "CC ''CCOPT' deflate" - + deflate.c deflate.h zutil.h zlib.h zconf.h +$ CALL MAKE gzio.OBJ "CC ''CCOPT' gzio" - + gzio.c zutil.h zlib.h zconf.h +$ CALL MAKE infblock.OBJ "CC ''CCOPT' infblock" - + infblock.c zutil.h zlib.h zconf.h infblock.h +$ CALL MAKE infcodes.OBJ "CC ''CCOPT' infcodes" - + infcodes.c zutil.h zlib.h zconf.h inftrees.h +$ CALL MAKE inffast.OBJ "CC ''CCOPT' inffast" - + inffast.c zutil.h zlib.h zconf.h inffast.h +$ CALL MAKE inflate.OBJ "CC ''CCOPT' inflate" - + inflate.c zutil.h zlib.h zconf.h infblock.h +$ CALL MAKE inftrees.OBJ "CC ''CCOPT' inftrees" - + inftrees.c zutil.h zlib.h zconf.h inftrees.h +$ CALL MAKE infutil.OBJ "CC ''CCOPT' infutil" - + infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h +$ CALL MAKE trees.OBJ "CC ''CCOPT' trees" - + trees.c deflate.h zutil.h zlib.h zconf.h +$ CALL MAKE uncompr.OBJ "CC ''CCOPT' uncompr" - + uncompr.c zlib.h zconf.h +$ CALL MAKE zutil.OBJ "CC ''CCOPT' zutil" - + zutil.c zutil.h zlib.h zconf.h +$ write sys$output "Building Zlib ..." +$ CALL MAKE libz.OLB "lib/crea libz.olb *.obj" *.OBJ +$ write sys$output "Building example..." +$ CALL MAKE example.OBJ "CC ''CCOPT' example" - + example.c zlib.h zconf.h +$ call make example.exe "LINK example,libz.olb/lib" example.obj libz.olb +$ write sys$output "Building minigzip..." +$ CALL MAKE minigzip.OBJ "CC ''CCOPT' minigzip" - + minigzip.c zlib.h zconf.h +$ call make minigzip.exe - + "LINK minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib" - + minigzip.obj libz.olb +$ else +$ mms/macro=('comp') +$ endif +$ write sys$output "Zlib build completed" +$ exit +$! +$! +$MAKE: SUBROUTINE !SUBROUTINE TO CHECK DEPENDENCIES +$ V = 'F$Verify(0) +$! P1 = What we are trying to make +$! P2 = Command to make it +$! P3 - P8 What it depends on +$ +$ If F$Search(P1) .Eqs. "" Then Goto Makeit +$ Time = F$CvTime(F$File(P1,"RDT")) +$arg=3 +$Loop: +$ Argument = P'arg +$ If Argument .Eqs. "" Then Goto Exit +$ El=0 +$Loop2: +$ File = F$Element(El," ",Argument) +$ If File .Eqs. " " Then Goto Endl +$ AFile = "" +$Loop3: +$ OFile = AFile +$ AFile = F$Search(File) +$ If AFile .Eqs. "" .Or. AFile .Eqs. OFile Then Goto NextEl +$ If F$CvTime(F$File(AFile,"RDT")) .Ges. Time Then Goto Makeit +$ Goto Loop3 +$NextEL: +$ El = El + 1 +$ Goto Loop2 +$EndL: +$ arg=arg+1 +$ If arg .Le. 8 Then Goto Loop +$ Goto Exit +$ +$Makeit: +$ VV=F$VERIFY(0) +$ write sys$output P2 +$ 'P2 +$ VV='F$Verify(VV) +$Exit: +$ If V Then Set Verify +$ENDSUBROUTINE diff --git a/PluginSource/VS2017/Realvnc/common/zlib/Makefile.in b/PluginSource/VS2017/Realvnc/common/zlib/Makefile.in new file mode 100644 index 0000000..531562b --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/Makefile.in @@ -0,0 +1,175 @@ +# Makefile for zlib +# Copyright (C) 1995-2002 Jean-loup Gailly. +# For conditions of distribution and use, see copyright notice in zlib.h + +# To compile and test, type: +# ./configure; make test +# The call of configure is optional if you don't have special requirements +# If you wish to build zlib as a shared library, use: ./configure -s + +# To install /usr/local/lib/libz.* and /usr/local/include/zlib.h, type: +# make install +# To install in $HOME instead of /usr/local, use: +# make install prefix=$HOME + +CC=cc + +CFLAGS=-O +#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7 +#CFLAGS=-g -DDEBUG +#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \ +# -Wstrict-prototypes -Wmissing-prototypes + +LDFLAGS=-L. -lz +LDSHARED=$(CC) +CPP=$(CC) -E + +VER=1.1.4 +LIBS=libz.a +SHAREDLIB=libz.so + +AR=ar rc +RANLIB=ranlib +TAR=tar +SHELL=/bin/sh + +prefix = /usr/local +exec_prefix = ${prefix} +libdir = ${exec_prefix}/lib +includedir = ${prefix}/include + +OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \ + zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o + +OBJA = +# to use the asm code: make OBJA=match.o + +TEST_OBJS = example.o minigzip.o + +DISTFILES = README FAQ INDEX ChangeLog configure Make*[a-z0-9] *.[ch] *.mms \ + algorithm.txt zlib.3 zlib.html \ + msdos/Make*[a-z0-9] msdos/zlib.def msdos/zlib.rc \ + nt/Make*[a-z0-9] nt/zlib.dnt amiga/Make*.??? os2/M*.os2 os2/zlib.def \ + contrib/RE*.contrib contrib/*.txt contrib/asm386/*.asm contrib/asm386/*.c \ + contrib/asm386/*.bat contrib/asm386/zlibvc.d?? contrib/asm[56]86/*.?86 \ + contrib/asm[56]86/*.S contrib/iostream/*.cpp \ + contrib/iostream/*.h contrib/iostream2/*.h contrib/iostream2/*.cpp \ + contrib/untgz/Makefile contrib/untgz/*.c contrib/untgz/*.w32 \ + contrib/minizip/[CM]*[pe] contrib/minizip/*.[ch] contrib/minizip/*.[td]?? \ + contrib/delphi*/*.??? + +all: example minigzip + +test: all + @LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \ + echo hello world | ./minigzip | ./minigzip -d || \ + echo ' *** minigzip test FAILED ***' ; \ + if ./example; then \ + echo ' *** zlib test OK ***'; \ + else \ + echo ' *** zlib test FAILED ***'; \ + fi + +libz.a: $(OBJS) $(OBJA) + $(AR) $@ $(OBJS) $(OBJA) + -@ ($(RANLIB) $@ || true) >/dev/null 2>&1 + +match.o: match.S + $(CPP) match.S > _match.s + $(CC) -c _match.s + mv _match.o match.o + rm -f _match.s + +$(SHAREDLIB).$(VER): $(OBJS) + $(LDSHARED) -o $@ $(OBJS) + rm -f $(SHAREDLIB) $(SHAREDLIB).1 + ln -s $@ $(SHAREDLIB) + ln -s $@ $(SHAREDLIB).1 + +example: example.o $(LIBS) + $(CC) $(CFLAGS) -o $@ example.o $(LDFLAGS) + +minigzip: minigzip.o $(LIBS) + $(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS) + +install: $(LIBS) + -@if [ ! -d $(includedir) ]; then mkdir $(includedir); fi + -@if [ ! -d $(libdir) ]; then mkdir $(libdir); fi + cp zlib.h zconf.h $(includedir) + chmod 644 $(includedir)/zlib.h $(includedir)/zconf.h + cp $(LIBS) $(libdir) + cd $(libdir); chmod 755 $(LIBS) + -@(cd $(libdir); $(RANLIB) libz.a || true) >/dev/null 2>&1 + cd $(libdir); if test -f $(SHAREDLIB).$(VER); then \ + rm -f $(SHAREDLIB) $(SHAREDLIB).1; \ + ln -s $(SHAREDLIB).$(VER) $(SHAREDLIB); \ + ln -s $(SHAREDLIB).$(VER) $(SHAREDLIB).1; \ + (ldconfig || true) >/dev/null 2>&1; \ + fi +# The ranlib in install is needed on NeXTSTEP which checks file times +# ldconfig is for Linux + +uninstall: + cd $(includedir); \ + v=$(VER); \ + if test -f zlib.h; then \ + v=`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`; \ + rm -f zlib.h zconf.h; \ + fi; \ + cd $(libdir); rm -f libz.a; \ + if test -f $(SHAREDLIB).$$v; then \ + rm -f $(SHAREDLIB).$$v $(SHAREDLIB) $(SHAREDLIB).1; \ + fi + +clean: + rm -f *.o *~ example minigzip libz.a libz.so* foo.gz so_locations \ + _match.s maketree + +distclean: clean + +zip: + mv Makefile Makefile~; cp -p Makefile.in Makefile + rm -f test.c ztest*.c contrib/minizip/test.zip + v=`sed -n -e 's/\.//g' -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ + zip -ul9 zlib$$v $(DISTFILES) + mv Makefile~ Makefile + +dist: + mv Makefile Makefile~; cp -p Makefile.in Makefile + rm -f test.c ztest*.c contrib/minizip/test.zip + d=zlib-`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ + rm -f $$d.tar.gz; \ + if test ! -d ../$$d; then rm -f ../$$d; ln -s `pwd` ../$$d; fi; \ + files=""; \ + for f in $(DISTFILES); do files="$$files $$d/$$f"; done; \ + cd ..; \ + GZIP=-9 $(TAR) chofz $$d/$$d.tar.gz $$files; \ + if test ! -d $$d; then rm -f $$d; fi + mv Makefile~ Makefile + +tags: + etags *.[ch] + +depend: + makedepend -- $(CFLAGS) -- *.[ch] + +# DO NOT DELETE THIS LINE -- make depend depends on it. + +adler32.o: zlib.h zconf.h +compress.o: zlib.h zconf.h +crc32.o: zlib.h zconf.h +deflate.o: deflate.h zutil.h zlib.h zconf.h +example.o: zlib.h zconf.h +gzio.o: zutil.h zlib.h zconf.h +infblock.o: infblock.h inftrees.h infcodes.h infutil.h zutil.h zlib.h zconf.h +infcodes.o: zutil.h zlib.h zconf.h +infcodes.o: inftrees.h infblock.h infcodes.h infutil.h inffast.h +inffast.o: zutil.h zlib.h zconf.h inftrees.h +inffast.o: infblock.h infcodes.h infutil.h inffast.h +inflate.o: zutil.h zlib.h zconf.h infblock.h +inftrees.o: zutil.h zlib.h zconf.h inftrees.h +infutil.o: zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h +minigzip.o: zlib.h zconf.h +trees.o: deflate.h zutil.h zlib.h zconf.h trees.h +uncompr.o: zlib.h zconf.h +zutil.o: zutil.h zlib.h zconf.h diff --git a/PluginSource/VS2017/Realvnc/common/zlib/Makefile.riscos b/PluginSource/VS2017/Realvnc/common/zlib/Makefile.riscos new file mode 100644 index 0000000..d97f449 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/Makefile.riscos @@ -0,0 +1,151 @@ +# Project: zlib_1_03 +# Patched for zlib 1.1.2 rw@shadow.org.uk 19980430 +# test works out-of-the-box, installs `somewhere' on demand + +# Toolflags: +CCflags = -c -depend !Depend -IC: -g -throwback -DRISCOS -fah +C++flags = -c -depend !Depend -IC: -throwback +Linkflags = -aif -c++ -o $@ +ObjAsmflags = -throwback -NoCache -depend !Depend +CMHGflags = +LibFileflags = -c -l -o $@ +Squeezeflags = -o $@ + +# change the line below to where _you_ want the library installed. +libdest = lib:zlib + +# Final targets: +@.lib: @.o.adler32 @.o.compress @.o.crc32 @.o.deflate @.o.gzio \ + @.o.infblock @.o.infcodes @.o.inffast @.o.inflate @.o.inftrees @.o.infutil @.o.trees \ + @.o.uncompr @.o.zutil + LibFile $(LibFileflags) @.o.adler32 @.o.compress @.o.crc32 @.o.deflate \ + @.o.gzio @.o.infblock @.o.infcodes @.o.inffast @.o.inflate @.o.inftrees @.o.infutil \ + @.o.trees @.o.uncompr @.o.zutil +test: @.minigzip @.example @.lib + @copy @.lib @.libc A~C~DF~L~N~P~Q~RS~TV + @echo running tests: hang on. + @/@.minigzip -f -9 libc + @/@.minigzip -d libc-gz + @/@.minigzip -f -1 libc + @/@.minigzip -d libc-gz + @/@.minigzip -h -9 libc + @/@.minigzip -d libc-gz + @/@.minigzip -h -1 libc + @/@.minigzip -d libc-gz + @/@.minigzip -9 libc + @/@.minigzip -d libc-gz + @/@.minigzip -1 libc + @/@.minigzip -d libc-gz + @diff @.lib @.libc + @echo that should have reported '@.lib and @.libc identical' if you have diff. + @/@.example @.fred @.fred + @echo that will have given lots of hello!'s. + +@.minigzip: @.o.minigzip @.lib C:o.Stubs + Link $(Linkflags) @.o.minigzip @.lib C:o.Stubs +@.example: @.o.example @.lib C:o.Stubs + Link $(Linkflags) @.o.example @.lib C:o.Stubs + +install: @.lib + cdir $(libdest) + cdir $(libdest).h + @copy @.h.zlib $(libdest).h.zlib A~C~DF~L~N~P~Q~RS~TV + @copy @.h.zconf $(libdest).h.zconf A~C~DF~L~N~P~Q~RS~TV + @copy @.lib $(libdest).lib A~C~DF~L~N~P~Q~RS~TV + @echo okay, installed zlib in $(libdest) + +clean:; remove @.minigzip + remove @.example + remove @.libc + -wipe @.o.* F~r~cV + remove @.fred + +# User-editable dependencies: +.c.o: + cc $(ccflags) -o $@ $< + +# Static dependencies: + +# Dynamic dependencies: +o.example: c.example +o.example: h.zlib +o.example: h.zconf +o.minigzip: c.minigzip +o.minigzip: h.zlib +o.minigzip: h.zconf +o.adler32: c.adler32 +o.adler32: h.zlib +o.adler32: h.zconf +o.compress: c.compress +o.compress: h.zlib +o.compress: h.zconf +o.crc32: c.crc32 +o.crc32: h.zlib +o.crc32: h.zconf +o.deflate: c.deflate +o.deflate: h.deflate +o.deflate: h.zutil +o.deflate: h.zlib +o.deflate: h.zconf +o.gzio: c.gzio +o.gzio: h.zutil +o.gzio: h.zlib +o.gzio: h.zconf +o.infblock: c.infblock +o.infblock: h.zutil +o.infblock: h.zlib +o.infblock: h.zconf +o.infblock: h.infblock +o.infblock: h.inftrees +o.infblock: h.infcodes +o.infblock: h.infutil +o.infcodes: c.infcodes +o.infcodes: h.zutil +o.infcodes: h.zlib +o.infcodes: h.zconf +o.infcodes: h.inftrees +o.infcodes: h.infblock +o.infcodes: h.infcodes +o.infcodes: h.infutil +o.infcodes: h.inffast +o.inffast: c.inffast +o.inffast: h.zutil +o.inffast: h.zlib +o.inffast: h.zconf +o.inffast: h.inftrees +o.inffast: h.infblock +o.inffast: h.infcodes +o.inffast: h.infutil +o.inffast: h.inffast +o.inflate: c.inflate +o.inflate: h.zutil +o.inflate: h.zlib +o.inflate: h.zconf +o.inflate: h.infblock +o.inftrees: c.inftrees +o.inftrees: h.zutil +o.inftrees: h.zlib +o.inftrees: h.zconf +o.inftrees: h.inftrees +o.inftrees: h.inffixed +o.infutil: c.infutil +o.infutil: h.zutil +o.infutil: h.zlib +o.infutil: h.zconf +o.infutil: h.infblock +o.infutil: h.inftrees +o.infutil: h.infcodes +o.infutil: h.infutil +o.trees: c.trees +o.trees: h.deflate +o.trees: h.zutil +o.trees: h.zlib +o.trees: h.zconf +o.trees: h.trees +o.uncompr: c.uncompr +o.uncompr: h.zlib +o.uncompr: h.zconf +o.zutil: c.zutil +o.zutil: h.zutil +o.zutil: h.zlib +o.zutil: h.zconf diff --git a/PluginSource/VS2017/Realvnc/common/zlib/README b/PluginSource/VS2017/Realvnc/common/zlib/README new file mode 100644 index 0000000..29d6714 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/README @@ -0,0 +1,147 @@ +zlib 1.1.4 is a general purpose data compression library. All the code +is thread safe. The data format used by the zlib library +is described by RFCs (Request for Comments) 1950 to 1952 in the files +http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate +format) and rfc1952.txt (gzip format). These documents are also available in +other formats from ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html + +All functions of the compression library are documented in the file zlib.h +(volunteer to write man pages welcome, contact jloup@gzip.org). A usage +example of the library is given in the file example.c which also tests that +the library is working correctly. Another example is given in the file +minigzip.c. The compression library itself is composed of all source files +except example.c and minigzip.c. + +To compile all files and run the test program, follow the instructions +given at the top of Makefile. In short "make test; make install" +should work for most machines. For Unix: "./configure; make test; make install" +For MSDOS, use one of the special makefiles such as Makefile.msc. +For VMS, use Make_vms.com or descrip.mms. + +Questions about zlib should be sent to , or to +Gilles Vollant for the Windows DLL version. +The zlib home page is http://www.zlib.org or http://www.gzip.org/zlib/ +Before reporting a problem, please check this site to verify that +you have the latest version of zlib; otherwise get the latest version and +check whether the problem still exists or not. + +PLEASE read the zlib FAQ http://www.gzip.org/zlib/zlib_faq.html +before asking for help. + +Mark Nelson wrote an article about zlib for the Jan. 1997 +issue of Dr. Dobb's Journal; a copy of the article is available in +http://dogma.net/markn/articles/zlibtool/zlibtool.htm + +The changes made in version 1.1.4 are documented in the file ChangeLog. +The only changes made since 1.1.3 are bug corrections: + +- ZFREE was repeated on same allocation on some error conditions. + This creates a security problem described in + http://www.zlib.org/advisory-2002-03-11.txt +- Returned incorrect error (Z_MEM_ERROR) on some invalid data +- Avoid accesses before window for invalid distances with inflate window + less than 32K. +- force windowBits > 8 to avoid a bug in the encoder for a window size + of 256 bytes. (A complete fix will be available in 1.1.5). + +The beta version 1.1.5beta includes many more changes. A new official +version 1.1.5 will be released as soon as extensive testing has been +completed on it. + + +Unsupported third party contributions are provided in directory "contrib". + +A Java implementation of zlib is available in the Java Development Kit +http://www.javasoft.com/products/JDK/1.1/docs/api/Package-java.util.zip.html +See the zlib home page http://www.zlib.org for details. + +A Perl interface to zlib written by Paul Marquess +is in the CPAN (Comprehensive Perl Archive Network) sites +http://www.cpan.org/modules/by-module/Compress/ + +A Python interface to zlib written by A.M. Kuchling +is available in Python 1.5 and later versions, see +http://www.python.org/doc/lib/module-zlib.html + +A zlib binding for TCL written by Andreas Kupries +is availlable at http://www.westend.com/~kupries/doc/trf/man/man.html + +An experimental package to read and write files in .zip format, +written on top of zlib by Gilles Vollant , is +available at http://www.winimage.com/zLibDll/unzip.html +and also in the contrib/minizip directory of zlib. + + +Notes for some targets: + +- To build a Windows DLL version, include in a DLL project zlib.def, zlib.rc + and all .c files except example.c and minigzip.c; compile with -DZLIB_DLL + The zlib DLL support was initially done by Alessandro Iacopetti and is + now maintained by Gilles Vollant . Check the zlib DLL + home page at http://www.winimage.com/zLibDll + + From Visual Basic, you can call the DLL functions which do not take + a structure as argument: compress, uncompress and all gz* functions. + See contrib/visual-basic.txt for more information, or get + http://www.tcfb.com/dowseware/cmp-z-it.zip + +- For 64-bit Irix, deflate.c must be compiled without any optimization. + With -O, one libpng test fails. The test works in 32 bit mode (with + the -n32 compiler flag). The compiler bug has been reported to SGI. + +- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 + it works when compiled with cc. + +- on Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1 + is necessary to get gzprintf working correctly. This is done by configure. + +- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works + with other compilers. Use "make test" to check your compiler. + +- gzdopen is not supported on RISCOS, BEOS and by some Mac compilers. + +- For Turbo C the small model is supported only with reduced performance to + avoid any far allocation; it was tested with -DMAX_WBITS=11 -DMAX_MEM_LEVEL=3 + +- For PalmOs, see http://www.cs.uit.no/~perm/PASTA/pilot/software.html + Per Harald Myrvang + + +Acknowledgments: + + The deflate format used by zlib was defined by Phil Katz. The deflate + and zlib specifications were written by L. Peter Deutsch. Thanks to all the + people who reported problems and suggested various improvements in zlib; + they are too numerous to cite here. + +Copyright notice: + + (C) 1995-2002 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +If you use the zlib library in a product, we would appreciate *not* +receiving lengthy legal documents to sign. The sources are provided +for free but without warranty of any kind. The library has been +entirely written by Jean-loup Gailly and Mark Adler; it does not +include third-party code. + +If you redistribute modified sources, we would appreciate that you include +in the file ChangeLog history information documenting your changes. diff --git a/PluginSource/VS2017/Realvnc/common/zlib/UpgradeLog.htm b/PluginSource/VS2017/Realvnc/common/zlib/UpgradeLog.htm new file mode 100644 index 0000000..844c4bc Binary files /dev/null and b/PluginSource/VS2017/Realvnc/common/zlib/UpgradeLog.htm differ diff --git a/PluginSource/VS2017/Realvnc/common/zlib/algorithm.txt b/PluginSource/VS2017/Realvnc/common/zlib/algorithm.txt new file mode 100644 index 0000000..cdc830b --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/algorithm.txt @@ -0,0 +1,213 @@ +1. Compression algorithm (deflate) + +The deflation algorithm used by gzip (also zip and zlib) is a variation of +LZ77 (Lempel-Ziv 1977, see reference below). It finds duplicated strings in +the input data. The second occurrence of a string is replaced by a +pointer to the previous string, in the form of a pair (distance, +length). Distances are limited to 32K bytes, and lengths are limited +to 258 bytes. When a string does not occur anywhere in the previous +32K bytes, it is emitted as a sequence of literal bytes. (In this +description, `string' must be taken as an arbitrary sequence of bytes, +and is not restricted to printable characters.) + +Literals or match lengths are compressed with one Huffman tree, and +match distances are compressed with another tree. The trees are stored +in a compact form at the start of each block. The blocks can have any +size (except that the compressed data for one block must fit in +available memory). A block is terminated when deflate() determines that +it would be useful to start another block with fresh trees. (This is +somewhat similar to the behavior of LZW-based _compress_.) + +Duplicated strings are found using a hash table. All input strings of +length 3 are inserted in the hash table. A hash index is computed for +the next 3 bytes. If the hash chain for this index is not empty, all +strings in the chain are compared with the current input string, and +the longest match is selected. + +The hash chains are searched starting with the most recent strings, to +favor small distances and thus take advantage of the Huffman encoding. +The hash chains are singly linked. There are no deletions from the +hash chains, the algorithm simply discards matches that are too old. + +To avoid a worst-case situation, very long hash chains are arbitrarily +truncated at a certain length, determined by a runtime option (level +parameter of deflateInit). So deflate() does not always find the longest +possible match but generally finds a match which is long enough. + +deflate() also defers the selection of matches with a lazy evaluation +mechanism. After a match of length N has been found, deflate() searches for +a longer match at the next input byte. If a longer match is found, the +previous match is truncated to a length of one (thus producing a single +literal byte) and the process of lazy evaluation begins again. Otherwise, +the original match is kept, and the next match search is attempted only N +steps later. + +The lazy match evaluation is also subject to a runtime parameter. If +the current match is long enough, deflate() reduces the search for a longer +match, thus speeding up the whole process. If compression ratio is more +important than speed, deflate() attempts a complete second search even if +the first match is already long enough. + +The lazy match evaluation is not performed for the fastest compression +modes (level parameter 1 to 3). For these fast modes, new strings +are inserted in the hash table only when no match was found, or +when the match is not too long. This degrades the compression ratio +but saves time since there are both fewer insertions and fewer searches. + + +2. Decompression algorithm (inflate) + +2.1 Introduction + +The real question is, given a Huffman tree, how to decode fast. The most +important realization is that shorter codes are much more common than +longer codes, so pay attention to decoding the short codes fast, and let +the long codes take longer to decode. + +inflate() sets up a first level table that covers some number of bits of +input less than the length of longest code. It gets that many bits from the +stream, and looks it up in the table. The table will tell if the next +code is that many bits or less and how many, and if it is, it will tell +the value, else it will point to the next level table for which inflate() +grabs more bits and tries to decode a longer code. + +How many bits to make the first lookup is a tradeoff between the time it +takes to decode and the time it takes to build the table. If building the +table took no time (and if you had infinite memory), then there would only +be a first level table to cover all the way to the longest code. However, +building the table ends up taking a lot longer for more bits since short +codes are replicated many times in such a table. What inflate() does is +simply to make the number of bits in the first table a variable, and set it +for the maximum speed. + +inflate() sends new trees relatively often, so it is possibly set for a +smaller first level table than an application that has only one tree for +all the data. For inflate, which has 286 possible codes for the +literal/length tree, the size of the first table is nine bits. Also the +distance trees have 30 possible values, and the size of the first table is +six bits. Note that for each of those cases, the table ended up one bit +longer than the ``average'' code length, i.e. the code length of an +approximately flat code which would be a little more than eight bits for +286 symbols and a little less than five bits for 30 symbols. It would be +interesting to see if optimizing the first level table for other +applications gave values within a bit or two of the flat code size. + + +2.2 More details on the inflate table lookup + +Ok, you want to know what this cleverly obfuscated inflate tree actually +looks like. You are correct that it's not a Huffman tree. It is simply a +lookup table for the first, let's say, nine bits of a Huffman symbol. The +symbol could be as short as one bit or as long as 15 bits. If a particular +symbol is shorter than nine bits, then that symbol's translation is duplicated +in all those entries that start with that symbol's bits. For example, if the +symbol is four bits, then it's duplicated 32 times in a nine-bit table. If a +symbol is nine bits long, it appears in the table once. + +If the symbol is longer than nine bits, then that entry in the table points +to another similar table for the remaining bits. Again, there are duplicated +entries as needed. The idea is that most of the time the symbol will be short +and there will only be one table look up. (That's whole idea behind data +compression in the first place.) For the less frequent long symbols, there +will be two lookups. If you had a compression method with really long +symbols, you could have as many levels of lookups as is efficient. For +inflate, two is enough. + +So a table entry either points to another table (in which case nine bits in +the above example are gobbled), or it contains the translation for the symbol +and the number of bits to gobble. Then you start again with the next +ungobbled bit. + +You may wonder: why not just have one lookup table for how ever many bits the +longest symbol is? The reason is that if you do that, you end up spending +more time filling in duplicate symbol entries than you do actually decoding. +At least for deflate's output that generates new trees every several 10's of +kbytes. You can imagine that filling in a 2^15 entry table for a 15-bit code +would take too long if you're only decoding several thousand symbols. At the +other extreme, you could make a new table for every bit in the code. In fact, +that's essentially a Huffman tree. But then you spend two much time +traversing the tree while decoding, even for short symbols. + +So the number of bits for the first lookup table is a trade of the time to +fill out the table vs. the time spent looking at the second level and above of +the table. + +Here is an example, scaled down: + +The code being decoded, with 10 symbols, from 1 to 6 bits long: + +A: 0 +B: 10 +C: 1100 +D: 11010 +E: 11011 +F: 11100 +G: 11101 +H: 11110 +I: 111110 +J: 111111 + +Let's make the first table three bits long (eight entries): + +000: A,1 +001: A,1 +010: A,1 +011: A,1 +100: B,2 +101: B,2 +110: -> table X (gobble 3 bits) +111: -> table Y (gobble 3 bits) + +Each entry is what the bits decode to and how many bits that is, i.e. how +many bits to gobble. Or the entry points to another table, with the number of +bits to gobble implicit in the size of the table. + +Table X is two bits long since the longest code starting with 110 is five bits +long: + +00: C,1 +01: C,1 +10: D,2 +11: E,2 + +Table Y is three bits long since the longest code starting with 111 is six +bits long: + +000: F,2 +001: F,2 +010: G,2 +011: G,2 +100: H,2 +101: H,2 +110: I,3 +111: J,3 + +So what we have here are three tables with a total of 20 entries that had to +be constructed. That's compared to 64 entries for a single table. Or +compared to 16 entries for a Huffman tree (six two entry tables and one four +entry table). Assuming that the code ideally represents the probability of +the symbols, it takes on the average 1.25 lookups per symbol. That's compared +to one lookup for the single table, or 1.66 lookups per symbol for the +Huffman tree. + +There, I think that gives you a picture of what's going on. For inflate, the +meaning of a particular symbol is often more than just a letter. It can be a +byte (a "literal"), or it can be either a length or a distance which +indicates a base value and a number of bits to fetch after the code that is +added to the base value. Or it might be the special end-of-block code. The +data structures created in inftrees.c try to encode all that information +compactly in the tables. + + +Jean-loup Gailly Mark Adler +jloup@gzip.org madler@alumni.caltech.edu + + +References: + +[LZ77] Ziv J., Lempel A., ``A Universal Algorithm for Sequential Data +Compression,'' IEEE Transactions on Information Theory, Vol. 23, No. 3, +pp. 337-343. + +``DEFLATE Compressed Data Format Specification'' available in +ftp://ds.internic.net/rfc/rfc1951.txt diff --git a/PluginSource/VS2017/Realvnc/common/zlib/configure b/PluginSource/VS2017/Realvnc/common/zlib/configure new file mode 100644 index 0000000..e894235 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/configure @@ -0,0 +1,212 @@ +#!/bin/sh +# configure script for zlib. This script is needed only if +# you wish to build a shared library and your system supports them, +# of if you need special compiler, flags or install directory. +# Otherwise, you can just use directly "make test; make install" +# +# To create a shared library, use "configure --shared"; by default a static +# library is created. If the primitive shared library support provided here +# does not work, use ftp://prep.ai.mit.edu/pub/gnu/libtool-*.tar.gz +# +# To impose specific compiler or flags or install directory, use for example: +# prefix=$HOME CC=cc CFLAGS="-O4" ./configure +# or for csh/tcsh users: +# (setenv prefix $HOME; setenv CC cc; setenv CFLAGS "-O4"; ./configure) +# LDSHARED is the command to be used to create a shared library + +# Incorrect settings of CC or CFLAGS may prevent creating a shared library. +# If you have problems, try without defining CC and CFLAGS before reporting +# an error. + +LIBS=libz.a +SHAREDLIB=libz.so +VER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h` +AR=${AR-"ar rc"} +RANLIB=${RANLIB-"ranlib"} +prefix=${prefix-/usr/local} +exec_prefix=${exec_prefix-'${prefix}'} +libdir=${libdir-'${exec_prefix}/lib'} +includedir=${includedir-'${prefix}/include'} +shared_ext='.so' +shared=0 +gcc=0 +old_cc="$CC" +old_cflags="$CFLAGS" + +while test $# -ge 1 +do +case "$1" in + -h* | --h*) + echo 'usage:' + echo ' configure [--shared] [--prefix=PREFIX] [--exec_prefix=EXPREFIX]' + echo ' [--libdir=LIBDIR] [--includedir=INCLUDEDIR]' + exit 0;; + -p*=* | --p*=*) prefix=`echo $1 | sed 's/[-a-z_]*=//'`; shift;; + -e*=* | --e*=*) exec_prefix=`echo $1 | sed 's/[-a-z_]*=//'`; shift;; + -l*=* | --libdir=*) libdir=`echo $1 | sed 's/[-a-z_]*=//'`; shift;; + -i*=* | --includedir=*) includedir=`echo $1 | sed 's/[-a-z_]*=//'`;shift;; + -p* | --p*) prefix="$2"; shift; shift;; + -e* | --e*) exec_prefix="$2"; shift; shift;; + -l* | --l*) libdir="$2"; shift; shift;; + -i* | --i*) includedir="$2"; shift; shift;; + -s* | --s*) shared=1; shift;; + esac +done + +test=ztest$$ +cat > $test.c </dev/null; then + CC="$cc" + SFLAGS=${CFLAGS-"-fPIC -O3"} + CFLAGS="$cflags" + case `(uname -s || echo unknown) 2>/dev/null` in + Linux | linux) LDSHARED=${LDSHARED-"gcc -shared -Wl,-soname,libz.so.1"};; + *) LDSHARED=${LDSHARED-"gcc -shared"};; + esac +else + # find system name and corresponding cc options + CC=${CC-cc} + case `(uname -sr || echo unknown) 2>/dev/null` in + HP-UX*) SFLAGS=${CFLAGS-"-O +z"} + CFLAGS=${CFLAGS-"-O"} +# LDSHARED=${LDSHARED-"ld -b +vnocompatwarnings"} + LDSHARED=${LDSHARED-"ld -b"} + shared_ext='.sl' + SHAREDLIB='libz.sl';; + IRIX*) SFLAGS=${CFLAGS-"-ansi -O2 -rpath ."} + CFLAGS=${CFLAGS-"-ansi -O2"} + LDSHARED=${LDSHARED-"cc -shared"};; + OSF1\ V4*) SFLAGS=${CFLAGS-"-O -std1"} + CFLAGS=${CFLAGS-"-O -std1"} + LDSHARED=${LDSHARED-"cc -shared -Wl,-soname,$SHAREDLIB -Wl,-msym -Wl,-rpath,$(libdir) -Wl,-set_version,${VER}:1.0"};; + OSF1*) SFLAGS=${CFLAGS-"-O -std1"} + CFLAGS=${CFLAGS-"-O -std1"} + LDSHARED=${LDSHARED-"cc -shared"};; + QNX*) SFLAGS=${CFLAGS-"-4 -O"} + CFLAGS=${CFLAGS-"-4 -O"} + LDSHARED=${LDSHARED-"cc"} + RANLIB=${RANLIB-"true"} + AR="cc -A";; + SCO_SV\ 3.2*) SFLAGS=${CFLAGS-"-O3 -dy -KPIC "} + CFLAGS=${CFLAGS-"-O3"} + LDSHARED=${LDSHARED-"cc -dy -KPIC -G"};; + SunOS\ 5*) SFLAGS=${CFLAGS-"-fast -xcg89 -KPIC -R."} + CFLAGS=${CFLAGS-"-fast -xcg89"} + LDSHARED=${LDSHARED-"cc -G"};; + SunOS\ 4*) SFLAGS=${CFLAGS-"-O2 -PIC"} + CFLAGS=${CFLAGS-"-O2"} + LDSHARED=${LDSHARED-"ld"};; + UNIX_System_V\ 4.2.0) + SFLAGS=${CFLAGS-"-KPIC -O"} + CFLAGS=${CFLAGS-"-O"} + LDSHARED=${LDSHARED-"cc -G"};; + UNIX_SV\ 4.2MP) + SFLAGS=${CFLAGS-"-Kconform_pic -O"} + CFLAGS=${CFLAGS-"-O"} + LDSHARED=${LDSHARED-"cc -G"};; + # send working options for other systems to support@gzip.org + *) SFLAGS=${CFLAGS-"-O"} + CFLAGS=${CFLAGS-"-O"} + LDSHARED=${LDSHARED-"cc -shared"};; + esac +fi + +if test $shared -eq 1; then + echo Checking for shared library support... + # we must test in two steps (cc then ld), required at least on SunOS 4.x + if test "`($CC -c $SFLAGS $test.c) 2>&1`" = "" && + test "`($LDSHARED -o $test$shared_ext $test.o) 2>&1`" = ""; then + CFLAGS="$SFLAGS" + LIBS="$SHAREDLIB.$VER" + echo Building shared library $SHAREDLIB.$VER with $CC. + elif test -z "$old_cc" -a -z "$old_cflags"; then + echo No shared library suppport. + shared=0; + else + echo 'No shared library suppport; try without defining CC and CFLAGS' + shared=0; + fi +fi +if test $shared -eq 0; then + LDSHARED="$CC" + echo Building static library $LIBS version $VER with $CC. +fi + +cat > $test.c < +int main() { return 0; } +EOF +if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then + CFLAGS="$CFLAGS -DHAVE_UNISTD_H" + echo "Checking for unistd.h... Yes." +else + echo "Checking for unistd.h... No." +fi + +cat > $test.c < +int main() { return 0; } +EOF +if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then + echo "Checking for errno.h... Yes." +else + echo "Checking for errno.h... No." + CFLAGS="$CFLAGS -DNO_ERRNO_H" +fi + +cat > $test.c < +#include +#include +caddr_t hello() { + return mmap((caddr_t)0, (off_t)0, PROT_READ, MAP_SHARED, 0, (off_t)0); +} +EOF +if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then + CFLAGS="$CFLAGS -DUSE_MMAP" + echo Checking for mmap support... Yes. +else + echo Checking for mmap support... No. +fi + +CPP=${CPP-"$CC -E"} +case $CFLAGS in + *ASMV*) + if test "`nm $test.o | grep _hello`" = ""; then + CPP="$CPP -DNO_UNDERLINE" + echo Checking for underline in external names... No. + else + echo Checking for underline in external names... Yes. + fi;; +esac + +rm -f $test.[co] $test$shared_ext + +# udpate Makefile +sed < Makefile.in " +/^CC *=/s%=.*%=$CC% +/^CFLAGS *=/s%=.*%=$CFLAGS% +/^CPP *=/s%=.*%=$CPP% +/^LDSHARED *=/s%=.*%=$LDSHARED% +/^LIBS *=/s%=.*%=$LIBS% +/^SHAREDLIB *=/s%=.*%=$SHAREDLIB% +/^AR *=/s%=.*%=$AR% +/^RANLIB *=/s%=.*%=$RANLIB% +/^VER *=/s%=.*%=$VER% +/^prefix *=/s%=.*%=$prefix% +/^exec_prefix *=/s%=.*%=$exec_prefix% +/^libdir *=/s%=.*%=$libdir% +/^includedir *=/s%=.*%=$includedir% +" > Makefile diff --git a/PluginSource/VS2017/Realvnc/common/zlib/descrip.mms b/PluginSource/VS2017/Realvnc/common/zlib/descrip.mms new file mode 100644 index 0000000..9d36459 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/descrip.mms @@ -0,0 +1,48 @@ +# descrip.mms: MMS description file for building zlib on VMS +# written by Martin P.J. Zinser + +cc_defs = +c_deb = + +.ifdef __DECC__ +pref = /prefix=all +.endif + +OBJS = adler32.obj, compress.obj, crc32.obj, gzio.obj, uncompr.obj,\ + deflate.obj, trees.obj, zutil.obj, inflate.obj, infblock.obj,\ + inftrees.obj, infcodes.obj, infutil.obj, inffast.obj + +CFLAGS= $(C_DEB) $(CC_DEFS) $(PREF) + +all : example.exe minigzip.exe + @ write sys$output " Example applications available" +libz.olb : libz.olb($(OBJS)) + @ write sys$output " libz available" + +example.exe : example.obj libz.olb + link example,libz.olb/lib + +minigzip.exe : minigzip.obj libz.olb + link minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib + +clean : + delete *.obj;*,libz.olb;* + + +# Other dependencies. +adler32.obj : zutil.h zlib.h zconf.h +compress.obj : zlib.h zconf.h +crc32.obj : zutil.h zlib.h zconf.h +deflate.obj : deflate.h zutil.h zlib.h zconf.h +example.obj : zlib.h zconf.h +gzio.obj : zutil.h zlib.h zconf.h +infblock.obj : zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h +infcodes.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h infcodes.h inffast.h +inffast.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h +inflate.obj : zutil.h zlib.h zconf.h infblock.h +inftrees.obj : zutil.h zlib.h zconf.h inftrees.h +infutil.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h +minigzip.obj : zlib.h zconf.h +trees.obj : deflate.h zutil.h zlib.h zconf.h +uncompr.obj : zlib.h zconf.h +zutil.obj : zutil.h zlib.h zconf.h diff --git a/PluginSource/VS2017/Realvnc/common/zlib/example.c b/PluginSource/VS2017/Realvnc/common/zlib/example.c new file mode 100644 index 0000000..e7e3673 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/example.c @@ -0,0 +1,556 @@ +/* example.c -- usage example of the zlib compression library + * Copyright (C) 1995-2002 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id$ */ + +#include +#include "zlib.h" + +#ifdef STDC +# include +# include +#else + extern void exit OF((int)); +#endif + +#if defined(VMS) || defined(RISCOS) +# define TESTFILE "foo-gz" +#else +# define TESTFILE "foo.gz" +#endif + +#define CHECK_ERR(err, msg) { \ + if (err != Z_OK) { \ + fprintf(stderr, "%s error: %d\n", msg, err); \ + exit(1); \ + } \ +} + +const char hello[] = "hello, hello!"; +/* "hello world" would be more standard, but the repeated "hello" + * stresses the compression code better, sorry... + */ + +const char dictionary[] = "hello"; +uLong dictId; /* Adler32 value of the dictionary */ + +void test_compress OF((Byte *compr, uLong comprLen, + Byte *uncompr, uLong uncomprLen)); +void test_gzio OF((const char *out, const char *in, + Byte *uncompr, int uncomprLen)); +void test_deflate OF((Byte *compr, uLong comprLen)); +void test_inflate OF((Byte *compr, uLong comprLen, + Byte *uncompr, uLong uncomprLen)); +void test_large_deflate OF((Byte *compr, uLong comprLen, + Byte *uncompr, uLong uncomprLen)); +void test_large_inflate OF((Byte *compr, uLong comprLen, + Byte *uncompr, uLong uncomprLen)); +void test_flush OF((Byte *compr, uLong *comprLen)); +void test_sync OF((Byte *compr, uLong comprLen, + Byte *uncompr, uLong uncomprLen)); +void test_dict_deflate OF((Byte *compr, uLong comprLen)); +void test_dict_inflate OF((Byte *compr, uLong comprLen, + Byte *uncompr, uLong uncomprLen)); +int main OF((int argc, char *argv[])); + +/* =========================================================================== + * Test compress() and uncompress() + */ +void test_compress(compr, comprLen, uncompr, uncomprLen) + Byte *compr, *uncompr; + uLong comprLen, uncomprLen; +{ + int err; + uLong len = strlen(hello)+1; + + err = compress(compr, &comprLen, (const Bytef*)hello, len); + CHECK_ERR(err, "compress"); + + strcpy((char*)uncompr, "garbage"); + + err = uncompress(uncompr, &uncomprLen, compr, comprLen); + CHECK_ERR(err, "uncompress"); + + if (strcmp((char*)uncompr, hello)) { + fprintf(stderr, "bad uncompress\n"); + exit(1); + } else { + printf("uncompress(): %s\n", (char *)uncompr); + } +} + +/* =========================================================================== + * Test read/write of .gz files + */ +void test_gzio(out, in, uncompr, uncomprLen) + const char *out; /* compressed output file */ + const char *in; /* compressed input file */ + Byte *uncompr; + int uncomprLen; +{ + int err; + int len = strlen(hello)+1; + gzFile file; + z_off_t pos; + + file = gzopen(out, "wb"); + if (file == NULL) { + fprintf(stderr, "gzopen error\n"); + exit(1); + } + gzputc(file, 'h'); + if (gzputs(file, "ello") != 4) { + fprintf(stderr, "gzputs err: %s\n", gzerror(file, &err)); + exit(1); + } + if (gzprintf(file, ", %s!", "hello") != 8) { + fprintf(stderr, "gzprintf err: %s\n", gzerror(file, &err)); + exit(1); + } + gzseek(file, 1L, SEEK_CUR); /* add one zero byte */ + gzclose(file); + + file = gzopen(in, "rb"); + if (file == NULL) { + fprintf(stderr, "gzopen error\n"); + } + strcpy((char*)uncompr, "garbage"); + + uncomprLen = gzread(file, uncompr, (unsigned)uncomprLen); + if (uncomprLen != len) { + fprintf(stderr, "gzread err: %s\n", gzerror(file, &err)); + exit(1); + } + if (strcmp((char*)uncompr, hello)) { + fprintf(stderr, "bad gzread: %s\n", (char*)uncompr); + exit(1); + } else { + printf("gzread(): %s\n", (char *)uncompr); + } + + pos = gzseek(file, -8L, SEEK_CUR); + if (pos != 6 || gztell(file) != pos) { + fprintf(stderr, "gzseek error, pos=%ld, gztell=%ld\n", + (long)pos, (long)gztell(file)); + exit(1); + } + + if (gzgetc(file) != ' ') { + fprintf(stderr, "gzgetc error\n"); + exit(1); + } + + gzgets(file, (char*)uncompr, uncomprLen); + uncomprLen = strlen((char*)uncompr); + if (uncomprLen != 6) { /* "hello!" */ + fprintf(stderr, "gzgets err after gzseek: %s\n", gzerror(file, &err)); + exit(1); + } + if (strcmp((char*)uncompr, hello+7)) { + fprintf(stderr, "bad gzgets after gzseek\n"); + exit(1); + } else { + printf("gzgets() after gzseek: %s\n", (char *)uncompr); + } + + gzclose(file); +} + +/* =========================================================================== + * Test deflate() with small buffers + */ +void test_deflate(compr, comprLen) + Byte *compr; + uLong comprLen; +{ + z_stream c_stream; /* compression stream */ + int err; + int len = strlen(hello)+1; + + c_stream.zalloc = (alloc_func)0; + c_stream.zfree = (free_func)0; + c_stream.opaque = (voidpf)0; + + err = deflateInit(&c_stream, Z_DEFAULT_COMPRESSION); + CHECK_ERR(err, "deflateInit"); + + c_stream.next_in = (Bytef*)hello; + c_stream.next_out = compr; + + while (c_stream.total_in != (uLong)len && c_stream.total_out < comprLen) { + c_stream.avail_in = c_stream.avail_out = 1; /* force small buffers */ + err = deflate(&c_stream, Z_NO_FLUSH); + CHECK_ERR(err, "deflate"); + } + /* Finish the stream, still forcing small buffers: */ + for (;;) { + c_stream.avail_out = 1; + err = deflate(&c_stream, Z_FINISH); + if (err == Z_STREAM_END) break; + CHECK_ERR(err, "deflate"); + } + + err = deflateEnd(&c_stream); + CHECK_ERR(err, "deflateEnd"); +} + +/* =========================================================================== + * Test inflate() with small buffers + */ +void test_inflate(compr, comprLen, uncompr, uncomprLen) + Byte *compr, *uncompr; + uLong comprLen, uncomprLen; +{ + int err; + z_stream d_stream; /* decompression stream */ + + strcpy((char*)uncompr, "garbage"); + + d_stream.zalloc = (alloc_func)0; + d_stream.zfree = (free_func)0; + d_stream.opaque = (voidpf)0; + + d_stream.next_in = compr; + d_stream.avail_in = 0; + d_stream.next_out = uncompr; + + err = inflateInit(&d_stream); + CHECK_ERR(err, "inflateInit"); + + while (d_stream.total_out < uncomprLen && d_stream.total_in < comprLen) { + d_stream.avail_in = d_stream.avail_out = 1; /* force small buffers */ + err = inflate(&d_stream, Z_NO_FLUSH); + if (err == Z_STREAM_END) break; + CHECK_ERR(err, "inflate"); + } + + err = inflateEnd(&d_stream); + CHECK_ERR(err, "inflateEnd"); + + if (strcmp((char*)uncompr, hello)) { + fprintf(stderr, "bad inflate\n"); + exit(1); + } else { + printf("inflate(): %s\n", (char *)uncompr); + } +} + +/* =========================================================================== + * Test deflate() with large buffers and dynamic change of compression level + */ +void test_large_deflate(compr, comprLen, uncompr, uncomprLen) + Byte *compr, *uncompr; + uLong comprLen, uncomprLen; +{ + z_stream c_stream; /* compression stream */ + int err; + + c_stream.zalloc = (alloc_func)0; + c_stream.zfree = (free_func)0; + c_stream.opaque = (voidpf)0; + + err = deflateInit(&c_stream, Z_BEST_SPEED); + CHECK_ERR(err, "deflateInit"); + + c_stream.next_out = compr; + c_stream.avail_out = (uInt)comprLen; + + /* At this point, uncompr is still mostly zeroes, so it should compress + * very well: + */ + c_stream.next_in = uncompr; + c_stream.avail_in = (uInt)uncomprLen; + err = deflate(&c_stream, Z_NO_FLUSH); + CHECK_ERR(err, "deflate"); + if (c_stream.avail_in != 0) { + fprintf(stderr, "deflate not greedy\n"); + exit(1); + } + + /* Feed in already compressed data and switch to no compression: */ + deflateParams(&c_stream, Z_NO_COMPRESSION, Z_DEFAULT_STRATEGY); + c_stream.next_in = compr; + c_stream.avail_in = (uInt)comprLen/2; + err = deflate(&c_stream, Z_NO_FLUSH); + CHECK_ERR(err, "deflate"); + + /* Switch back to compressing mode: */ + deflateParams(&c_stream, Z_BEST_COMPRESSION, Z_FILTERED); + c_stream.next_in = uncompr; + c_stream.avail_in = (uInt)uncomprLen; + err = deflate(&c_stream, Z_NO_FLUSH); + CHECK_ERR(err, "deflate"); + + err = deflate(&c_stream, Z_FINISH); + if (err != Z_STREAM_END) { + fprintf(stderr, "deflate should report Z_STREAM_END\n"); + exit(1); + } + err = deflateEnd(&c_stream); + CHECK_ERR(err, "deflateEnd"); +} + +/* =========================================================================== + * Test inflate() with large buffers + */ +void test_large_inflate(compr, comprLen, uncompr, uncomprLen) + Byte *compr, *uncompr; + uLong comprLen, uncomprLen; +{ + int err; + z_stream d_stream; /* decompression stream */ + + strcpy((char*)uncompr, "garbage"); + + d_stream.zalloc = (alloc_func)0; + d_stream.zfree = (free_func)0; + d_stream.opaque = (voidpf)0; + + d_stream.next_in = compr; + d_stream.avail_in = (uInt)comprLen; + + err = inflateInit(&d_stream); + CHECK_ERR(err, "inflateInit"); + + for (;;) { + d_stream.next_out = uncompr; /* discard the output */ + d_stream.avail_out = (uInt)uncomprLen; + err = inflate(&d_stream, Z_NO_FLUSH); + if (err == Z_STREAM_END) break; + CHECK_ERR(err, "large inflate"); + } + + err = inflateEnd(&d_stream); + CHECK_ERR(err, "inflateEnd"); + + if (d_stream.total_out != 2*uncomprLen + comprLen/2) { + fprintf(stderr, "bad large inflate: %ld\n", d_stream.total_out); + exit(1); + } else { + printf("large_inflate(): OK\n"); + } +} + +/* =========================================================================== + * Test deflate() with full flush + */ +void test_flush(compr, comprLen) + Byte *compr; + uLong *comprLen; +{ + z_stream c_stream; /* compression stream */ + int err; + int len = strlen(hello)+1; + + c_stream.zalloc = (alloc_func)0; + c_stream.zfree = (free_func)0; + c_stream.opaque = (voidpf)0; + + err = deflateInit(&c_stream, Z_DEFAULT_COMPRESSION); + CHECK_ERR(err, "deflateInit"); + + c_stream.next_in = (Bytef*)hello; + c_stream.next_out = compr; + c_stream.avail_in = 3; + c_stream.avail_out = (uInt)*comprLen; + err = deflate(&c_stream, Z_FULL_FLUSH); + CHECK_ERR(err, "deflate"); + + compr[3]++; /* force an error in first compressed block */ + c_stream.avail_in = len - 3; + + err = deflate(&c_stream, Z_FINISH); + if (err != Z_STREAM_END) { + CHECK_ERR(err, "deflate"); + } + err = deflateEnd(&c_stream); + CHECK_ERR(err, "deflateEnd"); + + *comprLen = c_stream.total_out; +} + +/* =========================================================================== + * Test inflateSync() + */ +void test_sync(compr, comprLen, uncompr, uncomprLen) + Byte *compr, *uncompr; + uLong comprLen, uncomprLen; +{ + int err; + z_stream d_stream; /* decompression stream */ + + strcpy((char*)uncompr, "garbage"); + + d_stream.zalloc = (alloc_func)0; + d_stream.zfree = (free_func)0; + d_stream.opaque = (voidpf)0; + + d_stream.next_in = compr; + d_stream.avail_in = 2; /* just read the zlib header */ + + err = inflateInit(&d_stream); + CHECK_ERR(err, "inflateInit"); + + d_stream.next_out = uncompr; + d_stream.avail_out = (uInt)uncomprLen; + + inflate(&d_stream, Z_NO_FLUSH); + CHECK_ERR(err, "inflate"); + + d_stream.avail_in = (uInt)comprLen-2; /* read all compressed data */ + err = inflateSync(&d_stream); /* but skip the damaged part */ + CHECK_ERR(err, "inflateSync"); + + err = inflate(&d_stream, Z_FINISH); + if (err != Z_DATA_ERROR) { + fprintf(stderr, "inflate should report DATA_ERROR\n"); + /* Because of incorrect adler32 */ + exit(1); + } + err = inflateEnd(&d_stream); + CHECK_ERR(err, "inflateEnd"); + + printf("after inflateSync(): hel%s\n", (char *)uncompr); +} + +/* =========================================================================== + * Test deflate() with preset dictionary + */ +void test_dict_deflate(compr, comprLen) + Byte *compr; + uLong comprLen; +{ + z_stream c_stream; /* compression stream */ + int err; + + c_stream.zalloc = (alloc_func)0; + c_stream.zfree = (free_func)0; + c_stream.opaque = (voidpf)0; + + err = deflateInit(&c_stream, Z_BEST_COMPRESSION); + CHECK_ERR(err, "deflateInit"); + + err = deflateSetDictionary(&c_stream, + (const Bytef*)dictionary, sizeof(dictionary)); + CHECK_ERR(err, "deflateSetDictionary"); + + dictId = c_stream.adler; + c_stream.next_out = compr; + c_stream.avail_out = (uInt)comprLen; + + c_stream.next_in = (Bytef*)hello; + c_stream.avail_in = (uInt)strlen(hello)+1; + + err = deflate(&c_stream, Z_FINISH); + if (err != Z_STREAM_END) { + fprintf(stderr, "deflate should report Z_STREAM_END\n"); + exit(1); + } + err = deflateEnd(&c_stream); + CHECK_ERR(err, "deflateEnd"); +} + +/* =========================================================================== + * Test inflate() with a preset dictionary + */ +void test_dict_inflate(compr, comprLen, uncompr, uncomprLen) + Byte *compr, *uncompr; + uLong comprLen, uncomprLen; +{ + int err; + z_stream d_stream; /* decompression stream */ + + strcpy((char*)uncompr, "garbage"); + + d_stream.zalloc = (alloc_func)0; + d_stream.zfree = (free_func)0; + d_stream.opaque = (voidpf)0; + + d_stream.next_in = compr; + d_stream.avail_in = (uInt)comprLen; + + err = inflateInit(&d_stream); + CHECK_ERR(err, "inflateInit"); + + d_stream.next_out = uncompr; + d_stream.avail_out = (uInt)uncomprLen; + + for (;;) { + err = inflate(&d_stream, Z_NO_FLUSH); + if (err == Z_STREAM_END) break; + if (err == Z_NEED_DICT) { + if (d_stream.adler != dictId) { + fprintf(stderr, "unexpected dictionary"); + exit(1); + } + err = inflateSetDictionary(&d_stream, (const Bytef*)dictionary, + sizeof(dictionary)); + } + CHECK_ERR(err, "inflate with dict"); + } + + err = inflateEnd(&d_stream); + CHECK_ERR(err, "inflateEnd"); + + if (strcmp((char*)uncompr, hello)) { + fprintf(stderr, "bad inflate with dict\n"); + exit(1); + } else { + printf("inflate with dictionary: %s\n", (char *)uncompr); + } +} + +/* =========================================================================== + * Usage: example [output.gz [input.gz]] + */ + +int main(argc, argv) + int argc; + char *argv[]; +{ + Byte *compr, *uncompr; + uLong comprLen = 10000*sizeof(int); /* don't overflow on MSDOS */ + uLong uncomprLen = comprLen; + static const char* myVersion = ZLIB_VERSION; + + if (zlibVersion()[0] != myVersion[0]) { + fprintf(stderr, "incompatible zlib version\n"); + exit(1); + + } else if (strcmp(zlibVersion(), ZLIB_VERSION) != 0) { + fprintf(stderr, "warning: different zlib version\n"); + } + + compr = (Byte*)calloc((uInt)comprLen, 1); + uncompr = (Byte*)calloc((uInt)uncomprLen, 1); + /* compr and uncompr are cleared to avoid reading uninitialized + * data and to ensure that uncompr compresses well. + */ + if (compr == Z_NULL || uncompr == Z_NULL) { + printf("out of memory\n"); + exit(1); + } + test_compress(compr, comprLen, uncompr, uncomprLen); + + test_gzio((argc > 1 ? argv[1] : TESTFILE), + (argc > 2 ? argv[2] : TESTFILE), + uncompr, (int)uncomprLen); + + test_deflate(compr, comprLen); + test_inflate(compr, comprLen, uncompr, uncomprLen); + + test_large_deflate(compr, comprLen, uncompr, uncomprLen); + test_large_inflate(compr, comprLen, uncompr, uncomprLen); + + test_flush(compr, &comprLen); + test_sync(compr, comprLen, uncompr, uncomprLen); + comprLen = uncomprLen; + + test_dict_deflate(compr, comprLen); + test_dict_inflate(compr, comprLen, uncompr, uncomprLen); + + exit(0); + return 0; /* to avoid warning */ +} diff --git a/PluginSource/VS2017/Realvnc/common/zlib/maketree.c b/PluginSource/VS2017/Realvnc/common/zlib/maketree.c new file mode 100644 index 0000000..a16d4b1 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/maketree.c @@ -0,0 +1,85 @@ +/* maketree.c -- make inffixed.h table for decoding fixed codes + * Copyright (C) 1995-2002 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +/* This program is included in the distribution for completeness. + You do not need to compile or run this program since inffixed.h + is already included in the distribution. To use this program + you need to compile zlib with BUILDFIXED defined and then compile + and link this program with the zlib library. Then the output of + this program can be piped to inffixed.h. */ + +#include +#include +#include "zutil.h" +#include "inftrees.h" + +/* simplify the use of the inflate_huft type with some defines */ +#define exop word.what.Exop +#define bits word.what.Bits + +/* generate initialization table for an inflate_huft structure array */ +void maketree(uInt b, inflate_huft *t) +{ + int i, e; + + i = 0; + while (1) + { + e = t[i].exop; + if (e && (e & (16+64)) == 0) /* table pointer */ + { + fprintf(stderr, "maketree: cannot initialize sub-tables!\n"); + exit(1); + } + if (i % 4 == 0) + printf("\n "); + printf(" {{{%u,%u}},%u}", t[i].exop, t[i].bits, t[i].base); + if (++i == (1< +#include "zlib.h" + +#ifdef STDC +# include +# include +#else + extern void exit OF((int)); +#endif + +#ifdef USE_MMAP +# include +# include +# include +#endif + +#if defined(MSDOS) || defined(OS2) || defined(WIN32) +# include +# include +# define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY) +#else +# define SET_BINARY_MODE(file) +#endif + +#ifdef VMS +# define unlink delete +# define GZ_SUFFIX "-gz" +#endif +#ifdef RISCOS +# define unlink remove +# define GZ_SUFFIX "-gz" +# define fileno(file) file->__file +#endif +#if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os +# include /* for fileno */ +#endif + +#ifndef WIN32 /* unlink already in stdio.h for WIN32 */ + extern int unlink OF((const char *)); +#endif + +#ifndef GZ_SUFFIX +# define GZ_SUFFIX ".gz" +#endif +#define SUFFIX_LEN (sizeof(GZ_SUFFIX)-1) + +#define BUFLEN 16384 +#define MAX_NAME_LEN 1024 + +#ifdef MAXSEG_64K +# define local static + /* Needed for systems with limitation on stack size. */ +#else +# define local +#endif + +char *prog; + +void error OF((const char *msg)); +void gz_compress OF((FILE *in, gzFile out)); +#ifdef USE_MMAP +int gz_compress_mmap OF((FILE *in, gzFile out)); +#endif +void gz_uncompress OF((gzFile in, FILE *out)); +void file_compress OF((char *file, char *mode)); +void file_uncompress OF((char *file)); +int main OF((int argc, char *argv[])); + +/* =========================================================================== + * Display error message and exit + */ +void error(msg) + const char *msg; +{ + fprintf(stderr, "%s: %s\n", prog, msg); + exit(1); +} + +/* =========================================================================== + * Compress input to output then close both files. + */ + +void gz_compress(in, out) + FILE *in; + gzFile out; +{ + local char buf[BUFLEN]; + int len; + int err; + +#ifdef USE_MMAP + /* Try first compressing with mmap. If mmap fails (minigzip used in a + * pipe), use the normal fread loop. + */ + if (gz_compress_mmap(in, out) == Z_OK) return; +#endif + for (;;) { + len = fread(buf, 1, sizeof(buf), in); + if (ferror(in)) { + perror("fread"); + exit(1); + } + if (len == 0) break; + + if (gzwrite(out, buf, (unsigned)len) != len) error(gzerror(out, &err)); + } + fclose(in); + if (gzclose(out) != Z_OK) error("failed gzclose"); +} + +#ifdef USE_MMAP /* MMAP version, Miguel Albrecht */ + +/* Try compressing the input file at once using mmap. Return Z_OK if + * if success, Z_ERRNO otherwise. + */ +int gz_compress_mmap(in, out) + FILE *in; + gzFile out; +{ + int len; + int err; + int ifd = fileno(in); + caddr_t buf; /* mmap'ed buffer for the entire input file */ + off_t buf_len; /* length of the input file */ + struct stat sb; + + /* Determine the size of the file, needed for mmap: */ + if (fstat(ifd, &sb) < 0) return Z_ERRNO; + buf_len = sb.st_size; + if (buf_len <= 0) return Z_ERRNO; + + /* Now do the actual mmap: */ + buf = mmap((caddr_t) 0, buf_len, PROT_READ, MAP_SHARED, ifd, (off_t)0); + if (buf == (caddr_t)(-1)) return Z_ERRNO; + + /* Compress the whole file at once: */ + len = gzwrite(out, (char *)buf, (unsigned)buf_len); + + if (len != (int)buf_len) error(gzerror(out, &err)); + + munmap(buf, buf_len); + fclose(in); + if (gzclose(out) != Z_OK) error("failed gzclose"); + return Z_OK; +} +#endif /* USE_MMAP */ + +/* =========================================================================== + * Uncompress input to output then close both files. + */ +void gz_uncompress(in, out) + gzFile in; + FILE *out; +{ + local char buf[BUFLEN]; + int len; + int err; + + for (;;) { + len = gzread(in, buf, sizeof(buf)); + if (len < 0) error (gzerror(in, &err)); + if (len == 0) break; + + if ((int)fwrite(buf, 1, (unsigned)len, out) != len) { + error("failed fwrite"); + } + } + if (fclose(out)) error("failed fclose"); + + if (gzclose(in) != Z_OK) error("failed gzclose"); +} + + +/* =========================================================================== + * Compress the given file: create a corresponding .gz file and remove the + * original. + */ +void file_compress(file, mode) + char *file; + char *mode; +{ + local char outfile[MAX_NAME_LEN]; + FILE *in; + gzFile out; + + strcpy(outfile, file); + strcat(outfile, GZ_SUFFIX); + + in = fopen(file, "rb"); + if (in == NULL) { + perror(file); + exit(1); + } + out = gzopen(outfile, mode); + if (out == NULL) { + fprintf(stderr, "%s: can't gzopen %s\n", prog, outfile); + exit(1); + } + gz_compress(in, out); + + unlink(file); +} + + +/* =========================================================================== + * Uncompress the given file and remove the original. + */ +void file_uncompress(file) + char *file; +{ + local char buf[MAX_NAME_LEN]; + char *infile, *outfile; + FILE *out; + gzFile in; + int len = strlen(file); + + strcpy(buf, file); + + if (len > SUFFIX_LEN && strcmp(file+len-SUFFIX_LEN, GZ_SUFFIX) == 0) { + infile = file; + outfile = buf; + outfile[len-3] = '\0'; + } else { + outfile = file; + infile = buf; + strcat(infile, GZ_SUFFIX); + } + in = gzopen(infile, "rb"); + if (in == NULL) { + fprintf(stderr, "%s: can't gzopen %s\n", prog, infile); + exit(1); + } + out = fopen(outfile, "wb"); + if (out == NULL) { + perror(file); + exit(1); + } + + gz_uncompress(in, out); + + unlink(infile); +} + + +/* =========================================================================== + * Usage: minigzip [-d] [-f] [-h] [-1 to -9] [files...] + * -d : decompress + * -f : compress with Z_FILTERED + * -h : compress with Z_HUFFMAN_ONLY + * -1 to -9 : compression level + */ + +int main(argc, argv) + int argc; + char *argv[]; +{ + int uncompr = 0; + gzFile file; + char outmode[20]; + + strcpy(outmode, "wb6 "); + + prog = argv[0]; + argc--, argv++; + + while (argc > 0) { + if (strcmp(*argv, "-d") == 0) + uncompr = 1; + else if (strcmp(*argv, "-f") == 0) + outmode[3] = 'f'; + else if (strcmp(*argv, "-h") == 0) + outmode[3] = 'h'; + else if ((*argv)[0] == '-' && (*argv)[1] >= '1' && (*argv)[1] <= '9' && + (*argv)[2] == 0) + outmode[2] = (*argv)[1]; + else + break; + argc--, argv++; + } + if (argc == 0) { + SET_BINARY_MODE(stdin); + SET_BINARY_MODE(stdout); + if (uncompr) { + file = gzdopen(fileno(stdin), "rb"); + if (file == NULL) error("can't gzdopen stdin"); + gz_uncompress(file, stdout); + } else { + file = gzdopen(fileno(stdout), outmode); + if (file == NULL) error("can't gzdopen stdout"); + gz_compress(stdin, file); + } + } else { + do { + if (uncompr) { + file_uncompress(*argv); + } else { + file_compress(*argv, outmode); + } + } while (argv++, --argc); + } + exit(0); + return 0; /* to avoid warning */ +} diff --git a/PluginSource/VS2017/Realvnc/common/zlib/zlib.3 b/PluginSource/VS2017/Realvnc/common/zlib/zlib.3 new file mode 100644 index 0000000..3a6e450 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/zlib.3 @@ -0,0 +1,107 @@ +.TH ZLIB 3 "11 March 2002" +.SH NAME +zlib \- compression/decompression library +.SH SYNOPSIS +[see +.I zlib.h +for full description] +.SH DESCRIPTION +The +.I zlib +library is a general purpose data compression library. +The code is thread safe. +It provides in-memory compression and decompression functions, +including integrity checks of the uncompressed data. +This version of the library supports only one compression method (deflation) +but other algorithms will be added later and will have the same stream interface. +.LP +Compression can be done in a single step if the buffers are large enough +(for example if an input file is mmap'ed), +or can be done by repeated calls of the compression function. +In the latter case, +the application must provide more input and/or consume the output +(providing more output space) before each call. +.LP +The library also supports reading and writing files in +.I gzip +(.gz) format +with an interface similar to that of stdio. +.LP +The library does not install any signal handler. The decoder checks +the consistency of the compressed data, so the library should never +crash even in case of corrupted input. +.LP +All functions of the compression library are documented in the file +.IR zlib.h. +The distribution source includes examples of use of the library +the files +.I example.c +and +.IR minigzip.c . +.LP +A Java implementation of +.IR zlib +is available in the Java Development Kit 1.1 +.IP +http://www.javasoft.com/products/JDK/1.1/docs/api/Package-java.util.zip.html +.LP +A Perl interface to +.IR zlib , +written by Paul Marquess (pmarquess@bfsec.bt.co.uk) +is available at CPAN (Comprehensive Perl Archive Network) sites, +such as: +.IP +ftp://ftp.cis.ufl.edu/pub/perl/CPAN/modules/by-module/Compress/Compress-Zlib* +.LP +A Python interface to +.IR zlib +written by A.M. Kuchling +is available from the Python Software Association sites, such as: +.IP +ftp://ftp.python.org/pub/python/contrib/Encoding/zlib*.tar.gz +.SH "SEE ALSO" +Questions about zlib should be sent to: +.IP +zlib@quest.jpl.nasa.gov +or, if this fails, to the author addresses given below. +The zlib home page is: +.IP +http://www.cdrom.com/pub/infozip/zlib/ +.LP +The data format used by the zlib library is described by RFC +(Request for Comments) 1950 to 1952 in the files: +.IP +ftp://ds.internic.net/rfc/rfc1950.txt (zlib format) +.br +rfc1951.txt (deflate format) +.br +rfc1952.txt (gzip format) +.LP +These documents are also available in other formats from: +.IP +ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html +.SH AUTHORS +Version 1.1.4 +Copyright (C) 1995-2002 Jean-loup Gailly (jloup@gzip.org) +and Mark Adler (madler@alumni.caltech.edu). +.LP +This software is provided "as-is," +without any express or implied warranty. +In no event will the authors be held liable for any damages +arising from the use of this software. +See the distribution directory with respect to requirements +governing redistribution. +The deflate format used by +.I zlib +was defined by Phil Katz. +The deflate and +.I zlib +specifications were written by L. Peter Deutsch. +Thanks to all the people who reported problems and suggested various +improvements in +.IR zlib ; +who are too numerous to cite here. +.LP +UNIX manual page by R. P. C. Rodgers, +U.S. National Library of Medicine (rodgers@nlm.nih.gov). +.\" end of man page diff --git a/PluginSource/VS2017/Realvnc/common/zlib/zlib.dsp b/PluginSource/VS2017/Realvnc/common/zlib/zlib.dsp new file mode 100644 index 0000000..f03c931 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/zlib.dsp @@ -0,0 +1,217 @@ +# Microsoft Developer Studio Project File - Name="zlib" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=zlib - Win32 Debug Unicode +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "zlib.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "zlib.mak" CFG="zlib - Win32 Debug Unicode" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "zlib - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "zlib - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "zlib - Win32 Debug Unicode" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "zlib - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\Release" +# PROP Intermediate_Dir "..\Release\zlib" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O1 /D "NDEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /YX /FD /c +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "zlib - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\Debug" +# PROP Intermediate_Dir "..\Debug\zlib" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "zlib - Win32 Debug Unicode" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "zlib___Win32_Debug_Unicode" +# PROP BASE Intermediate_Dir "zlib___Win32_Debug_Unicode" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\Debug_Unicode" +# PROP Intermediate_Dir "..\Debug_Unicode\zlib" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "_LIB" /D "_DEBUG" /D "WIN32" /D "_UNICODE" /D "UNICODE" /YX /FD /GZ /c +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "zlib - Win32 Release" +# Name "zlib - Win32 Debug" +# Name "zlib - Win32 Debug Unicode" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\adler32.c +# End Source File +# Begin Source File + +SOURCE=.\compress.c +# End Source File +# Begin Source File + +SOURCE=.\crc32.c +# End Source File +# Begin Source File + +SOURCE=.\deflate.c +# End Source File +# Begin Source File + +SOURCE=.\gzio.c +# End Source File +# Begin Source File + +SOURCE=.\infblock.c +# End Source File +# Begin Source File + +SOURCE=.\infcodes.c +# End Source File +# Begin Source File + +SOURCE=.\inffast.c +# End Source File +# Begin Source File + +SOURCE=.\inflate.c +# End Source File +# Begin Source File + +SOURCE=.\inftrees.c +# End Source File +# Begin Source File + +SOURCE=.\infutil.c +# End Source File +# Begin Source File + +SOURCE=.\trees.c +# End Source File +# Begin Source File + +SOURCE=.\uncompr.c +# End Source File +# Begin Source File + +SOURCE=.\zutil.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\deflate.h +# End Source File +# Begin Source File + +SOURCE=.\infblock.h +# End Source File +# Begin Source File + +SOURCE=.\infcodes.h +# End Source File +# Begin Source File + +SOURCE=.\inffast.h +# End Source File +# Begin Source File + +SOURCE=.\inffixed.h +# End Source File +# Begin Source File + +SOURCE=.\inftrees.h +# End Source File +# Begin Source File + +SOURCE=.\infutil.h +# End Source File +# Begin Source File + +SOURCE=.\trees.h +# End Source File +# Begin Source File + +SOURCE=.\zconf.h +# End Source File +# Begin Source File + +SOURCE=.\zlib.h +# End Source File +# Begin Source File + +SOURCE=.\zutil.h +# End Source File +# End Group +# End Target +# End Project diff --git a/PluginSource/VS2017/Realvnc/common/zlib/zlib.html b/PluginSource/VS2017/Realvnc/common/zlib/zlib.html new file mode 100644 index 0000000..c343703 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/zlib.html @@ -0,0 +1,971 @@ + + + + zlib general purpose compression library version 1.1.4 + + + + + +

zlib 1.1.4 Manual

+
+

Contents

+
    +
  1. Prologue +
  2. Introduction +
  3. Utility functions +
  4. Basic functions +
  5. Advanced functions +
  6. Constants +
  7. struct z_stream_s +
  8. Checksum functions +
  9. Misc +
+
+

Prologue

+ 'zlib' general purpose compression library version 1.1.4, March 11th, 2002 +

+ Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler +

+ This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. +

+ Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: +

    +
  1. The origin of this software must not be misrepresented ; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +
  2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +
  3. This notice may not be removed or altered from any source distribution. +
+ +
+
Jean-loup Gailly +
jloup@gzip.org +
Mark Adler +
madler@alumni.caltech.edu +
+ + The data format used by the zlib library is described by RFCs (Request for + Comments) 1950 to 1952 in the files + + ftp://ds.internic.net/rfc/rfc1950.txt + (zlib format), + + rfc1951.txt + (deflate format) and + + rfc1952.txt + (gzip format). +

+ This manual is converted from zlib.h by + piaip +

+ Visit + http://ftp.cdrom.com/pub/infozip/zlib/ + for the official zlib web page. +

+ +


+

Introduction

+ The 'zlib' compression library provides in-memory compression and + decompression functions, including integrity checks of the uncompressed + data. This version of the library supports only one compression method + (deflation) but other algorithms will be added later and will have the same + stream interface. +

+ + Compression can be done in a single step if the buffers are large + enough (for example if an input file is mmap'ed), or can be done by + repeated calls of the compression function. In the latter case, the + application must provide more input and/or consume the output + (providing more output space) before each call. +

+ + The library also supports reading and writing files in gzip (.gz) format + with an interface similar to that of stdio. +

+ + The library does not install any signal handler. The decoder checks + the consistency of the compressed data, so the library should never + crash even in case of corrupted input. +

+ +


+

Utility functions

+ The following utility functions are implemented on top of the +
basic stream-oriented functions. + To simplify the interface, some + default options are assumed (compression level and memory usage, + standard memory allocation functions). The source code of these + utility functions can easily be modified if you need special options. +

Function list

+
    +
  • int compress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen); +
  • int compress2 (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level); +
  • int uncompress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen); +
  • typedef voidp gzFile; +
  • gzFile gzopen (const char *path, const char *mode); +
  • gzFile gzdopen (int fd, const char *mode); +
  • int gzsetparams (gzFile file, int level, int strategy); +
  • int gzread (gzFile file, voidp buf, unsigned len); +
  • int gzwrite (gzFile file, const voidp buf, unsigned len); +
  • int VA gzprintf (gzFile file, const char *format, ...); +
  • int gzputs (gzFile file, const char *s); +
  • char * gzgets (gzFile file, char *buf, int len); +
  • int gzputc (gzFile file, int c); +
  • int gzgetc (gzFile file); +
  • int gzflush (gzFile file, int flush); +
  • z_off_t gzseek (gzFile file, z_off_t offset, int whence); +
  • z_off_t gztell (gzFile file); +
  • int gzrewind (gzFile file); +
  • int gzeof (gzFile file); +
  • int gzclose (gzFile file); +
  • const char * gzerror (gzFile file, int *errnum); +
+

Function description

+
+
int compress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen); +
+ Compresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be at least 0.1% larger than + sourceLen plus 12 bytes. Upon exit, destLen is the actual size of the + compressed buffer.

+ This function can be used to compress a whole file at once if the + input file is mmap'ed.

+ compress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer.

+ +

int compress2 (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level); +
+ Compresses the source buffer into the destination buffer. The level + parameter has the same meaning as in deflateInit. sourceLen is the byte + length of the source buffer. Upon entry, destLen is the total size of the + destination buffer, which must be at least 0.1% larger than sourceLen plus + 12 bytes. Upon exit, destLen is the actual size of the compressed buffer. +

+ + compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_BUF_ERROR if there was not enough room in the output buffer, + Z_STREAM_ERROR if the level parameter is invalid. +

+ +

int uncompress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen); +
+ Decompresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be large enough to hold the + entire uncompressed data. (The size of the uncompressed data must have + been saved previously by the compressor and transmitted to the decompressor + by some mechanism outside the scope of this compression library.) + Upon exit, destLen is the actual size of the compressed buffer.

+ This function can be used to decompress a whole file at once if the + input file is mmap'ed. +

+ + uncompress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer, or Z_DATA_ERROR if the input data was corrupted. +

+ +

typedef voidp gzFile; +

+ +

gzFile gzopen (const char *path, const char *mode); +
+ Opens a gzip (.gz) file for reading or writing. The mode parameter + is as in fopen ("rb" or "wb") but can also include a compression level + ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for + Huffman only compression as in "wb1h". (See the description + of deflateInit2 for more information about the strategy parameter.) +

+ + gzopen can be used to read a file which is not in gzip format ; in this + case gzread will directly read from the file without decompression. +

+ + gzopen returns NULL if the file could not be opened or if there was + insufficient memory to allocate the (de)compression state ; errno + can be checked to distinguish the two cases (if errno is zero, the + zlib error is Z_MEM_ERROR). +

+ +

gzFile gzdopen (int fd, const char *mode); +
+ gzdopen() associates a gzFile with the file descriptor fd. File + descriptors are obtained from calls like open, dup, creat, pipe or + fileno (in the file has been previously opened with fopen). + The mode parameter is as in gzopen. +

+ The next call of gzclose on the returned gzFile will also close the + file descriptor fd, just like fclose(fdopen(fd), mode) closes the file + descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode). +

+ gzdopen returns NULL if there was insufficient memory to allocate + the (de)compression state. +

+ +

int gzsetparams (gzFile file, int level, int strategy); +
+ Dynamically update the compression level or strategy. See the description + of deflateInit2 for the meaning of these parameters. +

+ gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not + opened for writing. +

+ +

int gzread (gzFile file, voidp buf, unsigned len); +
+ Reads the given number of uncompressed bytes from the compressed file. + If the input file was not in gzip format, gzread copies the given number + of bytes into the buffer. +

+ gzread returns the number of uncompressed bytes actually read (0 for + end of file, -1 for error). +

+ +

int gzwrite (gzFile file, const voidp buf, unsigned len); +
+ Writes the given number of uncompressed bytes into the compressed file. + gzwrite returns the number of uncompressed bytes actually written + (0 in case of error). +

+ +

int VA gzprintf (gzFile file, const char *format, ...); +
+ Converts, formats, and writes the args to the compressed file under + control of the format string, as in fprintf. gzprintf returns the number of + uncompressed bytes actually written (0 in case of error). +

+ +

int gzputs (gzFile file, const char *s); +
+ Writes the given null-terminated string to the compressed file, excluding + the terminating null character. +

+ gzputs returns the number of characters written, or -1 in case of error. +

+ +

char * gzgets (gzFile file, char *buf, int len); +
+ Reads bytes from the compressed file until len-1 characters are read, or + a newline character is read and transferred to buf, or an end-of-file + condition is encountered. The string is then terminated with a null + character. +

+ gzgets returns buf, or Z_NULL in case of error. +

+ +

int gzputc (gzFile file, int c); +
+ Writes c, converted to an unsigned char, into the compressed file. + gzputc returns the value that was written, or -1 in case of error. +

+ +

int gzgetc (gzFile file); +
+ Reads one byte from the compressed file. gzgetc returns this byte + or -1 in case of end of file or error. +

+ +

int gzflush (gzFile file, int flush); +
+ Flushes all pending output into the compressed file. The parameter + flush is as in the deflate() function. The return value is the zlib + error number (see function gzerror below). gzflush returns Z_OK if + the flush parameter is Z_FINISH and all output could be flushed. +

+ gzflush should be called only when strictly necessary because it can + degrade compression. +

+ +

z_off_t gzseek (gzFile file, z_off_t offset, int whence); +
+ Sets the starting position for the next gzread or gzwrite on the + given compressed file. The offset represents a number of bytes in the + uncompressed data stream. The whence parameter is defined as in lseek(2); + the value SEEK_END is not supported. +

+ If the file is opened for reading, this function is emulated but can be + extremely slow. If the file is opened for writing, only forward seeks are + supported ; gzseek then compresses a sequence of zeroes up to the new + starting position. +

+ gzseek returns the resulting offset location as measured in bytes from + the beginning of the uncompressed stream, or -1 in case of error, in + particular if the file is opened for writing and the new starting position + would be before the current position. +

+ +

int gzrewind (gzFile file); +
+ Rewinds the given file. This function is supported only for reading. +

+ gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) +

+ +

z_off_t gztell (gzFile file); +
+ Returns the starting position for the next gzread or gzwrite on the + given compressed file. This position represents a number of bytes in the + uncompressed data stream. +

+ + gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) +

+ +

int gzeof (gzFile file); +
+ Returns 1 when EOF has previously been detected reading the given + input stream, otherwise zero. +

+ +

int gzclose (gzFile file); +
+ Flushes all pending output if necessary, closes the compressed file + and deallocates all the (de)compression state. The return value is the zlib + error number (see function gzerror below). +

+ +

const char * gzerror (gzFile file, int *errnum); +
+ Returns the error message for the last error which occurred on the + given compressed file. errnum is set to zlib error number. If an + error occurred in the file system and not in the compression library, + errnum is set to Z_ERRNO and the application may consult errno + to get the exact error code. +

+

+
+

Basic functions

+

Function list

+
+ +

Function description

+
+
const char * zlibVersion (void); +
The application can compare zlibVersion and ZLIB_VERSION for consistency. + If the first character differs, the library code actually used is + not compatible with the zlib.h header file used by the application. + This check is automatically made by deflateInit and inflateInit. +

+ +

int deflateInit (z_streamp strm, int level); +
+ Initializes the internal stream state for compression. The fields + zalloc, zfree and opaque must be initialized before by the caller. + If zalloc and zfree are set to Z_NULL, deflateInit updates them to + use default allocation functions. +

+ + The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: + 1 gives best speed, 9 gives best compression, 0 gives no compression at + all (the input data is simply copied a block at a time). +

+ + Z_DEFAULT_COMPRESSION requests a default compromise between speed and + compression (currently equivalent to level 6). +

+ + deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if level is not a valid compression level, + Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible + with the version assumed by the caller (ZLIB_VERSION). + msg is set to null if there is no error message. deflateInit does not + perform any compression: this will be done by deflate(). +

+ +

int deflate (z_streamp strm, int flush); +
+ deflate compresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce some + output latency (reading input without producing any output) except when + forced to flush.

+ + The detailed semantics are as follows. deflate performs one or both of the + following actions: + +

    +
  • Compress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in and avail_in are updated and + processing will resume at this point for the next call of deflate(). + +
  • + Provide more output starting at next_out and update next_out and avail_out + accordingly. This action is forced if the parameter flush is non zero. + Forcing flush frequently degrades the compression ratio, so this parameter + should be set only when necessary (in interactive applications). + Some output may be provided even if flush is not set. +

+ + Before the call of deflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming + more output, and updating avail_in or avail_out accordingly ; avail_out + should never be zero before the call. The application can consume the + compressed output when it wants, for example when the output buffer is full + (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK + and with zero avail_out, it must be called again after making room in the + output buffer because there might be more output pending. +

+ + If the parameter flush is set to Z_SYNC_FLUSH, all pending output is + flushed to the output buffer and the output is aligned on a byte boundary, so + that the decompressor can get all input data available so far. (In particular + avail_in is zero after the call if enough output space has been provided + before the call.) Flushing may degrade compression for some compression + algorithms and so it should be used only when necessary. +

+ + If flush is set to Z_FULL_FLUSH, all output is flushed as with + Z_SYNC_FLUSH, and the compression state is reset so that decompression can + restart from this point if previous compressed data has been damaged or if + random access is desired. Using Z_FULL_FLUSH too often can seriously degrade + the compression. +

+ + If deflate returns with avail_out == 0, this function must be called again + with the same value of the flush parameter and more output space (updated + avail_out), until the flush is complete (deflate returns with non-zero + avail_out). +

+ + If the parameter flush is set to Z_FINISH, pending input is processed, + pending output is flushed and deflate returns with Z_STREAM_END if there + was enough output space ; if deflate returns with Z_OK, this function must be + called again with Z_FINISH and more output space (updated avail_out) but no + more input data, until it returns with Z_STREAM_END or an error. After + deflate has returned Z_STREAM_END, the only possible operations on the + stream are deflateReset or deflateEnd. +

+ + Z_FINISH can be used immediately after deflateInit if all the compression + is to be done in a single step. In this case, avail_out must be at least + 0.1% larger than avail_in plus 12 bytes. If deflate does not return + Z_STREAM_END, then it must be called again as described above. +

+ + deflate() sets strm-> adler to the adler32 checksum of all input read + so far (that is, total_in bytes). +

+ + deflate() may update data_type if it can make a good guess about + the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered + binary. This field is only for information purposes and does not affect + the compression algorithm in any manner. +

+ + deflate() returns Z_OK if some progress has been made (more input + processed or more output produced), Z_STREAM_END if all input has been + consumed and all output has been produced (only when flush is set to + Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example + if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible + (for example avail_in or avail_out was zero). +

+ +

int deflateEnd (z_streamp strm); +
+ All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any + pending output. +

+ + deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the + stream state was inconsistent, Z_DATA_ERROR if the stream was freed + prematurely (some input or output was discarded). In the error case, + msg may be set but then points to a static string (which must not be + deallocated). +

+ +

int inflateInit (z_streamp strm); +
+ Initializes the internal stream state for decompression. The fields + next_in, avail_in, zalloc, zfree and opaque must be initialized before by + the caller. If next_in is not Z_NULL and avail_in is large enough (the exact + value depends on the compression method), inflateInit determines the + compression method from the zlib header and allocates all data structures + accordingly ; otherwise the allocation will be deferred to the first call of + inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to + use default allocation functions. +

+ + inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_VERSION_ERROR if the zlib library version is incompatible with the + version assumed by the caller. msg is set to null if there is no error + message. inflateInit does not perform any decompression apart from reading + the zlib header if present: this will be done by inflate(). (So next_in and + avail_in may be modified, but next_out and avail_out are unchanged.) +

+ +

int inflate (z_streamp strm, int flush); +
+ inflate decompresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may some + introduce some output latency (reading input without producing any output) + except when forced to flush. +

+ + The detailed semantics are as follows. inflate performs one or both of the + following actions: + +

    +
  • Decompress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in is updated and processing + will resume at this point for the next call of inflate(). + +
  • Provide more output starting at next_out and update next_out and + avail_out accordingly. inflate() provides as much output as possible, + until there is no more input data or no more space in the output buffer + (see below about the flush parameter). +

+ + Before the call of inflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming + more output, and updating the next_* and avail_* values accordingly. + The application can consume the uncompressed output when it wants, for + example when the output buffer is full (avail_out == 0), or after each + call of inflate(). If inflate returns Z_OK and with zero avail_out, it + must be called again after making room in the output buffer because there + might be more output pending. +

+ + If the parameter flush is set to Z_SYNC_FLUSH, inflate flushes as much + output as possible to the output buffer. The flushing behavior of inflate is + not specified for values of the flush parameter other than Z_SYNC_FLUSH + and Z_FINISH, but the current implementation actually flushes as much output + as possible anyway. +

+ + inflate() should normally be called until it returns Z_STREAM_END or an + error. However if all decompression is to be performed in a single step + (a single call of inflate), the parameter flush should be set to + Z_FINISH. In this case all pending input is processed and all pending + output is flushed ; avail_out must be large enough to hold all the + uncompressed data. (The size of the uncompressed data may have been saved + by the compressor for this purpose.) The next operation on this stream must + be inflateEnd to deallocate the decompression state. The use of Z_FINISH + is never required, but can be used to inform inflate that a faster routine + may be used for the single inflate() call. +

+ + If a preset dictionary is needed at this point (see inflateSetDictionary + below), inflate sets strm-adler to the adler32 checksum of the + dictionary chosen by the compressor and returns Z_NEED_DICT ; otherwise + it sets strm-> adler to the adler32 checksum of all output produced + so far (that is, total_out bytes) and returns Z_OK, Z_STREAM_END or + an error code as described below. At the end of the stream, inflate() + checks that its computed adler32 checksum is equal to that saved by the + compressor and returns Z_STREAM_END only if the checksum is correct. +

+ + inflate() returns Z_OK if some progress has been made (more input processed + or more output produced), Z_STREAM_END if the end of the compressed data has + been reached and all uncompressed output has been produced, Z_NEED_DICT if a + preset dictionary is needed at this point, Z_DATA_ERROR if the input data was + corrupted (input stream not conforming to the zlib format or incorrect + adler32 checksum), Z_STREAM_ERROR if the stream structure was inconsistent + (for example if next_in or next_out was NULL), Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if no progress is possible or if there was not + enough room in the output buffer when Z_FINISH is used. In the Z_DATA_ERROR + case, the application may then call inflateSync to look for a good + compression block. +

+ +

int inflateEnd (z_streamp strm); +
+ All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any + pending output. +

+ + inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state + was inconsistent. In the error case, msg may be set but then points to a + static string (which must not be deallocated). +

+
+

Advanced functions

+ The following functions are needed only in some special applications. +

Function list

+
+

Function description

+
+
int deflateInit2 (z_streamp strm, int level, int method, int windowBits, int memLevel, int strategy); + +
This is another version of deflateInit with more compression options. The + fields next_in, zalloc, zfree and opaque must be initialized before by + the caller.

+ + The method parameter is the compression method. It must be Z_DEFLATED in + this version of the library.

+ + The windowBits parameter is the base two logarithm of the window size + (the size of the history buffer). It should be in the range 8..15 for this + version of the library. Larger values of this parameter result in better + compression at the expense of memory usage. The default value is 15 if + deflateInit is used instead.

+ + The memLevel parameter specifies how much memory should be allocated + for the internal compression state. memLevel=1 uses minimum memory but + is slow and reduces compression ratio ; memLevel=9 uses maximum memory + for optimal speed. The default value is 8. See zconf.h for total memory + usage as a function of windowBits and memLevel.

+ + The strategy parameter is used to tune the compression algorithm. Use the + value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a + filter (or predictor), or Z_HUFFMAN_ONLY to force Huffman encoding only (no + string match). Filtered data consists mostly of small values with a + somewhat random distribution. In this case, the compression algorithm is + tuned to compress them better. The effect of Z_FILTERED is to force more + Huffman coding and less string matching ; it is somewhat intermediate + between Z_DEFAULT and Z_HUFFMAN_ONLY. The strategy parameter only affects + the compression ratio but not the correctness of the compressed output even + if it is not set appropriately.

+ + deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid + method). msg is set to null if there is no error message. deflateInit2 does + not perform any compression: this will be done by deflate().

+ +

int deflateSetDictionary (z_streamp strm, const Bytef *dictionary, uInt dictLength); +
+ Initializes the compression dictionary from the given byte sequence + without producing any compressed output. This function must be called + immediately after deflateInit, deflateInit2 or deflateReset, before any + call of deflate. The compressor and decompressor must use exactly the same + dictionary (see inflateSetDictionary).

+ + The dictionary should consist of strings (byte sequences) that are likely + to be encountered later in the data to be compressed, with the most commonly + used strings preferably put towards the end of the dictionary. Using a + dictionary is most useful when the data to be compressed is short and can be + predicted with good accuracy ; the data can then be compressed better than + with the default empty dictionary.

+ + Depending on the size of the compression data structures selected by + deflateInit or deflateInit2, a part of the dictionary may in effect be + discarded, for example if the dictionary is larger than the window size in + deflate or deflate2. Thus the strings most likely to be useful should be + put at the end of the dictionary, not at the front.

+ + Upon return of this function, strm-> adler is set to the Adler32 value + of the dictionary ; the decompressor may later use this value to determine + which dictionary has been used by the compressor. (The Adler32 value + applies to the whole dictionary even if only a subset of the dictionary is + actually used by the compressor.)

+ + deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a + parameter is invalid (such as NULL dictionary) or the stream state is + inconsistent (for example if deflate has already been called for this stream + or if the compression method is bsort). deflateSetDictionary does not + perform any compression: this will be done by deflate().

+ +

int deflateCopy (z_streamp dest, z_streamp source); +
+ Sets the destination stream as a complete copy of the source stream.

+ + This function can be useful when several compression strategies will be + tried, for example when there are several ways of pre-processing the input + data with a filter. The streams that will be discarded should then be freed + by calling deflateEnd. Note that deflateCopy duplicates the internal + compression state which can be quite large, so this strategy is slow and + can consume lots of memory.

+ + deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being NULL). msg is left unchanged in both source and + destination.

+ +

int deflateReset (z_streamp strm); +
This function is equivalent to deflateEnd followed by deflateInit, + but does not free and reallocate all the internal compression state. + The stream will keep the same compression level and any other attributes + that may have been set by deflateInit2.

+ + deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being NULL).

+ +

int deflateParams (z_streamp strm, int level, int strategy); +
+ Dynamically update the compression level and compression strategy. The + interpretation of level and strategy is as in deflateInit2. This can be + used to switch between compression and straight copy of the input data, or + to switch to a different kind of input data requiring a different + strategy. If the compression level is changed, the input available so far + is compressed with the old level (and may be flushed); the new level will + take effect only at the next call of deflate().

+ + Before the call of deflateParams, the stream state must be set as for + a call of deflate(), since the currently available input may have to + be compressed and flushed. In particular, strm-> avail_out must be + non-zero.

+ + deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source + stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR + if strm->avail_out was zero.

+ +

int inflateInit2 (z_streamp strm, int windowBits); + +
This is another version of inflateInit with an extra parameter. The + fields next_in, avail_in, zalloc, zfree and opaque must be initialized + before by the caller.

+ + The windowBits parameter is the base two logarithm of the maximum window + size (the size of the history buffer). It should be in the range 8..15 for + this version of the library. The default value is 15 if inflateInit is used + instead. If a compressed stream with a larger window size is given as + input, inflate() will return with the error code Z_DATA_ERROR instead of + trying to allocate a larger window.

+ + inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if a parameter is invalid (such as a negative + memLevel). msg is set to null if there is no error message. inflateInit2 + does not perform any decompression apart from reading the zlib header if + present: this will be done by inflate(). (So next_in and avail_in may be + modified, but next_out and avail_out are unchanged.)

+ +

int inflateSetDictionary (z_streamp strm, const Bytef *dictionary, uInt dictLength); +
+ Initializes the decompression dictionary from the given uncompressed byte + sequence. This function must be called immediately after a call of inflate + if this call returned Z_NEED_DICT. The dictionary chosen by the compressor + can be determined from the Adler32 value returned by this call of + inflate. The compressor and decompressor must use exactly the same + dictionary (see deflateSetDictionary).

+ + inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a + parameter is invalid (such as NULL dictionary) or the stream state is + inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the + expected one (incorrect Adler32 value). inflateSetDictionary does not + perform any decompression: this will be done by subsequent calls of + inflate().

+ +

int inflateSync (z_streamp strm); + +
Skips invalid compressed data until a full flush point (see above the + description of deflate with Z_FULL_FLUSH) can be found, or until all + available input is skipped. No output is provided.

+ + inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR + if no more input was provided, Z_DATA_ERROR if no flush point has been found, + or Z_STREAM_ERROR if the stream structure was inconsistent. In the success + case, the application may save the current current value of total_in which + indicates where valid compressed data was found. In the error case, the + application may repeatedly call inflateSync, providing more input each time, + until success or end of the input data.

+ +

int inflateReset (z_streamp strm); +
+ This function is equivalent to inflateEnd followed by inflateInit, + but does not free and reallocate all the internal decompression state. + The stream will keep attributes that may have been set by inflateInit2. +

+ + inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being NULL). +

+

+ +
+

Checksum functions

+ These functions are not related to compression but are exported + anyway because they might be useful in applications using the + compression library. +

Function list

+
+

Function description

+
+
uLong adler32 (uLong adler, const Bytef *buf, uInt len); +
+ Update a running Adler-32 checksum with the bytes buf[0..len-1] and + return the updated checksum. If buf is NULL, this function returns + the required initial value for the checksum. +

+ An Adler-32 checksum is almost as reliable as a CRC32 but can be computed + much faster. Usage example: +

+
+     uLong adler = adler32(0L, Z_NULL, 0);
+
+     while (read_buffer(buffer, length) != EOF) {
+       adler = adler32(adler, buffer, length);
+     }
+     if (adler != original_adler) error();
+   
+ +
uLong crc32 (uLong crc, const Bytef *buf, uInt len); +
+ Update a running crc with the bytes buf[0..len-1] and return the updated + crc. If buf is NULL, this function returns the required initial value + for the crc. Pre- and post-conditioning (one's complement) is performed + within this function so it shouldn't be done by the application. + Usage example: +
+
+     uLong crc = crc32(0L, Z_NULL, 0);
+
+     while (read_buffer(buffer, length) != EOF) {
+       crc = crc32(crc, buffer, length);
+     }
+     if (crc != original_crc) error();
+   
+
+
+

struct z_stream_s

+ +
+
+typedef struct z_stream_s {
+    Bytef    *next_in;  /* next input byte */
+    uInt     avail_in;  /* number of bytes available at next_in */
+    uLong    total_in;  /* total nb of input bytes read so far */
+
+    Bytef    *next_out; /* next output byte should be put there */
+    uInt     avail_out; /* remaining free space at next_out */
+    uLong    total_out; /* total nb of bytes output so far */
+
+    char     *msg;      /* last error message, NULL if no error */
+    struct internal_state FAR *state; /* not visible by applications */
+
+    alloc_func zalloc;  /* used to allocate the internal state */
+    free_func  zfree;   /* used to free the internal state */
+    voidpf     opaque;  /* private data object passed to zalloc and zfree */
+
+    int     data_type;  /* best guess about the data type: ascii or binary */
+    uLong   adler;      /* adler32 value of the uncompressed data */
+    uLong   reserved;   /* reserved for future use */
+} z_stream ;
+
+typedef z_stream FAR * z_streamp;  ÿ 
+
+
+ The application must update next_in and avail_in when avail_in has + dropped to zero. It must update next_out and avail_out when avail_out + has dropped to zero. The application must initialize zalloc, zfree and + opaque before calling the init function. All other fields are set by the + compression library and must not be updated by the application.

+ + The opaque value provided by the application will be passed as the first + parameter for calls of zalloc and zfree. This can be useful for custom + memory management. The compression library attaches no meaning to the + opaque value.

+ + zalloc must return Z_NULL if there is not enough memory for the object. + If zlib is used in a multi-threaded application, zalloc and zfree must be + thread safe.

+ + On 16-bit systems, the functions zalloc and zfree must be able to allocate + exactly 65536 bytes, but will not be required to allocate more than this + if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, + pointers returned by zalloc for objects of exactly 65536 bytes *must* + have their offset normalized to zero. The default allocation function + provided by this library ensures this (see zutil.c). To reduce memory + requirements and avoid any allocation of 64K objects, at the expense of + compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h). +

+ + The fields total_in and total_out can be used for statistics or + progress reports. After compression, total_in holds the total size of + the uncompressed data and may be saved for use in the decompressor + (particularly if the decompressor wants to decompress everything in + a single step).

+ +


+

Constants

+ +
+#define Z_NO_FLUSH      0
+#define Z_PARTIAL_FLUSH 1 
+	/* will be removed, use Z_SYNC_FLUSH instead */
+#define Z_SYNC_FLUSH    2
+#define Z_FULL_FLUSH    3
+#define Z_FINISH        4
+/* Allowed flush values ; see deflate() below for details */
+
+#define Z_OK            0
+#define Z_STREAM_END    1
+#define Z_NEED_DICT     2
+#define Z_ERRNO        (-1)
+#define Z_STREAM_ERROR (-2)
+#define Z_DATA_ERROR   (-3)
+#define Z_MEM_ERROR    (-4)
+#define Z_BUF_ERROR    (-5)
+#define Z_VERSION_ERROR (-6)
+/* Return codes for the compression/decompression functions. Negative
+ * values are errors, positive values are used for special but normal events.
+ */
+
+#define Z_NO_COMPRESSION         0
+#define Z_BEST_SPEED             1
+#define Z_BEST_COMPRESSION       9
+#define Z_DEFAULT_COMPRESSION  (-1)
+/* compression levels */
+
+#define Z_FILTERED            1
+#define Z_HUFFMAN_ONLY        2
+#define Z_DEFAULT_STRATEGY    0
+/* compression strategy ; see deflateInit2() below for details */
+
+#define Z_BINARY   0
+#define Z_ASCII    1
+#define Z_UNKNOWN  2
+/* Possible values of the data_type field */
+
+#define Z_DEFLATED   8
+/* The deflate compression method (the only one supported in this version) */
+
+#define Z_NULL  0  /* for initializing zalloc, zfree, opaque */
+
+#define zlib_version zlibVersion()
+/* for compatibility with versions less than 1.0.2 */
+
+
+ +
+

Misc

+
deflateInit and inflateInit are macros to allow checking the zlib version + and the compiler's view of z_stream. +

+ Other functions: +

+
const char * zError (int err); +
int inflateSyncPoint (z_streamp z); +
const uLongf * get_crc_table (void); +
+
+ + Last update: Wed Oct 13 20:42:34 1999
+ piapi@csie.ntu.edu.tw +
+ + + diff --git a/PluginSource/VS2017/Realvnc/common/zlib/zlib.sln b/PluginSource/VS2017/Realvnc/common/zlib/zlib.sln new file mode 100644 index 0000000..44830ab --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/zlib.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26730.16 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "zlib.vcxproj", "{2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug Unicode|x86 = Debug Unicode|x86 + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Debug Unicode|x86.ActiveCfg = Debug Unicode|Win32 + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Debug Unicode|x86.Build.0 = Debug Unicode|Win32 + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Debug|x86.ActiveCfg = Debug|Win32 + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Debug|x86.Build.0 = Debug|Win32 + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Release|x86.ActiveCfg = Release|Win32 + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {9977F31B-4E19-4345-88A5-8DC36BAF0A6D} + EndGlobalSection +EndGlobal diff --git a/PluginSource/VS2017/Realvnc/common/zlib/zlib.vcproj b/PluginSource/VS2017/Realvnc/common/zlib/zlib.vcproj new file mode 100644 index 0000000..edf0a32 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/zlib.vcproj @@ -0,0 +1,573 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PluginSource/VS2017/Realvnc/common/zlib/zlib.vcxproj b/PluginSource/VS2017/Realvnc/common/zlib/zlib.vcxproj new file mode 100644 index 0000000..c428885 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/zlib.vcxproj @@ -0,0 +1,333 @@ + + + + + Debug Unicode + Win32 + + + Debug Unicode + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {2D867FAD-A8D5-43D1-A48C-6F2D2701A7C4} + 10.0.15063.0 + + + + StaticLibrary + v141 + false + Unicode + + + StaticLibrary + v141 + false + Unicode + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .\..\Debug\ + .\..\Debug\zlib\ + true + + + true + + + .\..\Release\ + .\..\Release\zlib\ + false + + + false + .\..\Release\ + .\..\Release\zlib\ + + + .\..\Debug_Unicode\ + .\..\Debug_Unicode\zlib\ + true + + + true + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + true + _DEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + .\..\Debug\zlib\ + .\..\Debug\zlib\zlib.pch + .\..\Debug\zlib\ + .\..\Debug\zlib\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug\zlib.bsc + + + true + .\..\Debug\zlib.lib + + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + _DEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + .\..\Debug\zlib\ + .\..\Debug\zlib\zlib.pch + .\..\Debug\zlib\ + .\..\Debug\zlib\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug\zlib.bsc + + + true + .\..\Debug\zlib.lib + + + + + MultiThreaded + Default + true + true + MinSpace + true + Level3 + NDEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + .\..\Release\zlib\ + .\..\Release\zlib\zlib.pch + .\..\Release\zlib\ + .\..\Release\zlib\ + ..;$(SolutionDir)../source/Realvnc/common;%(AdditionalIncludeDirectories) + + + 0x0809 + NDEBUG;%(PreprocessorDefinitions) + + + true + .\..\Release\zlib.bsc + + + true + .\..\Release\zlib.lib + + + + + MultiThreaded + Default + true + true + MinSpace + true + Level3 + NDEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + .\..\Release\zlib\ + .\..\Release\zlib\zlib.pch + .\..\Release\zlib\ + .\..\Release\zlib\ + ..;$(SolutionDir)../source/Realvnc/common;%(AdditionalIncludeDirectories) + + + 0x0809 + NDEBUG;%(PreprocessorDefinitions) + + + true + .\..\Release\zlib.bsc + + + true + .\..\Release\zlib.lib + + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + true + _LIB;_DEBUG;WIN32;UNICODE;%(PreprocessorDefinitions) + .\..\Debug_Unicode\zlib\ + .\..\Debug_Unicode\zlib\zlib.pch + .\..\Debug_Unicode\zlib\ + .\..\Debug_Unicode\zlib\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug_Unicode\zlib.bsc + + + true + .\..\Debug_Unicode\zlib.lib + + + + + MultiThreadedDebug + Default + false + Disabled + true + Level3 + _LIB;_DEBUG;WIN32;UNICODE;%(PreprocessorDefinitions) + .\..\Debug_Unicode\zlib\ + .\..\Debug_Unicode\zlib\zlib.pch + .\..\Debug_Unicode\zlib\ + .\..\Debug_Unicode\zlib\ + EnableFastChecks + + + 0x0809 + _DEBUG;%(PreprocessorDefinitions) + + + true + .\..\Debug_Unicode\zlib.bsc + + + true + .\..\Debug_Unicode\zlib.lib + + + + + + \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/common/zlib/zlib.vcxproj.filters b/PluginSource/VS2017/Realvnc/common/zlib/zlib.vcxproj.filters new file mode 100644 index 0000000..ff5bc78 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/common/zlib/zlib.vcxproj.filters @@ -0,0 +1,101 @@ + + + + + {6a8316b7-306d-4348-9898-ff08d91f4785} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {fe94ab5c-50ae-43da-be0d-7cec87424aad} + h;hpp;hxx;hm;inl + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/win/.vs/vnc/v15/Solution.VC.db-shm b/PluginSource/VS2017/Realvnc/win/.vs/vnc/v15/Solution.VC.db-shm new file mode 100644 index 0000000..e2cfc47 Binary files /dev/null and b/PluginSource/VS2017/Realvnc/win/.vs/vnc/v15/Solution.VC.db-shm differ diff --git a/PluginSource/VS2017/Realvnc/win/.vs/vnc/v15/Solution.VC.db-wal b/PluginSource/VS2017/Realvnc/win/.vs/vnc/v15/Solution.VC.db-wal new file mode 100644 index 0000000..42511bd Binary files /dev/null and b/PluginSource/VS2017/Realvnc/win/.vs/vnc/v15/Solution.VC.db-wal differ diff --git a/PluginSource/VS2017/Realvnc/win/Backup/vnc.sln b/PluginSource/VS2017/Realvnc/win/Backup/vnc.sln new file mode 100644 index 0000000..cf4b7f0 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/Backup/vnc.sln @@ -0,0 +1,141 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Xregion", "..\common\Xregion\Xregion.vcproj", "{597421F1-8544-4198-B498-540361A51BE0}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "logmessages", "logmessages\logmessages.vcproj", "{52C5AB3A-9094-4ABC-A815-9351F6483895}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "network", "..\common\network\network.vcproj", "{6001F642-84E6-448F-9D69-C1F540291186}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rdr", "..\common\rdr\rdr.vcproj", "{24E0C894-0886-49F1-80C0-DE306A1CD0C3}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rfb", "..\common\rfb\rfb.vcproj", "{5F0B1D1B-306D-4D7F-AB22-DCF01632B73B}" + ProjectSection(ProjectDependencies) = postProject + {597421F1-8544-4198-B498-540361A51BE0} = {597421F1-8544-4198-B498-540361A51BE0} + {24E0C894-0886-49F1-80C0-DE306A1CD0C3} = {24E0C894-0886-49F1-80C0-DE306A1CD0C3} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rfb_win32", "rfb_win32\rfb_win32.vcproj", "{B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}" + ProjectSection(ProjectDependencies) = postProject + {5F0B1D1B-306D-4D7F-AB22-DCF01632B73B} = {5F0B1D1B-306D-4D7F-AB22-DCF01632B73B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vncconfig", "vncconfig\vncconfig.vcproj", "{E0369460-54A0-4DB5-8167-94B0BAD6C215}" + ProjectSection(ProjectDependencies) = postProject + {597421F1-8544-4198-B498-540361A51BE0} = {597421F1-8544-4198-B498-540361A51BE0} + {6001F642-84E6-448F-9D69-C1F540291186} = {6001F642-84E6-448F-9D69-C1F540291186} + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE} = {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE} + {5F0B1D1B-306D-4D7F-AB22-DCF01632B73B} = {5F0B1D1B-306D-4D7F-AB22-DCF01632B73B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vncviewer", "vncviewer\vncviewer.vcproj", "{DBB955AF-768C-4121-A2A1-30012B9FF417}" + ProjectSection(ProjectDependencies) = postProject + {597421F1-8544-4198-B498-540361A51BE0} = {597421F1-8544-4198-B498-540361A51BE0} + {24E0C894-0886-49F1-80C0-DE306A1CD0C3} = {24E0C894-0886-49F1-80C0-DE306A1CD0C3} + {6001F642-84E6-448F-9D69-C1F540291186} = {6001F642-84E6-448F-9D69-C1F540291186} + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE} = {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE} + {3E0AC723-BDE7-45AC-ABD8-B05AA5642EAC} = {3E0AC723-BDE7-45AC-ABD8-B05AA5642EAC} + {5F0B1D1B-306D-4D7F-AB22-DCF01632B73B} = {5F0B1D1B-306D-4D7F-AB22-DCF01632B73B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winvnc", "winvnc\winvnc.vcproj", "{DA814B9E-141A-4044-95AD-6E8C6C13D67E}" + ProjectSection(ProjectDependencies) = postProject + {597421F1-8544-4198-B498-540361A51BE0} = {597421F1-8544-4198-B498-540361A51BE0} + {3E0AC723-BDE7-45AC-ABD8-B05AA5642EAC} = {3E0AC723-BDE7-45AC-ABD8-B05AA5642EAC} + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE} = {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE} + {6001F642-84E6-448F-9D69-C1F540291186} = {6001F642-84E6-448F-9D69-C1F540291186} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wm_hooks", "wm_hooks\wm_hooks.vcproj", "{72379240-B458-46F3-B9DD-2DEADE37A2C9}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\common\zlib\zlib.vcproj", "{3E0AC723-BDE7-45AC-ABD8-B05AA5642EAC}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfiguration) = preSolution + Debug = Debug + Debug Unicode = Debug Unicode + Release = Release + EndGlobalSection + GlobalSection(ProjectConfiguration) = postSolution + {597421F1-8544-4198-B498-540361A51BE0}.Debug.ActiveCfg = Debug|Win32 + {597421F1-8544-4198-B498-540361A51BE0}.Debug.Build.0 = Debug|Win32 + {597421F1-8544-4198-B498-540361A51BE0}.Debug Unicode.ActiveCfg = Debug Unicode|Win32 + {597421F1-8544-4198-B498-540361A51BE0}.Debug Unicode.Build.0 = Debug Unicode|Win32 + {597421F1-8544-4198-B498-540361A51BE0}.Release.ActiveCfg = Release|Win32 + {597421F1-8544-4198-B498-540361A51BE0}.Release.Build.0 = Release|Win32 + {52C5AB3A-9094-4ABC-A815-9351F6483895}.Debug.ActiveCfg = Debug|Win32 + {52C5AB3A-9094-4ABC-A815-9351F6483895}.Debug.Build.0 = Debug|Win32 + {52C5AB3A-9094-4ABC-A815-9351F6483895}.Debug Unicode.ActiveCfg = Debug Unicode|Win32 + {52C5AB3A-9094-4ABC-A815-9351F6483895}.Debug Unicode.Build.0 = Debug Unicode|Win32 + {52C5AB3A-9094-4ABC-A815-9351F6483895}.Release.ActiveCfg = Release|Win32 + {52C5AB3A-9094-4ABC-A815-9351F6483895}.Release.Build.0 = Release|Win32 + {6001F642-84E6-448F-9D69-C1F540291186}.Debug.ActiveCfg = Debug|Win32 + {6001F642-84E6-448F-9D69-C1F540291186}.Debug.Build.0 = Debug|Win32 + {6001F642-84E6-448F-9D69-C1F540291186}.Debug Unicode.ActiveCfg = Debug Unicode|Win32 + {6001F642-84E6-448F-9D69-C1F540291186}.Debug Unicode.Build.0 = Debug Unicode|Win32 + {6001F642-84E6-448F-9D69-C1F540291186}.Release.ActiveCfg = Release|Win32 + {6001F642-84E6-448F-9D69-C1F540291186}.Release.Build.0 = Release|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug.ActiveCfg = Debug|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug.Build.0 = Debug|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug Unicode.ActiveCfg = Debug Unicode|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug Unicode.Build.0 = Debug Unicode|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Release.ActiveCfg = Release|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Release.Build.0 = Release|Win32 + {5F0B1D1B-306D-4D7F-AB22-DCF01632B73B}.Debug.ActiveCfg = Debug|Win32 + {5F0B1D1B-306D-4D7F-AB22-DCF01632B73B}.Debug.Build.0 = Debug|Win32 + {5F0B1D1B-306D-4D7F-AB22-DCF01632B73B}.Debug Unicode.ActiveCfg = Debug Unicode|Win32 + {5F0B1D1B-306D-4D7F-AB22-DCF01632B73B}.Debug Unicode.Build.0 = Debug Unicode|Win32 + {5F0B1D1B-306D-4D7F-AB22-DCF01632B73B}.Release.ActiveCfg = Release|Win32 + {5F0B1D1B-306D-4D7F-AB22-DCF01632B73B}.Release.Build.0 = Release|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug.ActiveCfg = Debug|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug.Build.0 = Debug|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug Unicode.ActiveCfg = Debug Unicode|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug Unicode.Build.0 = Debug Unicode|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Release.ActiveCfg = Release|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Release.Build.0 = Release|Win32 + {E0369460-54A0-4DB5-8167-94B0BAD6C215}.Debug.ActiveCfg = Debug|Win32 + {E0369460-54A0-4DB5-8167-94B0BAD6C215}.Debug.Build.0 = Debug|Win32 + {E0369460-54A0-4DB5-8167-94B0BAD6C215}.Debug Unicode.ActiveCfg = Debug Unicode|Win32 + {E0369460-54A0-4DB5-8167-94B0BAD6C215}.Debug Unicode.Build.0 = Debug Unicode|Win32 + {E0369460-54A0-4DB5-8167-94B0BAD6C215}.Release.ActiveCfg = Release|Win32 + {E0369460-54A0-4DB5-8167-94B0BAD6C215}.Release.Build.0 = Release|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Debug.ActiveCfg = Debug|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Debug.Build.0 = Debug|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Debug Unicode.ActiveCfg = Debug Unicode|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Debug Unicode.Build.0 = Debug Unicode|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Release.ActiveCfg = Release|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Release.Build.0 = Release|Win32 + {DA814B9E-141A-4044-95AD-6E8C6C13D67E}.Debug.ActiveCfg = Debug|Win32 + {DA814B9E-141A-4044-95AD-6E8C6C13D67E}.Debug.Build.0 = Debug|Win32 + {DA814B9E-141A-4044-95AD-6E8C6C13D67E}.Debug Unicode.ActiveCfg = Debug Unicode|Win32 + {DA814B9E-141A-4044-95AD-6E8C6C13D67E}.Debug Unicode.Build.0 = Debug Unicode|Win32 + {DA814B9E-141A-4044-95AD-6E8C6C13D67E}.Release.ActiveCfg = Release|Win32 + {DA814B9E-141A-4044-95AD-6E8C6C13D67E}.Release.Build.0 = Release|Win32 + {72379240-B458-46F3-B9DD-2DEADE37A2C9}.Debug.ActiveCfg = Debug|Win32 + {72379240-B458-46F3-B9DD-2DEADE37A2C9}.Debug.Build.0 = Debug|Win32 + {72379240-B458-46F3-B9DD-2DEADE37A2C9}.Debug Unicode.ActiveCfg = Debug Unicode|Win32 + {72379240-B458-46F3-B9DD-2DEADE37A2C9}.Debug Unicode.Build.0 = Debug Unicode|Win32 + {72379240-B458-46F3-B9DD-2DEADE37A2C9}.Release.ActiveCfg = Release|Win32 + {72379240-B458-46F3-B9DD-2DEADE37A2C9}.Release.Build.0 = Release|Win32 + {3E0AC723-BDE7-45AC-ABD8-B05AA5642EAC}.Debug.ActiveCfg = Debug|Win32 + {3E0AC723-BDE7-45AC-ABD8-B05AA5642EAC}.Debug.Build.0 = Debug|Win32 + {3E0AC723-BDE7-45AC-ABD8-B05AA5642EAC}.Debug Unicode.ActiveCfg = Debug Unicode|Win32 + {3E0AC723-BDE7-45AC-ABD8-B05AA5642EAC}.Debug Unicode.Build.0 = Debug Unicode|Win32 + {3E0AC723-BDE7-45AC-ABD8-B05AA5642EAC}.Release.ActiveCfg = Release|Win32 + {3E0AC723-BDE7-45AC-ABD8-B05AA5642EAC}.Release.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddIns) = postSolution + EndGlobalSection +EndGlobal diff --git a/PluginSource/VS2017/Realvnc/win/Release/rfb_win32.lib b/PluginSource/VS2017/Realvnc/win/Release/rfb_win32.lib new file mode 100644 index 0000000..538a38a Binary files /dev/null and b/PluginSource/VS2017/Realvnc/win/Release/rfb_win32.lib differ diff --git a/PluginSource/VS2017/Realvnc/win/logmessages/MSG00001.bin b/PluginSource/VS2017/Realvnc/win/logmessages/MSG00001.bin new file mode 100644 index 0000000..cbff155 Binary files /dev/null and b/PluginSource/VS2017/Realvnc/win/logmessages/MSG00001.bin differ diff --git a/PluginSource/VS2017/Realvnc/win/logmessages/logmessages.dsp b/PluginSource/VS2017/Realvnc/win/logmessages/logmessages.dsp new file mode 100644 index 0000000..0390869 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/logmessages/logmessages.dsp @@ -0,0 +1,202 @@ +# Microsoft Developer Studio Project File - Name="logmessages" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=logmessages - Win32 Debug Unicode +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "logmessages.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "logmessages.mak" CFG="logmessages - Win32 Debug Unicode" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "logmessages - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "logmessages - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "logmessages - Win32 Debug Unicode" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "logmessages - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\Release" +# PROP Intermediate_Dir "..\Release\logmessages" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LOGMESSAGES_EXPORTS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "LOGMESSAGES_EXPORTS" /D "WIN32" /D "_MBCS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 +# ADD LINK32 /nologo /dll /machine:I386 /out:"messages.mc" +# Begin Custom Build +InputPath=.\messages.mc +SOURCE="$(InputPath)" + +BuildCmds= \ + mc messages.mc \ + rc -r -fo messages.res messages.rc \ + link -dll -noentry -out:..\Release\logmessages.dll messages.res \ + + +"messages.res" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"messages.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"messages.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"..\Release\logmessages.dll" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) +# End Custom Build + +!ELSEIF "$(CFG)" == "logmessages - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "../Debug" +# PROP Intermediate_Dir "..\Debug\logmessages" +# PROP Ignore_Export_Lib 1 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LOGMESSAGES_EXPORTS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "LOGMESSAGES_EXPORTS" /D "WIN32" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 /nologo /dll /debug /machine:I386 /nodefaultlib /out:"messages.mc" /pdbtype:sept +# Begin Custom Build +InputPath=.\messages.mc +SOURCE="$(InputPath)" + +BuildCmds= \ + mc messages.mc \ + rc -r -fo messages.res messages.rc \ + link -dll -noentry -out:..\Debug\logmessages.dll messages.res \ + + +"messages.res" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"messages.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"messages.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"..\Debug\logmessages.dll" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) +# End Custom Build + +!ELSEIF "$(CFG)" == "logmessages - Win32 Debug Unicode" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "logmessages___Win32_Debug_Unicode" +# PROP BASE Intermediate_Dir "logmessages___Win32_Debug_Unicode" +# PROP BASE Ignore_Export_Lib 1 +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\Debug_Unicode" +# PROP Intermediate_Dir "..\Debug_Unicode\logmessages" +# PROP Ignore_Export_Lib 1 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "LOGMESSAGES_EXPORTS" /D "WIN32" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "_WINDOWS" /D "_USRDLL" /D "LOGMESSAGES_EXPORTS" /D "_DEBUG" /D "WIN32" /D "_UNICODE" /D "UNICODE" /YX /FD /GZ /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 /nologo /dll /debug /machine:I386 /nodefaultlib /out:"messages.mc" /pdbtype:sept +# ADD LINK32 /nologo /dll /debug /machine:I386 /nodefaultlib /out:"messages.mc" /pdbtype:sept +# Begin Custom Build +InputPath=.\messages.mc +SOURCE="$(InputPath)" + +BuildCmds= \ + mc messages.mc \ + rc -r -fo messages.res messages.rc \ + link -dll -noentry -out:..\Debug_Unicode\logmessages.dll messages.res \ + + +"messages.res" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"messages.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"messages.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"..\Debug_Unicode\logmessages.dll" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) +# End Custom Build + +!ENDIF + +# Begin Target + +# Name "logmessages - Win32 Release" +# Name "logmessages - Win32 Debug" +# Name "logmessages - Win32 Debug Unicode" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# Begin Source File + +SOURCE=.\messages.mc +# End Source File +# End Target +# End Project diff --git a/PluginSource/VS2017/Realvnc/win/logmessages/logmessages.vcproj b/PluginSource/VS2017/Realvnc/win/logmessages/logmessages.vcproj new file mode 100644 index 0000000..cc22217 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/logmessages/logmessages.vcproj @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PluginSource/VS2017/Realvnc/win/logmessages/logmessages.vcxproj b/PluginSource/VS2017/Realvnc/win/logmessages/logmessages.vcxproj new file mode 100644 index 0000000..d06673c --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/logmessages/logmessages.vcxproj @@ -0,0 +1,215 @@ + + + + + Debug Unicode + Win32 + + + Debug + Win32 + + + Release + Win32 + + + + + + {52C5AB3A-9094-4ABC-A815-9351F6483895} + 10.0.15063.0 + + + + DynamicLibrary + v141 + false + MultiByte + + + DynamicLibrary + v141 + false + MultiByte + + + DynamicLibrary + v141 + false + Unicode + + + + + + + + + + + + + + + + <_ProjectFileVersion>14.0.25123.0 + + + .\..\Debug_Unicode\ + .\..\Debug_Unicode\logmessages\ + true + false + + + .\..\Release\ + .\..\Release\logmessages\ + false + + + .\../Debug\ + .\..\Debug\logmessages\ + true + false + + + + Disabled + _WINDOWS;_USRDLL;LOGMESSAGES_EXPORTS;_DEBUG;WIN32;UNICODE;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + .\..\Debug_Unicode\logmessages/logmessages.pch + .\..\Debug_Unicode\logmessages/ + .\..\Debug_Unicode\logmessages/ + .\..\Debug_Unicode\logmessages/ + Level3 + true + ProgramDatabase + + + mc messages.mc +rc -r -fo messages.res messages.rc +link -dll -noentry -out:..\Debug_Unicode\logmessages.dll messages.res + + messages.res;messages.rc;messages.h;..\Debug_Unicode\logmessages.dll;%(Outputs) + + + odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + messages.mc + true + true + true + .\..\Debug_Unicode/messages.pdb + .\..\Debug_Unicode/messages.lib + MachineX86 + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\..\Debug_Unicode/logmessages.tlb + + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + + + MaxSpeed + OnlyExplicitInline + NDEBUG;_WINDOWS;_USRDLL;LOGMESSAGES_EXPORTS;WIN32;%(PreprocessorDefinitions) + true + MultiThreaded + true + + .\..\Release\logmessages/logmessages.pch + .\..\Release\logmessages/ + .\..\Release\logmessages/ + .\..\Release\logmessages/ + Level3 + true + + + mc messages.mc +rc -r -fo messages.res messages.rc +link -dll -noentry -out:..\Release\logmessages.dll messages.res + + messages.res;messages.rc;messages.h;..\Release\logmessages.dll;%(Outputs) + + + odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + messages.mc + true + .\..\Release/messages.pdb + .\..\Release/messages.lib + MachineX86 + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\..\Release/logmessages.tlb + + + + NDEBUG;%(PreprocessorDefinitions) + 0x0809 + + + + + Disabled + _DEBUG;_WINDOWS;_USRDLL;LOGMESSAGES_EXPORTS;WIN32;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + .\..\Debug\logmessages/logmessages.pch + .\..\Debug\logmessages/ + .\..\Debug\logmessages/ + .\..\Debug\logmessages/ + Level3 + true + ProgramDatabase + + + mc messages.mc +rc -r -fo messages.res messages.rc +link -dll -noentry -out:..\Debug\logmessages.dll messages.res + + messages.res;messages.rc;messages.h;..\Debug\logmessages.dll;%(Outputs) + + + odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + messages.mc + true + true + true + .\../Debug/messages.pdb + .\../Debug/messages.lib + MachineX86 + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\../Debug/logmessages.tlb + + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + + + + + + + \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/win/logmessages/logmessages.vcxproj.filters b/PluginSource/VS2017/Realvnc/win/logmessages/logmessages.vcxproj.filters new file mode 100644 index 0000000..c10ad1e --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/logmessages/logmessages.vcxproj.filters @@ -0,0 +1,20 @@ + + + + + {4a895f8a-e567-4d72-855e-9d7db572b231} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {3da85d38-a651-46df-a5a0-3b076c8eeab9} + h;hpp;hxx;hm;inl + + + {03fee9ad-e169-4ec5-9435-005a7300979a} + ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe + + + + + + \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/win/logmessages/messages.h b/PluginSource/VS2017/Realvnc/win/logmessages/messages.h new file mode 100644 index 0000000..dae5bff --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/logmessages/messages.h @@ -0,0 +1,47 @@ +// +// Values are 32 bit values laid out as follows: +// +// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 +// +---+-+-+-----------------------+-------------------------------+ +// |Sev|C|R| Facility | Code | +// +---+-+-+-----------------------+-------------------------------+ +// +// where +// +// Sev - is the severity code +// +// 00 - Success +// 01 - Informational +// 10 - Warning +// 11 - Error +// +// C - is the Customer code flag +// +// R - is a reserved bit +// +// Facility - is the facility code +// +// Code - is the facility's status code +// +// +// Define the facility codes +// + + +// +// Define the severity codes +// + + +// +// MessageId: VNC4LogMessage +// +// MessageText: +// +// %1: %2 +// +// +// +#define VNC4LogMessage 0x00000001L + diff --git a/PluginSource/VS2017/Realvnc/win/logmessages/messages.mc b/PluginSource/VS2017/Realvnc/win/logmessages/messages.mc new file mode 100644 index 0000000..0bc8329 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/logmessages/messages.mc @@ -0,0 +1,7 @@ +MessageId=0x1 +Severity=Success +SymbolicName=VNC4LogMessage +Language=English +%1: %2 + + diff --git a/PluginSource/VS2017/Realvnc/win/logmessages/messages.rc b/PluginSource/VS2017/Realvnc/win/logmessages/messages.rc new file mode 100644 index 0000000..0abcb0f --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/logmessages/messages.rc @@ -0,0 +1,2 @@ +LANGUAGE 0x9,0x1 +1 11 "MSG00001.bin" diff --git a/PluginSource/VS2017/Realvnc/win/logmessages/messages.res b/PluginSource/VS2017/Realvnc/win/logmessages/messages.res new file mode 100644 index 0000000..43dc010 Binary files /dev/null and b/PluginSource/VS2017/Realvnc/win/logmessages/messages.res differ diff --git a/PluginSource/VS2017/Realvnc/win/rfb_win32/rfb_win32.dsp b/PluginSource/VS2017/Realvnc/win/rfb_win32/rfb_win32.dsp new file mode 100644 index 0000000..957c032 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/rfb_win32/rfb_win32.dsp @@ -0,0 +1,457 @@ +# Microsoft Developer Studio Project File - Name="rfb_win32" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=rfb_win32 - Win32 Debug Unicode +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "rfb_win32.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "rfb_win32.mak" CFG="rfb_win32 - Win32 Debug Unicode" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "rfb_win32 - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "rfb_win32 - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE "rfb_win32 - Win32 Debug Unicode" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "rfb_win32 - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "..\Release" +# PROP Intermediate_Dir "..\Release\rfb_win32" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /I ".." /I "../../common" /FI"rdr/msvcwarning.h" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "WIN32" /YX /FD /c +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "rfb_win32 - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\Debug" +# PROP Intermediate_Dir "..\Debug\rfb_win32" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".." /I "../../common" /FI"rdr/msvcwarning.h" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "WIN32" /YX /FD /GZ /c +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ELSEIF "$(CFG)" == "rfb_win32 - Win32 Debug Unicode" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "rfb_win32___Win32_Debug_Unicode" +# PROP BASE Intermediate_Dir "rfb_win32___Win32_Debug_Unicode" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "..\Debug_Unicode" +# PROP Intermediate_Dir "..\Debug_Unicode\rfb_win32" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".." /FI"msvcwarning.h" /D "_DEBUG" /D "_LIB" /D "WIN32" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /I ".." /I "../../common" /FI"rdr/msvcwarning.h" /D "_DEBUG" /D "_UNICODE" /D "UNICODE" /D "_LIB" /D "WIN32" /YX /FD /GZ /c +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo + +!ENDIF + +# Begin Target + +# Name "rfb_win32 - Win32 Release" +# Name "rfb_win32 - Win32 Debug" +# Name "rfb_win32 - Win32 Debug Unicode" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\AboutDialog.cxx +# End Source File +# Begin Source File + +SOURCE=.\CKeyboard.cxx +# End Source File +# Begin Source File + +SOURCE=.\CleanDesktop.cxx +# End Source File +# Begin Source File + +SOURCE=.\Clipboard.cxx +# End Source File +# Begin Source File + +SOURCE=.\CPointer.cxx +# End Source File +# Begin Source File + +SOURCE=.\CurrentUser.cxx +# End Source File +# Begin Source File + +SOURCE=.\DeviceContext.cxx +# End Source File +# Begin Source File + +SOURCE=.\DeviceFrameBuffer.cxx +# End Source File +# Begin Source File + +SOURCE=.\Dialog.cxx +# End Source File +# Begin Source File + +SOURCE=.\DIBSectionBuffer.cxx +# End Source File +# Begin Source File + +SOURCE=.\DynamicFn.cxx +# End Source File +# Begin Source File + +SOURCE=.\EventManager.cxx +# End Source File +# Begin Source File + +SOURCE=.\LaunchProcess.cxx +# End Source File +# Begin Source File + +SOURCE=.\LowLevelKeyEvents.cxx +# End Source File +# Begin Source File + +SOURCE=.\MonitorInfo.cxx +# End Source File +# Begin Source File + +SOURCE=.\MsgWindow.cxx +# End Source File +# Begin Source File + +SOURCE=.\OSVersion.cxx +# End Source File +# Begin Source File + +SOURCE=.\RegConfig.cxx +# End Source File +# Begin Source File + +SOURCE=.\Registry.cxx +# End Source File +# Begin Source File + +SOURCE=.\SDisplay.cxx +# End Source File +# Begin Source File + +SOURCE=.\SDisplayCorePolling.cxx +# End Source File +# Begin Source File + +SOURCE=.\SDisplayCoreWMHooks.cxx +# End Source File +# Begin Source File + +SOURCE=.\Security.cxx +# End Source File +# Begin Source File + +SOURCE=.\Service.cxx +# End Source File +# Begin Source File + +SOURCE=.\SInput.cxx +# End Source File +# Begin Source File + +SOURCE=.\SocketManager.cxx +# End Source File +# Begin Source File + +SOURCE=.\TCharArray.cxx +# End Source File +# Begin Source File + +SOURCE=.\Threading.cxx +# End Source File +# Begin Source File + +SOURCE=.\TsSessions.cxx +# End Source File +# Begin Source File + +SOURCE=.\Win32Util.cxx +# End Source File +# Begin Source File + +SOURCE=.\WMCursor.cxx +# End Source File +# Begin Source File + +SOURCE=.\WMHooks.cxx +# End Source File +# Begin Source File + +SOURCE=.\WMNotifier.cxx +# End Source File +# Begin Source File + +SOURCE=.\WMPoller.cxx +# End Source File +# Begin Source File + +SOURCE=.\WMShatter.cxx +# End Source File +# Begin Source File + +SOURCE=.\WMWindowCopyRect.cxx +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\AboutDialog.h +# End Source File +# Begin Source File + +SOURCE=.\BitmapInfo.h +# End Source File +# Begin Source File + +SOURCE=.\CKeyboard.h +# End Source File +# Begin Source File + +SOURCE=.\CleanDesktop.h +# End Source File +# Begin Source File + +SOURCE=.\Clipboard.h +# End Source File +# Begin Source File + +SOURCE=.\CompatibleBitmap.h +# End Source File +# Begin Source File + +SOURCE=.\ComputerName.h +# End Source File +# Begin Source File + +SOURCE=.\CPointer.h +# End Source File +# Begin Source File + +SOURCE=.\CurrentUser.h +# End Source File +# Begin Source File + +SOURCE=.\DeviceContext.h +# End Source File +# Begin Source File + +SOURCE=.\DeviceFrameBuffer.h +# End Source File +# Begin Source File + +SOURCE=.\Dialog.h +# End Source File +# Begin Source File + +SOURCE=.\DIBSectionBuffer.h +# End Source File +# Begin Source File + +SOURCE=.\DynamicFn.h +# End Source File +# Begin Source File + +SOURCE=.\EventManager.h +# End Source File +# Begin Source File + +SOURCE=.\Handle.h +# End Source File +# Begin Source File + +SOURCE=.\IconInfo.h +# End Source File +# Begin Source File + +SOURCE=.\IntervalTimer.h +# End Source File +# Begin Source File + +SOURCE=.\keymap.h +# End Source File +# Begin Source File + +SOURCE=.\LaunchProcess.h +# End Source File +# Begin Source File + +SOURCE=.\LocalMem.h +# End Source File +# Begin Source File + +SOURCE=.\LogicalPalette.h +# End Source File +# Begin Source File + +SOURCE=.\LowLevelKeyEvents.h +# End Source File +# Begin Source File + +SOURCE=.\ModuleFileName.h +# End Source File +# Begin Source File + +SOURCE=.\MonitorInfo.h +# End Source File +# Begin Source File + +SOURCE=.\MsgBox.h +# End Source File +# Begin Source File + +SOURCE=.\MsgWindow.h +# End Source File +# Begin Source File + +SOURCE=.\OSVersion.h +# End Source File +# Begin Source File + +SOURCE=.\RegConfig.h +# End Source File +# Begin Source File + +SOURCE=.\Registry.h +# End Source File +# Begin Source File + +SOURCE=.\SDisplay.h +# End Source File +# Begin Source File + +SOURCE=.\SDisplayCoreDriver.h +# End Source File +# Begin Source File + +SOURCE=.\SDisplayCorePolling.h +# End Source File +# Begin Source File + +SOURCE=.\SDisplayCoreWMHooks.h +# End Source File +# Begin Source File + +SOURCE=.\Security.h +# End Source File +# Begin Source File + +SOURCE=.\Service.h +# End Source File +# Begin Source File + +SOURCE=.\SInput.h +# End Source File +# Begin Source File + +SOURCE=.\SocketManager.h +# End Source File +# Begin Source File + +SOURCE=.\TCharArray.h +# End Source File +# Begin Source File + +SOURCE=.\Threading.h +# End Source File +# Begin Source File + +SOURCE=.\TrayIcon.h +# End Source File +# Begin Source File + +SOURCE=.\TsSessions.h +# End Source File +# Begin Source File + +SOURCE=.\Win32Util.h +# End Source File +# Begin Source File + +SOURCE=.\WMCursor.h +# End Source File +# Begin Source File + +SOURCE=.\WMHooks.h +# End Source File +# Begin Source File + +SOURCE=.\WMNotifier.h +# End Source File +# Begin Source File + +SOURCE=.\WMPoller.h +# End Source File +# Begin Source File + +SOURCE=.\WMShatter.h +# End Source File +# Begin Source File + +SOURCE=.\WMWindowCopyRect.h +# End Source File +# End Group +# End Target +# End Project diff --git a/PluginSource/VS2017/Realvnc/win/rfb_win32/rfb_win32.vcproj b/PluginSource/VS2017/Realvnc/win/rfb_win32/rfb_win32.vcproj new file mode 100644 index 0000000..0cefe84 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/rfb_win32/rfb_win32.vcproj @@ -0,0 +1,1484 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/PluginSource/VS2017/Realvnc/win/rfb_win32/rfb_win32.vcxproj b/PluginSource/VS2017/Realvnc/win/rfb_win32/rfb_win32.vcxproj new file mode 100644 index 0000000..4e6d350 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/rfb_win32/rfb_win32.vcxproj @@ -0,0 +1,378 @@ + + + + + Debug Unicode + Win32 + + + Debug Unicode + x64 + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE} + 10.0.15063.0 + + + + StaticLibrary + v141 + false + Unicode + + + StaticLibrary + v141 + false + Unicode + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + StaticLibrary + v141 + false + MultiByte + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>14.0.25123.0 + + + .\..\Release\ + .\..\Release\rfb_win32\ + + + .\..\Release\ + .\..\Release\rfb_win32\ + + + .\..\Debug\ + .\..\Debug\rfb_win32\ + + + .\..\Debug_Unicode\ + .\..\Debug_Unicode\rfb_win32\ + + + + MaxSpeed + OnlyExplicitInline + ..;$(SolutionDir)../source/Realvnc/common;$(SolutionDir)../source/Realvnc/win;%(AdditionalIncludeDirectories) + NDEBUG;_LIB;WIN32;%(PreprocessorDefinitions) + true + MultiThreaded + true + + .\..\Release\rfb_win32/rfb_win32.pch + .\..\Release\rfb_win32/ + .\..\Release\rfb_win32/ + .\..\Release\rfb_win32/ + Level3 + true + Default + rdr/msvcwarning.h;%(ForcedIncludeFiles) + + + .\..\Release\rfb_win32.lib + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0809 + + + + + MaxSpeed + OnlyExplicitInline + ..;$(SolutionDir)../source/Realvnc/common;$(SolutionDir)../source/Realvnc/win;%(AdditionalIncludeDirectories) + NDEBUG;_LIB;WIN32;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + true + MultiThreaded + true + + + .\..\Release\rfb_win32/rfb_win32.pch + .\..\Release\rfb_win32/ + .\..\Release\rfb_win32/ + .\..\Release\rfb_win32/ + Level3 + true + Default + rdr/msvcwarning.h;%(ForcedIncludeFiles) + + + .\..\Release\rfb_win32.lib + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0809 + + + + + Disabled + ..;../../common;%(AdditionalIncludeDirectories) + _DEBUG;_LIB;WIN32;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + EnableFastChecks + MultiThreadedDebug + + .\..\Debug\rfb_win32/rfb_win32.pch + .\..\Debug\rfb_win32/ + .\..\Debug\rfb_win32/ + .\..\Debug\rfb_win32/ + Level3 + true + ProgramDatabase + Default + rdr/msvcwarning.h;%(ForcedIncludeFiles) + + + .\..\Debug\rfb_win32.lib + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + + + Disabled + ..;../../common;%(AdditionalIncludeDirectories) + _DEBUG;_LIB;WIN32;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + EnableFastChecks + MultiThreadedDebug + + + .\..\Debug\rfb_win32/rfb_win32.pch + .\..\Debug\rfb_win32/ + .\..\Debug\rfb_win32/ + .\..\Debug\rfb_win32/ + Level3 + true + ProgramDatabase + Default + rdr/msvcwarning.h;%(ForcedIncludeFiles) + + + .\..\Debug\rfb_win32.lib + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + + + Disabled + ..;../../common;%(AdditionalIncludeDirectories) + _DEBUG;UNICODE;_LIB;WIN32;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + .\..\Debug_Unicode\rfb_win32/rfb_win32.pch + .\..\Debug_Unicode\rfb_win32/ + .\..\Debug_Unicode\rfb_win32/ + .\..\Debug_Unicode\rfb_win32/ + Level3 + true + ProgramDatabase + Default + rdr/msvcwarning.h;%(ForcedIncludeFiles) + + + .\..\Debug_Unicode\rfb_win32.lib + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + + + Disabled + ..;../../common;%(AdditionalIncludeDirectories) + _DEBUG;UNICODE;_LIB;WIN32;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS + EnableFastChecks + MultiThreadedDebug + + + .\..\Debug_Unicode\rfb_win32/rfb_win32.pch + .\..\Debug_Unicode\rfb_win32/ + .\..\Debug_Unicode\rfb_win32/ + .\..\Debug_Unicode\rfb_win32/ + Level3 + true + ProgramDatabase + Default + rdr/msvcwarning.h;%(ForcedIncludeFiles) + + + .\..\Debug_Unicode\rfb_win32.lib + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + + + {5f0b1d1b-306d-4d7f-ab22-dcf01632b73b} + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/win/rfb_win32/rfb_win32.vcxproj.filters b/PluginSource/VS2017/Realvnc/win/rfb_win32/rfb_win32.vcxproj.filters new file mode 100644 index 0000000..1fef786 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/rfb_win32/rfb_win32.vcxproj.filters @@ -0,0 +1,272 @@ + + + + + {c07b3877-8377-4abb-87d8-b14f3370b593} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + {9eed6528-f8c9-4f42-a530-d913ed2ffe3d} + h;hpp;hxx;hm;inl + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/win/vnc.dsw b/PluginSource/VS2017/Realvnc/win/vnc.dsw new file mode 100644 index 0000000..74cadd7 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/vnc.dsw @@ -0,0 +1,200 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "Xregion"=..\common\Xregion\Xregion.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "logmessages"=.\logmessages\logmessages.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "network"=..\common\network\network.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "rdr"=..\common\rdr\rdr.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "rfb"=..\common\rfb\rfb.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name rdr + End Project Dependency + Begin Project Dependency + Project_Dep_Name Xregion + End Project Dependency +}}} + +############################################################################### + +Project: "rfb_win32"=.\rfb_win32\rfb_win32.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name rfb + End Project Dependency +}}} + +############################################################################### + +Project: "vncconfig"=.\vncconfig\vncconfig.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name rfb + End Project Dependency + Begin Project Dependency + Project_Dep_Name rfb_win32 + End Project Dependency + Begin Project Dependency + Project_Dep_Name network + End Project Dependency + Begin Project Dependency + Project_Dep_Name Xregion + End Project Dependency +}}} + +############################################################################### + +Project: "vncviewer"=.\vncviewer\vncviewer.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name rfb + End Project Dependency + Begin Project Dependency + Project_Dep_Name zlib + End Project Dependency + Begin Project Dependency + Project_Dep_Name rfb_win32 + End Project Dependency + Begin Project Dependency + Project_Dep_Name network + End Project Dependency + Begin Project Dependency + Project_Dep_Name rdr + End Project Dependency + Begin Project Dependency + Project_Dep_Name Xregion + End Project Dependency +}}} + +############################################################################### + +Project: "winvnc"=.\winvnc\winvnc.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name network + End Project Dependency + Begin Project Dependency + Project_Dep_Name rfb_win32 + End Project Dependency + Begin Project Dependency + Project_Dep_Name zlib + End Project Dependency + Begin Project Dependency + Project_Dep_Name Xregion + End Project Dependency +}}} + +############################################################################### + +Project: "wm_hooks"=.\wm_hooks\wm_hooks.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "zlib"=..\common\zlib\zlib.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/PluginSource/VS2017/Realvnc/win/vnc.sln b/PluginSource/VS2017/Realvnc/win/vnc.sln new file mode 100644 index 0000000..79da624 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/vnc.sln @@ -0,0 +1,107 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26730.16 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Xregion", "..\common\Xregion\Xregion.vcxproj", "{97B4B6EB-C049-4C53-A195-46B24CCEB709}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "logmessages", "logmessages\logmessages.vcxproj", "{52C5AB3A-9094-4ABC-A815-9351F6483895}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "network", "..\common\network\network.vcxproj", "{6001F642-84E6-448F-9D69-C1F540291186}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rdr", "..\common\rdr\rdr.vcxproj", "{24E0C894-0886-49F1-80C0-DE306A1CD0C3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rfb", "..\common\rfb\rfb.vcxproj", "{C86E6C39-AC59-4F6E-9F0A-A6452469B931}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rfb_win32", "rfb_win32\rfb_win32.vcxproj", "{B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vncconfig", "vncconfig\vncconfig.vcxproj", "{E0369460-54A0-4DB5-8167-94B0BAD6C215}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "vncviewer", "vncviewer\vncviewer.vcxproj", "{DBB955AF-768C-4121-A2A1-30012B9FF417}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winvnc", "winvnc\winvnc.vcxproj", "{DA814B9E-141A-4044-95AD-6E8C6C13D67E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wm_hooks", "wm_hooks\wm_hooks.vcxproj", "{72379240-B458-46F3-B9DD-2DEADE37A2C9}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\common\zlib\zlib.vcxproj", "{662AA311-211A-4D46-B725-861DFB673C72}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug Unicode|x86 = Debug Unicode|x86 + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {97B4B6EB-C049-4C53-A195-46B24CCEB709}.Debug Unicode|x86.ActiveCfg = Debug Unicode|Win32 + {97B4B6EB-C049-4C53-A195-46B24CCEB709}.Debug Unicode|x86.Build.0 = Debug Unicode|Win32 + {97B4B6EB-C049-4C53-A195-46B24CCEB709}.Debug|x86.ActiveCfg = Debug|Win32 + {97B4B6EB-C049-4C53-A195-46B24CCEB709}.Debug|x86.Build.0 = Debug|Win32 + {97B4B6EB-C049-4C53-A195-46B24CCEB709}.Release|x86.ActiveCfg = Release|Win32 + {97B4B6EB-C049-4C53-A195-46B24CCEB709}.Release|x86.Build.0 = Release|Win32 + {52C5AB3A-9094-4ABC-A815-9351F6483895}.Debug Unicode|x86.ActiveCfg = Debug Unicode|Win32 + {52C5AB3A-9094-4ABC-A815-9351F6483895}.Debug Unicode|x86.Build.0 = Debug Unicode|Win32 + {52C5AB3A-9094-4ABC-A815-9351F6483895}.Debug|x86.ActiveCfg = Debug|Win32 + {52C5AB3A-9094-4ABC-A815-9351F6483895}.Debug|x86.Build.0 = Debug|Win32 + {52C5AB3A-9094-4ABC-A815-9351F6483895}.Release|x86.ActiveCfg = Release|Win32 + {52C5AB3A-9094-4ABC-A815-9351F6483895}.Release|x86.Build.0 = Release|Win32 + {6001F642-84E6-448F-9D69-C1F540291186}.Debug Unicode|x86.ActiveCfg = Debug Unicode|Win32 + {6001F642-84E6-448F-9D69-C1F540291186}.Debug Unicode|x86.Build.0 = Debug Unicode|Win32 + {6001F642-84E6-448F-9D69-C1F540291186}.Debug|x86.ActiveCfg = Debug|Win32 + {6001F642-84E6-448F-9D69-C1F540291186}.Debug|x86.Build.0 = Debug|Win32 + {6001F642-84E6-448F-9D69-C1F540291186}.Release|x86.ActiveCfg = Release|Win32 + {6001F642-84E6-448F-9D69-C1F540291186}.Release|x86.Build.0 = Release|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug Unicode|x86.ActiveCfg = Debug Unicode|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug Unicode|x86.Build.0 = Debug Unicode|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug|x86.ActiveCfg = Debug|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Debug|x86.Build.0 = Debug|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Release|x86.ActiveCfg = Release|Win32 + {24E0C894-0886-49F1-80C0-DE306A1CD0C3}.Release|x86.Build.0 = Release|Win32 + {C86E6C39-AC59-4F6E-9F0A-A6452469B931}.Debug Unicode|x86.ActiveCfg = Debug Unicode|Win32 + {C86E6C39-AC59-4F6E-9F0A-A6452469B931}.Debug Unicode|x86.Build.0 = Debug Unicode|Win32 + {C86E6C39-AC59-4F6E-9F0A-A6452469B931}.Debug|x86.ActiveCfg = Debug|Win32 + {C86E6C39-AC59-4F6E-9F0A-A6452469B931}.Debug|x86.Build.0 = Debug|Win32 + {C86E6C39-AC59-4F6E-9F0A-A6452469B931}.Release|x86.ActiveCfg = Release|Win32 + {C86E6C39-AC59-4F6E-9F0A-A6452469B931}.Release|x86.Build.0 = Release|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug Unicode|x86.ActiveCfg = Debug Unicode|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug Unicode|x86.Build.0 = Debug Unicode|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug|x86.ActiveCfg = Debug|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Debug|x86.Build.0 = Debug|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Release|x86.ActiveCfg = Release|Win32 + {B8FEB3F1-D554-4AC2-9E59-F9792F31E8CE}.Release|x86.Build.0 = Release|Win32 + {E0369460-54A0-4DB5-8167-94B0BAD6C215}.Debug Unicode|x86.ActiveCfg = Debug Unicode|Win32 + {E0369460-54A0-4DB5-8167-94B0BAD6C215}.Debug Unicode|x86.Build.0 = Debug Unicode|Win32 + {E0369460-54A0-4DB5-8167-94B0BAD6C215}.Debug|x86.ActiveCfg = Debug|Win32 + {E0369460-54A0-4DB5-8167-94B0BAD6C215}.Debug|x86.Build.0 = Debug|Win32 + {E0369460-54A0-4DB5-8167-94B0BAD6C215}.Release|x86.ActiveCfg = Release|Win32 + {E0369460-54A0-4DB5-8167-94B0BAD6C215}.Release|x86.Build.0 = Release|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Debug Unicode|x86.ActiveCfg = Debug Unicode|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Debug Unicode|x86.Build.0 = Debug Unicode|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Debug|x86.ActiveCfg = Debug|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Debug|x86.Build.0 = Debug|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Release|x86.ActiveCfg = Release|Win32 + {DBB955AF-768C-4121-A2A1-30012B9FF417}.Release|x86.Build.0 = Release|Win32 + {DA814B9E-141A-4044-95AD-6E8C6C13D67E}.Debug Unicode|x86.ActiveCfg = Debug Unicode|Win32 + {DA814B9E-141A-4044-95AD-6E8C6C13D67E}.Debug Unicode|x86.Build.0 = Debug Unicode|Win32 + {DA814B9E-141A-4044-95AD-6E8C6C13D67E}.Debug|x86.ActiveCfg = Debug|Win32 + {DA814B9E-141A-4044-95AD-6E8C6C13D67E}.Debug|x86.Build.0 = Debug|Win32 + {DA814B9E-141A-4044-95AD-6E8C6C13D67E}.Release|x86.ActiveCfg = Release|Win32 + {DA814B9E-141A-4044-95AD-6E8C6C13D67E}.Release|x86.Build.0 = Release|Win32 + {72379240-B458-46F3-B9DD-2DEADE37A2C9}.Debug Unicode|x86.ActiveCfg = Debug Unicode|Win32 + {72379240-B458-46F3-B9DD-2DEADE37A2C9}.Debug Unicode|x86.Build.0 = Debug Unicode|Win32 + {72379240-B458-46F3-B9DD-2DEADE37A2C9}.Debug|x86.ActiveCfg = Debug|Win32 + {72379240-B458-46F3-B9DD-2DEADE37A2C9}.Debug|x86.Build.0 = Debug|Win32 + {72379240-B458-46F3-B9DD-2DEADE37A2C9}.Release|x86.ActiveCfg = Release|Win32 + {72379240-B458-46F3-B9DD-2DEADE37A2C9}.Release|x86.Build.0 = Release|Win32 + {662AA311-211A-4D46-B725-861DFB673C72}.Debug Unicode|x86.ActiveCfg = Debug Unicode|Win32 + {662AA311-211A-4D46-B725-861DFB673C72}.Debug Unicode|x86.Build.0 = Debug Unicode|Win32 + {662AA311-211A-4D46-B725-861DFB673C72}.Debug|x86.ActiveCfg = Debug|Win32 + {662AA311-211A-4D46-B725-861DFB673C72}.Debug|x86.Build.0 = Debug|Win32 + {662AA311-211A-4D46-B725-861DFB673C72}.Release|x86.ActiveCfg = Release|Win32 + {662AA311-211A-4D46-B725-861DFB673C72}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {8268B5A5-70A1-4670-9E3E-D60090E17C4F} + EndGlobalSection +EndGlobal diff --git a/PluginSource/VS2017/Realvnc/win/vncconfig/Authentication.h b/PluginSource/VS2017/Realvnc/win/vncconfig/Authentication.h new file mode 100644 index 0000000..f4b38f8 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/vncconfig/Authentication.h @@ -0,0 +1,142 @@ +/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved. + * + * This 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 software 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 software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ +#ifndef WINVNCCONF_AUTHENTICATION +#define WINVNCCONF_AUTHENTICATION + +#include +#include +#include +#include +#include +#include +#include +#include + +static rfb::BoolParameter queryOnlyIfLoggedOn("QueryOnlyIfLoggedOn", + "Only prompt for a local user to accept incoming connections if there is a user logged on", false); + +namespace rfb { + + namespace win32 { + + class AuthenticationPage : public PropSheetPage { + public: + AuthenticationPage(const RegKey& rk) + : PropSheetPage(GetModuleHandle(0), MAKEINTRESOURCE(IDD_AUTHENTICATION)), regKey(rk) {} + void initDialog() { + CharArray sec_types_str(SSecurityFactoryStandard::sec_types.getData()); + std::list sec_types = parseSecTypes(sec_types_str.buf); + + useNone = useVNC = false; + std::list::iterator i; + for (i=sec_types.begin(); i!=sec_types.end(); i++) { + if ((*i) == secTypeNone) useNone = true; + else if ((*i) == secTypeVncAuth) useVNC = true; + } + + HWND security = GetDlgItem(handle, IDC_ENCRYPTION); + SendMessage(security, CB_ADDSTRING, 0, (LPARAM)_T("Always Off")); + SendMessage(security, CB_SETCURSEL, 0, 0); + enableItem(IDC_AUTH_NT, false); enableItem(IDC_AUTH_NT_CONF, false); + enableItem(IDC_ENCRYPTION, false); enableItem(IDC_AUTH_RA2_CONF, false); + + setItemChecked(IDC_AUTH_NONE, useNone); + setItemChecked(IDC_AUTH_VNC, useVNC); + setItemChecked(IDC_QUERY_CONNECT, rfb::Server::queryConnect); + setItemChecked(IDC_QUERY_LOGGED_ON, queryOnlyIfLoggedOn); + onCommand(IDC_AUTH_NONE, 0); + } + bool onCommand(int id, int cmd) { + switch (id) { + case IDC_AUTH_VNC_PASSWD: + { + PasswordDialog passwdDlg(regKey, registryInsecure); + passwdDlg.showDialog(handle); + } + return true; + case IDC_AUTH_NONE: + case IDC_AUTH_VNC: + enableItem(IDC_AUTH_VNC_PASSWD, isItemChecked(IDC_AUTH_VNC)); + case IDC_QUERY_CONNECT: + case IDC_QUERY_LOGGED_ON: + setChanged((useNone != isItemChecked(IDC_AUTH_NONE)) || + (useVNC != isItemChecked(IDC_AUTH_VNC)) || + (rfb::Server::queryConnect != isItemChecked(IDC_QUERY_CONNECT)) || + (queryOnlyIfLoggedOn != isItemChecked(IDC_QUERY_LOGGED_ON))); + enableItem(IDC_QUERY_LOGGED_ON, enableQueryOnlyIfLoggedOn()); + return false; + }; + return false; + } + bool onOk() { + bool useVncChanged = useVNC != isItemChecked(IDC_AUTH_VNC); + useVNC = isItemChecked(IDC_AUTH_VNC); + useNone = isItemChecked(IDC_AUTH_NONE); + if (useVNC) { + verifyVncPassword(regKey); + regKey.setString(_T("SecurityTypes"), _T("VncAuth")); + } else { + if (haveVncPassword() && useVncChanged && + MsgBox(0, _T("The VNC authentication method is disabled, but a password is still stored for it.\n") + _T("Do you want to remove the VNC authentication password from the registry?"), + MB_ICONWARNING | MB_YESNO) == IDYES) { + regKey.setBinary(_T("Password"), 0, 0); + } + regKey.setString(_T("SecurityTypes"), _T("None")); + } + regKey.setString(_T("ReverseSecurityTypes"), _T("None")); + regKey.setBool(_T("QueryConnect"), isItemChecked(IDC_QUERY_CONNECT)); + regKey.setBool(_T("QueryOnlyIfLoggedOn"), isItemChecked(IDC_QUERY_LOGGED_ON)); + return true; + } + void setWarnPasswdInsecure(bool warn) { + registryInsecure = warn; + } + bool enableQueryOnlyIfLoggedOn() { + return isItemChecked(IDC_QUERY_CONNECT) && osVersion.isPlatformNT && (osVersion.dwMajorVersion >= 5); + } + + + static bool haveVncPassword() { + PlainPasswd password(SSecurityFactoryStandard::vncAuthPasswd.getVncAuthPasswd()); + return password.buf && strlen(password.buf) != 0; + } + + static void verifyVncPassword(const RegKey& regKey) { + if (!haveVncPassword()) { + MsgBox(0, _T("The VNC authentication method is enabled, but no password is specified.\n") + _T("The password dialog will now be shown."), MB_ICONINFORMATION | MB_OK); + PasswordDialog passwd(regKey, registryInsecure); + passwd.showDialog(); + } + } + + protected: + RegKey regKey; + static bool registryInsecure; + bool useNone; + bool useVNC; + }; + + }; + + bool AuthenticationPage::registryInsecure = false; + +}; + +#endif diff --git a/PluginSource/VS2017/Realvnc/win/vncconfig/Connections.h b/PluginSource/VS2017/Realvnc/win/vncconfig/Connections.h new file mode 100644 index 0000000..0dff829 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/vncconfig/Connections.h @@ -0,0 +1,298 @@ +/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved. + * + * This 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 software 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 software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ +#ifndef WINVNCCONF_CONNECTIONS +#define WINVNCCONF_CONNECTIONS + +#include + +#include +#include +#include +#include +#include +#include + +static rfb::IntParameter http_port("HTTPPortNumber", + "TCP/IP port on which the server will serve the Java applet VNC Viewer ", 5800); +static rfb::IntParameter port_number("PortNumber", + "TCP/IP port on which the server will accept connections", 5900); +static rfb::StringParameter hosts("Hosts", + "Filter describing which hosts are allowed access to this server", "+"); +static rfb::BoolParameter localHost("LocalHost", + "Only accept connections from via the local loop-back network interface", false); + +namespace rfb { + + namespace win32 { + + class ConnHostDialog : public Dialog { + public: + ConnHostDialog() : Dialog(GetModuleHandle(0)) {} + bool showDialog(const TCHAR* pat) { + pattern.replaceBuf(tstrDup(pat)); + return Dialog::showDialog(MAKEINTRESOURCE(IDD_CONN_HOST)); + } + void initDialog() { + if (_tcslen(pattern.buf) == 0) + pattern.replaceBuf(tstrDup("+")); + + if (pattern.buf[0] == _T('+')) + setItemChecked(IDC_ALLOW, true); + else if (pattern.buf[0] == _T('?')) + setItemChecked(IDC_QUERY, true); + else + setItemChecked(IDC_DENY, true); + + setItemString(IDC_HOST_PATTERN, &pattern.buf[1]); + pattern.replaceBuf(0); + } + bool onOk() { + TCharArray host = getItemString(IDC_HOST_PATTERN); + TCharArray newPat(_tcslen(host.buf)+2); + if (isItemChecked(IDC_ALLOW)) + newPat.buf[0] = _T('+'); + else if (isItemChecked(IDC_QUERY)) + newPat.buf[0] = _T('?'); + else + newPat.buf[0] = _T('-'); + newPat.buf[1] = 0; + _tcscat(newPat.buf, host.buf); + + network::TcpFilter::Pattern pat(network::TcpFilter::parsePattern(CStr(newPat.buf))); + pattern.replaceBuf(TCharArray(network::TcpFilter::patternToStr(pat)).takeBuf()); + return true; + } + const TCHAR* getPattern() {return pattern.buf;} + protected: + TCharArray pattern; + }; + + class ConnectionsPage : public PropSheetPage { + public: + ConnectionsPage(const RegKey& rk) + : PropSheetPage(GetModuleHandle(0), MAKEINTRESOURCE(IDD_CONNECTIONS)), regKey(rk) {} + void initDialog() { + vlog.debug("set IDC_PORT %d", (int)port_number); + setItemInt(IDC_PORT, port_number ? port_number : 5900); + setItemChecked(IDC_RFB_ENABLE, port_number != 0); + setItemInt(IDC_IDLE_TIMEOUT, rfb::Server::idleTimeout); + vlog.debug("set IDC_HTTP_PORT %d", (int)http_port); + setItemInt(IDC_HTTP_PORT, http_port ? http_port : 5800); + setItemChecked(IDC_HTTP_ENABLE, http_port != 0); + enableItem(IDC_HTTP_PORT, http_port != 0); + setItemChecked(IDC_LOCALHOST, localHost); + + HWND listBox = GetDlgItem(handle, IDC_HOSTS); + while (SendMessage(listBox, LB_GETCOUNT, 0, 0)) + SendMessage(listBox, LB_DELETESTRING, 0, 0); + + CharArray tmp; + tmp.buf = hosts.getData(); + while (tmp.buf) { + CharArray first; + strSplit(tmp.buf, ',', &first.buf, &tmp.buf); + if (strlen(first.buf)) + SendMessage(listBox, LB_ADDSTRING, 0, (LPARAM)(const TCHAR*)TStr(first.buf)); + } + + onCommand(IDC_RFB_ENABLE, EN_CHANGE); + } + bool onCommand(int id, int cmd) { + switch (id) { + case IDC_HOSTS: + { + DWORD selected = SendMessage(GetDlgItem(handle, IDC_HOSTS), LB_GETCURSEL, 0, 0); + int count = SendMessage(GetDlgItem(handle, IDC_HOSTS), LB_GETCOUNT, 0, 0); + bool enable = selected != LB_ERR; + enableItem(IDC_HOST_REMOVE, enable); + enableItem(IDC_HOST_UP, enable && (selected > 0)); + enableItem(IDC_HOST_DOWN, enable && (selected < count-1)); + enableItem(IDC_HOST_EDIT, enable); + setChanged(isChanged()); + } + return true; + + case IDC_PORT: + if (cmd == EN_CHANGE) { + try { + setItemInt(IDC_HTTP_PORT, rfbPortToHTTP(getItemInt(IDC_PORT))); + } catch (...) { + } + } + case IDC_HTTP_PORT: + case IDC_IDLE_TIMEOUT: + if (cmd == EN_CHANGE) + setChanged(isChanged()); + return false; + + case IDC_HTTP_ENABLE: + case IDC_RFB_ENABLE: + case IDC_LOCALHOST: + { + // HTTP port + enableItem(IDC_HTTP_PORT, isItemChecked(IDC_HTTP_ENABLE) && isItemChecked(IDC_RFB_ENABLE)); + enableItem(IDC_HTTP_ENABLE, isItemChecked(IDC_RFB_ENABLE)); + + // RFB port + enableItem(IDC_PORT, isItemChecked(IDC_RFB_ENABLE)); + + // Hosts + enableItem(IDC_LOCALHOST, isItemChecked(IDC_RFB_ENABLE)); + + bool enableHosts = !isItemChecked(IDC_LOCALHOST) && isItemChecked(IDC_RFB_ENABLE); + enableItem(IDC_HOSTS, enableHosts); + enableItem(IDC_HOST_ADD, enableHosts); + if (!enableHosts) { + enableItem(IDC_HOST_REMOVE, enableHosts); + enableItem(IDC_HOST_UP, enableHosts); + enableItem(IDC_HOST_DOWN, enableHosts); + enableItem(IDC_HOST_EDIT, enableHosts); + } else { + onCommand(IDC_HOSTS, EN_CHANGE); + } + setChanged(isChanged()); + return false; + } + + case IDC_HOST_ADD: + if (hostDialog.showDialog(_T(""))) + { + const TCHAR* pattern = hostDialog.getPattern(); + if (pattern) + SendMessage(GetDlgItem(handle, IDC_HOSTS), LB_ADDSTRING, 0, (LPARAM)pattern); + } + return true; + + case IDC_HOST_EDIT: + { + HWND listBox = GetDlgItem(handle, IDC_HOSTS); + int item = SendMessage(listBox, LB_GETCURSEL, 0, 0); + TCharArray pattern(SendMessage(listBox, LB_GETTEXTLEN, item, 0)+1); + SendMessage(listBox, LB_GETTEXT, item, (LPARAM)pattern.buf); + + if (hostDialog.showDialog(pattern.buf)) { + const TCHAR* newPat = hostDialog.getPattern(); + if (newPat) { + item = SendMessage(listBox, LB_FINDSTRINGEXACT, item, (LPARAM)pattern.buf); + if (item != LB_ERR) { + SendMessage(listBox, LB_DELETESTRING, item, 0); + SendMessage(listBox, LB_INSERTSTRING, item, (LPARAM)newPat); + SendMessage(listBox, LB_SETCURSEL, item, 0); + onCommand(IDC_HOSTS, EN_CHANGE); + } + } + } + } + return true; + + case IDC_HOST_UP: + { + HWND listBox = GetDlgItem(handle, IDC_HOSTS); + int item = SendMessage(listBox, LB_GETCURSEL, 0, 0); + TCharArray pattern(SendMessage(listBox, LB_GETTEXTLEN, item, 0)+1); + SendMessage(listBox, LB_GETTEXT, item, (LPARAM)pattern.buf); + SendMessage(listBox, LB_DELETESTRING, item, 0); + SendMessage(listBox, LB_INSERTSTRING, item-1, (LPARAM)pattern.buf); + SendMessage(listBox, LB_SETCURSEL, item-1, 0); + onCommand(IDC_HOSTS, EN_CHANGE); + } + return true; + + case IDC_HOST_DOWN: + { + HWND listBox = GetDlgItem(handle, IDC_HOSTS); + int item = SendMessage(listBox, LB_GETCURSEL, 0, 0); + TCharArray pattern(SendMessage(listBox, LB_GETTEXTLEN, item, 0)+1); + SendMessage(listBox, LB_GETTEXT, item, (LPARAM)pattern.buf); + SendMessage(listBox, LB_DELETESTRING, item, 0); + SendMessage(listBox, LB_INSERTSTRING, item+1, (LPARAM)pattern.buf); + SendMessage(listBox, LB_SETCURSEL, item+1, 0); + onCommand(IDC_HOSTS, EN_CHANGE); + } + return true; + + case IDC_HOST_REMOVE: + { + HWND listBox = GetDlgItem(handle, IDC_HOSTS); + int item = SendMessage(listBox, LB_GETCURSEL, 0, 0); + SendMessage(listBox, LB_DELETESTRING, item, 0); + onCommand(IDC_HOSTS, EN_CHANGE); + } + + } + return false; + } + bool onOk() { + regKey.setInt(_T("PortNumber"), isItemChecked(IDC_RFB_ENABLE) ? getItemInt(IDC_PORT) : 0); + regKey.setInt(_T("IdleTimeout"), getItemInt(IDC_IDLE_TIMEOUT)); + regKey.setInt(_T("HTTPPortNumber"), isItemChecked(IDC_HTTP_ENABLE) && isItemChecked(IDC_RFB_ENABLE) + ? getItemInt(IDC_HTTP_PORT) : 0); + regKey.setInt(_T("LocalHost"), isItemChecked(IDC_LOCALHOST)); + regKey.setString(_T("Hosts"), TCharArray(getHosts()).buf); + return true; + } + bool isChanged() { + try { + CharArray new_hosts = getHosts(); + CharArray old_hosts = hosts.getData(); + return (strcmp(new_hosts.buf, old_hosts.buf) != 0) || + (localHost != isItemChecked(IDC_LOCALHOST)) || + (port_number != getItemInt(IDC_PORT)) || + (http_port != getItemInt(IDC_HTTP_PORT)) || + ((http_port!=0) != (isItemChecked(IDC_HTTP_ENABLE)!=0)) || + (rfb::Server::idleTimeout != getItemInt(IDC_IDLE_TIMEOUT)); + } catch (rdr::Exception) { + return false; + } + } + char* getHosts() { + int bufLen = 1, i; + HWND listBox = GetDlgItem(handle, IDC_HOSTS); + for (i=0; i +#include +#include +#include + +namespace rfb { + + namespace win32 { + + class DesktopPage : public PropSheetPage { + public: + DesktopPage(const RegKey& rk) + : PropSheetPage(GetModuleHandle(0), MAKEINTRESOURCE(IDD_DESKTOP)), regKey(rk) {} + void initDialog() { + CharArray action = rfb::win32::SDisplay::disconnectAction.getData(); + bool disconnectLock = stricmp(action.buf, "Lock") == 0; + bool disconnectLogoff = stricmp(action.buf, "Logoff") == 0; + typedef BOOL (WINAPI *_LockWorkStation_proto)(); + DynamicFn<_LockWorkStation_proto> _LockWorkStation(_T("user32.dll"), "LockWorkStation"); + if (!_LockWorkStation.isValid()) { + enableItem(IDC_DISCONNECT_LOCK, false); + if (disconnectLock) { + disconnectLogoff = true; + disconnectLock = false; + } + } + setItemChecked(IDC_DISCONNECT_LOGOFF, disconnectLogoff); + setItemChecked(IDC_DISCONNECT_LOCK, disconnectLock); + setItemChecked(IDC_DISCONNECT_NONE, !disconnectLock && !disconnectLogoff); + setItemChecked(IDC_REMOVE_WALLPAPER, rfb::win32::SDisplay::removeWallpaper); + setItemChecked(IDC_REMOVE_PATTERN, rfb::win32::SDisplay::removePattern); + setItemChecked(IDC_DISABLE_EFFECTS, rfb::win32::SDisplay::disableEffects); + } + bool onCommand(int id, int cmd) { + switch (id) { + case IDC_DISCONNECT_LOGOFF: + case IDC_DISCONNECT_LOCK: + case IDC_DISCONNECT_NONE: + case IDC_REMOVE_WALLPAPER: + case IDC_REMOVE_PATTERN: + case IDC_DISABLE_EFFECTS: + CharArray action = rfb::win32::SDisplay::disconnectAction.getData(); + bool disconnectLock = stricmp(action.buf, "Lock") == 0; + bool disconnectLogoff = stricmp(action.buf, "Logoff") == 0; + setChanged((disconnectLogoff != isItemChecked(IDC_DISCONNECT_LOGOFF)) || + (disconnectLock != isItemChecked(IDC_DISCONNECT_LOCK)) || + (isItemChecked(IDC_REMOVE_WALLPAPER) != rfb::win32::SDisplay::removeWallpaper) || + (isItemChecked(IDC_REMOVE_PATTERN) != rfb::win32::SDisplay::removePattern) || + (isItemChecked(IDC_DISABLE_EFFECTS) != rfb::win32::SDisplay::disableEffects)); + break; + } + return false; + } + bool onOk() { + const TCHAR* action = _T("None"); + if (isItemChecked(IDC_DISCONNECT_LOGOFF)) + action = _T("Logoff"); + else if (isItemChecked(IDC_DISCONNECT_LOCK)) + action = _T("Lock"); + regKey.setString(_T("DisconnectAction"), action); + regKey.setBool(_T("RemoveWallpaper"), isItemChecked(IDC_REMOVE_WALLPAPER)); + regKey.setBool(_T("RemovePattern"), isItemChecked(IDC_REMOVE_PATTERN)); + regKey.setBool(_T("DisableEffects"), isItemChecked(IDC_DISABLE_EFFECTS)); + return true; + } + protected: + RegKey regKey; + }; + + }; + +}; + +#endif \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/win/vncconfig/Hooking.h b/PluginSource/VS2017/Realvnc/win/vncconfig/Hooking.h new file mode 100644 index 0000000..44b3510 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/vncconfig/Hooking.h @@ -0,0 +1,88 @@ +/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved. + * + * This 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 software 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 software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ +#ifndef WINVNCCONF_HOOKING +#define WINVNCCONF_HOOKING + +#include +#include +#include +#include +#include + +namespace rfb { + + namespace win32 { + + class HookingPage : public PropSheetPage { + public: + HookingPage(const RegKey& rk) + : PropSheetPage(GetModuleHandle(0), MAKEINTRESOURCE(IDD_HOOKING)), regKey(rk) {} + void initDialog() { + setItemChecked(IDC_USEPOLLING, rfb::win32::SDisplay::updateMethod == 0); + setItemChecked(IDC_USEHOOKS, (rfb::win32::SDisplay::updateMethod == 1) && + rfb::win32::SDisplay::areHooksAvailable()); + enableItem(IDC_USEHOOKS, rfb::win32::SDisplay::areHooksAvailable()); + setItemChecked(IDC_USEDRIVER, (rfb::win32::SDisplay::updateMethod == 2) && + rfb::win32::SDisplay::isDriverAvailable()); + enableItem(IDC_USEDRIVER, rfb::win32::SDisplay::isDriverAvailable()); + setItemChecked(IDC_POLLCONSOLES, rfb::win32::WMPoller::poll_console_windows); + setItemChecked(IDC_CAPTUREBLT, osVersion.isPlatformNT && + rfb::win32::DeviceFrameBuffer::useCaptureBlt); + enableItem(IDC_CAPTUREBLT, osVersion.isPlatformNT); + onCommand(IDC_USEHOOKS, 0); + } + bool onCommand(int id, int cmd) { + switch (id) { + case IDC_USEPOLLING: + case IDC_USEHOOKS: + case IDC_USEDRIVER: + case IDC_POLLCONSOLES: + case IDC_CAPTUREBLT: + setChanged(((rfb::win32::SDisplay::updateMethod == 0) != isItemChecked(IDC_USEPOLLING)) || + ((rfb::win32::SDisplay::updateMethod == 1) != isItemChecked(IDC_USEHOOKS)) || + ((rfb::win32::SDisplay::updateMethod == 2) != isItemChecked(IDC_USEDRIVER)) || + (rfb::win32::WMPoller::poll_console_windows != isItemChecked(IDC_POLLCONSOLES)) || + (rfb::win32::DeviceFrameBuffer::useCaptureBlt != isItemChecked(IDC_CAPTUREBLT))); + enableItem(IDC_POLLCONSOLES, isItemChecked(IDC_USEHOOKS)); + break; + } + return false; + } + bool onOk() { + if (isItemChecked(IDC_USEPOLLING)) + regKey.setInt(_T("UpdateMethod"), 0); + if (isItemChecked(IDC_USEHOOKS)) + regKey.setInt(_T("UpdateMethod"), 1); + if (isItemChecked(IDC_USEDRIVER)) + regKey.setInt(_T("UpdateMethod"), 2); + regKey.setBool(_T("PollConsoleWindows"), isItemChecked(IDC_POLLCONSOLES)); + regKey.setBool(_T("UseCaptureBlt"), isItemChecked(IDC_CAPTUREBLT)); + + // *** LEGACY compatibility *** + regKey.setBool(_T("UseHooks"), isItemChecked(IDC_USEHOOKS)); + return true; + } + protected: + RegKey regKey; + }; + + }; + +}; + +#endif \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/win/vncconfig/Inputs.h b/PluginSource/VS2017/Realvnc/win/vncconfig/Inputs.h new file mode 100644 index 0000000..d6b5057 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/vncconfig/Inputs.h @@ -0,0 +1,84 @@ +/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved. + * + * This 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 software 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 software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ +#ifndef WINVNCCONF_INPUTS +#define WINVNCCONF_INPUTS + +#ifndef SPI_GETBLOCKSENDINPUTRESETS +#define SPI_GETBLOCKSENDINPUTRESETS 0x1026 +#define SPI_SETBLOCKSENDINPUTRESETS 0x1027 +#endif + +#include +#include +#include +#include + +namespace rfb { + namespace win32 { + + class InputsPage : public PropSheetPage { + public: + InputsPage(const RegKey& rk) + : PropSheetPage(GetModuleHandle(0), MAKEINTRESOURCE(IDD_INPUTS)), + regKey(rk), enableAffectSSaver(true) {} + void initDialog() { + setItemChecked(IDC_ACCEPT_KEYS, rfb::Server::acceptKeyEvents); + setItemChecked(IDC_ACCEPT_PTR, rfb::Server::acceptPointerEvents); + setItemChecked(IDC_ACCEPT_CUTTEXT, rfb::Server::acceptCutText); + setItemChecked(IDC_SEND_CUTTEXT, rfb::Server::sendCutText); + setItemChecked(IDC_DISABLE_LOCAL_INPUTS, SDisplay::disableLocalInputs); + enableItem(IDC_DISABLE_LOCAL_INPUTS, !osVersion.isPlatformWindows); + BOOL blocked = FALSE; + if (SystemParametersInfo(SPI_GETBLOCKSENDINPUTRESETS, 0, &blocked, 0)) + setItemChecked(IDC_AFFECT_SCREENSAVER, !blocked); + else + enableAffectSSaver = false; + enableItem(IDC_AFFECT_SCREENSAVER, enableAffectSSaver); + } + bool onCommand(int id, int cmd) { + BOOL inputResetsBlocked; + SystemParametersInfo(SPI_GETBLOCKSENDINPUTRESETS, 0, &inputResetsBlocked, 0); + setChanged((rfb::Server::acceptKeyEvents != isItemChecked(IDC_ACCEPT_KEYS)) || + (rfb::Server::acceptPointerEvents != isItemChecked(IDC_ACCEPT_PTR)) || + (rfb::Server::acceptCutText != isItemChecked(IDC_ACCEPT_CUTTEXT)) || + (rfb::Server::sendCutText != isItemChecked(IDC_SEND_CUTTEXT)) || + (SDisplay::disableLocalInputs != isItemChecked(IDC_DISABLE_LOCAL_INPUTS)) || + (enableAffectSSaver && (!inputResetsBlocked != isItemChecked(IDC_AFFECT_SCREENSAVER)))); + return false; + } + bool onOk() { + regKey.setBool(_T("AcceptKeyEvents"), isItemChecked(IDC_ACCEPT_KEYS)); + regKey.setBool(_T("AcceptPointerEvents"), isItemChecked(IDC_ACCEPT_PTR)); + regKey.setBool(_T("AcceptCutText"), isItemChecked(IDC_ACCEPT_CUTTEXT)); + regKey.setBool(_T("SendCutText"), isItemChecked(IDC_SEND_CUTTEXT)); + regKey.setBool(_T("DisableLocalInputs"), isItemChecked(IDC_DISABLE_LOCAL_INPUTS)); + if (enableAffectSSaver) { + BOOL blocked = !isItemChecked(IDC_AFFECT_SCREENSAVER); + SystemParametersInfo(SPI_SETBLOCKSENDINPUTRESETS, blocked, 0, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); + } + return true; + } + protected: + RegKey regKey; + bool enableAffectSSaver; + }; + + }; +}; + +#endif \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/win/vncconfig/Legacy.cxx b/PluginSource/VS2017/Realvnc/win/vncconfig/Legacy.cxx new file mode 100644 index 0000000..ae5d716 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/vncconfig/Legacy.cxx @@ -0,0 +1,248 @@ +/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved. + * + * This 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 software 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 software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include + +#include +#include +#include + +using namespace rfb; +using namespace win32; + +static LogWriter vlog("Legacy"); + + +void LegacyPage::LoadPrefs() + { + // VNC 3.3.3R3 Preferences Algorithm, as described by vncProperties.cpp + // - Load user-specific settings, based on logged-on user name, + // from HKLM/Software/ORL/WinVNC3/. If they don't exist, + // try again with username "Default". + // - Load system-wide settings from HKLM/Software/ORL/WinVNC3. + // - If AllowProperties is non-zero then load the user's own + // settings from HKCU/Software/ORL/WinVNC3. + + // Get the name of the current user + TCharArray username; + try { + UserName name; + username.buf = name.takeBuf(); + } catch (rdr::SystemException& e) { + if (e.err != ERROR_NOT_LOGGED_ON) + throw; + } + + // Open and read the WinVNC3 registry key + allowProperties = true; + RegKey winvnc3; + try { + winvnc3.openKey(HKEY_LOCAL_MACHINE, _T("Software\\ORL\\WinVNC3")); + int debugMode = winvnc3.getInt(_T("DebugMode"), 0); + const char* debugTarget = 0; + if (debugMode & 2) debugTarget = "file"; + if (debugMode & 4) debugTarget = "stderr"; + if (debugTarget) { + char logSetting[32]; + sprintf(logSetting, "*:%s:%d", debugTarget, winvnc3.getInt(_T("DebugLevel"), 0)); + regKey.setString(_T("Log"), TStr(logSetting)); + } + + TCharArray authHosts; + authHosts.buf = winvnc3.getString(_T("AuthHosts"), 0); + if (authHosts.buf) { + CharArray newHosts; + newHosts.buf = strDup(""); + + // Reformat AuthHosts to Hosts. Wish I'd left the format the same. :( :( :( + try { + CharArray tmp = strDup(authHosts.buf); + while (tmp.buf) { + + // Split the AuthHosts string into patterns to match + CharArray first; + rfb::strSplit(tmp.buf, ':', &first.buf, &tmp.buf); + if (strlen(first.buf)) { + int bits = 0; + CharArray pattern(1+4*4+4); + pattern.buf[0] = first.buf[0]; + pattern.buf[1] = 0; + + // Split the pattern into IP address parts and process + rfb::CharArray address; + address.buf = rfb::strDup(&first.buf[1]); + while (address.buf) { + rfb::CharArray part; + rfb::strSplit(address.buf, '.', &part.buf, &address.buf); + if (bits) + strcat(pattern.buf, "."); + if (strlen(part.buf) > 3) + throw rdr::Exception("Invalid IP address part"); + if (strlen(part.buf) > 0) { + strcat(pattern.buf, part.buf); + bits += 8; + } + } + + // Pad out the address specification if required + int addrBits = bits; + while (addrBits < 32) { + if (addrBits) strcat(pattern.buf, "."); + strcat(pattern.buf, "0"); + addrBits += 8; + } + + // Append the number of bits to match + char buf[4]; + sprintf(buf, "/%d", bits); + strcat(pattern.buf, buf); + + // Append this pattern to the Hosts value + int length = strlen(newHosts.buf) + strlen(pattern.buf) + 2; + CharArray tmpHosts(length); + strcpy(tmpHosts.buf, pattern.buf); + if (strlen(newHosts.buf)) { + strcat(tmpHosts.buf, ","); + strcat(tmpHosts.buf, newHosts.buf); + } + delete [] newHosts.buf; + newHosts.buf = tmpHosts.takeBuf(); + } + } + + // Finally, save the Hosts value + regKey.setString(_T("Hosts"), TStr(newHosts.buf)); + } catch (rdr::Exception) { + MsgBox(0, _T("Unable to convert AuthHosts setting to Hosts format."), + MB_ICONWARNING | MB_OK); + } + } else { + regKey.setString(_T("Hosts"), _T("+")); + } + + regKey.setBool(_T("LocalHost"), winvnc3.getBool(_T("LoopbackOnly"), false)); + // *** check AllowLoopback? + + if (winvnc3.getBool(_T("AuthRequired"), true)) + regKey.setString(_T("SecurityTypes"), _T("VncAuth")); + else + regKey.setString(_T("SecurityTypes"), _T("None")); + + int connectPriority = winvnc3.getInt(_T("ConnectPriority"), 0); + regKey.setBool(_T("DisconnectClients"), connectPriority == 0); + regKey.setBool(_T("AlwaysShared"), connectPriority == 1); + regKey.setBool(_T("NeverShared"), connectPriority == 2); + + } catch(rdr::Exception) { + } + + // Open the local, default-user settings + allowProperties = true; + try { + RegKey userKey; + userKey.openKey(winvnc3, _T("Default")); + vlog.info("loading Default prefs"); + LoadUserPrefs(userKey); + } catch(rdr::Exception& e) { + vlog.error("error reading Default settings:%s", e.str()); + } + + // Open the local, user-specific settings + if (userSettings && username.buf) { + try { + RegKey userKey; + userKey.openKey(winvnc3, username.buf); + vlog.info("loading local User prefs"); + LoadUserPrefs(userKey); + } catch(rdr::Exception& e) { + vlog.error("error reading local User settings:%s", e.str()); + } + + // Open the user's own settings + if (allowProperties) { + try { + RegKey userKey; + userKey.openKey(HKEY_CURRENT_USER, _T("Software\\ORL\\WinVNC3")); + vlog.info("loading global User prefs"); + LoadUserPrefs(userKey); + } catch(rdr::Exception& e) { + vlog.error("error reading global User settings:%s", e.str()); + } + } + } + + // Disable the Options menu item if appropriate + regKey.setBool(_T("DisableOptions"), !allowProperties); + } + + void LegacyPage::LoadUserPrefs(const RegKey& key) + { + if (key.getBool(_T("HTTPConnect"), true)) + regKey.setInt(_T("HTTPPortNumber"), key.getInt(_T("PortNumber"), 5900)-100); + else + regKey.setInt(_T("HTTPPortNumber"), 0); + regKey.setInt(_T("PortNumber"), key.getBool(_T("SocketConnect")) ? key.getInt(_T("PortNumber"), 5900) : 0); + if (key.getBool(_T("AutoPortSelect"), false)) { + MsgBox(0, _T("The AutoPortSelect setting is not supported by this release.") + _T("The port number will default to 5900."), + MB_ICONWARNING | MB_OK); + regKey.setInt(_T("PortNumber"), 5900); + } + regKey.setInt(_T("IdleTimeout"), key.getInt(_T("IdleTimeout"), 0)); + + regKey.setBool(_T("RemoveWallpaper"), key.getBool(_T("RemoveWallpaper"))); + regKey.setBool(_T("RemovePattern"), key.getBool(_T("RemoveWallpaper"))); + regKey.setBool(_T("DisableEffects"), key.getBool(_T("RemoveWallpaper"))); + + if (key.getInt(_T("QuerySetting"), 2) != 2) { + regKey.setBool(_T("QueryConnect"), key.getInt(_T("QuerySetting")) > 2); + MsgBox(0, _T("The QuerySetting option has been replaced by QueryConnect.") + _T("Please see the documentation for details of the QueryConnect option."), + MB_ICONWARNING | MB_OK); + } + regKey.setInt(_T("QueryTimeout"), key.getInt(_T("QueryTimeout"), 10)); + + ObfuscatedPasswd passwd; + key.getBinary(_T("Password"), (void**)&passwd.buf, &passwd.length, 0, 0); + regKey.setBinary(_T("Password"), passwd.buf, passwd.length); + + bool enableInputs = key.getBool(_T("InputsEnabled"), true); + regKey.setBool(_T("AcceptKeyEvents"), enableInputs); + regKey.setBool(_T("AcceptPointerEvents"), enableInputs); + regKey.setBool(_T("AcceptCutText"), enableInputs); + regKey.setBool(_T("SendCutText"), enableInputs); + + switch (key.getInt(_T("LockSetting"), 0)) { + case 0: regKey.setString(_T("DisconnectAction"), _T("None")); break; + case 1: regKey.setString(_T("DisconnectAction"), _T("Lock")); break; + case 2: regKey.setString(_T("DisconnectAction"), _T("Logoff")); break; + }; + + regKey.setBool(_T("DisableLocalInputs"), key.getBool(_T("LocalInputsDisabled"), false)); + + // *** ignore polling preferences + // PollUnderCursor, PollForeground, OnlyPollConsole, OnlyPollOnEvent + regKey.setBool(_T("UseHooks"), !key.getBool(_T("PollFullScreen"), false)); + + if (key.isValue(_T("AllowShutdown"))) + MsgBox(0, _T("The AllowShutdown option is not supported by this release."), MB_ICONWARNING | MB_OK); + if (key.isValue(_T("AllowEditClients"))) + MsgBox(0, _T("The AllowEditClients option is not supported by this release."), MB_ICONWARNING | MB_OK); + + allowProperties = key.getBool(_T("AllowProperties"), allowProperties); + } diff --git a/PluginSource/VS2017/Realvnc/win/vncconfig/Legacy.h b/PluginSource/VS2017/Realvnc/win/vncconfig/Legacy.h new file mode 100644 index 0000000..9dc43fc --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/vncconfig/Legacy.h @@ -0,0 +1,85 @@ +/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved. + * + * This 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 software 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 software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#ifndef WINVNCCONF_LEGACY +#define WINVNCCONF_LEGACY + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace rfb { + + namespace win32 { + + class LegacyPage : public PropSheetPage { + public: + LegacyPage(const RegKey& rk, bool userSettings_) + : PropSheetPage(GetModuleHandle(0), MAKEINTRESOURCE(IDD_LEGACY)), regKey(rk), userSettings(userSettings_) {} + void initDialog() { + setItemChecked(IDC_PROTOCOL_3_3, rfb::Server::protocol3_3); + } + bool onCommand(int id, int cmd) { + switch (id) { + case IDC_LEGACY_IMPORT: + { + DWORD result = MsgBox(0, + _T("Importing your legacy VNC 3.3 settings will overwrite your existing settings.\n") + _T("Are you sure you wish to continue?"), + MB_ICONWARNING | MB_YESNO); + if (result == IDYES) { + LoadPrefs(); + MsgBox(0, _T("Imported VNC 3.3 settings successfully."), + MB_ICONINFORMATION | MB_OK); + + // Sleep to allow RegConfig thread to reload settings + Sleep(1000); + propSheet->reInitPages(); + } + } + return true; + case IDC_PROTOCOL_3_3: + setChanged(isItemChecked(IDC_PROTOCOL_3_3) != rfb::Server::protocol3_3); + return false; + }; + return false; + } + bool onOk() { + regKey.setBool(_T("Protocol3.3"), isItemChecked(IDC_PROTOCOL_3_3)); + return true; + } + + void LoadPrefs(); + void LoadUserPrefs(const RegKey& key); + + protected: + bool allowProperties; + RegKey regKey; + bool userSettings; + }; + + }; + +}; + +#endif \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/win/vncconfig/PasswordDialog.cxx b/PluginSource/VS2017/Realvnc/win/vncconfig/PasswordDialog.cxx new file mode 100644 index 0000000..d26d86f --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/vncconfig/PasswordDialog.cxx @@ -0,0 +1,52 @@ +/* Copyright (C) 2004-2005 RealVNC Ltd. All Rights Reserved. + * + * This 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 software 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 software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include +#include +#include +#include + +using namespace rfb; +using namespace win32; + +PasswordDialog::PasswordDialog(const RegKey& rk, bool registryInsecure_) + : Dialog(GetModuleHandle(0)), regKey(rk), registryInsecure(registryInsecure_) { +} + +bool PasswordDialog::showDialog(HWND owner) { + return Dialog::showDialog(MAKEINTRESOURCE(IDD_AUTH_VNC_PASSWD), owner); +} + +bool PasswordDialog::onOk() { + TPlainPasswd password1(getItemString(IDC_PASSWORD1)); + TPlainPasswd password2(getItemString(IDC_PASSWORD2)); + if (_tcscmp(password1.buf, password2.buf) != 0) { + MsgBox(0, _T("The supplied passwords do not match"), + MB_ICONEXCLAMATION | MB_OK); + return false; + } + if (registryInsecure && + (MsgBox(0, _T("Please note that your password cannot be stored securely on this system. ") + _T("Are you sure you wish to continue?"), + MB_YESNO | MB_ICONWARNING) == IDNO)) + return false; + PlainPasswd password(strDup(password1.buf)); + ObfuscatedPasswd obfPwd(password); + regKey.setBinary(_T("Password"), obfPwd.buf, obfPwd.length); + return true; +} diff --git a/PluginSource/VS2017/Realvnc/win/vncconfig/PasswordDialog.h b/PluginSource/VS2017/Realvnc/win/vncconfig/PasswordDialog.h new file mode 100644 index 0000000..dd23f8e --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/vncconfig/PasswordDialog.h @@ -0,0 +1,40 @@ +/* Copyright (C) 2004-2005 RealVNC Ltd. All Rights Reserved. + * + * This 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 software 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 software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ +#ifndef WINVNCCONF_PASSWORD_DIALOG +#define WINVNCCONF_PASSWORD_DIALOG + +#include +#include + +namespace rfb { + namespace win32 { + + class PasswordDialog : public Dialog { + public: + PasswordDialog(const RegKey& rk, bool registryInsecure_); + bool showDialog(HWND owner=0); + bool onOk(); + protected: + const RegKey& regKey; + bool registryInsecure; + }; + + }; +}; + +#endif \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/win/vncconfig/Sharing.h b/PluginSource/VS2017/Realvnc/win/vncconfig/Sharing.h new file mode 100644 index 0000000..2b4d4dd --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/vncconfig/Sharing.h @@ -0,0 +1,59 @@ +/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved. + * + * This 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 software 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 software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ +#ifndef WINVNCCONF_SHARING +#define WINVNCCONF_SHARING + +#include +#include +#include + +namespace rfb { + + namespace win32 { + + class SharingPage : public PropSheetPage { + public: + SharingPage(const RegKey& rk) + : PropSheetPage(GetModuleHandle(0), MAKEINTRESOURCE(IDD_SHARING)), regKey(rk) {} + void initDialog() { + setItemChecked(IDC_DISCONNECT_CLIENTS, rfb::Server::disconnectClients); + setItemChecked(IDC_SHARE_NEVER, rfb::Server::neverShared); + setItemChecked(IDC_SHARE_ALWAYS, rfb::Server::alwaysShared); + setItemChecked(IDC_SHARE_CLIENT, !(rfb::Server::neverShared || rfb::Server::alwaysShared)); + } + bool onCommand(int id, int cmd) { + setChanged((isItemChecked(IDC_DISCONNECT_CLIENTS) != rfb::Server::disconnectClients) || + (isItemChecked(IDC_SHARE_NEVER) != rfb::Server::neverShared) || + (isItemChecked(IDC_SHARE_ALWAYS) != rfb::Server::alwaysShared)); + return true; + } + bool onOk() { + regKey.setBool(_T("DisconnectClients"), isItemChecked(IDC_DISCONNECT_CLIENTS)); + regKey.setBool(_T("AlwaysShared"), isItemChecked(IDC_SHARE_ALWAYS)); + regKey.setBool(_T("NeverShared"), isItemChecked(IDC_SHARE_NEVER)); + return true; + } + protected: + RegKey regKey; + }; + + }; + +}; + +#endif \ No newline at end of file diff --git a/PluginSource/VS2017/Realvnc/win/vncconfig/resource.h b/PluginSource/VS2017/Realvnc/win/vncconfig/resource.h new file mode 100644 index 0000000..ca1fbf5 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/vncconfig/resource.h @@ -0,0 +1,102 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by vncconfig.rc +// +#define IDR_MANIFEST 1 +#define IDI_ICON 101 +#define IDD_DIALOG1 102 +#define IDD_DIALOG2 103 +#define IDD_SECURITY 104 +#define IDD_AUTHENTICATION 104 +#define IDD_CONNECTIONS 105 +#define IDD_HOOKING 106 +#define IDD_VNC_PASSWD 107 +#define IDD_AUTH_VNC_PASSWD 107 +#define IDD_LEGACY 108 +#define IDD_CONN_HOST 109 +#define IDD_SHARING 110 +#define IDD_INPUTS 111 +#define IDR_TRAY 112 +#define IDD_ABOUT 113 +#define IDI_CONNECTED 115 +#define IDD_DESKTOP 116 +#define IDC_EDIT1 1000 +#define IDC_PORT 1000 +#define IDC_PASSWORD1 1000 +#define IDC_HOST_PATTERN 1000 +#define IDC_AUTH_NONE 1002 +#define IDC_AUTH_VNC 1003 +#define IDC_AUTH_VNC_PASSWD 1009 +#define IDC_USEHOOKS 1011 +#define IDC_POLLCONSOLES 1012 +#define IDC_COMPAREFB 1013 +#define IDC_IDLE_TIMEOUT 1015 +#define IDC_HOSTS 1016 +#define IDC_HOST_ADD 1017 +#define IDC_HOST_REMOVE 1018 +#define IDC_HOST_UP 1019 +#define IDC_BUTTON4 1020 +#define IDC_HOST_DOWN 1020 +#define IDC_AUTH_INPUTONLY_PASSWD 1020 +#define IDC_HOST_EDIT 1021 +#define IDC_PASSWORD2 1022 +#define IDC_LEGACY_IMPORT 1023 +#define IDC_ALLOW 1024 +#define IDC_DENY 1025 +#define IDC_SHARE_ALWAYS 1030 +#define IDC_SHARE_NEVER 1031 +#define IDC_SHARE_CLIENT 1032 +#define IDC_DISCONNECT_CLIENTS 1033 +#define IDC_ACCEPT_KEYS 1034 +#define IDC_ACCEPT_PTR 1035 +#define IDC_ACCEPT_CUTTEXT 1036 +#define IDC_SEND_CUTTEXT 1037 +#define IDC_PROTOCOL_3_3 1038 +#define IDC_DESCRIPTION 1039 +#define IDC_BUILDTIME 1040 +#define IDC_VERSION 1041 +#define IDC_COPYRIGHT 1042 +#define IDC_HTTP_ENABLE 1043 +#define IDC_HTTP_PORT 1044 +#define IDC_BL_THRESHOLD 1046 +#define IDC_BL_TIMEOUT 1047 +#define IDC_AFFECT_SCREENSAVER 1048 +#define IDC_LOCALHOST 1049 +#define IDC_DISABLE_LOCAL_INPUTS 1050 +#define IDC_AUTH_NT 1051 +#define IDC_AUTH_NT_CONF 1052 +#define IDC_AUTH_RA2_CONF 1053 +#define IDC_QUERY_CONNECT 1055 +#define IDC_DISCONNECT_NONE 1056 +#define IDC_DISCONNECT_LOCK 1057 +#define IDC_DISCONNECT_LOGOFF 1058 +#define IDC_REMOVE_WALLPAPER 1059 +#define IDC_REMOVE_PATTERN 1060 +#define IDC_DISABLE_EFFECTS 1061 +#define IDC_CAPTUREBLT 1062 +#define IDC_ENCRYPTION 1063 +#define IDC_QUERY 1064 +#define IDC_USEPOLLING 1066 +#define IDC_USEDRIVER 1068 +#define IDC_QUERY_LOGGED_ON 1069 +#define IDC_AUTH_ADMIN_PASSWD 1076 +#define IDC_AUTH_VIEWONLY_PASSWD 1077 +#define IDC_AUTH_ADMIN_ENABLE 1078 +#define IDC_AUTH_VIEWONLY_ENABLE 1079 +#define IDC_AUTH_INPUTONLY_ENABLE 1080 +#define IDC_AUTH_VNC_EXT 1081 +#define IDC_RFB_ENABLE 1082 +#define ID_OPTIONS 40001 +#define ID_CLOSE 40002 +#define ID_ABOUT 40003 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 117 +#define _APS_NEXT_COMMAND_VALUE 40004 +#define _APS_NEXT_CONTROL_VALUE 1083 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/PluginSource/VS2017/Realvnc/win/vncconfig/vncconfig.cxx b/PluginSource/VS2017/Realvnc/win/vncconfig/vncconfig.cxx new file mode 100644 index 0000000..5df3a37 --- /dev/null +++ b/PluginSource/VS2017/Realvnc/win/vncconfig/vncconfig.cxx @@ -0,0 +1,191 @@ +/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved. + * + * This 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 software 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 software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#include +#include +#include +#ifdef WIN32 +#define strcasecmp _stricmp +#endif + +#include "resource.h" +#include +#include +#include +#include +#include +#include + +using namespace rfb; +using namespace rfb::win32; + +static LogWriter vlog("main"); + + +#include +#include +#include +#include +#include +#include +#include + + +TStr rfb::win32::AppName("VNC Config"); + + +#ifdef _DEBUG +BoolParameter captureDialogs("CaptureDialogs", "", false); +#endif + +HKEY configKey = HKEY_CURRENT_USER; + + +void +processParams(int argc, char* argv[]) { + for (int i=1; i=, or - + if (Configuration::setParam(argv[i], true)) + continue; + // Try to process -