/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the mingw-w64 runtime package.
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 */

import "oaidl.idl";

cpp_quote("#define CDEF_CLASS_DEFAULT 0x0001")
cpp_quote("#define CDEF_BYPASS_CLASS_MANAGER 0x0002")
cpp_quote("#define CDEF_MERIT_ABOVE_DO_NOT_USE 0x0008")
cpp_quote("#define CDEF_DEVMON_CMGR_DEVICE 0x0010")
cpp_quote("#define CDEF_DEVMON_DMO 0x0020")
cpp_quote("#define CDEF_DEVMON_PNP_DEVICE 0x0040")
cpp_quote("#define CDEF_DEVMON_FILTER 0x0080")
cpp_quote("#define CDEF_DEVMON_SELECTIVE_MASK 0x00f0")

[
    object,
    uuid(29840822-5b84-11d0-bd3b-00a0c911ce86),
    pointer_default(unique)
]
interface ICreateDevEnum : IUnknown
{
    HRESULT CreateClassEnumerator(
            [in] REFCLSID clsidDeviceClass,
            [out] IEnumMoniker **ppEnumMoniker,
            [in] DWORD dwFlags);
}
