// WARNING: Please don't edit this file. It was generated by Swift/WinRT v0.0.1

#pragma once
// Header files for imported files
#include <inspectable.h>
#include <EventToken.h>
#include <windowscontracts.h>
#include "Windows.Foundation.h"
#include "Windows.Foundation.Numerics.h"
#include "Windows.Storage.Streams.h"
#include "Windows.System.h"
#include "Windows.UI.h"

/* Forward Declarations */
#ifndef ____x_ABI_CWindows_CDevices_CLights_CILamp_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CLights_CILamp_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CLights_CILamp __x_ABI_CWindows_CDevices_CLights_CILamp;

#endif // ____x_ABI_CWindows_CDevices_CLights_CILamp_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CLights_CILampArray_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CLights_CILampArray_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CLights_CILampArray __x_ABI_CWindows_CDevices_CLights_CILampArray;

#endif // ____x_ABI_CWindows_CDevices_CLights_CILampArray_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CLights_CILampArrayStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CLights_CILampArrayStatics_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CLights_CILampArrayStatics __x_ABI_CWindows_CDevices_CLights_CILampArrayStatics;

#endif // ____x_ABI_CWindows_CDevices_CLights_CILampArrayStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs __x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs;

#endif // ____x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CLights_CILampInfo_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CLights_CILampInfo_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CLights_CILampInfo __x_ABI_CWindows_CDevices_CLights_CILampInfo;

#endif // ____x_ABI_CWindows_CDevices_CLights_CILampInfo_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CLights_CILampStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CLights_CILampStatics_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CLights_CILampStatics __x_ABI_CWindows_CDevices_CLights_CILampStatics;

#endif // ____x_ABI_CWindows_CDevices_CLights_CILampStatics_FWD_DEFINED__

// Parameterized interface forward declarations (C)

// Collection interface definitions

typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLamp __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLamp;

#if !defined(____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp;

    typedef struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* put_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLamp* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLamp** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp* This,
        __x_ABI_CWindows_CDevices_CLights_CILamp** result);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampVtbl;

    interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLamp_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLamp_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLamp __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLamp;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLamp;

    typedef struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLamp* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLamp* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLamp* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLamp* This,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp* asyncInfo,
        enum __x_ABI_CWindows_CFoundation_CAsyncStatus asyncStatus);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampVtbl;

    interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLamp
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLamp_INTERFACE_DEFINED__
    
typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArray __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArray;

#if !defined(____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray;

    typedef struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArrayVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* put_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArray* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArray** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray* This,
        __x_ABI_CWindows_CDevices_CLights_CILampArray** result);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArrayVtbl;

    interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArrayVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArray_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArray_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArray __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArray;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArray;

    typedef struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArrayVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArray* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArray* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArray* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArray* This,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray* asyncInfo,
        enum __x_ABI_CWindows_CFoundation_CAsyncStatus asyncStatus);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArrayVtbl;

    interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArray
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArrayVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CLights__CLampArray_INTERFACE_DEFINED__
    
#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CStorage_CStreams_CIBuffer __x_ABI_CWindows_CStorage_CStreams_CIBuffer;

#endif // ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__

typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer;

#if !defined(____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer;

    typedef struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBufferVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* put_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** result);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBufferVtbl;

    interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBufferVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer;

    typedef struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBufferVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* This,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer* asyncInfo,
        enum __x_ABI_CWindows_CFoundation_CAsyncStatus asyncStatus);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBufferVtbl;

    interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBufferVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
    
typedef struct __x_ABI_CWindows_CUI_CColor __x_ABI_CWindows_CUI_CColor;

