diff --git a/.gitignore b/.gitignore
index a5e17c4..fb05d68 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,9 @@
*.exe
*.pdb
*.ilk
+*.vcxproj.user
+
+Debug/
+Release/
+
+/.vs/
diff --git a/README.md b/README.md
index e9a2f62..894abd8 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ Rather than being a full reimplementation of the DirectPlay specification, Direc
## Building
-All programs and DLLs in the distribution can be built by running `build.bat` from the x86 Visual Studio command prompt.
+Use the `directplay-lite.sln` solution in Visual Studio 2017 or later.
## Using
diff --git a/build.bat b/build.bat
deleted file mode 100644
index 47b1d44..0000000
--- a/build.bat
+++ /dev/null
@@ -1,176 +0,0 @@
-@ECHO OFF
-
-setlocal EnableDelayedExpansion
-
-SET DEBUG=
-REM SET DEBUG=/debug
-
-REM .obj files to be compiled from .cc source files
-SET CC_OBJS=^
- googletest/src/gtest-all.obj^
- googletest/src/gtest_main.obj
-
-REM .obj files to be compiled from .cpp source files
-SET CPP_OBJS=^
- hookdll/hookdll.obj^
- src/AsyncHandleAllocator.obj^
- src/COMAPIException.obj^
- src/DirectPlay8Address.obj^
- src/DirectPlay8Peer.obj^
- src/dpnet.obj^
- src/EventObject.obj^
- src/HandleHandlingPool.obj^
- src/HostEnumerator.obj^
- src/Log.obj^
- src/network.obj^
- src/packet.obj^
- src/SendQueue.obj^
- tests/DirectPlay8Address.obj^
- tests/DirectPlay8Peer.obj^
- tests/HandleHandlingPool.obj^
- tests/PacketDeserialiser.obj^
- tests/PacketSerialiser.obj^
- tests/SendQueue.obj^
- tests/soak-peer-client.obj^
- tests/soak-peer-server.obj
-
-REM .obj files to be compiled from .c source files
-SET C_OBJS=^
- minhook/src/buffer.obj^
- minhook/src/hde/hde32.obj^
- minhook/src/hde/hde64.obj^
- minhook/src/hook.obj^
- minhook/src/trampoline.obj
-
-REM .obj files which will be linked into all-tests.exe
-SET TEST_OBJS=^
- googletest/src/gtest-all.obj^
- googletest/src/gtest_main.obj^
- src/AsyncHandleAllocator.obj^
- src/COMAPIException.obj^
- src/DirectPlay8Address.obj^
- src/DirectPlay8Peer.obj^
- src/EventObject.obj^
- src/HandleHandlingPool.obj^
- src/HostEnumerator.obj^
- src/Log.obj^
- src/network.obj^
- src/packet.obj^
- src/SendQueue.obj^
- tests/DirectPlay8Address.obj^
- tests/DirectPlay8Peer.obj^
- tests/HandleHandlingPool.obj^
- tests/PacketDeserialiser.obj^
- tests/PacketSerialiser.obj^
- tests/SendQueue.obj
-
-SET TEST_LIBS=ws2_32.lib dxguid.lib ole32.lib iphlpapi.lib
-
-SET HOOK_DLLS=ddraw dsound
-
-SET HOOK_OBJS=^
- hookdll/hookdll.obj^
- minhook/src/buffer.obj^
- minhook/src/hde/hde32.obj^
- minhook/src/hde/hde64.obj^
- minhook/src/hook.obj^
- minhook/src/trampoline.obj^
- src/AsyncHandleAllocator.obj^
- src/COMAPIException.obj^
- src/DirectPlay8Address.obj^
- src/DirectPlay8Peer.obj^
- src/EventObject.obj^
- src/HandleHandlingPool.obj^
- src/HostEnumerator.obj^
- src/Log.obj^
- src/network.obj^
- src/packet.obj^
- src/SendQueue.obj
-
-SET HOOK_LIBS=ws2_32.lib dxguid.lib ole32.lib iphlpapi.lib
-
-SET DPNET_OBJS=^
- src/AsyncHandleAllocator.obj^
- src/COMAPIException.obj^
- src/DirectPlay8Address.obj^
- src/DirectPlay8Peer.obj^
- src/dpnet.obj^
- src/EventObject.obj^
- src/HandleHandlingPool.obj^
- src/HostEnumerator.obj^
- src/Log.obj^
- src/network.obj^
- src/packet.obj^
- src/SendQueue.obj
-
-SET DPNET_LIBS=ws2_32.lib dxguid.lib ole32.lib iphlpapi.lib
-
-SET CFLAGS=^
- /Zi^
- /EHsc^
- /DNOMINMAX^
- /I"include"^
- /I"minhook/include"^
- /I"googletest/include"^
- /I"googletest"
-
-FOR %%o IN (%CC_OBJS%) DO (
- set obj=%%o
- echo ==
- echo == cl /c %CFLAGS% /Fo%%o !obj:~0,-4!.cc
- echo ==
- cl /c %CFLAGS% /Fo%%o !obj:~0,-4!.cc || exit /b
- echo:
-)
-
-FOR %%o IN (%CPP_OBJS%) DO (
- set obj=%%o
- echo ==
- echo == cl /c %CFLAGS% /Fo%%o !obj:~0,-4!.cpp
- echo ==
- cl /c %CFLAGS% /Fo%%o !obj:~0,-4!.cpp || exit /b
- echo:
-)
-
-FOR %%o IN (%C_OBJS%) DO (
- set obj=%%o
- echo ==
- echo == cl /c %CFLAGS% /Fo%%o !obj:~0,-4!.c
- echo ==
- cl /c %CFLAGS% /Fo%%o !obj:~0,-4!.c || exit /b
- echo:
-)
-
-echo ==
-echo == link %DEBUG% /out:tests/all-tests.exe %TEST_OBJS% %TEST_LIBS%
-echo ==
- link %DEBUG% /out:tests/all-tests.exe %TEST_OBJS% %TEST_LIBS% || exit /b
-echo:
-
-echo ==
-echo == link %DEBUG% /out:tests/soak-peer-client.exe tests/soak-peer-client.obj dxguid.lib ole32.lib
-echo ==
- link %DEBUG% /out:tests/soak-peer-client.exe tests/soak-peer-client.obj dxguid.lib ole32.lib || exit /b
-echo:
-
-echo ==
-echo == link %DEBUG% /out:tests/soak-peer-server.exe tests/soak-peer-server.obj dxguid.lib ole32.lib
-echo ==
- link %DEBUG% /out:tests/soak-peer-server.exe tests/soak-peer-server.obj dxguid.lib ole32.lib || exit /b
-echo:
-
-FOR %%o IN (%HOOK_DLLS%) DO (
- echo ==
- echo == ml /c /Cx /coff /Fo hookdll/%%o.obj hookdll/%%o.asm
- echo ==
- ml /c /Cx /coff /Fo hookdll/%%o.obj hookdll/%%o.asm || exit /b
- echo:
-
- echo ==
- echo == link %DEBUG% /dll /out:hookdll/%%o.dll /def:hookdll/%%o.def hookdll/%%o.obj %HOOK_OBJS% %HOOK_LIBS%
- echo ==
- link %DEBUG% /dll /out:hookdll/%%o.dll /def:hookdll/%%o.def hookdll/%%o.obj %HOOK_OBJS% %HOOK_LIBS% || exit /b
- echo:
-)
-
-link %DEBUG% /dll /out:dpnet.dll /def:src/dpnet.def %DPNET_OBJS% %DPNET_LIBS% || exit /b
diff --git a/directplay-lite.props b/directplay-lite.props
new file mode 100644
index 0000000..a4e3f4d
--- /dev/null
+++ b/directplay-lite.props
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+ NOMINMAX;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
+
+
+
+
\ No newline at end of file
diff --git a/directplay-lite.sln b/directplay-lite.sln
new file mode 100644
index 0000000..1d96aec
--- /dev/null
+++ b/directplay-lite.sln
@@ -0,0 +1,55 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.28307.102
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "directplay-lite", "directplay-lite\directplay-lite.vcxproj", "{6243E219-3927-43F6-9B5F-E34164900687}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dpnet", "dpnet\dpnet.vcxproj", "{AE3053CB-1C4C-427E-B2B9-902CCB5DA4BA}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ddraw", "hookdll\ddraw\ddraw.vcxproj", "{55AAE098-DAC0-47A7-95EE-E9EAAB5742DD}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minhook", "minhook\minhook.vcxproj", "{8F39F2E4-0EF8-40F7-AD96-F76F2F200B3F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsound", "hookdll\dsound\dsound.vcxproj", "{DCDFDDD5-4D4B-4A62-BC02-079A54252B2A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tests", "tests\tests.vcxproj", "{7DFB7CFB-C59A-44D8-A701-CA14D153EBF2}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x86 = Debug|x86
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {6243E219-3927-43F6-9B5F-E34164900687}.Debug|x86.ActiveCfg = Debug|Win32
+ {6243E219-3927-43F6-9B5F-E34164900687}.Debug|x86.Build.0 = Debug|Win32
+ {6243E219-3927-43F6-9B5F-E34164900687}.Release|x86.ActiveCfg = Release|Win32
+ {6243E219-3927-43F6-9B5F-E34164900687}.Release|x86.Build.0 = Release|Win32
+ {AE3053CB-1C4C-427E-B2B9-902CCB5DA4BA}.Debug|x86.ActiveCfg = Debug|Win32
+ {AE3053CB-1C4C-427E-B2B9-902CCB5DA4BA}.Debug|x86.Build.0 = Debug|Win32
+ {AE3053CB-1C4C-427E-B2B9-902CCB5DA4BA}.Release|x86.ActiveCfg = Release|Win32
+ {AE3053CB-1C4C-427E-B2B9-902CCB5DA4BA}.Release|x86.Build.0 = Release|Win32
+ {55AAE098-DAC0-47A7-95EE-E9EAAB5742DD}.Debug|x86.ActiveCfg = Debug|Win32
+ {55AAE098-DAC0-47A7-95EE-E9EAAB5742DD}.Debug|x86.Build.0 = Debug|Win32
+ {55AAE098-DAC0-47A7-95EE-E9EAAB5742DD}.Release|x86.ActiveCfg = Release|Win32
+ {55AAE098-DAC0-47A7-95EE-E9EAAB5742DD}.Release|x86.Build.0 = Release|Win32
+ {8F39F2E4-0EF8-40F7-AD96-F76F2F200B3F}.Debug|x86.ActiveCfg = Debug|Win32
+ {8F39F2E4-0EF8-40F7-AD96-F76F2F200B3F}.Debug|x86.Build.0 = Debug|Win32
+ {8F39F2E4-0EF8-40F7-AD96-F76F2F200B3F}.Release|x86.ActiveCfg = Release|Win32
+ {8F39F2E4-0EF8-40F7-AD96-F76F2F200B3F}.Release|x86.Build.0 = Release|Win32
+ {DCDFDDD5-4D4B-4A62-BC02-079A54252B2A}.Debug|x86.ActiveCfg = Debug|Win32
+ {DCDFDDD5-4D4B-4A62-BC02-079A54252B2A}.Debug|x86.Build.0 = Debug|Win32
+ {DCDFDDD5-4D4B-4A62-BC02-079A54252B2A}.Release|x86.ActiveCfg = Release|Win32
+ {DCDFDDD5-4D4B-4A62-BC02-079A54252B2A}.Release|x86.Build.0 = Release|Win32
+ {7DFB7CFB-C59A-44D8-A701-CA14D153EBF2}.Debug|x86.ActiveCfg = Debug|Win32
+ {7DFB7CFB-C59A-44D8-A701-CA14D153EBF2}.Debug|x86.Build.0 = Debug|Win32
+ {7DFB7CFB-C59A-44D8-A701-CA14D153EBF2}.Release|x86.ActiveCfg = Release|Win32
+ {7DFB7CFB-C59A-44D8-A701-CA14D153EBF2}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {1609DD77-56F8-463D-BDBD-C08334701561}
+ EndGlobalSection
+EndGlobal
diff --git a/directplay-lite/directplay-lite.vcxproj b/directplay-lite/directplay-lite.vcxproj
new file mode 100644
index 0000000..e343ed8
--- /dev/null
+++ b/directplay-lite/directplay-lite.vcxproj
@@ -0,0 +1,93 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+ 15.0
+ {6243E219-3927-43F6-9B5F-E34164900687}
+ dpnetlib
+ 10.0.17763.0
+
+
+
+ StaticLibrary
+ true
+ v141
+ MultiByte
+
+
+ StaticLibrary
+ false
+ v141
+ true
+ MultiByte
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(SolutionDir)include;$(IncludePath)
+
+
+ $(SolutionDir)include;$(IncludePath)
+
+
+
+ Level3
+ Disabled
+ true
+ true
+ WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
+
+
+
+
+ Level3
+ MaxSpeed
+ true
+ true
+ true
+ true
+ WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
+
+
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/directplay-lite/directplay-lite.vcxproj.filters b/directplay-lite/directplay-lite.vcxproj.filters
new file mode 100644
index 0000000..8776262
--- /dev/null
+++ b/directplay-lite/directplay-lite.vcxproj.filters
@@ -0,0 +1,52 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+
\ No newline at end of file
diff --git a/dpnet/dpnet.vcxproj b/dpnet/dpnet.vcxproj
new file mode 100644
index 0000000..ca5af06
--- /dev/null
+++ b/dpnet/dpnet.vcxproj
@@ -0,0 +1,109 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+
+
+
+
+ {6243e219-3927-43f6-9b5f-e34164900687}
+
+
+
+
+
+
+ 15.0
+ {AE3053CB-1C4C-427E-B2B9-902CCB5DA4BA}
+ Win32Proj
+ dpnetdll
+ 10.0.17763.0
+
+
+
+ DynamicLibrary
+ true
+ v141
+ Unicode
+
+
+ DynamicLibrary
+ false
+ v141
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(SolutionDir)include;$(IncludePath)
+ dpnet
+
+
+ false
+ $(SolutionDir)include;$(IncludePath)
+ dpnet
+
+
+
+ NotUsing
+ Level3
+ Disabled
+ true
+ WIN32;_DEBUG;DPNETDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ dxguid.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
+ $(SolutionDir)src\dpnet.def
+
+
+
+
+ NotUsing
+ Level3
+ MaxSpeed
+ true
+ true
+ true
+ WIN32;NDEBUG;DPNETDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+ dxguid.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
+ $(SolutionDir)src\dpnet.def
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dpnet/dpnet.vcxproj.filters b/dpnet/dpnet.vcxproj.filters
new file mode 100644
index 0000000..b88a109
--- /dev/null
+++ b/dpnet/dpnet.vcxproj.filters
@@ -0,0 +1,27 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+
+
+ Source Files
+
+
+
\ No newline at end of file
diff --git a/hookdll/ddraw.asm b/hookdll/ddraw/ddraw.asm
similarity index 100%
rename from hookdll/ddraw.asm
rename to hookdll/ddraw/ddraw.asm
diff --git a/hookdll/ddraw.def b/hookdll/ddraw/ddraw.def
similarity index 100%
rename from hookdll/ddraw.def
rename to hookdll/ddraw/ddraw.def
diff --git a/hookdll/ddraw/ddraw.vcxproj b/hookdll/ddraw/ddraw.vcxproj
new file mode 100644
index 0000000..66b98e0
--- /dev/null
+++ b/hookdll/ddraw/ddraw.vcxproj
@@ -0,0 +1,127 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+
+
+
+
+ {6243e219-3927-43f6-9b5f-e34164900687}
+
+
+ {8f39f2e4-0ef8-40f7-ad96-f76f2f200b3f}
+
+
+
+
+ Document
+ ml /c /Cx /coff /Fo$(OutDir)%(Filename).obj %(FullPath)
+ $(OutDir)%(Filename).obj
+ ml /c /Cx /coff /Fo$(OutDir)%(Filename).obj %(FullPath)
+ $(OutDir)%(Filename).obj
+ true
+ true
+
+
+
+
+
+
+ 15.0
+ {55AAE098-DAC0-47A7-95EE-E9EAAB5742DD}
+ Win32Proj
+ ddraw
+ 10.0.17763.0
+
+
+
+ DynamicLibrary
+ true
+ v141
+ MultiByte
+
+
+ DynamicLibrary
+ false
+ v141
+ true
+ MultiByte
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(SolutionDir)include;$(SolutionDir)minhook\include;$(IncludePath)
+
+
+ false
+ $(SolutionDir)include;$(SolutionDir)minhook\include;$(IncludePath)
+
+
+
+ NotUsing
+ Level3
+ Disabled
+ true
+ WIN32;_DEBUG;DDRAW_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ dxguid.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
+ $(ProjectDir)$(MSBuildProjectName).def
+
+
+ true
+
+
+
+
+ NotUsing
+ Level3
+ MaxSpeed
+ true
+ true
+ true
+ WIN32;NDEBUG;DDRAW_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+ dxguid.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
+ $(ProjectDir)$(MSBuildProjectName).def
+
+
+
+ true
+
+
+
+
+
+
\ No newline at end of file
diff --git a/hookdll/ddraw/ddraw.vcxproj.filters b/hookdll/ddraw/ddraw.vcxproj.filters
new file mode 100644
index 0000000..c24f0a4
--- /dev/null
+++ b/hookdll/ddraw/ddraw.vcxproj.filters
@@ -0,0 +1,32 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+
+
+ Source Files
+
+
+
+
+ Source Files
+
+
+
\ No newline at end of file
diff --git a/hookdll/dsound.asm b/hookdll/dsound/dsound.asm
similarity index 100%
rename from hookdll/dsound.asm
rename to hookdll/dsound/dsound.asm
diff --git a/hookdll/dsound.def b/hookdll/dsound/dsound.def
similarity index 100%
rename from hookdll/dsound.def
rename to hookdll/dsound/dsound.def
diff --git a/hookdll/dsound/dsound.vcxproj b/hookdll/dsound/dsound.vcxproj
new file mode 100644
index 0000000..bba63eb
--- /dev/null
+++ b/hookdll/dsound/dsound.vcxproj
@@ -0,0 +1,121 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+
+
+
+
+ {6243e219-3927-43f6-9b5f-e34164900687}
+
+
+ {8f39f2e4-0ef8-40f7-ad96-f76f2f200b3f}
+
+
+
+
+ Document
+ ml /c /Cx /coff /Fo$(OutDir)%(Filename).obj %(FullPath)
+ $(OutDir)%(Filename).obj
+ ml /c /Cx /coff /Fo$(OutDir)%(Filename).obj %(FullPath)
+ $(OutDir)%(Filename).obj
+ true
+ true
+
+
+
+
+
+
+ 15.0
+ {DCDFDDD5-4D4B-4A62-BC02-079A54252B2A}
+ Win32Proj
+ dsound
+ 10.0.17763.0
+
+
+
+ DynamicLibrary
+ true
+ v141
+ MultiByte
+
+
+ DynamicLibrary
+ false
+ v141
+ true
+ MultiByte
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+ $(SolutionDir)include;$(SolutionDir)minhook\include;$(IncludePath)
+
+
+ true
+ $(SolutionDir)include;$(SolutionDir)minhook\include;$(IncludePath)
+
+
+
+ NotUsing
+ Level3
+ MaxSpeed
+ true
+ true
+ true
+ WIN32;NDEBUG;DSOUND_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+ dxguid.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
+ $(ProjectDir)$(MSBuildProjectName).def
+
+
+
+
+
+ NotUsing
+ Level3
+ Disabled
+ true
+ WIN32;_DEBUG;DSOUND_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ dxguid.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
+ $(ProjectDir)$(MSBuildProjectName).def
+
+
+
+
+
+
\ No newline at end of file
diff --git a/hookdll/dsound/dsound.vcxproj.filters b/hookdll/dsound/dsound.vcxproj.filters
new file mode 100644
index 0000000..13a9fb5
--- /dev/null
+++ b/hookdll/dsound/dsound.vcxproj.filters
@@ -0,0 +1,30 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+
\ No newline at end of file
diff --git a/minhook/minhook.vcxproj b/minhook/minhook.vcxproj
new file mode 100644
index 0000000..17e5efc
--- /dev/null
+++ b/minhook/minhook.vcxproj
@@ -0,0 +1,106 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 15.0
+ {8F39F2E4-0EF8-40F7-AD96-F76F2F200B3F}
+ Win32Proj
+ minhook
+ 10.0.17763.0
+
+
+
+ StaticLibrary
+ true
+ v141
+ Unicode
+
+
+ StaticLibrary
+ false
+ v141
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+
+ NotUsing
+ Level3
+ Disabled
+ true
+ WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+
+
+
+
+ NotUsing
+ Level3
+ MaxSpeed
+ true
+ true
+ true
+ WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ true
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
\ No newline at end of file
diff --git a/minhook/minhook.vcxproj.filters b/minhook/minhook.vcxproj.filters
new file mode 100644
index 0000000..1a8c6e5
--- /dev/null
+++ b/minhook/minhook.vcxproj.filters
@@ -0,0 +1,60 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+
\ No newline at end of file
diff --git a/src/DirectPlay8Peer.cpp b/src/DirectPlay8Peer.cpp
index 727615c..ffba20d 100644
--- a/src/DirectPlay8Peer.cpp
+++ b/src/DirectPlay8Peer.cpp
@@ -151,8 +151,8 @@ HRESULT DirectPlay8Peer::Initialize(PVOID CONST pvUserContext, CONST PFNDPNMESSA
HRESULT DirectPlay8Peer::EnumServiceProviders(CONST GUID* CONST pguidServiceProvider, CONST GUID* CONST pguidApplication, DPN_SERVICE_PROVIDER_INFO* CONST pSPInfoBuffer, DWORD* CONST pcbEnumData, DWORD* CONST pcReturned, CONST DWORD dwFlags)
{
- static const DPN_SERVICE_PROVIDER_INFO IP_INFO = { 0, CLSID_DP8SP_TCPIP, L"DirectPlay8 TCP/IP Service Provider", 0, 0 };
- static const DPN_SERVICE_PROVIDER_INFO IPX_INFO = { 0, CLSID_DP8SP_IPX, L"DirectPlay8 IPX Service Provider", 0, 0 };
+ static const DPN_SERVICE_PROVIDER_INFO IP_INFO = { 0, CLSID_DP8SP_TCPIP, (WCHAR*)(L"DirectPlay8 TCP/IP Service Provider"), 0, 0 };
+ static const DPN_SERVICE_PROVIDER_INFO IPX_INFO = { 0, CLSID_DP8SP_IPX, (WCHAR*)(L"DirectPlay8 IPX Service Provider"), 0, 0 };
std::unique_lock l(lock);
diff --git a/src/HostEnumerator.cpp b/src/HostEnumerator.cpp
index 0bef7e8..27d3439 100644
--- a/src/HostEnumerator.cpp
+++ b/src/HostEnumerator.cpp
@@ -27,7 +27,7 @@
#include "Messages.hpp"
#include "packet.hpp"
-const GUID GUID_NULL = { 0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } };
+// const GUID GUID_NULL = { 0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0 } };
HostEnumerator::HostEnumerator(
std::atomic * const global_refcount,
diff --git a/src/SendQueue.cpp b/src/SendQueue.cpp
index be0c682..7d51193 100644
--- a/src/SendQueue.cpp
+++ b/src/SendQueue.cpp
@@ -155,6 +155,10 @@ SendQueue::SendOp *SendQueue::remove_queued_by_priority(SendPriority priority)
case SEND_PRI_HIGH:
queue = &high_queue;
break;
+
+ default:
+ /* Unreachable. */
+ abort();
}
for(auto it = queue->begin(); it != queue->end(); ++it)
diff --git a/tests/DirectPlay8Peer.cpp b/tests/DirectPlay8Peer.cpp
index d24cb65..99fd611 100644
--- a/tests/DirectPlay8Peer.cpp
+++ b/tests/DirectPlay8Peer.cpp
@@ -2749,7 +2749,7 @@ TEST(DirectPlay8Peer, HostPeerSoftClose)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -2992,7 +2992,7 @@ TEST(DirectPlay8Peer, HostPeerHardClose)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -3235,7 +3235,7 @@ TEST(DirectPlay8Peer, NonHostPeerSoftClose)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -3405,7 +3405,7 @@ TEST(DirectPlay8Peer, NonHostPeerHardClose)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -3802,10 +3802,10 @@ TEST(DirectPlay8Peer, SetApplicationDesc)
ASSERT_EQ(host->GetApplicationDesc(appdesc, &appdesc_size, 0), S_OK);
appdesc->dwMaxPlayers = 20;
- appdesc->pwszSessionName = L"Best Session";
+ appdesc->pwszSessionName = (WCHAR*)(L"Best Session");
appdesc->dwFlags |= DPNSESSION_REQUIREPASSWORD;
- appdesc->pwszPassword = L"P4ssword";
+ appdesc->pwszPassword = (WCHAR*)(L"P4ssword");
appdesc->pvApplicationReservedData = (void*)(APP_DATA);
appdesc->dwApplicationReservedDataSize = sizeof(APP_DATA);
@@ -7309,7 +7309,7 @@ TEST(DirectPlay8Peer, EnumPlayersTooSmall)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -7374,7 +7374,7 @@ TEST(DirectPlay8Peer, EnumPlayersExact)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -7461,7 +7461,7 @@ TEST(DirectPlay8Peer, EnumPlayersTooBig)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -7550,7 +7550,7 @@ TEST(DirectPlay8Peer, DestroyPeer)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -7705,7 +7705,7 @@ TEST(DirectPlay8Peer, TerminateSession)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -7949,7 +7949,7 @@ TEST(DirectPlay8Peer, CreateGroupSync)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -8022,7 +8022,7 @@ TEST(DirectPlay8Peer, CreateGroupSync)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = (void*)(GROUP_DATA);
group_info.dwDataSize = sizeof(GROUP_DATA);
group_info.dwGroupFlags = 0;
@@ -8136,7 +8136,7 @@ TEST(DirectPlay8Peer, CreateGroupAsync)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -8225,7 +8225,7 @@ TEST(DirectPlay8Peer, CreateGroupAsync)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = (void*)(GROUP_DATA);
group_info.dwDataSize = sizeof(GROUP_DATA);
group_info.dwGroupFlags = 0;
@@ -8327,7 +8327,7 @@ TEST(DirectPlay8Peer, CreateGroupBeforeJoin)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -8362,7 +8362,7 @@ TEST(DirectPlay8Peer, CreateGroupBeforeJoin)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = (void*)(GROUP_DATA);
group_info.dwDataSize = sizeof(GROUP_DATA);
group_info.dwGroupFlags = 0;
@@ -8519,7 +8519,7 @@ TEST(DirectPlay8Peer, CreateGroupNonHost)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -8622,7 +8622,7 @@ TEST(DirectPlay8Peer, CreateGroupNonHost)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = (void*)(GROUP_DATA);
group_info.dwDataSize = sizeof(GROUP_DATA);
group_info.dwGroupFlags = 0;
@@ -8748,7 +8748,7 @@ TEST(DirectPlay8Peer, DestroyGroupSync)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -8813,7 +8813,7 @@ TEST(DirectPlay8Peer, DestroyGroupSync)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -8917,7 +8917,7 @@ TEST(DirectPlay8Peer, DestroyGroupAsync)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -8982,7 +8982,7 @@ TEST(DirectPlay8Peer, DestroyGroupAsync)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -9083,7 +9083,7 @@ TEST(DirectPlay8Peer, DestroyGroupBeforeJoin)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -9112,7 +9112,7 @@ TEST(DirectPlay8Peer, DestroyGroupBeforeJoin)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -9215,7 +9215,7 @@ TEST(DirectPlay8Peer, DestroyGroupByLocalCloseSoft)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -9263,7 +9263,7 @@ TEST(DirectPlay8Peer, DestroyGroupByLocalCloseSoft)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -9321,7 +9321,7 @@ TEST(DirectPlay8Peer, DestroyGroupByLocalCloseHard)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -9369,7 +9369,7 @@ TEST(DirectPlay8Peer, DestroyGroupByLocalCloseHard)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -9427,7 +9427,7 @@ TEST(DirectPlay8Peer, DestroyGroupByHostCloseSoft)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -9475,7 +9475,7 @@ TEST(DirectPlay8Peer, DestroyGroupByHostCloseSoft)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -9529,7 +9529,7 @@ TEST(DirectPlay8Peer, DestroyGroupByHostCloseHard)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -9577,7 +9577,7 @@ TEST(DirectPlay8Peer, DestroyGroupByHostCloseHard)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -9631,7 +9631,7 @@ TEST(DirectPlay8Peer, DestroyGroupByTerminateSession)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -9679,7 +9679,7 @@ TEST(DirectPlay8Peer, DestroyGroupByTerminateSession)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -9733,7 +9733,7 @@ TEST(DirectPlay8Peer, DestroyGroupByDestroyPeer)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -9781,7 +9781,7 @@ TEST(DirectPlay8Peer, DestroyGroupByDestroyPeer)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -9837,7 +9837,7 @@ TEST(DirectPlay8Peer, AddPlayerToGroupSync)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -9906,7 +9906,7 @@ TEST(DirectPlay8Peer, AddPlayerToGroupSync)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = (void*)(GROUP_DATA);
group_info.dwDataSize = sizeof(GROUP_DATA);
group_info.dwGroupFlags = 0;
@@ -10019,7 +10019,7 @@ TEST(DirectPlay8Peer, AddPlayerToGroupAsync)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -10088,7 +10088,7 @@ TEST(DirectPlay8Peer, AddPlayerToGroupAsync)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = (void*)(GROUP_DATA);
group_info.dwDataSize = sizeof(GROUP_DATA);
group_info.dwGroupFlags = 0;
@@ -10206,7 +10206,7 @@ TEST(DirectPlay8Peer, AddPlayerToGroupBeforeJoin)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -10237,7 +10237,7 @@ TEST(DirectPlay8Peer, AddPlayerToGroupBeforeJoin)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = (void*)(GROUP_DATA);
group_info.dwDataSize = sizeof(GROUP_DATA);
group_info.dwGroupFlags = 0;
@@ -10387,7 +10387,7 @@ TEST(DirectPlay8Peer, AddPlayerToGroupByPeer)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -10456,7 +10456,7 @@ TEST(DirectPlay8Peer, AddPlayerToGroupByPeer)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = (void*)(GROUP_DATA);
group_info.dwDataSize = sizeof(GROUP_DATA);
group_info.dwGroupFlags = 0;
@@ -10556,7 +10556,7 @@ TEST(DirectPlay8Peer, AddOtherPlayerToGroup)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -10659,7 +10659,7 @@ TEST(DirectPlay8Peer, AddOtherPlayerToGroup)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -10779,7 +10779,7 @@ TEST(DirectPlay8Peer, AddOtherPlayerToGroupBeforeJoin)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -10848,7 +10848,7 @@ TEST(DirectPlay8Peer, AddOtherPlayerToGroupBeforeJoin)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -11041,7 +11041,7 @@ TEST(DirectPlay8Peer, RemovePlayerFromGroupSync)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -11106,7 +11106,7 @@ TEST(DirectPlay8Peer, RemovePlayerFromGroupSync)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -11203,7 +11203,7 @@ TEST(DirectPlay8Peer, RemovePlayerFromGroupAsync)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -11268,7 +11268,7 @@ TEST(DirectPlay8Peer, RemovePlayerFromGroupAsync)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -11382,7 +11382,7 @@ TEST(DirectPlay8Peer, RemovePlayerFromGroupBeforeJoin)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -11411,7 +11411,7 @@ TEST(DirectPlay8Peer, RemovePlayerFromGroupBeforeJoin)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -11513,7 +11513,7 @@ TEST(DirectPlay8Peer, RemovePlayerFromGroupByPeer)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -11578,7 +11578,7 @@ TEST(DirectPlay8Peer, RemovePlayerFromGroupByPeer)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -11675,7 +11675,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroup)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -11772,7 +11772,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroup)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -11898,7 +11898,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroupByLocalCloseSoft)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -11978,7 +11978,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroupByLocalCloseSoft)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -12062,7 +12062,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroupByLocalCloseHard)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -12142,7 +12142,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroupByLocalCloseHard)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -12226,7 +12226,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroupByHostCloseSoft)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -12306,7 +12306,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroupByHostCloseSoft)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -12391,7 +12391,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroupByHostCloseHard)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -12471,7 +12471,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroupByHostCloseHard)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -12556,7 +12556,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroupByTerminateSession)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -12636,7 +12636,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroupByTerminateSession)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -12721,7 +12721,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroupByMemberCloseSoft)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -12801,7 +12801,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroupByMemberCloseSoft)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -12866,7 +12866,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroupByMemberCloseHard)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -12946,7 +12946,7 @@ TEST(DirectPlay8Peer, RemoveOtherPlayerFromGroupByMemberCloseHard)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -13011,7 +13011,7 @@ TEST(DirectPlay8Peer, SendToGroupSelf)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -13102,7 +13102,7 @@ TEST(DirectPlay8Peer, SendToGroupSelf)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -13174,7 +13174,7 @@ TEST(DirectPlay8Peer, SendToGroupSelfNoLoopback)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -13265,7 +13265,7 @@ TEST(DirectPlay8Peer, SendToGroupSelfNoLoopback)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -13329,7 +13329,7 @@ TEST(DirectPlay8Peer, SendToGroupPeer)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -13420,7 +13420,7 @@ TEST(DirectPlay8Peer, SendToGroupPeer)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -13488,7 +13488,7 @@ TEST(DirectPlay8Peer, SendToGroupPeerNoLoopback)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -13579,7 +13579,7 @@ TEST(DirectPlay8Peer, SendToGroupPeerNoLoopback)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -13647,7 +13647,7 @@ TEST(DirectPlay8Peer, SendToGroupPeerAndSelf)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -13738,7 +13738,7 @@ TEST(DirectPlay8Peer, SendToGroupPeerAndSelf)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
@@ -13819,7 +13819,7 @@ TEST(DirectPlay8Peer, SendToGroupPeerAndSelfNoLoopback)
app_desc.dwSize = sizeof(app_desc);
app_desc.guidApplication = APP_GUID_1;
- app_desc.pwszSessionName = L"Session 1";
+ app_desc.pwszSessionName = (WCHAR*)(L"Session 1");
IDP8AddressInstance host_addr(CLSID_DP8SP_TCPIP, PORT);
@@ -13910,7 +13910,7 @@ TEST(DirectPlay8Peer, SendToGroupPeerAndSelfNoLoopback)
group_info.dwSize = sizeof(group_info);
group_info.dwInfoFlags = DPNINFO_NAME | DPNINFO_DATA;
- group_info.pwszName = L"Test Group";
+ group_info.pwszName = (WCHAR*)(L"Test Group");
group_info.pvData = NULL;
group_info.dwDataSize = 0;
group_info.dwGroupFlags = 0;
diff --git a/tests/tests.vcxproj b/tests/tests.vcxproj
new file mode 100644
index 0000000..4b7b492
--- /dev/null
+++ b/tests/tests.vcxproj
@@ -0,0 +1,114 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {6243e219-3927-43f6-9b5f-e34164900687}
+
+
+
+ 15.0
+ {7DFB7CFB-C59A-44D8-A701-CA14D153EBF2}
+ Win32Proj
+ tests
+ 10.0.17763.0
+
+
+
+ Application
+ true
+ v141
+ Unicode
+
+
+ Application
+ false
+ v141
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+ $(SolutionDir)include;$(SolutionDir)googletest\include;$(SolutionDir)googletest;$(IncludePath)
+
+
+ true
+ $(SolutionDir)include;$(SolutionDir)googletest\include;$(SolutionDir)googletest;$(IncludePath)
+
+
+
+ NotUsing
+ Level3
+ MaxSpeed
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ pch.h
+
+
+ Console
+ true
+ true
+ true
+ dxguid.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
+
+
+
+
+ NotUsing
+ Level3
+ Disabled
+ true
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ pch.h
+
+
+ Console
+ true
+ dxguid.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies)
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/tests.vcxproj.filters b/tests/tests.vcxproj.filters
new file mode 100644
index 0000000..7f1b4d9
--- /dev/null
+++ b/tests/tests.vcxproj.filters
@@ -0,0 +1,61 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+
\ No newline at end of file