//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0015
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace System
    {
        namespace Power
        {
            namespace Diagnostics
            {
                interface IBackgroundEnergyDiagnosticsStatics;

                interface IForegroundEnergyDiagnosticsStatics;

                runtimeclass BackgroundEnergyDiagnostics;

                runtimeclass ForegroundEnergyDiagnostics;
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace System
    {
        namespace Power
        {
            namespace Diagnostics
            {
                [exclusiveto(Windows.System.Power.Diagnostics.BackgroundEnergyDiagnostics)]
                [uuid(D7663702-D3A6-46E0-8F9B-50B95BB4F9C5)]
                [version(0x0A000000)]
                interface IBackgroundEnergyDiagnosticsStatics : IInspectable
                {
                    [propget] HRESULT DeviceSpecificConversionFactor([out] [retval] DOUBLE* value);
                    HRESULT ComputeTotalEnergyUsage([out] [retval] UINT64* value);
                    HRESULT ResetTotalEnergyUsage();
                }

                [exclusiveto(Windows.System.Power.Diagnostics.ForegroundEnergyDiagnostics)]
                [uuid(23CA0917-CD07-4609-BE15-8FE894C5E41E)]
                [version(0x0A000000)]
                interface IForegroundEnergyDiagnosticsStatics : IInspectable
                {
                    [propget] HRESULT DeviceSpecificConversionFactor([out] [retval] DOUBLE* value);
                    HRESULT ComputeTotalEnergyUsage([out] [retval] UINT64* value);
                    HRESULT ResetTotalEnergyUsage();
                }

                [marshaling_behavior(agile)]
                [static(Windows.System.Power.Diagnostics.IBackgroundEnergyDiagnosticsStatics, 0x0A000000)]
                [version(0x0A000000)]
                runtimeclass BackgroundEnergyDiagnostics
                {
                }

                [marshaling_behavior(agile)]
                [static(Windows.System.Power.Diagnostics.IForegroundEnergyDiagnosticsStatics, 0x0A000000)]
                [version(0x0A000000)]
                runtimeclass ForegroundEnergyDiagnostics
                {
                }
            }
        }
    }
}
