Add PowerManager C++/CLI project.
Monitor Power On/Off notifications working.
Moving to .NET 4.6
1.1 --- a/.editorconfig Thu Sep 24 14:35:50 2015 +0200
1.2 +++ b/.editorconfig Thu Sep 24 21:39:05 2015 +0200
1.3 @@ -6,7 +6,7 @@
1.4 end_of_line = crlf
1.5
1.6 ; 4-column tab indentation
1.7 -[*.cs]
1.8 +[*.*]
1.9 indent_style = space
1.10 indent_size = 4
1.11
2.1 --- a/Client/App.config Thu Sep 24 14:35:50 2015 +0200
2.2 +++ b/Client/App.config Thu Sep 24 21:39:05 2015 +0200
2.3 @@ -1,6 +1,6 @@
2.4 <?xml version="1.0"?>
2.5 <configuration>
2.6 <startup>
2.7 - <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
2.8 + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/>
2.9 </startup>
2.10 </configuration>
3.1 --- a/Client/Properties/Resources.Designer.cs Thu Sep 24 14:35:50 2015 +0200
3.2 +++ b/Client/Properties/Resources.Designer.cs Thu Sep 24 21:39:05 2015 +0200
3.3 @@ -1,7 +1,7 @@
3.4 //------------------------------------------------------------------------------
3.5 // <auto-generated>
3.6 // This code was generated by a tool.
3.7 -// Runtime Version:4.0.30319.18444
3.8 +// Runtime Version:4.0.30319.42000
3.9 //
3.10 // Changes to this file may cause incorrect behavior and will be lost if
3.11 // the code is regenerated.
4.1 --- a/Client/Properties/Settings.Designer.cs Thu Sep 24 14:35:50 2015 +0200
4.2 +++ b/Client/Properties/Settings.Designer.cs Thu Sep 24 21:39:05 2015 +0200
4.3 @@ -1,7 +1,7 @@
4.4 //------------------------------------------------------------------------------
4.5 // <auto-generated>
4.6 // This code was generated by a tool.
4.7 -// Runtime Version:4.0.30319.18444
4.8 +// Runtime Version:4.0.30319.42000
4.9 //
4.10 // Changes to this file may cause incorrect behavior and will be lost if
4.11 // the code is regenerated.
4.12 @@ -12,7 +12,7 @@
4.13
4.14
4.15 [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
4.16 - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
4.17 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
4.18 internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
4.19
4.20 private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
5.1 --- a/Client/SharpDisplayClient.csproj Thu Sep 24 14:35:50 2015 +0200
5.2 +++ b/Client/SharpDisplayClient.csproj Thu Sep 24 21:39:05 2015 +0200
5.3 @@ -1,5 +1,5 @@
5.4 <?xml version="1.0" encoding="utf-8"?>
5.5 -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5.6 +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5.7 <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
5.8 <PropertyGroup>
5.9 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
5.10 @@ -9,7 +9,7 @@
5.11 <AppDesignerFolder>Properties</AppDesignerFolder>
5.12 <RootNamespace>SharpDisplayClient</RootNamespace>
5.13 <AssemblyName>SharpDisplayClient</AssemblyName>
5.14 - <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
5.15 + <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
5.16 <FileAlignment>512</FileAlignment>
5.17 <TargetFrameworkProfile />
5.18 <PublishUrl>publish\</PublishUrl>
6.1 --- a/Interface/SharpDisplayInterface.csproj Thu Sep 24 14:35:50 2015 +0200
6.2 +++ b/Interface/SharpDisplayInterface.csproj Thu Sep 24 21:39:05 2015 +0200
6.3 @@ -1,5 +1,5 @@
6.4 <?xml version="1.0" encoding="utf-8"?>
6.5 -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6.6 +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6.7 <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
6.8 <PropertyGroup>
6.9 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
6.10 @@ -9,7 +9,7 @@
6.11 <AppDesignerFolder>Properties</AppDesignerFolder>
6.12 <RootNamespace>SharpDisplayInterface</RootNamespace>
6.13 <AssemblyName>SharpDisplayInterface</AssemblyName>
6.14 - <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
6.15 + <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
6.16 <FileAlignment>512</FileAlignment>
6.17 <TargetFrameworkProfile />
6.18 </PropertyGroup>
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
7.2 +++ b/PowerManager/AssemblyInfo.cpp Thu Sep 24 21:39:05 2015 +0200
7.3 @@ -0,0 +1,38 @@
7.4 +#include "stdafx.h"
7.5 +
7.6 +using namespace System;
7.7 +using namespace System::Reflection;
7.8 +using namespace System::Runtime::CompilerServices;
7.9 +using namespace System::Runtime::InteropServices;
7.10 +using namespace System::Security::Permissions;
7.11 +
7.12 +//
7.13 +// General Information about an assembly is controlled through the following
7.14 +// set of attributes. Change these attribute values to modify the information
7.15 +// associated with an assembly.
7.16 +//
7.17 +[assembly:AssemblyTitleAttribute(L"PowerManager")];
7.18 +[assembly:AssemblyDescriptionAttribute(L"")];
7.19 +[assembly:AssemblyConfigurationAttribute(L"")];
7.20 +[assembly:AssemblyCompanyAttribute(L"")];
7.21 +[assembly:AssemblyProductAttribute(L"PowerManager")];
7.22 +[assembly:AssemblyCopyrightAttribute(L"Copyright (c) 2015")];
7.23 +[assembly:AssemblyTrademarkAttribute(L"")];
7.24 +[assembly:AssemblyCultureAttribute(L"")];
7.25 +
7.26 +//
7.27 +// Version information for an assembly consists of the following four values:
7.28 +//
7.29 +// Major Version
7.30 +// Minor Version
7.31 +// Build Number
7.32 +// Revision
7.33 +//
7.34 +// You can specify all the value or you can default the Revision and Build Numbers
7.35 +// by using the '*' as shown below:
7.36 +
7.37 +[assembly:AssemblyVersionAttribute("1.0.*")];
7.38 +
7.39 +[assembly:ComVisible(false)];
7.40 +
7.41 +[assembly:CLSCompliantAttribute(true)];
7.42 \ No newline at end of file
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
8.2 +++ b/PowerManager/PowerManager.cpp Thu Sep 24 21:39:05 2015 +0200
8.3 @@ -0,0 +1,142 @@
8.4 +// This is the main DLL file.
8.5 +
8.6 +#include "stdafx.h"
8.7 +
8.8 +#include "PowerManager.h"
8.9 +
8.10 +using namespace System::Diagnostics;
8.11 +
8.12 +namespace PowerManager
8.13 +{
8.14 + ///
8.15 + PowerSettingNotifier::PowerSettingNotifier(IntPtr aHandle, Boolean aService)
8.16 + {
8.17 + Construct(aHandle, aService);
8.18 + }
8.19 +
8.20 + ///
8.21 + PowerSettingNotifier::PowerSettingNotifier(IntPtr aHandle)
8.22 + {
8.23 + //By default we assume we run as a Window
8.24 + Construct(aHandle, false);
8.25 + }
8.26 +
8.27 + ///
8.28 + void PowerSettingNotifier::Construct(IntPtr aHandle, Boolean aService)
8.29 + {
8.30 + iHandle = aHandle;
8.31 + iIsService = aService;
8.32 + iMonitorPowerOnDelegate = nullptr;
8.33 + iMonitorPowerOffDelegate = nullptr;
8.34 + iMonitorPowerObserverCount = 0;
8.35 + }
8.36 +
8.37 + ///
8.38 + Boolean PowerSettingNotifier::RegisterPowerSettingNotification(IntPtr aHandle, Boolean aService)
8.39 + {
8.40 + HANDLE handle = aHandle.ToPointer();
8.41 + HPOWERNOTIFY res=::RegisterPowerSettingNotification(handle, &GUID_MONITOR_POWER_ON, (aService?DEVICE_NOTIFY_SERVICE_HANDLE:DEVICE_NOTIFY_WINDOW_HANDLE));
8.42 + return (res != NULL);
8.43 + };
8.44 +
8.45 + ///
8.46 + Boolean PowerSettingNotifier::RegisterPowerSettingNotification(IntPtr aHandle)
8.47 + {
8.48 + return RegisterPowerSettingNotification(aHandle,false);
8.49 + };
8.50 +
8.51 + ///
8.52 + void PowerSettingNotifier::WndProc(Message% aMessage)
8.53 + {
8.54 + POWERBROADCAST_SETTING* setting;
8.55 +
8.56 + if (aMessage.Msg == WM_POWERBROADCAST && aMessage.WParam.ToInt32() == PBT_POWERSETTINGCHANGE)
8.57 + {
8.58 + setting=(POWERBROADCAST_SETTING*)aMessage.LParam.ToPointer();
8.59 + if (setting->PowerSetting == GUID_MONITOR_POWER_ON)
8.60 + {
8.61 + if (setting->Data[0] == 0x0)
8.62 + {
8.63 + Debug::WriteLine(L"POWERBROADCAST: Monitor Power Off");
8.64 + OnMonitorPowerOff();
8.65 + }
8.66 + else if (setting->Data[0] == 0x1)
8.67 + {
8.68 + Debug::WriteLine(L"POWERBROADCAST: Monitor Power On");
8.69 + OnMonitorPowerOn();
8.70 + }
8.71 + }
8.72 + }
8.73 +
8.74 +
8.75 + }
8.76 +
8.77 + ///
8.78 + void PowerSettingNotifier::OnMonitorPowerOn::add(PowerManagerDelegate^ d)
8.79 + {
8.80 + iMonitorPowerOnDelegate += d;
8.81 + iMonitorPowerObserverCount++;
8.82 + //iMonitorPowerOnDelegate->GetInvocationList()->GetLength(0)
8.83 + if (iMonitorPowerObserverCount == 1)
8.84 + {
8.85 + //TODO: register
8.86 + RegisterPowerSettingNotification(iHandle,iIsService);
8.87 + }
8.88 +
8.89 + }
8.90 +
8.91 + ///
8.92 + void PowerSettingNotifier::OnMonitorPowerOn::remove(PowerManagerDelegate^ d)
8.93 + {
8.94 + iMonitorPowerOnDelegate -= d;
8.95 + iMonitorPowerObserverCount--;
8.96 + if (iMonitorPowerObserverCount==0)
8.97 + {
8.98 + //TODO: unregister
8.99 + }
8.100 + }
8.101 +
8.102 + //
8.103 + void PowerSettingNotifier::OnMonitorPowerOn::raise()
8.104 + {
8.105 + if (iMonitorPowerOnDelegate != nullptr)
8.106 + {
8.107 + iMonitorPowerOnDelegate->Invoke();
8.108 + }
8.109 + }
8.110 +
8.111 + ///
8.112 + void PowerSettingNotifier::OnMonitorPowerOff::add(PowerManagerDelegate^ d)
8.113 + {
8.114 + iMonitorPowerOffDelegate += d;
8.115 + iMonitorPowerObserverCount++;
8.116 + if (iMonitorPowerObserverCount == 1)
8.117 + {
8.118 + //TODO: register
8.119 + RegisterPowerSettingNotification(iHandle, iIsService);
8.120 + }
8.121 + }
8.122 +
8.123 + ///
8.124 + void PowerSettingNotifier::OnMonitorPowerOff::remove(PowerManagerDelegate^ d)
8.125 + {
8.126 + iMonitorPowerOffDelegate -= d;
8.127 + iMonitorPowerObserverCount--;
8.128 + if (iMonitorPowerObserverCount == 0)
8.129 + {
8.130 + //TODO: unregister
8.131 + }
8.132 + }
8.133 +
8.134 + //
8.135 + void PowerSettingNotifier::OnMonitorPowerOff::raise()
8.136 + {
8.137 + if (iMonitorPowerOffDelegate != nullptr)
8.138 + {
8.139 + iMonitorPowerOffDelegate->Invoke();
8.140 + }
8.141 + }
8.142 +
8.143 +
8.144 +
8.145 +}
8.146 \ No newline at end of file
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
9.2 +++ b/PowerManager/PowerManager.h Thu Sep 24 21:39:05 2015 +0200
9.3 @@ -0,0 +1,55 @@
9.4 +// PowerManager.h
9.5 +
9.6 +#pragma once
9.7 +
9.8 +using namespace System;
9.9 +using namespace System::Windows::Forms;
9.10 +
9.11 +namespace PowerManager
9.12 +{
9.13 + public delegate void PowerManagerDelegate();
9.14 +
9.15 + public ref class PowerSettingNotifier
9.16 + {
9.17 + public:
9.18 + PowerSettingNotifier(IntPtr aHandle, Boolean aService);
9.19 + PowerSettingNotifier(IntPtr aHandle);
9.20 + //
9.21 + void WndProc(Message% aMessage);
9.22 +
9.23 + event PowerManagerDelegate^ OnMonitorPowerOn
9.24 + {
9.25 + void add(PowerManagerDelegate^ d);
9.26 + void remove(PowerManagerDelegate^ d);
9.27 + private:
9.28 + void raise();
9.29 + }
9.30 +
9.31 + event PowerManagerDelegate^ OnMonitorPowerOff
9.32 + {
9.33 + void add(PowerManagerDelegate^ d);
9.34 + void remove(PowerManagerDelegate^ d);
9.35 + private:
9.36 + void raise();
9.37 + }
9.38 +
9.39 + private:
9.40 + void Construct(IntPtr aHandle, Boolean aService);
9.41 + //
9.42 + Boolean RegisterPowerSettingNotification(IntPtr aHandle, Boolean aService);
9.43 + Boolean RegisterPowerSettingNotification(IntPtr aHandle);
9.44 +
9.45 + private:
9.46 + PowerManagerDelegate^ iMonitorPowerOnDelegate;
9.47 + PowerManagerDelegate^ iMonitorPowerOffDelegate;
9.48 +
9.49 +
9.50 + private:
9.51 + /// Window or Service handle
9.52 + IntPtr iHandle;
9.53 + /// Specify whether we run as Window or a Service
9.54 + Boolean iIsService;
9.55 + ///
9.56 + int iMonitorPowerObserverCount;
9.57 + };
9.58 +}
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
10.2 +++ b/PowerManager/PowerManager.vcxproj Thu Sep 24 21:39:05 2015 +0200
10.3 @@ -0,0 +1,166 @@
10.4 +<?xml version="1.0" encoding="utf-8"?>
10.5 +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
10.6 + <ItemGroup Label="ProjectConfigurations">
10.7 + <ProjectConfiguration Include="Debug|Win32">
10.8 + <Configuration>Debug</Configuration>
10.9 + <Platform>Win32</Platform>
10.10 + </ProjectConfiguration>
10.11 + <ProjectConfiguration Include="Release|Win32">
10.12 + <Configuration>Release</Configuration>
10.13 + <Platform>Win32</Platform>
10.14 + </ProjectConfiguration>
10.15 + <ProjectConfiguration Include="Debug|x64">
10.16 + <Configuration>Debug</Configuration>
10.17 + <Platform>x64</Platform>
10.18 + </ProjectConfiguration>
10.19 + <ProjectConfiguration Include="Release|x64">
10.20 + <Configuration>Release</Configuration>
10.21 + <Platform>x64</Platform>
10.22 + </ProjectConfiguration>
10.23 + </ItemGroup>
10.24 + <PropertyGroup Label="Globals">
10.25 + <ProjectGuid>{C174F23D-3055-49BC-B6B0-563011AF624D}</ProjectGuid>
10.26 + <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
10.27 + <Keyword>ManagedCProj</Keyword>
10.28 + <RootNamespace>PowerManager</RootNamespace>
10.29 + <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
10.30 + </PropertyGroup>
10.31 + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
10.32 + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
10.33 + <ConfigurationType>DynamicLibrary</ConfigurationType>
10.34 + <UseDebugLibraries>true</UseDebugLibraries>
10.35 + <PlatformToolset>v140</PlatformToolset>
10.36 + <CLRSupport>true</CLRSupport>
10.37 + <CharacterSet>Unicode</CharacterSet>
10.38 + </PropertyGroup>
10.39 + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
10.40 + <ConfigurationType>DynamicLibrary</ConfigurationType>
10.41 + <UseDebugLibraries>false</UseDebugLibraries>
10.42 + <PlatformToolset>v140</PlatformToolset>
10.43 + <CLRSupport>true</CLRSupport>
10.44 + <CharacterSet>Unicode</CharacterSet>
10.45 + </PropertyGroup>
10.46 + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
10.47 + <ConfigurationType>DynamicLibrary</ConfigurationType>
10.48 + <UseDebugLibraries>true</UseDebugLibraries>
10.49 + <PlatformToolset>v140</PlatformToolset>
10.50 + <CLRSupport>true</CLRSupport>
10.51 + <CharacterSet>Unicode</CharacterSet>
10.52 + </PropertyGroup>
10.53 + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
10.54 + <ConfigurationType>DynamicLibrary</ConfigurationType>
10.55 + <UseDebugLibraries>false</UseDebugLibraries>
10.56 + <PlatformToolset>v140</PlatformToolset>
10.57 + <CLRSupport>true</CLRSupport>
10.58 + <CharacterSet>Unicode</CharacterSet>
10.59 + </PropertyGroup>
10.60 + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
10.61 + <ImportGroup Label="ExtensionSettings">
10.62 + </ImportGroup>
10.63 + <ImportGroup Label="Shared">
10.64 + </ImportGroup>
10.65 + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
10.66 + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
10.67 + </ImportGroup>
10.68 + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
10.69 + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
10.70 + </ImportGroup>
10.71 + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
10.72 + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
10.73 + </ImportGroup>
10.74 + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
10.75 + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
10.76 + </ImportGroup>
10.77 + <PropertyGroup Label="UserMacros" />
10.78 + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
10.79 + <LinkIncremental>true</LinkIncremental>
10.80 + </PropertyGroup>
10.81 + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
10.82 + <LinkIncremental>true</LinkIncremental>
10.83 + </PropertyGroup>
10.84 + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
10.85 + <LinkIncremental>false</LinkIncremental>
10.86 + </PropertyGroup>
10.87 + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
10.88 + <LinkIncremental>false</LinkIncremental>
10.89 + </PropertyGroup>
10.90 + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
10.91 + <ClCompile>
10.92 + <WarningLevel>Level3</WarningLevel>
10.93 + <Optimization>Disabled</Optimization>
10.94 + <PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
10.95 + <PrecompiledHeader>Use</PrecompiledHeader>
10.96 + </ClCompile>
10.97 + <Link>
10.98 + <GenerateDebugInformation>true</GenerateDebugInformation>
10.99 + <AdditionalDependencies>user32.lib</AdditionalDependencies>
10.100 + </Link>
10.101 + </ItemDefinitionGroup>
10.102 + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
10.103 + <ClCompile>
10.104 + <WarningLevel>Level3</WarningLevel>
10.105 + <Optimization>Disabled</Optimization>
10.106 + <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
10.107 + <PrecompiledHeader>Use</PrecompiledHeader>
10.108 + </ClCompile>
10.109 + <Link>
10.110 + <GenerateDebugInformation>true</GenerateDebugInformation>
10.111 + <AdditionalDependencies />
10.112 + </Link>
10.113 + </ItemDefinitionGroup>
10.114 + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
10.115 + <ClCompile>
10.116 + <WarningLevel>Level3</WarningLevel>
10.117 + <PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
10.118 + <PrecompiledHeader>Use</PrecompiledHeader>
10.119 + </ClCompile>
10.120 + <Link>
10.121 + <GenerateDebugInformation>true</GenerateDebugInformation>
10.122 + <AdditionalDependencies>user32.lib</AdditionalDependencies>
10.123 + </Link>
10.124 + </ItemDefinitionGroup>
10.125 + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
10.126 + <ClCompile>
10.127 + <WarningLevel>Level3</WarningLevel>
10.128 + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
10.129 + <PrecompiledHeader>Use</PrecompiledHeader>
10.130 + </ClCompile>
10.131 + <Link>
10.132 + <GenerateDebugInformation>true</GenerateDebugInformation>
10.133 + <AdditionalDependencies />
10.134 + </Link>
10.135 + </ItemDefinitionGroup>
10.136 + <ItemGroup>
10.137 + <Reference Include="System" />
10.138 + <Reference Include="System.Data" />
10.139 + <Reference Include="System.Windows.Forms" />
10.140 + <Reference Include="System.Xml" />
10.141 + </ItemGroup>
10.142 + <ItemGroup>
10.143 + <ClInclude Include="PowerManager.h" />
10.144 + <ClInclude Include="resource.h" />
10.145 + <ClInclude Include="Stdafx.h" />
10.146 + </ItemGroup>
10.147 + <ItemGroup>
10.148 + <ClCompile Include="AssemblyInfo.cpp" />
10.149 + <ClCompile Include="PowerManager.cpp" />
10.150 + <ClCompile Include="Stdafx.cpp">
10.151 + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
10.152 + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
10.153 + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
10.154 + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
10.155 + </ClCompile>
10.156 + </ItemGroup>
10.157 + <ItemGroup>
10.158 + <Text Include="ReadMe.txt" />
10.159 + </ItemGroup>
10.160 + <ItemGroup>
10.161 + <ResourceCompile Include="app.rc" />
10.162 + </ItemGroup>
10.163 + <ItemGroup>
10.164 + <Image Include="app.ico" />
10.165 + </ItemGroup>
10.166 + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
10.167 + <ImportGroup Label="ExtensionTargets">
10.168 + </ImportGroup>
10.169 +</Project>
10.170 \ No newline at end of file
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
11.2 +++ b/PowerManager/PowerManager.vcxproj.filters Thu Sep 24 21:39:05 2015 +0200
11.3 @@ -0,0 +1,52 @@
11.4 +<?xml version="1.0" encoding="utf-8"?>
11.5 +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
11.6 + <ItemGroup>
11.7 + <Filter Include="Source Files">
11.8 + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
11.9 + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
11.10 + </Filter>
11.11 + <Filter Include="Header Files">
11.12 + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
11.13 + <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
11.14 + </Filter>
11.15 + <Filter Include="Resource Files">
11.16 + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
11.17 + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
11.18 + </Filter>
11.19 + </ItemGroup>
11.20 + <ItemGroup>
11.21 + <ClInclude Include="PowerManager.h">
11.22 + <Filter>Header Files</Filter>
11.23 + </ClInclude>
11.24 + <ClInclude Include="Stdafx.h">
11.25 + <Filter>Header Files</Filter>
11.26 + </ClInclude>
11.27 + <ClInclude Include="resource.h">
11.28 + <Filter>Header Files</Filter>
11.29 + </ClInclude>
11.30 + </ItemGroup>
11.31 + <ItemGroup>
11.32 + <ClCompile Include="PowerManager.cpp">
11.33 + <Filter>Source Files</Filter>
11.34 + </ClCompile>
11.35 + <ClCompile Include="AssemblyInfo.cpp">
11.36 + <Filter>Source Files</Filter>
11.37 + </ClCompile>
11.38 + <ClCompile Include="Stdafx.cpp">
11.39 + <Filter>Source Files</Filter>
11.40 + </ClCompile>
11.41 + </ItemGroup>
11.42 + <ItemGroup>
11.43 + <Text Include="ReadMe.txt" />
11.44 + </ItemGroup>
11.45 + <ItemGroup>
11.46 + <ResourceCompile Include="app.rc">
11.47 + <Filter>Resource Files</Filter>
11.48 + </ResourceCompile>
11.49 + </ItemGroup>
11.50 + <ItemGroup>
11.51 + <Image Include="app.ico">
11.52 + <Filter>Resource Files</Filter>
11.53 + </Image>
11.54 + </ItemGroup>
11.55 +</Project>
11.56 \ No newline at end of file
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
12.2 +++ b/PowerManager/ReadMe.txt Thu Sep 24 21:39:05 2015 +0200
12.3 @@ -0,0 +1,38 @@
12.4 +========================================================================
12.5 + DYNAMIC LINK LIBRARY : PowerManager Project Overview
12.6 +========================================================================
12.7 +
12.8 +AppWizard has created this PowerManager DLL for you.
12.9 +
12.10 +This file contains a summary of what you will find in each of the files that
12.11 +make up your PowerManager application.
12.12 +
12.13 +PowerManager.vcxproj
12.14 + This is the main project file for VC++ projects generated using an Application Wizard.
12.15 + It contains information about the version of Visual C++ that generated the file, and
12.16 + information about the platforms, configurations, and project features selected with the
12.17 + Application Wizard.
12.18 +
12.19 +PowerManager.vcxproj.filters
12.20 + This is the filters file for VC++ projects generated using an Application Wizard.
12.21 + It contains information about the association between the files in your project
12.22 + and the filters. This association is used in the IDE to show grouping of files with
12.23 + similar extensions under a specific node (for e.g. ".cpp" files are associated with the
12.24 + "Source Files" filter).
12.25 +
12.26 +PowerManager.cpp
12.27 + This is the main DLL source file.
12.28 +
12.29 +PowerManager.h
12.30 + This file contains a class declaration.
12.31 +
12.32 +AssemblyInfo.cpp
12.33 + Contains custom attributes for modifying assembly metadata.
12.34 +
12.35 +/////////////////////////////////////////////////////////////////////////////
12.36 +Other notes:
12.37 +
12.38 +AppWizard uses "TODO:" to indicate parts of the source code you
12.39 +should add to or customize.
12.40 +
12.41 +/////////////////////////////////////////////////////////////////////////////
13.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
13.2 +++ b/PowerManager/Stdafx.cpp Thu Sep 24 21:39:05 2015 +0200
13.3 @@ -0,0 +1,5 @@
13.4 +// stdafx.cpp : source file that includes just the standard includes
13.5 +// PowerManager.pch will be the pre-compiled header
13.6 +// stdafx.obj will contain the pre-compiled type information
13.7 +
13.8 +#include "stdafx.h"
14.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
14.2 +++ b/PowerManager/Stdafx.h Thu Sep 24 21:39:05 2015 +0200
14.3 @@ -0,0 +1,8 @@
14.4 +// stdafx.h : include file for standard system include files,
14.5 +// or project specific include files that are used frequently,
14.6 +// but are changed infrequently
14.7 +
14.8 +#pragma once
14.9 +
14.10 +#include <Windows.h>
14.11 +
15.1 Binary file PowerManager/app.ico has changed
16.1 Binary file PowerManager/app.rc has changed
17.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
17.2 +++ b/PowerManager/resource.h Thu Sep 24 21:39:05 2015 +0200
17.3 @@ -0,0 +1,3 @@
17.4 +//{{NO_DEPENDENCIES}}
17.5 +// Microsoft Visual C++ generated include file.
17.6 +// Used by app.rc
18.1 --- a/Server/App.config Thu Sep 24 14:35:50 2015 +0200
18.2 +++ b/Server/App.config Thu Sep 24 21:39:05 2015 +0200
18.3 @@ -6,7 +6,7 @@
18.4 </sectionGroup>
18.5 </configSections>
18.6 <startup>
18.7 - <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
18.8 + <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6"/>
18.9 </startup>
18.10 <userSettings>
18.11 <SharpDisplayManager.Properties.Settings>
19.1 --- a/Server/MainForm.Hid.cs Thu Sep 24 14:35:50 2015 +0200
19.2 +++ b/Server/MainForm.Hid.cs Thu Sep 24 21:39:05 2015 +0200
19.3 @@ -31,6 +31,9 @@
19.4 /// </summary>
19.5 private Hid.Handler iHidHandler;
19.6
19.7 + ///
19.8 + private PowerManager.PowerSettingNotifier iPowerSettingNotifier;
19.9 +
19.10 /// <summary>
19.11 /// Register HID devices so that we receive corresponding WM_INPUT messages.
19.12 /// </summary>
19.13 @@ -91,8 +94,24 @@
19.14 Debug.WriteLine("Failed to register raw input devices: " + Marshal.GetLastWin32Error().ToString());
19.15 }
19.16 iHidHandler.OnHidEvent += HandleHidEventThreadSafe;
19.17 +
19.18 + //TODO: Move this some place else
19.19 + iPowerSettingNotifier = new PowerManager.PowerSettingNotifier(Handle);
19.20 + iPowerSettingNotifier.OnMonitorPowerOn += MonitorPowerOn;
19.21 + iPowerSettingNotifier.OnMonitorPowerOff += MonitorPowerOff;
19.22 }
19.23
19.24 + static void MonitorPowerOn()
19.25 + {
19.26 + Debug.WriteLine("ON");
19.27 + }
19.28 +
19.29 + static void MonitorPowerOff()
19.30 + {
19.31 + Debug.WriteLine("OFF");
19.32 + }
19.33 +
19.34 +
19.35 /// <summary>
19.36 /// Here we receive HID events from our HID library.
19.37 /// </summary>
19.38 @@ -411,6 +430,13 @@
19.39 iHidHandler.ProcessInput(ref message);
19.40 break;
19.41 }
19.42 +
19.43 + //Hook in our power manager
19.44 + if (iPowerSettingNotifier!=null)
19.45 + {
19.46 + iPowerSettingNotifier.WndProc(ref message);
19.47 + }
19.48 +
19.49 //Is that needed? Check the docs.
19.50 base.WndProc(ref message);
19.51 }
20.1 --- a/Server/Properties/Resources.Designer.cs Thu Sep 24 14:35:50 2015 +0200
20.2 +++ b/Server/Properties/Resources.Designer.cs Thu Sep 24 21:39:05 2015 +0200
20.3 @@ -1,7 +1,7 @@
20.4 //------------------------------------------------------------------------------
20.5 // <auto-generated>
20.6 // This code was generated by a tool.
20.7 -// Runtime Version:4.0.30319.34209
20.8 +// Runtime Version:4.0.30319.42000
20.9 //
20.10 // Changes to this file may cause incorrect behavior and will be lost if
20.11 // the code is regenerated.
21.1 --- a/Server/Properties/Settings.Designer.cs Thu Sep 24 14:35:50 2015 +0200
21.2 +++ b/Server/Properties/Settings.Designer.cs Thu Sep 24 21:39:05 2015 +0200
21.3 @@ -1,7 +1,7 @@
21.4 //------------------------------------------------------------------------------
21.5 // <auto-generated>
21.6 // This code was generated by a tool.
21.7 -// Runtime Version:4.0.30319.18408
21.8 +// Runtime Version:4.0.30319.42000
21.9 //
21.10 // Changes to this file may cause incorrect behavior and will be lost if
21.11 // the code is regenerated.
21.12 @@ -12,7 +12,7 @@
21.13
21.14
21.15 [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
21.16 - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
21.17 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
21.18 internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
21.19
21.20 private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
22.1 --- a/Server/SharpDisplayManager.csproj Thu Sep 24 14:35:50 2015 +0200
22.2 +++ b/Server/SharpDisplayManager.csproj Thu Sep 24 21:39:05 2015 +0200
22.3 @@ -1,5 +1,5 @@
22.4 <?xml version="1.0" encoding="utf-8"?>
22.5 -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
22.6 +<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
22.7 <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
22.8 <PropertyGroup>
22.9 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
22.10 @@ -9,7 +9,7 @@
22.11 <AppDesignerFolder>Properties</AppDesignerFolder>
22.12 <RootNamespace>SharpDisplayManager</RootNamespace>
22.13 <AssemblyName>SharpDisplayManager</AssemblyName>
22.14 - <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
22.15 + <TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
22.16 <FileAlignment>512</FileAlignment>
22.17 <TargetFrameworkProfile />
22.18 <IsWebBootstrapper>true</IsWebBootstrapper>
22.19 @@ -33,7 +33,7 @@
22.20 <WebPage>index.htm</WebPage>
22.21 <OpenBrowserOnPublish>false</OpenBrowserOnPublish>
22.22 <ApplicationRevision>0</ApplicationRevision>
22.23 - <ApplicationVersion>0.5.4.0</ApplicationVersion>
22.24 + <ApplicationVersion>0.5.5.0</ApplicationVersion>
22.25 <UseApplicationTrust>false</UseApplicationTrust>
22.26 <CreateDesktopShortcut>true</CreateDesktopShortcut>
22.27 <PublishWizardCompleted>true</PublishWizardCompleted>
22.28 @@ -216,6 +216,10 @@
22.29 <Project>{88eee0dc-abbc-4738-bad6-7e08cf7f50f9}</Project>
22.30 <Name>SharpDisplayInterface</Name>
22.31 </ProjectReference>
22.32 + <ProjectReference Include="..\PowerManager\PowerManager.vcxproj">
22.33 + <Project>{c174f23d-3055-49bc-b6b0-563011af624d}</Project>
22.34 + <Name>PowerManager</Name>
22.35 + </ProjectReference>
22.36 </ItemGroup>
22.37 <ItemGroup>
22.38 <BootstrapperPackage Include=".NETFramework,Version=v4.0">
23.1 --- a/SharpDisplayManager.sln Thu Sep 24 14:35:50 2015 +0200
23.2 +++ b/SharpDisplayManager.sln Thu Sep 24 21:39:05 2015 +0200
23.3 @@ -1,44 +1,72 @@
23.4
23.5 Microsoft Visual Studio Solution File, Format Version 12.00
23.6 -# Visual Studio 2013
23.7 +# Visual Studio 14
23.8 +VisualStudioVersion = 14.0.23107.0
23.9 +MinimumVisualStudioVersion = 10.0.40219.1
23.10 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpDisplayManager", "Server\SharpDisplayManager.csproj", "{1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}"
23.11 EndProject
23.12 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpDisplayClient", "Client\SharpDisplayClient.csproj", "{7EE64074-8CDB-4448-B40C-81B75D6B31CD}"
23.13 EndProject
23.14 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpDisplayInterface", "Interface\SharpDisplayInterface.csproj", "{88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}"
23.15 EndProject
23.16 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PowerManager", "PowerManager\PowerManager.vcxproj", "{C174F23D-3055-49BC-B6B0-563011AF624D}"
23.17 +EndProject
23.18 Global
23.19 GlobalSection(SolutionConfigurationPlatforms) = preSolution
23.20 Debug|Any CPU = Debug|Any CPU
23.21 + Debug|x64 = Debug|x64
23.22 Debug|x86 = Debug|x86
23.23 Release|Any CPU = Release|Any CPU
23.24 + Release|x64 = Release|x64
23.25 Release|x86 = Release|x86
23.26 EndGlobalSection
23.27 GlobalSection(ProjectConfigurationPlatforms) = postSolution
23.28 {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
23.29 {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Debug|Any CPU.Build.0 = Debug|Any CPU
23.30 + {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Debug|x64.ActiveCfg = Debug|Any CPU
23.31 + {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Debug|x64.Build.0 = Debug|Any CPU
23.32 {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Debug|x86.ActiveCfg = Debug|x86
23.33 {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Debug|x86.Build.0 = Debug|x86
23.34 {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Release|Any CPU.ActiveCfg = Release|Any CPU
23.35 {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Release|Any CPU.Build.0 = Release|Any CPU
23.36 + {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Release|x64.ActiveCfg = Release|Any CPU
23.37 + {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Release|x64.Build.0 = Release|Any CPU
23.38 {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Release|x86.ActiveCfg = Release|x86
23.39 {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Release|x86.Build.0 = Release|x86
23.40 {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
23.41 {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
23.42 + {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Debug|x64.ActiveCfg = Debug|Any CPU
23.43 + {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Debug|x64.Build.0 = Debug|Any CPU
23.44 {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Debug|x86.ActiveCfg = Debug|x86
23.45 {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Debug|x86.Build.0 = Debug|x86
23.46 {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
23.47 {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Release|Any CPU.Build.0 = Release|Any CPU
23.48 + {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Release|x64.ActiveCfg = Release|Any CPU
23.49 + {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Release|x64.Build.0 = Release|Any CPU
23.50 {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Release|x86.ActiveCfg = Release|x86
23.51 {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Release|x86.Build.0 = Release|x86
23.52 {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
23.53 {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
23.54 + {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Debug|x64.ActiveCfg = Debug|Any CPU
23.55 + {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Debug|x64.Build.0 = Debug|Any CPU
23.56 {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Debug|x86.ActiveCfg = Debug|x86
23.57 {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Debug|x86.Build.0 = Debug|x86
23.58 {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
23.59 {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Release|Any CPU.Build.0 = Release|Any CPU
23.60 + {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Release|x64.ActiveCfg = Release|Any CPU
23.61 + {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Release|x64.Build.0 = Release|Any CPU
23.62 {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Release|x86.ActiveCfg = Release|x86
23.63 {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Release|x86.Build.0 = Release|x86
23.64 + {C174F23D-3055-49BC-B6B0-563011AF624D}.Debug|Any CPU.ActiveCfg = Debug|Win32
23.65 + {C174F23D-3055-49BC-B6B0-563011AF624D}.Debug|x64.ActiveCfg = Debug|x64
23.66 + {C174F23D-3055-49BC-B6B0-563011AF624D}.Debug|x64.Build.0 = Debug|x64
23.67 + {C174F23D-3055-49BC-B6B0-563011AF624D}.Debug|x86.ActiveCfg = Debug|Win32
23.68 + {C174F23D-3055-49BC-B6B0-563011AF624D}.Debug|x86.Build.0 = Debug|Win32
23.69 + {C174F23D-3055-49BC-B6B0-563011AF624D}.Release|Any CPU.ActiveCfg = Release|Win32
23.70 + {C174F23D-3055-49BC-B6B0-563011AF624D}.Release|x64.ActiveCfg = Release|x64
23.71 + {C174F23D-3055-49BC-B6B0-563011AF624D}.Release|x64.Build.0 = Release|x64
23.72 + {C174F23D-3055-49BC-B6B0-563011AF624D}.Release|x86.ActiveCfg = Release|Win32
23.73 + {C174F23D-3055-49BC-B6B0-563011AF624D}.Release|x86.Build.0 = Release|Win32
23.74 EndGlobalSection
23.75 GlobalSection(SolutionProperties) = preSolution
23.76 HideSolutionNode = FALSE