#if !defined(____x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColor_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColor_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColor __x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColor;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColor;

    typedef struct __x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColor* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColor* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColor* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColor* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColor* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColor* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Value)(__x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColor* This,
        struct __x_ABI_CWindows_CUI_CColor* result);

        END_INTERFACE
    } __x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColorVtbl;

    interface __x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColor
    {
        CONST_VTBL struct __x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColorVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColor_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CLights__CLamp___x_ABI_CWindows__CDevices__CLights__CLampAvailabilityChangedEventArgs_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CLights__CLamp___x_ABI_CWindows__CDevices__CLights__CLampAvailabilityChangedEventArgs_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CLights__CLamp___x_ABI_CWindows__CDevices__CLights__CLampAvailabilityChangedEventArgs __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CLights__CLamp___x_ABI_CWindows__CDevices__CLights__CLampAvailabilityChangedEventArgs;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CLights__CLamp___x_ABI_CWindows__CDevices__CLights__CLampAvailabilityChangedEventArgs;

    typedef struct __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CLights__CLamp___x_ABI_CWindows__CDevices__CLights__CLampAvailabilityChangedEventArgsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CLights__CLamp___x_ABI_CWindows__CDevices__CLights__CLampAvailabilityChangedEventArgs* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CLights__CLamp___x_ABI_CWindows__CDevices__CLights__CLampAvailabilityChangedEventArgs* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CLights__CLamp___x_ABI_CWindows__CDevices__CLights__CLampAvailabilityChangedEventArgs* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CLights__CLamp___x_ABI_CWindows__CDevices__CLights__CLampAvailabilityChangedEventArgs* This,
        __x_ABI_CWindows_CDevices_CLights_CILamp* sender,
        __x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs* args);

        END_INTERFACE
    } __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CLights__CLamp___x_ABI_CWindows__CDevices__CLights__CLampAvailabilityChangedEventArgsVtbl;

    interface __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CLights__CLamp___x_ABI_CWindows__CDevices__CLights__CLampAvailabilityChangedEventArgs
    {
        CONST_VTBL struct __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CLights__CLamp___x_ABI_CWindows__CDevices__CLights__CLampAvailabilityChangedEventArgsVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CLights__CLamp___x_ABI_CWindows__CDevices__CLights__CLampAvailabilityChangedEventArgs_INTERFACE_DEFINED__
    
typedef enum __x_ABI_CWindows_CFoundation_CAsyncStatus __x_ABI_CWindows_CFoundation_CAsyncStatus;

#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CFoundation_CIAsyncAction __x_ABI_CWindows_CFoundation_CIAsyncAction;

#endif // ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CFoundation_CIAsyncInfo __x_ABI_CWindows_CFoundation_CIAsyncInfo;

#endif // ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CFoundation_CIClosable __x_ABI_CWindows_CFoundation_CIClosable;

#endif // ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CFoundation_CIPropertyValue_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIPropertyValue_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CFoundation_CIPropertyValue __x_ABI_CWindows_CFoundation_CIPropertyValue;

#endif // ____x_ABI_CWindows_CFoundation_CIPropertyValue_FWD_DEFINED__

typedef struct __x_ABI_CWindows_CFoundation_CNumerics_CVector3 __x_ABI_CWindows_CFoundation_CNumerics_CVector3;

typedef struct __x_ABI_CWindows_CFoundation_CTimeSpan __x_ABI_CWindows_CFoundation_CTimeSpan;

typedef enum __x_ABI_CWindows_CSystem_CVirtualKey __x_ABI_CWindows_CSystem_CVirtualKey;

typedef enum __x_ABI_CWindows_CDevices_CLights_CLampArrayKind __x_ABI_CWindows_CDevices_CLights_CLampArrayKind;

typedef enum __x_ABI_CWindows_CDevices_CLights_CLampPurposes __x_ABI_CWindows_CDevices_CLights_CLampPurposes;

enum __x_ABI_CWindows_CDevices_CLights_CLampArrayKind
    {
        __x_ABI_CWindows_CDevices_CLights_CLampArrayKind_Undefined = 0,
    __x_ABI_CWindows_CDevices_CLights_CLampArrayKind_Keyboard = 1,
    __x_ABI_CWindows_CDevices_CLights_CLampArrayKind_Mouse = 2,
    __x_ABI_CWindows_CDevices_CLights_CLampArrayKind_GameController = 3,
    __x_ABI_CWindows_CDevices_CLights_CLampArrayKind_Peripheral = 4,
    __x_ABI_CWindows_CDevices_CLights_CLampArrayKind_Scene = 5,
    __x_ABI_CWindows_CDevices_CLights_CLampArrayKind_Notification = 6,
    __x_ABI_CWindows_CDevices_CLights_CLampArrayKind_Chassis = 7,
    __x_ABI_CWindows_CDevices_CLights_CLampArrayKind_Wearable = 8,
    __x_ABI_CWindows_CDevices_CLights_CLampArrayKind_Furniture = 9,
    __x_ABI_CWindows_CDevices_CLights_CLampArrayKind_Art = 10,
};

enum __x_ABI_CWindows_CDevices_CLights_CLampPurposes
    {
        __x_ABI_CWindows_CDevices_CLights_CLampPurposes_Undefined = 0,
    __x_ABI_CWindows_CDevices_CLights_CLampPurposes_Control = 0x1,
    __x_ABI_CWindows_CDevices_CLights_CLampPurposes_Accent = 0x2,
    __x_ABI_CWindows_CDevices_CLights_CLampPurposes_Branding = 0x4,
    __x_ABI_CWindows_CDevices_CLights_CLampPurposes_Status = 0x8,
    __x_ABI_CWindows_CDevices_CLights_CLampPurposes_Illumination = 0x10,
    __x_ABI_CWindows_CDevices_CLights_CLampPurposes_Presentation = 0x20,
};

#if !defined(____x_ABI_CWindows_CDevices_CLights_CILamp_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CLights_CILamp_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CLights_CILampVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CLights_CILamp* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CLights_CILamp* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CLights_CILamp* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CLights_CILamp* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CLights_CILamp* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CLights_CILamp* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_DeviceId)(__x_ABI_CWindows_CDevices_CLights_CILamp* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* get_IsEnabled)(__x_ABI_CWindows_CDevices_CLights_CILamp* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* put_IsEnabled)(__x_ABI_CWindows_CDevices_CLights_CILamp* This,
        boolean value);
    HRESULT (STDMETHODCALLTYPE* get_BrightnessLevel)(__x_ABI_CWindows_CDevices_CLights_CILamp* This,
        FLOAT* value);
    HRESULT (STDMETHODCALLTYPE* put_BrightnessLevel)(__x_ABI_CWindows_CDevices_CLights_CILamp* This,
        FLOAT value);
    HRESULT (STDMETHODCALLTYPE* get_IsColorSettable)(__x_ABI_CWindows_CDevices_CLights_CILamp* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* get_Color)(__x_ABI_CWindows_CDevices_CLights_CILamp* This,
        struct __x_ABI_CWindows_CUI_CColor* value);
    HRESULT (STDMETHODCALLTYPE* put_Color)(__x_ABI_CWindows_CDevices_CLights_CILamp* This,
        struct __x_ABI_CWindows_CUI_CColor value);
    HRESULT (STDMETHODCALLTYPE* add_AvailabilityChanged)(__x_ABI_CWindows_CDevices_CLights_CILamp* This,
        __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CLights__CLamp___x_ABI_CWindows__CDevices__CLights__CLampAvailabilityChangedEventArgs* handler,
        EventRegistrationToken* token);
    HRESULT (STDMETHODCALLTYPE* remove_AvailabilityChanged)(__x_ABI_CWindows_CDevices_CLights_CILamp* This,
        EventRegistrationToken token);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CLights_CILampVtbl;

    interface __x_ABI_CWindows_CDevices_CLights_CILamp
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CLights_CILampVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CLights_CILamp;
#endif /* !defined(____x_ABI_CWindows_CDevices_CLights_CILamp_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CLights_CILampArray_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CLights_CILampArray_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CLights_CILampArrayVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_DeviceId)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* get_HardwareVendorId)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_HardwareProductId)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_HardwareVersion)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_LampArrayKind)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        enum __x_ABI_CWindows_CDevices_CLights_CLampArrayKind* value);
    HRESULT (STDMETHODCALLTYPE* get_LampCount)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_MinUpdateInterval)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan* value);
    HRESULT (STDMETHODCALLTYPE* get_BoundingBox)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        struct __x_ABI_CWindows_CFoundation_CNumerics_CVector3* value);
    HRESULT (STDMETHODCALLTYPE* get_IsEnabled)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* put_IsEnabled)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        boolean value);
    HRESULT (STDMETHODCALLTYPE* get_BrightnessLevel)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        DOUBLE* value);
    HRESULT (STDMETHODCALLTYPE* put_BrightnessLevel)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        DOUBLE value);
    HRESULT (STDMETHODCALLTYPE* get_IsConnected)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* get_SupportsVirtualKeys)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* GetLampInfo)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        INT32 lampIndex,
        __x_ABI_CWindows_CDevices_CLights_CILampInfo** result);
    HRESULT (STDMETHODCALLTYPE* GetIndicesForKey)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        enum __x_ABI_CWindows_CSystem_CVirtualKey key,
        UINT32* resultLength,
        INT32** result);
    HRESULT (STDMETHODCALLTYPE* GetIndicesForPurposes)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        enum __x_ABI_CWindows_CDevices_CLights_CLampPurposes purposes,
        UINT32* resultLength,
        INT32** result);
    HRESULT (STDMETHODCALLTYPE* SetColor)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        struct __x_ABI_CWindows_CUI_CColor desiredColor);
    HRESULT (STDMETHODCALLTYPE* SetColorForIndex)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        INT32 lampIndex,
        struct __x_ABI_CWindows_CUI_CColor desiredColor);
    HRESULT (STDMETHODCALLTYPE* SetSingleColorForIndices)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        struct __x_ABI_CWindows_CUI_CColor desiredColor,
        UINT32 lampIndexesLength,
        INT32* lampIndexes);
    HRESULT (STDMETHODCALLTYPE* SetColorsForIndices)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        UINT32 desiredColorsLength,
        struct __x_ABI_CWindows_CUI_CColor* desiredColors,
        UINT32 lampIndexesLength,
        INT32* lampIndexes);
    HRESULT (STDMETHODCALLTYPE* SetColorsForKey)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        struct __x_ABI_CWindows_CUI_CColor desiredColor,
        enum __x_ABI_CWindows_CSystem_CVirtualKey key);
    HRESULT (STDMETHODCALLTYPE* SetColorsForKeys)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        UINT32 desiredColorsLength,
        struct __x_ABI_CWindows_CUI_CColor* desiredColors,
        UINT32 keysLength,
        enum __x_ABI_CWindows_CSystem_CVirtualKey* keys);
    HRESULT (STDMETHODCALLTYPE* SetColorsForPurposes)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        struct __x_ABI_CWindows_CUI_CColor desiredColor,
        enum __x_ABI_CWindows_CDevices_CLights_CLampPurposes purposes);
    HRESULT (STDMETHODCALLTYPE* SendMessageAsync)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        INT32 messageId,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* message,
        __x_ABI_CWindows_CFoundation_CIAsyncAction** operation);
    HRESULT (STDMETHODCALLTYPE* RequestMessageAsync)(__x_ABI_CWindows_CDevices_CLights_CILampArray* This,
        INT32 messageId,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CStorage__CStreams__CIBuffer** operation);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CLights_CILampArrayVtbl;

    interface __x_ABI_CWindows_CDevices_CLights_CILampArray
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CLights_CILampArrayVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CLights_CILampArray;
#endif /* !defined(____x_ABI_CWindows_CDevices_CLights_CILampArray_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CLights_CILampArrayStatics_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CLights_CILampArrayStatics_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CLights_CILampArrayStaticsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CLights_CILampArrayStatics* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CLights_CILampArrayStatics* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CLights_CILampArrayStatics* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CLights_CILampArrayStatics* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CLights_CILampArrayStatics* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CLights_CILampArrayStatics* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetDeviceSelector)(__x_ABI_CWindows_CDevices_CLights_CILampArrayStatics* This,
        HSTRING* result);
    HRESULT (STDMETHODCALLTYPE* FromIdAsync)(__x_ABI_CWindows_CDevices_CLights_CILampArrayStatics* This,
        HSTRING deviceId,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLampArray** operation);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CLights_CILampArrayStaticsVtbl;

    interface __x_ABI_CWindows_CDevices_CLights_CILampArrayStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CLights_CILampArrayStaticsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CLights_CILampArrayStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CLights_CILampArrayStatics_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_IsAvailable)(__x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs* This,
        boolean* value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgsVtbl;

    interface __x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs;
#endif /* !defined(____x_ABI_CWindows_CDevices_CLights_CILampAvailabilityChangedEventArgs_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CLights_CILampInfo_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CLights_CILampInfo_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CLights_CILampInfoVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Index)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_Purposes)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This,
        enum __x_ABI_CWindows_CDevices_CLights_CLampPurposes* value);
    HRESULT (STDMETHODCALLTYPE* get_Position)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This,
        struct __x_ABI_CWindows_CFoundation_CNumerics_CVector3* value);
    HRESULT (STDMETHODCALLTYPE* get_RedLevelCount)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_GreenLevelCount)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_BlueLevelCount)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_GainLevelCount)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_FixedColor)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This,
        __x_ABI_C__FIReference_1___x_ABI_CWindows__CUI__CColor** value);
    HRESULT (STDMETHODCALLTYPE* GetNearestSupportedColor)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This,
        struct __x_ABI_CWindows_CUI_CColor desiredColor,
        struct __x_ABI_CWindows_CUI_CColor* result);
    HRESULT (STDMETHODCALLTYPE* get_UpdateLatency)(__x_ABI_CWindows_CDevices_CLights_CILampInfo* This,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan* value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CLights_CILampInfoVtbl;

    interface __x_ABI_CWindows_CDevices_CLights_CILampInfo
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CLights_CILampInfoVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CLights_CILampInfo;
#endif /* !defined(____x_ABI_CWindows_CDevices_CLights_CILampInfo_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CLights_CILampStatics_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CLights_CILampStatics_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CLights_CILampStaticsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CLights_CILampStatics* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CLights_CILampStatics* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CLights_CILampStatics* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CLights_CILampStatics* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CLights_CILampStatics* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CLights_CILampStatics* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetDeviceSelector)(__x_ABI_CWindows_CDevices_CLights_CILampStatics* This,
        HSTRING* value);
    HRESULT (STDMETHODCALLTYPE* FromIdAsync)(__x_ABI_CWindows_CDevices_CLights_CILampStatics* This,
        HSTRING deviceId,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp** operation);
    HRESULT (STDMETHODCALLTYPE* GetDefaultAsync)(__x_ABI_CWindows_CDevices_CLights_CILampStatics* This,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CLights__CLamp** operation);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CLights_CILampStaticsVtbl;

    interface __x_ABI_CWindows_CDevices_CLights_CILampStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CLights_CILampStaticsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CLights_CILampStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CLights_CILampStatics_INTERFACE_DEFINED__) */
    
