HEX
Server: Apache
System: Windows NT MAGNETO-ARM 10.0 build 22000 (Windows 10) AMD64
User: Michel (0)
PHP: 7.4.7
Disabled: NONE
Upload Files
File: C:/Ruby27-x64/msys64/mingw64/include/windows.devices.enumeration.h
/*** Autogenerated by WIDL 7.7 from include/windows.devices.enumeration.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __windows_devices_enumeration_h__
#define __windows_devices_enumeration_h__

/* Forward declarations */

#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation;
#ifdef __cplusplus
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation ABI::Windows::Devices::Enumeration::IDeviceInformation
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                interface IDeviceInformation;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate;
#ifdef __cplusplus
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate ABI::Windows::Devices::Enumeration::IDeviceInformationUpdate
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                interface IDeviceInformationUpdate;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher;
#ifdef __cplusplus
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher ABI::Windows::Devices::Enumeration::IDeviceWatcher
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                interface IDeviceWatcher;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation;
#ifdef __cplusplus
#define __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation ABI::Windows::Devices::Enumeration::IEnclosureLocation
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                interface IEnclosureLocation;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CDeviceInformation_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CDeviceInformation_FWD_DEFINED__
#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                class DeviceInformation;
            }
        }
    }
}
#else
typedef struct __x_ABI_CWindows_CDevices_CEnumeration_CDeviceInformation __x_ABI_CWindows_CDevices_CEnumeration_CDeviceInformation;
#endif /* defined __cplusplus */
#endif /* defined ____x_ABI_CWindows_CDevices_CEnumeration_CDeviceInformation_FWD_DEFINED__ */

#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CDeviceInformationUpdate_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CDeviceInformationUpdate_FWD_DEFINED__
#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                class DeviceInformationUpdate;
            }
        }
    }
}
#else
typedef struct __x_ABI_CWindows_CDevices_CEnumeration_CDeviceInformationUpdate __x_ABI_CWindows_CDevices_CEnumeration_CDeviceInformationUpdate;
#endif /* defined __cplusplus */
#endif /* defined ____x_ABI_CWindows_CDevices_CEnumeration_CDeviceInformationUpdate_FWD_DEFINED__ */

#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CDeviceThumbnail_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CDeviceThumbnail_FWD_DEFINED__
#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                class DeviceThumbnail;
            }
        }
    }
}
#else
typedef struct __x_ABI_CWindows_CDevices_CEnumeration_CDeviceThumbnail __x_ABI_CWindows_CDevices_CEnumeration_CDeviceThumbnail;
#endif /* defined __cplusplus */
#endif /* defined ____x_ABI_CWindows_CDevices_CEnumeration_CDeviceThumbnail_FWD_DEFINED__ */

#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CDeviceWatcher_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CDeviceWatcher_FWD_DEFINED__
#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                class DeviceWatcher;
            }
        }
    }
}
#else
typedef struct __x_ABI_CWindows_CDevices_CEnumeration_CDeviceWatcher __x_ABI_CWindows_CDevices_CEnumeration_CDeviceWatcher;
#endif /* defined __cplusplus */
#endif /* defined ____x_ABI_CWindows_CDevices_CEnumeration_CDeviceWatcher_FWD_DEFINED__ */

#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CEnclosureLocation_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CEnclosureLocation_FWD_DEFINED__
#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                class EnclosureLocation;
            }
        }
    }
}
#else
typedef struct __x_ABI_CWindows_CDevices_CEnumeration_CEnclosureLocation __x_ABI_CWindows_CDevices_CEnumeration_CEnclosureLocation;
#endif /* defined __cplusplus */
#endif /* defined ____x_ABI_CWindows_CDevices_CEnumeration_CEnclosureLocation_FWD_DEFINED__ */

#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_FWD_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_FWD_DEFINED__
typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation;
#ifdef __cplusplus
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceInformation* >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_FWD_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_FWD_DEFINED__
typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail;
#ifdef __cplusplus
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceThumbnail* >
#endif /* __cplusplus */
#endif

#ifndef ____FIMapView_2_HSTRING_IInspectable_FWD_DEFINED__
#define ____FIMapView_2_HSTRING_IInspectable_FWD_DEFINED__
typedef interface __FIMapView_2_HSTRING_IInspectable __FIMapView_2_HSTRING_IInspectable;
#ifdef __cplusplus
#define __FIMapView_2_HSTRING_IInspectable ABI::Windows::Foundation::Collections::IMapView<HSTRING,IInspectable* >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_FWD_DEFINED__
#define ____FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_FWD_DEFINED__
typedef interface __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation;
#ifdef __cplusplus
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceInformation* >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_FWD_DEFINED__
#define ____FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_FWD_DEFINED__
typedef interface __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail;
#ifdef __cplusplus
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceThumbnail* >
#endif /* __cplusplus */
#endif

#ifndef ____FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_FWD_DEFINED__
#define ____FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_FWD_DEFINED__
typedef interface __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable;
#ifdef __cplusplus
#define __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,IInspectable* >
#endif /* __cplusplus */
#endif

#ifndef ____FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_FWD_DEFINED__
#define ____FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_FWD_DEFINED__
typedef interface __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation;
#ifdef __cplusplus
#define __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,ABI::Windows::Devices::Enumeration::DeviceInformation* >
#endif /* __cplusplus */
#endif

#ifndef ____FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_FWD_DEFINED__
#define ____FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_FWD_DEFINED__
typedef interface __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate;
#ifdef __cplusplus
#define __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,ABI::Windows::Devices::Enumeration::DeviceInformationUpdate* >
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <inspectable.h>
#include <asyncinfo.h>
#include <eventtoken.h>
#include <windowscontracts.h>
#include <windows.storage.streams.h>
#include <windows.foundation.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifndef __cplusplus
typedef enum __x_ABI_CWindows_CDevices_CEnumeration_CDeviceWatcherStatus __x_ABI_CWindows_CDevices_CEnumeration_CDeviceWatcherStatus;
#endif /* __cplusplus */

#ifndef __cplusplus
typedef enum __x_ABI_CWindows_CDevices_CEnumeration_CPanel __x_ABI_CWindows_CDevices_CEnumeration_CPanel;
#endif /* __cplusplus */

#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation;
#ifdef __cplusplus
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation ABI::Windows::Devices::Enumeration::IDeviceInformation
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                interface IDeviceInformation;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationStatics __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationStatics;
#ifdef __cplusplus
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationStatics ABI::Windows::Devices::Enumeration::IDeviceInformationStatics
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                interface IDeviceInformationStatics;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationStatics2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationStatics2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationStatics2 __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationStatics2;
#ifdef __cplusplus
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationStatics2 ABI::Windows::Devices::Enumeration::IDeviceInformationStatics2
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                interface IDeviceInformationStatics2;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate;
#ifdef __cplusplus
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate ABI::Windows::Devices::Enumeration::IDeviceInformationUpdate
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                interface IDeviceInformationUpdate;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation;
#ifdef __cplusplus
#define __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation ABI::Windows::Devices::Enumeration::IEnclosureLocation
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                interface IEnclosureLocation;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____FIMapView_2_HSTRING_IInspectable_FWD_DEFINED__
#define ____FIMapView_2_HSTRING_IInspectable_FWD_DEFINED__
typedef interface __FIMapView_2_HSTRING_IInspectable __FIMapView_2_HSTRING_IInspectable;
#ifdef __cplusplus
#define __FIMapView_2_HSTRING_IInspectable ABI::Windows::Foundation::Collections::IMapView<HSTRING,IInspectable* >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_FWD_DEFINED__
#define ____FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_FWD_DEFINED__
typedef interface __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation;
#ifdef __cplusplus
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceInformation* >
#endif /* __cplusplus */
#endif

