# HG changeset patch
# User StephaneLenclud
# Date 1443123545 -7200
# Node ID e7c8c2b500bdc74c767e2aa0dd44894604373903
# Parent e22bf44c4300e23696df645615e0687c354d27d9
Add PowerManager C++/CLI project.
Monitor Power On/Off notifications working.
Moving to .NET 4.6
diff -r e22bf44c4300 -r e7c8c2b500bd .editorconfig
--- a/.editorconfig Thu Sep 24 14:35:50 2015 +0200
+++ b/.editorconfig Thu Sep 24 21:39:05 2015 +0200
@@ -6,7 +6,7 @@
end_of_line = crlf
; 4-column tab indentation
-[*.cs]
+[*.*]
indent_style = space
indent_size = 4
diff -r e22bf44c4300 -r e7c8c2b500bd Client/App.config
--- a/Client/App.config Thu Sep 24 14:35:50 2015 +0200
+++ b/Client/App.config Thu Sep 24 21:39:05 2015 +0200
@@ -1,6 +1,6 @@
-
+
diff -r e22bf44c4300 -r e7c8c2b500bd Client/Properties/Resources.Designer.cs
--- a/Client/Properties/Resources.Designer.cs Thu Sep 24 14:35:50 2015 +0200
+++ b/Client/Properties/Resources.Designer.cs Thu Sep 24 21:39:05 2015 +0200
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
-// Runtime Version:4.0.30319.18444
+// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
diff -r e22bf44c4300 -r e7c8c2b500bd Client/Properties/Settings.Designer.cs
--- a/Client/Properties/Settings.Designer.cs Thu Sep 24 14:35:50 2015 +0200
+++ b/Client/Properties/Settings.Designer.cs Thu Sep 24 21:39:05 2015 +0200
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
-// Runtime Version:4.0.30319.18444
+// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -12,7 +12,7 @@
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
diff -r e22bf44c4300 -r e7c8c2b500bd Client/SharpDisplayClient.csproj
--- a/Client/SharpDisplayClient.csproj Thu Sep 24 14:35:50 2015 +0200
+++ b/Client/SharpDisplayClient.csproj Thu Sep 24 21:39:05 2015 +0200
@@ -1,5 +1,5 @@
-
+
Debug
@@ -9,7 +9,7 @@
Properties
SharpDisplayClient
SharpDisplayClient
- v4.5
+ v4.6
512
publish\
diff -r e22bf44c4300 -r e7c8c2b500bd Interface/SharpDisplayInterface.csproj
--- a/Interface/SharpDisplayInterface.csproj Thu Sep 24 14:35:50 2015 +0200
+++ b/Interface/SharpDisplayInterface.csproj Thu Sep 24 21:39:05 2015 +0200
@@ -1,5 +1,5 @@
-
+
Debug
@@ -9,7 +9,7 @@
Properties
SharpDisplayInterface
SharpDisplayInterface
- v4.5
+ v4.6
512
diff -r e22bf44c4300 -r e7c8c2b500bd PowerManager/AssemblyInfo.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PowerManager/AssemblyInfo.cpp Thu Sep 24 21:39:05 2015 +0200
@@ -0,0 +1,38 @@
+#include "stdafx.h"
+
+using namespace System;
+using namespace System::Reflection;
+using namespace System::Runtime::CompilerServices;
+using namespace System::Runtime::InteropServices;
+using namespace System::Security::Permissions;
+
+//
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+//
+[assembly:AssemblyTitleAttribute(L"PowerManager")];
+[assembly:AssemblyDescriptionAttribute(L"")];
+[assembly:AssemblyConfigurationAttribute(L"")];
+[assembly:AssemblyCompanyAttribute(L"")];
+[assembly:AssemblyProductAttribute(L"PowerManager")];
+[assembly:AssemblyCopyrightAttribute(L"Copyright (c) 2015")];
+[assembly:AssemblyTrademarkAttribute(L"")];
+[assembly:AssemblyCultureAttribute(L"")];
+
+//
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the value or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly:AssemblyVersionAttribute("1.0.*")];
+
+[assembly:ComVisible(false)];
+
+[assembly:CLSCompliantAttribute(true)];
\ No newline at end of file
diff -r e22bf44c4300 -r e7c8c2b500bd PowerManager/PowerManager.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PowerManager/PowerManager.cpp Thu Sep 24 21:39:05 2015 +0200
@@ -0,0 +1,142 @@
+// This is the main DLL file.
+
+#include "stdafx.h"
+
+#include "PowerManager.h"
+
+using namespace System::Diagnostics;
+
+namespace PowerManager
+{
+ ///
+ PowerSettingNotifier::PowerSettingNotifier(IntPtr aHandle, Boolean aService)
+ {
+ Construct(aHandle, aService);
+ }
+
+ ///
+ PowerSettingNotifier::PowerSettingNotifier(IntPtr aHandle)
+ {
+ //By default we assume we run as a Window
+ Construct(aHandle, false);
+ }
+
+ ///
+ void PowerSettingNotifier::Construct(IntPtr aHandle, Boolean aService)
+ {
+ iHandle = aHandle;
+ iIsService = aService;
+ iMonitorPowerOnDelegate = nullptr;
+ iMonitorPowerOffDelegate = nullptr;
+ iMonitorPowerObserverCount = 0;
+ }
+
+ ///
+ Boolean PowerSettingNotifier::RegisterPowerSettingNotification(IntPtr aHandle, Boolean aService)
+ {
+ HANDLE handle = aHandle.ToPointer();
+ HPOWERNOTIFY res=::RegisterPowerSettingNotification(handle, &GUID_MONITOR_POWER_ON, (aService?DEVICE_NOTIFY_SERVICE_HANDLE:DEVICE_NOTIFY_WINDOW_HANDLE));
+ return (res != NULL);
+ };
+
+ ///
+ Boolean PowerSettingNotifier::RegisterPowerSettingNotification(IntPtr aHandle)
+ {
+ return RegisterPowerSettingNotification(aHandle,false);
+ };
+
+ ///
+ void PowerSettingNotifier::WndProc(Message% aMessage)
+ {
+ POWERBROADCAST_SETTING* setting;
+
+ if (aMessage.Msg == WM_POWERBROADCAST && aMessage.WParam.ToInt32() == PBT_POWERSETTINGCHANGE)
+ {
+ setting=(POWERBROADCAST_SETTING*)aMessage.LParam.ToPointer();
+ if (setting->PowerSetting == GUID_MONITOR_POWER_ON)
+ {
+ if (setting->Data[0] == 0x0)
+ {
+ Debug::WriteLine(L"POWERBROADCAST: Monitor Power Off");
+ OnMonitorPowerOff();
+ }
+ else if (setting->Data[0] == 0x1)
+ {
+ Debug::WriteLine(L"POWERBROADCAST: Monitor Power On");
+ OnMonitorPowerOn();
+ }
+ }
+ }
+
+
+ }
+
+ ///
+ void PowerSettingNotifier::OnMonitorPowerOn::add(PowerManagerDelegate^ d)
+ {
+ iMonitorPowerOnDelegate += d;
+ iMonitorPowerObserverCount++;
+ //iMonitorPowerOnDelegate->GetInvocationList()->GetLength(0)
+ if (iMonitorPowerObserverCount == 1)
+ {
+ //TODO: register
+ RegisterPowerSettingNotification(iHandle,iIsService);
+ }
+
+ }
+
+ ///
+ void PowerSettingNotifier::OnMonitorPowerOn::remove(PowerManagerDelegate^ d)
+ {
+ iMonitorPowerOnDelegate -= d;
+ iMonitorPowerObserverCount--;
+ if (iMonitorPowerObserverCount==0)
+ {
+ //TODO: unregister
+ }
+ }
+
+ //
+ void PowerSettingNotifier::OnMonitorPowerOn::raise()
+ {
+ if (iMonitorPowerOnDelegate != nullptr)
+ {
+ iMonitorPowerOnDelegate->Invoke();
+ }
+ }
+
+ ///
+ void PowerSettingNotifier::OnMonitorPowerOff::add(PowerManagerDelegate^ d)
+ {
+ iMonitorPowerOffDelegate += d;
+ iMonitorPowerObserverCount++;
+ if (iMonitorPowerObserverCount == 1)
+ {
+ //TODO: register
+ RegisterPowerSettingNotification(iHandle, iIsService);
+ }
+ }
+
+ ///
+ void PowerSettingNotifier::OnMonitorPowerOff::remove(PowerManagerDelegate^ d)
+ {
+ iMonitorPowerOffDelegate -= d;
+ iMonitorPowerObserverCount--;
+ if (iMonitorPowerObserverCount == 0)
+ {
+ //TODO: unregister
+ }
+ }
+
+ //
+ void PowerSettingNotifier::OnMonitorPowerOff::raise()
+ {
+ if (iMonitorPowerOffDelegate != nullptr)
+ {
+ iMonitorPowerOffDelegate->Invoke();
+ }
+ }
+
+
+
+}
\ No newline at end of file
diff -r e22bf44c4300 -r e7c8c2b500bd PowerManager/PowerManager.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PowerManager/PowerManager.h Thu Sep 24 21:39:05 2015 +0200
@@ -0,0 +1,55 @@
+// PowerManager.h
+
+#pragma once
+
+using namespace System;
+using namespace System::Windows::Forms;
+
+namespace PowerManager
+{
+ public delegate void PowerManagerDelegate();
+
+ public ref class PowerSettingNotifier
+ {
+ public:
+ PowerSettingNotifier(IntPtr aHandle, Boolean aService);
+ PowerSettingNotifier(IntPtr aHandle);
+ //
+ void WndProc(Message% aMessage);
+
+ event PowerManagerDelegate^ OnMonitorPowerOn
+ {
+ void add(PowerManagerDelegate^ d);
+ void remove(PowerManagerDelegate^ d);
+ private:
+ void raise();
+ }
+
+ event PowerManagerDelegate^ OnMonitorPowerOff
+ {
+ void add(PowerManagerDelegate^ d);
+ void remove(PowerManagerDelegate^ d);
+ private:
+ void raise();
+ }
+
+ private:
+ void Construct(IntPtr aHandle, Boolean aService);
+ //
+ Boolean RegisterPowerSettingNotification(IntPtr aHandle, Boolean aService);
+ Boolean RegisterPowerSettingNotification(IntPtr aHandle);
+
+ private:
+ PowerManagerDelegate^ iMonitorPowerOnDelegate;
+ PowerManagerDelegate^ iMonitorPowerOffDelegate;
+
+
+ private:
+ /// Window or Service handle
+ IntPtr iHandle;
+ /// Specify whether we run as Window or a Service
+ Boolean iIsService;
+ ///
+ int iMonitorPowerObserverCount;
+ };
+}
diff -r e22bf44c4300 -r e7c8c2b500bd PowerManager/PowerManager.vcxproj
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PowerManager/PowerManager.vcxproj Thu Sep 24 21:39:05 2015 +0200
@@ -0,0 +1,166 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ {C174F23D-3055-49BC-B6B0-563011AF624D}
+ v4.6
+ ManagedCProj
+ PowerManager
+ 8.1
+
+
+
+ DynamicLibrary
+ true
+ v140
+ true
+ Unicode
+
+
+ DynamicLibrary
+ false
+ v140
+ true
+ Unicode
+
+
+ DynamicLibrary
+ true
+ v140
+ true
+ Unicode
+
+
+ DynamicLibrary
+ false
+ v140
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+ false
+
+
+
+ Level3
+ Disabled
+ WIN32;_DEBUG;%(PreprocessorDefinitions)
+ Use
+
+
+ true
+ user32.lib
+
+
+
+
+ Level3
+ Disabled
+ _DEBUG;%(PreprocessorDefinitions)
+ Use
+
+
+ true
+
+
+
+
+
+ Level3
+ WIN32;NDEBUG;%(PreprocessorDefinitions)
+ Use
+
+
+ true
+ user32.lib
+
+
+
+
+ Level3
+ NDEBUG;%(PreprocessorDefinitions)
+ Use
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create
+ Create
+ Create
+ Create
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r e22bf44c4300 -r e7c8c2b500bd PowerManager/PowerManager.vcxproj.filters
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PowerManager/PowerManager.vcxproj.filters Thu Sep 24 21:39:05 2015 +0200
@@ -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;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
+
+
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+
+
+
+
+
+ Resource Files
+
+
+
+
+ Resource Files
+
+
+
\ No newline at end of file
diff -r e22bf44c4300 -r e7c8c2b500bd PowerManager/ReadMe.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PowerManager/ReadMe.txt Thu Sep 24 21:39:05 2015 +0200
@@ -0,0 +1,38 @@
+========================================================================
+ DYNAMIC LINK LIBRARY : PowerManager Project Overview
+========================================================================
+
+AppWizard has created this PowerManager DLL for you.
+
+This file contains a summary of what you will find in each of the files that
+make up your PowerManager application.
+
+PowerManager.vcxproj
+ This is the main project file for VC++ projects generated using an Application Wizard.
+ It contains information about the version of Visual C++ that generated the file, and
+ information about the platforms, configurations, and project features selected with the
+ Application Wizard.
+
+PowerManager.vcxproj.filters
+ This is the filters file for VC++ projects generated using an Application Wizard.
+ It contains information about the association between the files in your project
+ and the filters. This association is used in the IDE to show grouping of files with
+ similar extensions under a specific node (for e.g. ".cpp" files are associated with the
+ "Source Files" filter).
+
+PowerManager.cpp
+ This is the main DLL source file.
+
+PowerManager.h
+ This file contains a class declaration.
+
+AssemblyInfo.cpp
+ Contains custom attributes for modifying assembly metadata.
+
+/////////////////////////////////////////////////////////////////////////////
+Other notes:
+
+AppWizard uses "TODO:" to indicate parts of the source code you
+should add to or customize.
+
+/////////////////////////////////////////////////////////////////////////////
diff -r e22bf44c4300 -r e7c8c2b500bd PowerManager/Stdafx.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PowerManager/Stdafx.cpp Thu Sep 24 21:39:05 2015 +0200
@@ -0,0 +1,5 @@
+// stdafx.cpp : source file that includes just the standard includes
+// PowerManager.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
diff -r e22bf44c4300 -r e7c8c2b500bd PowerManager/Stdafx.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PowerManager/Stdafx.h Thu Sep 24 21:39:05 2015 +0200
@@ -0,0 +1,8 @@
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently,
+// but are changed infrequently
+
+#pragma once
+
+#include
+
diff -r e22bf44c4300 -r e7c8c2b500bd PowerManager/app.ico
Binary file PowerManager/app.ico has changed
diff -r e22bf44c4300 -r e7c8c2b500bd PowerManager/app.rc
Binary file PowerManager/app.rc has changed
diff -r e22bf44c4300 -r e7c8c2b500bd PowerManager/resource.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PowerManager/resource.h Thu Sep 24 21:39:05 2015 +0200
@@ -0,0 +1,3 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by app.rc
diff -r e22bf44c4300 -r e7c8c2b500bd Server/App.config
--- a/Server/App.config Thu Sep 24 14:35:50 2015 +0200
+++ b/Server/App.config Thu Sep 24 21:39:05 2015 +0200
@@ -6,7 +6,7 @@
-
+
diff -r e22bf44c4300 -r e7c8c2b500bd Server/MainForm.Hid.cs
--- a/Server/MainForm.Hid.cs Thu Sep 24 14:35:50 2015 +0200
+++ b/Server/MainForm.Hid.cs Thu Sep 24 21:39:05 2015 +0200
@@ -31,6 +31,9 @@
///
private Hid.Handler iHidHandler;
+ ///
+ private PowerManager.PowerSettingNotifier iPowerSettingNotifier;
+
///
/// Register HID devices so that we receive corresponding WM_INPUT messages.
///
@@ -91,8 +94,24 @@
Debug.WriteLine("Failed to register raw input devices: " + Marshal.GetLastWin32Error().ToString());
}
iHidHandler.OnHidEvent += HandleHidEventThreadSafe;
+
+ //TODO: Move this some place else
+ iPowerSettingNotifier = new PowerManager.PowerSettingNotifier(Handle);
+ iPowerSettingNotifier.OnMonitorPowerOn += MonitorPowerOn;
+ iPowerSettingNotifier.OnMonitorPowerOff += MonitorPowerOff;
}
+ static void MonitorPowerOn()
+ {
+ Debug.WriteLine("ON");
+ }
+
+ static void MonitorPowerOff()
+ {
+ Debug.WriteLine("OFF");
+ }
+
+
///
/// Here we receive HID events from our HID library.
///
@@ -411,6 +430,13 @@
iHidHandler.ProcessInput(ref message);
break;
}
+
+ //Hook in our power manager
+ if (iPowerSettingNotifier!=null)
+ {
+ iPowerSettingNotifier.WndProc(ref message);
+ }
+
//Is that needed? Check the docs.
base.WndProc(ref message);
}
diff -r e22bf44c4300 -r e7c8c2b500bd Server/Properties/Resources.Designer.cs
--- a/Server/Properties/Resources.Designer.cs Thu Sep 24 14:35:50 2015 +0200
+++ b/Server/Properties/Resources.Designer.cs Thu Sep 24 21:39:05 2015 +0200
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
-// Runtime Version:4.0.30319.34209
+// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
diff -r e22bf44c4300 -r e7c8c2b500bd Server/Properties/Settings.Designer.cs
--- a/Server/Properties/Settings.Designer.cs Thu Sep 24 14:35:50 2015 +0200
+++ b/Server/Properties/Settings.Designer.cs Thu Sep 24 21:39:05 2015 +0200
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
-// Runtime Version:4.0.30319.18408
+// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -12,7 +12,7 @@
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
diff -r e22bf44c4300 -r e7c8c2b500bd Server/SharpDisplayManager.csproj
--- a/Server/SharpDisplayManager.csproj Thu Sep 24 14:35:50 2015 +0200
+++ b/Server/SharpDisplayManager.csproj Thu Sep 24 21:39:05 2015 +0200
@@ -1,5 +1,5 @@
-
+
Debug
@@ -9,7 +9,7 @@
Properties
SharpDisplayManager
SharpDisplayManager
- v4.5
+ v4.6
512
true
@@ -33,7 +33,7 @@
index.htm
false
0
- 0.5.4.0
+ 0.5.5.0
false
true
true
@@ -216,6 +216,10 @@
{88eee0dc-abbc-4738-bad6-7e08cf7f50f9}
SharpDisplayInterface
+
+ {c174f23d-3055-49bc-b6b0-563011af624d}
+ PowerManager
+
diff -r e22bf44c4300 -r e7c8c2b500bd SharpDisplayManager.sln
--- a/SharpDisplayManager.sln Thu Sep 24 14:35:50 2015 +0200
+++ b/SharpDisplayManager.sln Thu Sep 24 21:39:05 2015 +0200
@@ -1,44 +1,72 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2013
+# Visual Studio 14
+VisualStudioVersion = 14.0.23107.0
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpDisplayManager", "Server\SharpDisplayManager.csproj", "{1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpDisplayClient", "Client\SharpDisplayClient.csproj", "{7EE64074-8CDB-4448-B40C-81B75D6B31CD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpDisplayInterface", "Interface\SharpDisplayInterface.csproj", "{88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PowerManager", "PowerManager\PowerManager.vcxproj", "{C174F23D-3055-49BC-B6B0-563011AF624D}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Debug|x64.Build.0 = Debug|Any CPU
{1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Debug|x86.ActiveCfg = Debug|x86
{1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Debug|x86.Build.0 = Debug|x86
{1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Release|x64.ActiveCfg = Release|Any CPU
+ {1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Release|x64.Build.0 = Release|Any CPU
{1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Release|x86.ActiveCfg = Release|x86
{1DA8C1B3-18C5-4E74-BE4E-0B0E15FBAF49}.Release|x86.Build.0 = Release|x86
{7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Debug|x64.Build.0 = Debug|Any CPU
{7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Debug|x86.ActiveCfg = Debug|x86
{7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Debug|x86.Build.0 = Debug|x86
{7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Release|x64.ActiveCfg = Release|Any CPU
+ {7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Release|x64.Build.0 = Release|Any CPU
{7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Release|x86.ActiveCfg = Release|x86
{7EE64074-8CDB-4448-B40C-81B75D6B31CD}.Release|x86.Build.0 = Release|x86
{88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Debug|x64.Build.0 = Debug|Any CPU
{88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Debug|x86.ActiveCfg = Debug|x86
{88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Debug|x86.Build.0 = Debug|x86
{88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Release|x64.ActiveCfg = Release|Any CPU
+ {88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Release|x64.Build.0 = Release|Any CPU
{88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Release|x86.ActiveCfg = Release|x86
{88EEE0DC-ABBC-4738-BAD6-7E08CF7F50F9}.Release|x86.Build.0 = Release|x86
+ {C174F23D-3055-49BC-B6B0-563011AF624D}.Debug|Any CPU.ActiveCfg = Debug|Win32
+ {C174F23D-3055-49BC-B6B0-563011AF624D}.Debug|x64.ActiveCfg = Debug|x64
+ {C174F23D-3055-49BC-B6B0-563011AF624D}.Debug|x64.Build.0 = Debug|x64
+ {C174F23D-3055-49BC-B6B0-563011AF624D}.Debug|x86.ActiveCfg = Debug|Win32
+ {C174F23D-3055-49BC-B6B0-563011AF624D}.Debug|x86.Build.0 = Debug|Win32
+ {C174F23D-3055-49BC-B6B0-563011AF624D}.Release|Any CPU.ActiveCfg = Release|Win32
+ {C174F23D-3055-49BC-B6B0-563011AF624D}.Release|x64.ActiveCfg = Release|x64
+ {C174F23D-3055-49BC-B6B0-563011AF624D}.Release|x64.Build.0 = Release|x64
+ {C174F23D-3055-49BC-B6B0-563011AF624D}.Release|x86.ActiveCfg = Release|Win32
+ {C174F23D-3055-49BC-B6B0-563011AF624D}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE