Add PowerManager C++/CLI project.
authorStephaneLenclud
Thu, 24 Sep 2015 21:39:05 +0200
changeset 159e7c8c2b500bd
parent 158 e22bf44c4300
child 160 de942d321cfb
Add PowerManager C++/CLI project.
Monitor Power On/Off notifications working.
Moving to .NET 4.6
.editorconfig
Client/App.config
Client/Properties/Resources.Designer.cs
Client/Properties/Settings.Designer.cs
Client/SharpDisplayClient.csproj
Interface/SharpDisplayInterface.csproj
PowerManager/AssemblyInfo.cpp
PowerManager/PowerManager.cpp
PowerManager/PowerManager.h
PowerManager/PowerManager.vcxproj
PowerManager/PowerManager.vcxproj.filters
PowerManager/ReadMe.txt
PowerManager/Stdafx.cpp
PowerManager/Stdafx.h
PowerManager/app.ico
PowerManager/app.rc
PowerManager/resource.h
Server/App.config
Server/MainForm.Hid.cs
Server/Properties/Resources.Designer.cs
Server/Properties/Settings.Designer.cs
Server/SharpDisplayManager.csproj
SharpDisplayManager.sln
     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