#ifndef ____FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_FWD_DEFINED__
#define ____FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_FWD_DEFINED__
typedef interface __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail;
#ifdef __cplusplus
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceThumbnail* >
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIContentTypeProvider_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIContentTypeProvider_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CStorage_CStreams_CIContentTypeProvider __x_ABI_CWindows_CStorage_CStreams_CIContentTypeProvider;
#ifdef __cplusplus
#define __x_ABI_CWindows_CStorage_CStreams_CIContentTypeProvider ABI::Windows::Storage::Streams::IContentTypeProvider
namespace ABI {
    namespace Windows {
        namespace Storage {
            namespace Streams {
                interface IContentTypeProvider;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIInputStream_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIInputStream_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CStorage_CStreams_CIInputStream __x_ABI_CWindows_CStorage_CStreams_CIInputStream;
#ifdef __cplusplus
#define __x_ABI_CWindows_CStorage_CStreams_CIInputStream ABI::Windows::Storage::Streams::IInputStream
namespace ABI {
    namespace Windows {
        namespace Storage {
            namespace Streams {
                interface IInputStream;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIOutputStream_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIOutputStream_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CStorage_CStreams_CIOutputStream __x_ABI_CWindows_CStorage_CStreams_CIOutputStream;
#ifdef __cplusplus
#define __x_ABI_CWindows_CStorage_CStreams_CIOutputStream ABI::Windows::Storage::Streams::IOutputStream
namespace ABI {
    namespace Windows {
        namespace Storage {
            namespace Streams {
                interface IOutputStream;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream;
#ifdef __cplusplus
#define __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStream ABI::Windows::Storage::Streams::IRandomAccessStream
namespace ABI {
    namespace Windows {
        namespace Storage {
            namespace Streams {
                interface IRandomAccessStream;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType;
#ifdef __cplusplus
#define __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType ABI::Windows::Storage::Streams::IRandomAccessStreamWithContentType
namespace ABI {
    namespace Windows {
        namespace Storage {
            namespace Streams {
                interface IRandomAccessStreamWithContentType;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifdef __cplusplus
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                enum DeviceWatcherStatus {
                    DeviceWatcherStatus_Created = 0,
                    DeviceWatcherStatus_Started = 1,
                    DeviceWatcherStatus_EnumerationCompleted = 2,
                    DeviceWatcherStatus_Stopping = 3,
                    DeviceWatcherStatus_Stopped = 4,
                    DeviceWatcherStatus_Aborted = 5
                };
            }
        }
    }
}
extern "C" {
#else
enum __x_ABI_CWindows_CDevices_CEnumeration_CDeviceWatcherStatus {
    DeviceWatcherStatus_Created = 0,
    DeviceWatcherStatus_Started = 1,
    DeviceWatcherStatus_EnumerationCompleted = 2,
    DeviceWatcherStatus_Stopping = 3,
    DeviceWatcherStatus_Stopped = 4,
    DeviceWatcherStatus_Aborted = 5
};
#ifdef WIDL_using_Windows_Devices_Enumeration
#define DeviceWatcherStatus __x_ABI_CWindows_CDevices_CEnumeration_CDeviceWatcherStatus
#endif /* WIDL_using_Windows_Devices_Enumeration */
#endif

#ifdef __cplusplus
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                enum Panel {
                    Panel_Unknown = 0,
                    Panel_Front = 1,
                    Panel_Back = 2,
                    Panel_Top = 3,
                    Panel_Bottom = 4,
                    Panel_Left = 5,
                    Panel_Right = 6
                };
            }
        }
    }
}
extern "C" {
#else
enum __x_ABI_CWindows_CDevices_CEnumeration_CPanel {
    Panel_Unknown = 0,
    Panel_Front = 1,
    Panel_Back = 2,
    Panel_Top = 3,
    Panel_Bottom = 4,
    Panel_Left = 5,
    Panel_Right = 6
};
#ifdef WIDL_using_Windows_Devices_Enumeration
#define Panel __x_ABI_CWindows_CDevices_CEnumeration_CPanel
#endif /* WIDL_using_Windows_Devices_Enumeration */
#endif

/*****************************************************************************
 * IDeviceInformation interface
 */
#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation, 0xaba0fb95, 0x4398, 0x489d, 0x8e,0x44, 0xe6,0x13,0x09,0x27,0x01,0x1f);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                MIDL_INTERFACE("aba0fb95-4398-489d-8e44-e6130927011f")
                IDeviceInformation : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE get_Id(
                        HSTRING *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_Name(
                        HSTRING *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_IsEnabled(
                        boolean *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_IsDefault(
                        boolean *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_EnclosureLocation(
                        ABI::Windows::Devices::Enumeration::IEnclosureLocation **value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_Properties(
                        ABI::Windows::Foundation::Collections::IMapView<HSTRING,IInspectable* > **value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE Update(
                        ABI::Windows::Devices::Enumeration::IDeviceInformationUpdate *info) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetThumbnailAsync(
                        ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceThumbnail* > **operation) = 0;

                    virtual HRESULT STDMETHODCALLTYPE GetGlyphThumbnailAsync(
                        ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceThumbnail* > **operation) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation, 0xaba0fb95, 0x4398, 0x489d, 0x8e,0x44, 0xe6,0x13,0x09,0x27,0x01,0x1f)
#endif
#else
typedef struct __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *This,
        TrustLevel *trustLevel);

    /*** IDeviceInformation methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Id)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *This,
        HSTRING *value);

    HRESULT (STDMETHODCALLTYPE *get_Name)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *This,
        HSTRING *value);

    HRESULT (STDMETHODCALLTYPE *get_IsEnabled)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *get_IsDefault)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *get_EnclosureLocation)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *This,
        __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation **value);

    HRESULT (STDMETHODCALLTYPE *get_Properties)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *This,
        __FIMapView_2_HSTRING_IInspectable **value);

    HRESULT (STDMETHODCALLTYPE *Update)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *This,
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate *info);

    HRESULT (STDMETHODCALLTYPE *GetThumbnailAsync)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *This,
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail **operation);

    HRESULT (STDMETHODCALLTYPE *GetGlyphThumbnailAsync)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *This,
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail **operation);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationVtbl;

interface __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation {
    CONST_VTBL __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IDeviceInformation methods ***/
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_Id(This,value) (This)->lpVtbl->get_Id(This,value)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_Name(This,value) (This)->lpVtbl->get_Name(This,value)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_IsEnabled(This,value) (This)->lpVtbl->get_IsEnabled(This,value)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_IsDefault(This,value) (This)->lpVtbl->get_IsDefault(This,value)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_EnclosureLocation(This,value) (This)->lpVtbl->get_EnclosureLocation(This,value)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_Properties(This,value) (This)->lpVtbl->get_Properties(This,value)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_Update(This,info) (This)->lpVtbl->Update(This,info)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_GetThumbnailAsync(This,operation) (This)->lpVtbl->GetThumbnailAsync(This,operation)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_GetGlyphThumbnailAsync(This,operation) (This)->lpVtbl->GetGlyphThumbnailAsync(This,operation)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_QueryInterface(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_AddRef(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_Release(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_GetIids(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_GetTrustLevel(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IDeviceInformation methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_Id(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation* This,HSTRING *value) {
    return This->lpVtbl->get_Id(This,value);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_Name(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation* This,HSTRING *value) {
    return This->lpVtbl->get_Name(This,value);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_IsEnabled(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation* This,boolean *value) {
    return This->lpVtbl->get_IsEnabled(This,value);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_IsDefault(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation* This,boolean *value) {
    return This->lpVtbl->get_IsDefault(This,value);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_EnclosureLocation(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation* This,__x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation **value) {
    return This->lpVtbl->get_EnclosureLocation(This,value);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_Properties(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation* This,__FIMapView_2_HSTRING_IInspectable **value) {
    return This->lpVtbl->get_Properties(This,value);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_Update(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation* This,__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate *info) {
    return This->lpVtbl->Update(This,info);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_GetThumbnailAsync(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation* This,__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail **operation) {
    return This->lpVtbl->GetThumbnailAsync(This,operation);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_GetGlyphThumbnailAsync(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation* This,__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail **operation) {
    return This->lpVtbl->GetGlyphThumbnailAsync(This,operation);
}
#endif
#ifdef WIDL_using_Windows_Devices_Enumeration
#define IID_IDeviceInformation IID___x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation
#define IDeviceInformationVtbl __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationVtbl
#define IDeviceInformation __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation
#define IDeviceInformation_QueryInterface __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_QueryInterface
#define IDeviceInformation_AddRef __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_AddRef
#define IDeviceInformation_Release __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_Release
#define IDeviceInformation_GetIids __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_GetIids
#define IDeviceInformation_GetRuntimeClassName __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_GetRuntimeClassName
#define IDeviceInformation_GetTrustLevel __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_GetTrustLevel
#define IDeviceInformation_get_Id __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_Id
#define IDeviceInformation_get_Name __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_Name
#define IDeviceInformation_get_IsEnabled __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_IsEnabled
#define IDeviceInformation_get_IsDefault __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_IsDefault
#define IDeviceInformation_get_EnclosureLocation __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_EnclosureLocation
#define IDeviceInformation_get_Properties __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_get_Properties
#define IDeviceInformation_Update __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_Update
#define IDeviceInformation_GetThumbnailAsync __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_GetThumbnailAsync
#define IDeviceInformation_GetGlyphThumbnailAsync __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_GetGlyphThumbnailAsync
#endif /* WIDL_using_Windows_Devices_Enumeration */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDeviceInformationUpdate interface
 */
#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate, 0x8f315305, 0xd972, 0x44b7, 0xa3,0x7e, 0x9e,0x82,0x2c,0x78,0x21,0x3b);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                MIDL_INTERFACE("8f315305-d972-44b7-a37e-9e822c78213b")
                IDeviceInformationUpdate : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE get_Id(
                        HSTRING *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_Properties(
                        ABI::Windows::Foundation::Collections::IMapView<HSTRING,IInspectable* > **value) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate, 0x8f315305, 0xd972, 0x44b7, 0xa3,0x7e, 0x9e,0x82,0x2c,0x78,0x21,0x3b)
#endif
#else
typedef struct __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdateVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate *This,
        TrustLevel *trustLevel);

    /*** IDeviceInformationUpdate methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Id)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate *This,
        HSTRING *value);

    HRESULT (STDMETHODCALLTYPE *get_Properties)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate *This,
        __FIMapView_2_HSTRING_IInspectable **value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdateVtbl;

interface __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate {
    CONST_VTBL __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdateVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IDeviceInformationUpdate methods ***/
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_get_Id(This,value) (This)->lpVtbl->get_Id(This,value)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_get_Properties(This,value) (This)->lpVtbl->get_Properties(This,value)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_QueryInterface(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_AddRef(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_Release(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_GetIids(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_GetTrustLevel(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IDeviceInformationUpdate methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_get_Id(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate* This,HSTRING *value) {
    return This->lpVtbl->get_Id(This,value);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_get_Properties(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate* This,__FIMapView_2_HSTRING_IInspectable **value) {
    return This->lpVtbl->get_Properties(This,value);
}
#endif
#ifdef WIDL_using_Windows_Devices_Enumeration
#define IID_IDeviceInformationUpdate IID___x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate
#define IDeviceInformationUpdateVtbl __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdateVtbl
#define IDeviceInformationUpdate __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate
#define IDeviceInformationUpdate_QueryInterface __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_QueryInterface
#define IDeviceInformationUpdate_AddRef __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_AddRef
#define IDeviceInformationUpdate_Release __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_Release
#define IDeviceInformationUpdate_GetIids __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_GetIids
#define IDeviceInformationUpdate_GetRuntimeClassName __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_GetRuntimeClassName
#define IDeviceInformationUpdate_GetTrustLevel __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_GetTrustLevel
#define IDeviceInformationUpdate_get_Id __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_get_Id
#define IDeviceInformationUpdate_get_Properties __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_get_Properties
#endif /* WIDL_using_Windows_Devices_Enumeration */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDeviceWatcher interface
 */
#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher, 0xc9eab97d, 0x8f6b, 0x4f96, 0xa9,0xf4, 0xab,0xc8,0x14,0xe2,0x22,0x71);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                MIDL_INTERFACE("c9eab97d-8f6b-4f96-a9f4-abc814e22271")
                IDeviceWatcher : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE add_Added(
                        ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,ABI::Windows::Devices::Enumeration::DeviceInformation* > *handler,
                        EventRegistrationToken *token) = 0;

                    virtual HRESULT STDMETHODCALLTYPE remove_Added(
                        EventRegistrationToken token) = 0;

                    virtual HRESULT STDMETHODCALLTYPE add_Updated(
                        ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,ABI::Windows::Devices::Enumeration::DeviceInformationUpdate* > *handler,
                        EventRegistrationToken *token) = 0;

                    virtual HRESULT STDMETHODCALLTYPE remove_Updated(
                        EventRegistrationToken token) = 0;

                    virtual HRESULT STDMETHODCALLTYPE add_Removed(
                        ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,ABI::Windows::Devices::Enumeration::DeviceInformationUpdate* > *handler,
                        EventRegistrationToken *token) = 0;

                    virtual HRESULT STDMETHODCALLTYPE remove_Removed(
                        EventRegistrationToken token) = 0;

                    virtual HRESULT STDMETHODCALLTYPE add_EnumerationCompleted(
                        ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,IInspectable* > *handler,
                        EventRegistrationToken *token) = 0;

                    virtual HRESULT STDMETHODCALLTYPE remove_EnumerationCompleted(
                        EventRegistrationToken token) = 0;

                    virtual HRESULT STDMETHODCALLTYPE add_Stopped(
                        ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,IInspectable* > *handler,
                        EventRegistrationToken *token) = 0;

                    virtual HRESULT STDMETHODCALLTYPE remove_Stopped(
                        EventRegistrationToken token) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_Status(
                        enum DeviceWatcherStatus *status) = 0;

                    virtual HRESULT STDMETHODCALLTYPE Start(
                        ) = 0;

                    virtual HRESULT STDMETHODCALLTYPE Stop(
                        ) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher, 0xc9eab97d, 0x8f6b, 0x4f96, 0xa9,0xf4, 0xab,0xc8,0x14,0xe2,0x22,0x71)
#endif
#else
typedef struct __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcherVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This,
        TrustLevel *trustLevel);

    /*** IDeviceWatcher methods ***/
    HRESULT (STDMETHODCALLTYPE *add_Added)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This,
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation *handler,
        EventRegistrationToken *token);

    HRESULT (STDMETHODCALLTYPE *remove_Added)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This,
        EventRegistrationToken token);

    HRESULT (STDMETHODCALLTYPE *add_Updated)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This,
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate *handler,
        EventRegistrationToken *token);

    HRESULT (STDMETHODCALLTYPE *remove_Updated)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This,
        EventRegistrationToken token);

    HRESULT (STDMETHODCALLTYPE *add_Removed)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This,
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate *handler,
        EventRegistrationToken *token);

    HRESULT (STDMETHODCALLTYPE *remove_Removed)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This,
        EventRegistrationToken token);

    HRESULT (STDMETHODCALLTYPE *add_EnumerationCompleted)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This,
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable *handler,
        EventRegistrationToken *token);

    HRESULT (STDMETHODCALLTYPE *remove_EnumerationCompleted)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This,
        EventRegistrationToken token);

    HRESULT (STDMETHODCALLTYPE *add_Stopped)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This,
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable *handler,
        EventRegistrationToken *token);

    HRESULT (STDMETHODCALLTYPE *remove_Stopped)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This,
        EventRegistrationToken token);

    HRESULT (STDMETHODCALLTYPE *get_Status)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This,
        enum __x_ABI_CWindows_CDevices_CEnumeration_CDeviceWatcherStatus *status);

    HRESULT (STDMETHODCALLTYPE *Start)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This);

    HRESULT (STDMETHODCALLTYPE *Stop)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *This);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcherVtbl;

interface __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher {
    CONST_VTBL __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcherVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IDeviceWatcher methods ***/
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_add_Added(This,handler,token) (This)->lpVtbl->add_Added(This,handler,token)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_remove_Added(This,token) (This)->lpVtbl->remove_Added(This,token)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_add_Updated(This,handler,token) (This)->lpVtbl->add_Updated(This,handler,token)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_remove_Updated(This,token) (This)->lpVtbl->remove_Updated(This,token)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_add_Removed(This,handler,token) (This)->lpVtbl->add_Removed(This,handler,token)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_remove_Removed(This,token) (This)->lpVtbl->remove_Removed(This,token)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_add_EnumerationCompleted(This,handler,token) (This)->lpVtbl->add_EnumerationCompleted(This,handler,token)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_remove_EnumerationCompleted(This,token) (This)->lpVtbl->remove_EnumerationCompleted(This,token)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_add_Stopped(This,handler,token) (This)->lpVtbl->add_Stopped(This,handler,token)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_remove_Stopped(This,token) (This)->lpVtbl->remove_Stopped(This,token)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_get_Status(This,status) (This)->lpVtbl->get_Status(This,status)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_Start(This) (This)->lpVtbl->Start(This)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_Stop(This) (This)->lpVtbl->Stop(This)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_QueryInterface(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_AddRef(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_Release(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_GetIids(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_GetTrustLevel(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IDeviceWatcher methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_add_Added(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This,__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation *handler,EventRegistrationToken *token) {
    return This->lpVtbl->add_Added(This,handler,token);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_remove_Added(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This,EventRegistrationToken token) {
    return This->lpVtbl->remove_Added(This,token);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_add_Updated(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This,__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate *handler,EventRegistrationToken *token) {
    return This->lpVtbl->add_Updated(This,handler,token);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_remove_Updated(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This,EventRegistrationToken token) {
    return This->lpVtbl->remove_Updated(This,token);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_add_Removed(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This,__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate *handler,EventRegistrationToken *token) {
    return This->lpVtbl->add_Removed(This,handler,token);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_remove_Removed(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This,EventRegistrationToken token) {
    return This->lpVtbl->remove_Removed(This,token);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_add_EnumerationCompleted(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This,__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable *handler,EventRegistrationToken *token) {
    return This->lpVtbl->add_EnumerationCompleted(This,handler,token);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_remove_EnumerationCompleted(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This,EventRegistrationToken token) {
    return This->lpVtbl->remove_EnumerationCompleted(This,token);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_add_Stopped(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This,__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable *handler,EventRegistrationToken *token) {
    return This->lpVtbl->add_Stopped(This,handler,token);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_remove_Stopped(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This,EventRegistrationToken token) {
    return This->lpVtbl->remove_Stopped(This,token);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_get_Status(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This,enum __x_ABI_CWindows_CDevices_CEnumeration_CDeviceWatcherStatus *status) {
    return This->lpVtbl->get_Status(This,status);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_Start(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This) {
    return This->lpVtbl->Start(This);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_Stop(__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher* This) {
    return This->lpVtbl->Stop(This);
}
#endif
#ifdef WIDL_using_Windows_Devices_Enumeration
#define IID_IDeviceWatcher IID___x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher
#define IDeviceWatcherVtbl __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcherVtbl
#define IDeviceWatcher __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher
#define IDeviceWatcher_QueryInterface __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_QueryInterface
#define IDeviceWatcher_AddRef __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_AddRef
#define IDeviceWatcher_Release __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_Release
#define IDeviceWatcher_GetIids __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_GetIids
#define IDeviceWatcher_GetRuntimeClassName __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_GetRuntimeClassName
#define IDeviceWatcher_GetTrustLevel __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_GetTrustLevel
#define IDeviceWatcher_add_Added __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_add_Added
#define IDeviceWatcher_remove_Added __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_remove_Added
#define IDeviceWatcher_add_Updated __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_add_Updated
#define IDeviceWatcher_remove_Updated __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_remove_Updated
#define IDeviceWatcher_add_Removed __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_add_Removed
#define IDeviceWatcher_remove_Removed __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_remove_Removed
#define IDeviceWatcher_add_EnumerationCompleted __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_add_EnumerationCompleted
#define IDeviceWatcher_remove_EnumerationCompleted __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_remove_EnumerationCompleted
#define IDeviceWatcher_add_Stopped __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_add_Stopped
#define IDeviceWatcher_remove_Stopped __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_remove_Stopped
#define IDeviceWatcher_get_Status __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_get_Status
#define IDeviceWatcher_Start __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_Start
#define IDeviceWatcher_Stop __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_Stop
#endif /* WIDL_using_Windows_Devices_Enumeration */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IEnclosureLocation interface
 */
#ifndef ____x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation, 0x42340a27, 0x5810, 0x459c, 0xaa,0xbb, 0xc6,0x5e,0x1f,0x81,0x3e,0xcf);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Enumeration {
                MIDL_INTERFACE("42340a27-5810-459c-aabb-c65e1f813ecf")
                IEnclosureLocation : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE get_InDock(
                        boolean *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_InLid(
                        boolean *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_Panel(
                        enum Panel *value) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation, 0x42340a27, 0x5810, 0x459c, 0xaa,0xbb, 0xc6,0x5e,0x1f,0x81,0x3e,0xcf)
#endif
#else
typedef struct __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocationVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation *This,
        TrustLevel *trustLevel);

    /*** IEnclosureLocation methods ***/
    HRESULT (STDMETHODCALLTYPE *get_InDock)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *get_InLid)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *get_Panel)(
        __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation *This,
        enum __x_ABI_CWindows_CDevices_CEnumeration_CPanel *value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocationVtbl;

interface __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation {
    CONST_VTBL __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocationVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IEnclosureLocation methods ***/
#define __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_get_InDock(This,value) (This)->lpVtbl->get_InDock(This,value)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_get_InLid(This,value) (This)->lpVtbl->get_InLid(This,value)
#define __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_get_Panel(This,value) (This)->lpVtbl->get_Panel(This,value)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_QueryInterface(__x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_AddRef(__x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_Release(__x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_GetIids(__x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_GetTrustLevel(__x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IEnclosureLocation methods ***/
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_get_InDock(__x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation* This,boolean *value) {
    return This->lpVtbl->get_InDock(This,value);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_get_InLid(__x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation* This,boolean *value) {
    return This->lpVtbl->get_InLid(This,value);
}
static FORCEINLINE HRESULT __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_get_Panel(__x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation* This,enum __x_ABI_CWindows_CDevices_CEnumeration_CPanel *value) {
    return This->lpVtbl->get_Panel(This,value);
}
#endif
#ifdef WIDL_using_Windows_Devices_Enumeration
#define IID_IEnclosureLocation IID___x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation
#define IEnclosureLocationVtbl __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocationVtbl
#define IEnclosureLocation __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation
#define IEnclosureLocation_QueryInterface __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_QueryInterface
#define IEnclosureLocation_AddRef __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_AddRef
#define IEnclosureLocation_Release __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_Release
#define IEnclosureLocation_GetIids __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_GetIids
#define IEnclosureLocation_GetRuntimeClassName __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_GetRuntimeClassName
#define IEnclosureLocation_GetTrustLevel __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_GetTrustLevel
#define IEnclosureLocation_get_InDock __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_get_InDock
#define IEnclosureLocation_get_InLid __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_get_InLid
#define IEnclosureLocation_get_Panel __x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_get_Panel
#endif /* WIDL_using_Windows_Devices_Enumeration */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CDevices_CEnumeration_CIEnclosureLocation_INTERFACE_DEFINED__ */

/*
 * Class Windows.Devices.Enumeration.DeviceInformation
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifndef RUNTIMECLASS_Windows_Devices_Enumeration_DeviceInformation_DEFINED
#define RUNTIMECLASS_Windows_Devices_Enumeration_DeviceInformation_DEFINED
#if !defined(_MSC_VER) && !defined(__MINGW32__)
static const WCHAR RuntimeClass_Windows_Devices_Enumeration_DeviceInformation[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','E','n','u','m','e','r','a','t','i','o','n','.','D','e','v','i','c','e','I','n','f','o','r','m','a','t','i','o','n',0};
#elif defined(__GNUC__) && !defined(__cplusplus)
const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Enumeration_DeviceInformation[] = L"Windows.Devices.Enumeration.DeviceInformation";
#else
extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Enumeration_DeviceInformation[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','E','n','u','m','e','r','a','t','i','o','n','.','D','e','v','i','c','e','I','n','f','o','r','m','a','t','i','o','n',0};
#endif
#endif /* RUNTIMECLASS_Windows_Devices_Enumeration_DeviceInformation_DEFINED */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */

/*
 * Class Windows.Devices.Enumeration.DeviceInformationUpdate
 */
#ifndef RUNTIMECLASS_Windows_Devices_Enumeration_DeviceInformationUpdate_DEFINED
#define RUNTIMECLASS_Windows_Devices_Enumeration_DeviceInformationUpdate_DEFINED
#if !defined(_MSC_VER) && !defined(__MINGW32__)
static const WCHAR RuntimeClass_Windows_Devices_Enumeration_DeviceInformationUpdate[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','E','n','u','m','e','r','a','t','i','o','n','.','D','e','v','i','c','e','I','n','f','o','r','m','a','t','i','o','n','U','p','d','a','t','e',0};
#elif defined(__GNUC__) && !defined(__cplusplus)
const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Enumeration_DeviceInformationUpdate[] = L"Windows.Devices.Enumeration.DeviceInformationUpdate";
#else
extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Enumeration_DeviceInformationUpdate[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','E','n','u','m','e','r','a','t','i','o','n','.','D','e','v','i','c','e','I','n','f','o','r','m','a','t','i','o','n','U','p','d','a','t','e',0};
#endif
#endif /* RUNTIMECLASS_Windows_Devices_Enumeration_DeviceInformationUpdate_DEFINED */

/*
 * Class Windows.Devices.Enumeration.DeviceThumbnail
 */
#ifndef RUNTIMECLASS_Windows_Devices_Enumeration_DeviceThumbnail_DEFINED
#define RUNTIMECLASS_Windows_Devices_Enumeration_DeviceThumbnail_DEFINED
#if !defined(_MSC_VER) && !defined(__MINGW32__)
static const WCHAR RuntimeClass_Windows_Devices_Enumeration_DeviceThumbnail[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','E','n','u','m','e','r','a','t','i','o','n','.','D','e','v','i','c','e','T','h','u','m','b','n','a','i','l',0};
#elif defined(__GNUC__) && !defined(__cplusplus)
const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Enumeration_DeviceThumbnail[] = L"Windows.Devices.Enumeration.DeviceThumbnail";
#else
extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Enumeration_DeviceThumbnail[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','E','n','u','m','e','r','a','t','i','o','n','.','D','e','v','i','c','e','T','h','u','m','b','n','a','i','l',0};
#endif
#endif /* RUNTIMECLASS_Windows_Devices_Enumeration_DeviceThumbnail_DEFINED */

/*
 * Class Windows.Devices.Enumeration.DeviceWatcher
 */
#ifndef RUNTIMECLASS_Windows_Devices_Enumeration_DeviceWatcher_DEFINED
#define RUNTIMECLASS_Windows_Devices_Enumeration_DeviceWatcher_DEFINED
#if !defined(_MSC_VER) && !defined(__MINGW32__)
static const WCHAR RuntimeClass_Windows_Devices_Enumeration_DeviceWatcher[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','E','n','u','m','e','r','a','t','i','o','n','.','D','e','v','i','c','e','W','a','t','c','h','e','r',0};
#elif defined(__GNUC__) && !defined(__cplusplus)
const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Enumeration_DeviceWatcher[] = L"Windows.Devices.Enumeration.DeviceWatcher";
#else
extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Enumeration_DeviceWatcher[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','E','n','u','m','e','r','a','t','i','o','n','.','D','e','v','i','c','e','W','a','t','c','h','e','r',0};
#endif
#endif /* RUNTIMECLASS_Windows_Devices_Enumeration_DeviceWatcher_DEFINED */

/*
 * Class Windows.Devices.Enumeration.EnclosureLocation
 */
#ifndef RUNTIMECLASS_Windows_Devices_Enumeration_EnclosureLocation_DEFINED
#define RUNTIMECLASS_Windows_Devices_Enumeration_EnclosureLocation_DEFINED
#if !defined(_MSC_VER) && !defined(__MINGW32__)
static const WCHAR RuntimeClass_Windows_Devices_Enumeration_EnclosureLocation[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','E','n','u','m','e','r','a','t','i','o','n','.','E','n','c','l','o','s','u','r','e','L','o','c','a','t','i','o','n',0};
#elif defined(__GNUC__) && !defined(__cplusplus)
const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Enumeration_EnclosureLocation[] = L"Windows.Devices.Enumeration.EnclosureLocation";
#else
extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Enumeration_EnclosureLocation[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','E','n','u','m','e','r','a','t','i','o','n','.','E','n','c','l','o','s','u','r','e','L','o','c','a','t','i','o','n',0};
#endif
#endif /* RUNTIMECLASS_Windows_Devices_Enumeration_EnclosureLocation_DEFINED */

/*****************************************************************************
 * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceInformation* > interface
 */
#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_INTERFACE_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation, 0xbb483df2, 0x7bb6, 0x5923, 0xa2,0x8d, 0x83,0x42,0xec,0x30,0x04,0x6b);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("bb483df2-7bb6-5923-a28d-8342ec30046b")
            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceInformation* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Enumeration::DeviceInformation*, ABI::Windows::Devices::Enumeration::IDeviceInformation* > >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation, 0xbb483df2, 0x7bb6, 0x5923, 0xa2,0x8d, 0x83,0x42,0xec,0x30,0x04,0x6b)
#endif
#else
typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformationVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation *This);

    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceInformation* > methods ***/
    HRESULT (STDMETHODCALLTYPE *Invoke)(
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation *This,
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation *info,
        AsyncStatus status);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformationVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation {
    CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformationVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_Release(This) (This)->lpVtbl->Release(This)
/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceInformation* > methods ***/
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_Release(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation* This) {
    return This->lpVtbl->Release(This);
}
/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceInformation* > methods ***/
static FORCEINLINE HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation* This,__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation *info,AsyncStatus status) {
    return This->lpVtbl->Invoke(This,info,status);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IAsyncOperationCompletedHandler_DeviceInformation IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation
#define IAsyncOperationCompletedHandler_DeviceInformationVtbl __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformationVtbl
#define IAsyncOperationCompletedHandler_DeviceInformation __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation
#define IAsyncOperationCompletedHandler_DeviceInformation_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_QueryInterface
#define IAsyncOperationCompletedHandler_DeviceInformation_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_AddRef
#define IAsyncOperationCompletedHandler_DeviceInformation_Release __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_Release
#define IAsyncOperationCompletedHandler_DeviceInformation_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_Invoke
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceThumbnail* > interface
 */
#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_INTERFACE_DEFINED__
#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail, 0x86d455b2, 0xd795, 0x554c, 0x9c,0x31, 0xbf,0x65,0x39,0x34,0x9c,0x19);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("86d455b2-d795-554c-9c31-bf6539349c19")
            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceThumbnail* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Enumeration::DeviceThumbnail*, ABI::Windows::Storage::Streams::IRandomAccessStreamWithContentType* > >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail, 0x86d455b2, 0xd795, 0x554c, 0x9c,0x31, 0xbf,0x65,0x39,0x34,0x9c,0x19)
#endif
#else
typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnailVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *This);

    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceThumbnail* > methods ***/
    HRESULT (STDMETHODCALLTYPE *Invoke)(
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *This,
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *info,
        AsyncStatus status);

    END_INTERFACE
} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnailVtbl;

interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail {
    CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnailVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_Release(This) (This)->lpVtbl->Release(This)
/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceThumbnail* > methods ***/
#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_Release(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail* This) {
    return This->lpVtbl->Release(This);
}
/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceThumbnail* > methods ***/
static FORCEINLINE HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail* This,__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *info,AsyncStatus status) {
    return This->lpVtbl->Invoke(This,info,status);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IAsyncOperationCompletedHandler_DeviceThumbnail IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail
#define IAsyncOperationCompletedHandler_DeviceThumbnailVtbl __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnailVtbl
#define IAsyncOperationCompletedHandler_DeviceThumbnail __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail
#define IAsyncOperationCompletedHandler_DeviceThumbnail_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_QueryInterface
#define IAsyncOperationCompletedHandler_DeviceThumbnail_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_AddRef
#define IAsyncOperationCompletedHandler_DeviceThumbnail_Release __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_Release
#define IAsyncOperationCompletedHandler_DeviceThumbnail_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_Invoke
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IMapView<HSTRING,IInspectable* > interface
 */
#ifndef ____FIMapView_2_HSTRING_IInspectable_INTERFACE_DEFINED__
#define ____FIMapView_2_HSTRING_IInspectable_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIMapView_2_HSTRING_IInspectable, 0x7da2e9fd, 0x4602, 0x513a, 0xb8,0xc1, 0xfe,0xb0,0xfd,0xd3,0x5c,0xfc);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Collections {
                template<>
                MIDL_INTERFACE("7da2e9fd-4602-513a-b8c1-feb0fdd35cfc")
                IMapView<HSTRING,IInspectable* > : IMapView_impl<HSTRING, IInspectable* >
                {
                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIMapView_2_HSTRING_IInspectable, 0x7da2e9fd, 0x4602, 0x513a, 0xb8,0xc1, 0xfe,0xb0,0xfd,0xd3,0x5c,0xfc)
#endif
#else
typedef struct __FIMapView_2_HSTRING_IInspectableVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIMapView_2_HSTRING_IInspectable *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIMapView_2_HSTRING_IInspectable *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIMapView_2_HSTRING_IInspectable *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIMapView_2_HSTRING_IInspectable *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIMapView_2_HSTRING_IInspectable *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIMapView_2_HSTRING_IInspectable *This,
        TrustLevel *trustLevel);

    /*** IMapView<HSTRING,IInspectable* > methods ***/
    HRESULT (STDMETHODCALLTYPE *Lookup)(
        __FIMapView_2_HSTRING_IInspectable *This,
        HSTRING key,
        IInspectable **value);

    HRESULT (STDMETHODCALLTYPE *get_Size)(
        __FIMapView_2_HSTRING_IInspectable *This,
        unsigned int *size);

    HRESULT (STDMETHODCALLTYPE *HasKey)(
        __FIMapView_2_HSTRING_IInspectable *This,
        HSTRING key,
        boolean *found);

    HRESULT (STDMETHODCALLTYPE *Split)(
        __FIMapView_2_HSTRING_IInspectable *This,
        __FIMapView_2_HSTRING_IInspectable **first,
        __FIMapView_2_HSTRING_IInspectable **second);

    END_INTERFACE
} __FIMapView_2_HSTRING_IInspectableVtbl;

interface __FIMapView_2_HSTRING_IInspectable {
    CONST_VTBL __FIMapView_2_HSTRING_IInspectableVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIMapView_2_HSTRING_IInspectable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIMapView_2_HSTRING_IInspectable_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIMapView_2_HSTRING_IInspectable_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIMapView_2_HSTRING_IInspectable_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIMapView_2_HSTRING_IInspectable_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIMapView_2_HSTRING_IInspectable_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IMapView<HSTRING,IInspectable* > methods ***/
#define __FIMapView_2_HSTRING_IInspectable_Lookup(This,key,value) (This)->lpVtbl->Lookup(This,key,value)
#define __FIMapView_2_HSTRING_IInspectable_get_Size(This,size) (This)->lpVtbl->get_Size(This,size)
#define __FIMapView_2_HSTRING_IInspectable_HasKey(This,key,found) (This)->lpVtbl->HasKey(This,key,found)
#define __FIMapView_2_HSTRING_IInspectable_Split(This,first,second) (This)->lpVtbl->Split(This,first,second)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __FIMapView_2_HSTRING_IInspectable_QueryInterface(__FIMapView_2_HSTRING_IInspectable* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __FIMapView_2_HSTRING_IInspectable_AddRef(__FIMapView_2_HSTRING_IInspectable* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __FIMapView_2_HSTRING_IInspectable_Release(__FIMapView_2_HSTRING_IInspectable* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT __FIMapView_2_HSTRING_IInspectable_GetIids(__FIMapView_2_HSTRING_IInspectable* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT __FIMapView_2_HSTRING_IInspectable_GetRuntimeClassName(__FIMapView_2_HSTRING_IInspectable* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT __FIMapView_2_HSTRING_IInspectable_GetTrustLevel(__FIMapView_2_HSTRING_IInspectable* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IMapView<HSTRING,IInspectable* > methods ***/
static FORCEINLINE HRESULT __FIMapView_2_HSTRING_IInspectable_Lookup(__FIMapView_2_HSTRING_IInspectable* This,HSTRING key,IInspectable **value) {
    return This->lpVtbl->Lookup(This,key,value);
}
static FORCEINLINE HRESULT __FIMapView_2_HSTRING_IInspectable_get_Size(__FIMapView_2_HSTRING_IInspectable* This,unsigned int *size) {
    return This->lpVtbl->get_Size(This,size);
}
static FORCEINLINE HRESULT __FIMapView_2_HSTRING_IInspectable_HasKey(__FIMapView_2_HSTRING_IInspectable* This,HSTRING key,boolean *found) {
    return This->lpVtbl->HasKey(This,key,found);
}
static FORCEINLINE HRESULT __FIMapView_2_HSTRING_IInspectable_Split(__FIMapView_2_HSTRING_IInspectable* This,__FIMapView_2_HSTRING_IInspectable **first,__FIMapView_2_HSTRING_IInspectable **second) {
    return This->lpVtbl->Split(This,first,second);
}
#endif
#ifdef WIDL_using_Windows_Foundation_Collections
#define IID_IMapView_HSTRING_IInspectable IID___FIMapView_2_HSTRING_IInspectable
#define IMapView_HSTRING_IInspectableVtbl __FIMapView_2_HSTRING_IInspectableVtbl
#define IMapView_HSTRING_IInspectable __FIMapView_2_HSTRING_IInspectable
#define IMapView_HSTRING_IInspectable_QueryInterface __FIMapView_2_HSTRING_IInspectable_QueryInterface
#define IMapView_HSTRING_IInspectable_AddRef __FIMapView_2_HSTRING_IInspectable_AddRef
#define IMapView_HSTRING_IInspectable_Release __FIMapView_2_HSTRING_IInspectable_Release
#define IMapView_HSTRING_IInspectable_GetIids __FIMapView_2_HSTRING_IInspectable_GetIids
#define IMapView_HSTRING_IInspectable_GetRuntimeClassName __FIMapView_2_HSTRING_IInspectable_GetRuntimeClassName
#define IMapView_HSTRING_IInspectable_GetTrustLevel __FIMapView_2_HSTRING_IInspectable_GetTrustLevel
#define IMapView_HSTRING_IInspectable_Lookup __FIMapView_2_HSTRING_IInspectable_Lookup
#define IMapView_HSTRING_IInspectable_get_Size __FIMapView_2_HSTRING_IInspectable_get_Size
#define IMapView_HSTRING_IInspectable_HasKey __FIMapView_2_HSTRING_IInspectable_HasKey
#define IMapView_HSTRING_IInspectable_Split __FIMapView_2_HSTRING_IInspectable_Split
#endif /* WIDL_using_Windows_Foundation_Collections */
#endif

#endif

#endif  /* ____FIMapView_2_HSTRING_IInspectable_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceInformation* > interface
 */
#ifndef ____FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_INTERFACE_DEFINED__
#define ____FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation, 0x07faa053, 0xeb2f, 0x5cba, 0xb2,0x5b, 0xd9,0xd5,0x7b,0xe6,0x71,0x5f);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("07faa053-eb2f-5cba-b25b-d9d57be6715f")
            IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceInformation* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Enumeration::DeviceInformation*, ABI::Windows::Devices::Enumeration::IDeviceInformation* > >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation, 0x07faa053, 0xeb2f, 0x5cba, 0xb2,0x5b, 0xd9,0xd5,0x7b,0xe6,0x71,0x5f)
#endif
#else
typedef struct __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformationVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation *This,
        TrustLevel *trustLevel);

    /*** IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceInformation* > methods ***/
    HRESULT (STDMETHODCALLTYPE *put_Completed)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation *This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation *handler);

    HRESULT (STDMETHODCALLTYPE *get_Completed)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation *This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation **handler);

    HRESULT (STDMETHODCALLTYPE *GetResults)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation *This,
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation **results);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformationVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation {
    CONST_VTBL __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformationVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceInformation* > methods ***/
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_QueryInterface(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_AddRef(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_Release(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_GetIids(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_GetTrustLevel(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceInformation* > methods ***/
static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_put_Completed(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation *handler) {
    return This->lpVtbl->put_Completed(This,handler);
}
static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_get_Completed(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceInformation **handler) {
    return This->lpVtbl->get_Completed(This,handler);
}
static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_GetResults(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation* This,__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation **results) {
    return This->lpVtbl->GetResults(This,results);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IAsyncOperation_DeviceInformation IID___FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation
#define IAsyncOperation_DeviceInformationVtbl __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformationVtbl
#define IAsyncOperation_DeviceInformation __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation
#define IAsyncOperation_DeviceInformation_QueryInterface __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_QueryInterface
#define IAsyncOperation_DeviceInformation_AddRef __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_AddRef
#define IAsyncOperation_DeviceInformation_Release __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_Release
#define IAsyncOperation_DeviceInformation_GetIids __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_GetIids
#define IAsyncOperation_DeviceInformation_GetRuntimeClassName __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_GetRuntimeClassName
#define IAsyncOperation_DeviceInformation_GetTrustLevel __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_GetTrustLevel
#define IAsyncOperation_DeviceInformation_put_Completed __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_put_Completed
#define IAsyncOperation_DeviceInformation_get_Completed __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_get_Completed
#define IAsyncOperation_DeviceInformation_GetResults __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_GetResults
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceInformation_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceThumbnail* > interface
 */
#ifndef ____FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_INTERFACE_DEFINED__
#define ____FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail, 0xbac083a3, 0x3a19, 0x5072, 0x9d,0x90, 0x13,0x33,0x23,0xa0,0x49,0xba);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("bac083a3-3a19-5072-9d90-133323a049ba")
            IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceThumbnail* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Enumeration::DeviceThumbnail*, ABI::Windows::Storage::Streams::IRandomAccessStreamWithContentType* > >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail, 0xbac083a3, 0x3a19, 0x5072, 0x9d,0x90, 0x13,0x33,0x23,0xa0,0x49,0xba)
#endif
#else
typedef struct __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnailVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *This,
        TrustLevel *trustLevel);

    /*** IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceThumbnail* > methods ***/
    HRESULT (STDMETHODCALLTYPE *put_Completed)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *handler);

    HRESULT (STDMETHODCALLTYPE *get_Completed)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *This,
        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail **handler);

    HRESULT (STDMETHODCALLTYPE *GetResults)(
        __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *This,
        __x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType **results);

    END_INTERFACE
} __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnailVtbl;

interface __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail {
    CONST_VTBL __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnailVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceThumbnail* > methods ***/
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
#define __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_QueryInterface(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_AddRef(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_Release(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_GetIids(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_GetTrustLevel(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceThumbnail* > methods ***/
static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_put_Completed(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail *handler) {
    return This->lpVtbl->put_Completed(This,handler);
}
static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_get_Completed(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CEnumeration__CDeviceThumbnail **handler) {
    return This->lpVtbl->get_Completed(This,handler);
}
static FORCEINLINE HRESULT __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_GetResults(__FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail* This,__x_ABI_CWindows_CStorage_CStreams_CIRandomAccessStreamWithContentType **results) {
    return This->lpVtbl->GetResults(This,results);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IAsyncOperation_DeviceThumbnail IID___FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail
#define IAsyncOperation_DeviceThumbnailVtbl __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnailVtbl
#define IAsyncOperation_DeviceThumbnail __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail
#define IAsyncOperation_DeviceThumbnail_QueryInterface __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_QueryInterface
#define IAsyncOperation_DeviceThumbnail_AddRef __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_AddRef
#define IAsyncOperation_DeviceThumbnail_Release __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_Release
#define IAsyncOperation_DeviceThumbnail_GetIids __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_GetIids
#define IAsyncOperation_DeviceThumbnail_GetRuntimeClassName __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_GetRuntimeClassName
#define IAsyncOperation_DeviceThumbnail_GetTrustLevel __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_GetTrustLevel
#define IAsyncOperation_DeviceThumbnail_put_Completed __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_put_Completed
#define IAsyncOperation_DeviceThumbnail_get_Completed __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_get_Completed
#define IAsyncOperation_DeviceThumbnail_GetResults __FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_GetResults
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIAsyncOperation_1_Windows__CDevices__CEnumeration__CDeviceThumbnail_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,IInspectable* > interface
 */
#ifndef ____FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_INTERFACE_DEFINED__
#define ____FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_INTERFACE_DEFINED__

DEFINE_GUID(IID___FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable, 0xc82fd42d, 0xdc82, 0x5843, 0x9c,0xfd, 0xcc,0x38,0xb5,0xdf,0x10,0xb2);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("c82fd42d-dc82-5843-9cfd-cc38b5df10b2")
            ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,IInspectable* > : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Enumeration::DeviceWatcher*, ABI::Windows::Devices::Enumeration::IDeviceWatcher* >, IInspectable* >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable, 0xc82fd42d, 0xdc82, 0x5843, 0x9c,0xfd, 0xcc,0x38,0xb5,0xdf,0x10,0xb2)
#endif
#else
typedef struct __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectableVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable *This);

    /*** ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,IInspectable* > methods ***/
    HRESULT (STDMETHODCALLTYPE *Invoke)(
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable *This,
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *sender,
        IInspectable *args);

    END_INTERFACE
} __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectableVtbl;

interface __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable {
    CONST_VTBL __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectableVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_Release(This) (This)->lpVtbl->Release(This)
/*** ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,IInspectable* > methods ***/
#define __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_Invoke(This,sender,args) (This)->lpVtbl->Invoke(This,sender,args)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_QueryInterface(__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_AddRef(__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_Release(__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable* This) {
    return This->lpVtbl->Release(This);
}
/*** ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,IInspectable* > methods ***/
static FORCEINLINE HRESULT __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_Invoke(__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable* This,__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *sender,IInspectable *args) {
    return This->lpVtbl->Invoke(This,sender,args);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_ITypedEventHandler_DeviceWatcher_IInspectable IID___FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable
#define ITypedEventHandler_DeviceWatcher_IInspectableVtbl __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectableVtbl
#define ITypedEventHandler_DeviceWatcher_IInspectable __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable
#define ITypedEventHandler_DeviceWatcher_IInspectable_QueryInterface __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_QueryInterface
#define ITypedEventHandler_DeviceWatcher_IInspectable_AddRef __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_AddRef
#define ITypedEventHandler_DeviceWatcher_IInspectable_Release __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_Release
#define ITypedEventHandler_DeviceWatcher_IInspectable_Invoke __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_Invoke
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,ABI::Windows::Devices::Enumeration::DeviceInformation* > interface
 */
#ifndef ____FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_INTERFACE_DEFINED__
#define ____FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_INTERFACE_DEFINED__

DEFINE_GUID(IID___FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation, 0x03c5a07b, 0x990c, 0x5d09, 0xb0,0xb8, 0x57,0x34,0xea,0xa3,0x82,0x22);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("03c5a07b-990c-5d09-b0b8-5734eaa38222")
            ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,ABI::Windows::Devices::Enumeration::DeviceInformation* > : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Enumeration::DeviceWatcher*, ABI::Windows::Devices::Enumeration::IDeviceWatcher* >, ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Enumeration::DeviceInformation*, ABI::Windows::Devices::Enumeration::IDeviceInformation* > >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation, 0x03c5a07b, 0x990c, 0x5d09, 0xb0,0xb8, 0x57,0x34,0xea,0xa3,0x82,0x22)
#endif
#else
typedef struct __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation *This);

    /*** ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,ABI::Windows::Devices::Enumeration::DeviceInformation* > methods ***/
    HRESULT (STDMETHODCALLTYPE *Invoke)(
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation *This,
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *sender,
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *args);

    END_INTERFACE
} __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationVtbl;

interface __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation {
    CONST_VTBL __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_Release(This) (This)->lpVtbl->Release(This)
/*** ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,ABI::Windows::Devices::Enumeration::DeviceInformation* > methods ***/
#define __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_Invoke(This,sender,args) (This)->lpVtbl->Invoke(This,sender,args)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_QueryInterface(__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_AddRef(__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_Release(__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation* This) {
    return This->lpVtbl->Release(This);
}
/*** ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,ABI::Windows::Devices::Enumeration::DeviceInformation* > methods ***/
static FORCEINLINE HRESULT __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_Invoke(__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation* This,__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *sender,__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformation *args) {
    return This->lpVtbl->Invoke(This,sender,args);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_ITypedEventHandler_DeviceWatcher_DeviceInformation IID___FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation
#define ITypedEventHandler_DeviceWatcher_DeviceInformationVtbl __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationVtbl
#define ITypedEventHandler_DeviceWatcher_DeviceInformation __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation
#define ITypedEventHandler_DeviceWatcher_DeviceInformation_QueryInterface __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_QueryInterface
#define ITypedEventHandler_DeviceWatcher_DeviceInformation_AddRef __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_AddRef
#define ITypedEventHandler_DeviceWatcher_DeviceInformation_Release __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_Release
#define ITypedEventHandler_DeviceWatcher_DeviceInformation_Invoke __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_Invoke
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,ABI::Windows::Devices::Enumeration::DeviceInformationUpdate* > interface
 */
#ifndef ____FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_INTERFACE_DEFINED__
#define ____FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_INTERFACE_DEFINED__

DEFINE_GUID(IID___FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate, 0x906f1254, 0x79ad, 0x54fc, 0x93,0xc4, 0xcd,0xb9,0x9b,0x43,0x78,0x99);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("906f1254-79ad-54fc-93c4-cdb99b437899")
            ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,ABI::Windows::Devices::Enumeration::DeviceInformationUpdate* > : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Enumeration::DeviceWatcher*, ABI::Windows::Devices::Enumeration::IDeviceWatcher* >, ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Enumeration::DeviceInformationUpdate*, ABI::Windows::Devices::Enumeration::IDeviceInformationUpdate* > >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate, 0x906f1254, 0x79ad, 0x54fc, 0x93,0xc4, 0xcd,0xb9,0x9b,0x43,0x78,0x99)
#endif
#else
typedef struct __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdateVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate *This);

    /*** ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,ABI::Windows::Devices::Enumeration::DeviceInformationUpdate* > methods ***/
    HRESULT (STDMETHODCALLTYPE *Invoke)(
        __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate *This,
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *sender,
        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate *args);

    END_INTERFACE
} __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdateVtbl;

interface __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate {
    CONST_VTBL __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdateVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_Release(This) (This)->lpVtbl->Release(This)
/*** ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,ABI::Windows::Devices::Enumeration::DeviceInformationUpdate* > methods ***/
#define __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_Invoke(This,sender,args) (This)->lpVtbl->Invoke(This,sender,args)
#else
/*** IUnknown methods ***/
static FORCEINLINE HRESULT __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_QueryInterface(__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static FORCEINLINE ULONG __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_AddRef(__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate* This) {
    return This->lpVtbl->AddRef(This);
}
static FORCEINLINE ULONG __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_Release(__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate* This) {
    return This->lpVtbl->Release(This);
}
/*** ITypedEventHandler<ABI::Windows::Devices::Enumeration::DeviceWatcher*,ABI::Windows::Devices::Enumeration::DeviceInformationUpdate* > methods ***/
static FORCEINLINE HRESULT __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_Invoke(__FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate* This,__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceWatcher *sender,__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceInformationUpdate *args) {
    return This->lpVtbl->Invoke(This,sender,args);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_ITypedEventHandler_DeviceWatcher_DeviceInformationUpdate IID___FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate
#define ITypedEventHandler_DeviceWatcher_DeviceInformationUpdateVtbl __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdateVtbl
#define ITypedEventHandler_DeviceWatcher_DeviceInformationUpdate __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate
#define ITypedEventHandler_DeviceWatcher_DeviceInformationUpdate_QueryInterface __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_QueryInterface
#define ITypedEventHandler_DeviceWatcher_DeviceInformationUpdate_AddRef __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_AddRef
#define ITypedEventHandler_DeviceWatcher_DeviceInformationUpdate_Release __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_Release
#define ITypedEventHandler_DeviceWatcher_DeviceInformationUpdate_Invoke __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_Invoke
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformationUpdate_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */

ULONG           __RPC_USER HSTRING_UserSize     (ULONG *, ULONG, HSTRING *);
unsigned char * __RPC_USER HSTRING_UserMarshal  (ULONG *, unsigned char *, HSTRING *);
unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
void            __RPC_USER HSTRING_UserFree     (ULONG *, HSTRING *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __windows_devices_enumeration_h__ */