/*****************************************************************************
 *
 *  (C) COPYRIGHT MICROSOFT CORPORATION, 1999
 *
 *  TITLE:       wiadenum.idl
 *
 *  VERSION:     1.0
 *
 *  AUTHOR:      Davidshi
 *
 *  DATE:        July 27, 1999
 *
 *  DESCRIPTION: Interfaces for imaging device enumerator control
 *
 *****************************************************************************/
// wiadenum.idl : IDL source for wiadenum.dll

import "oaidl.idl";
import "ocidl.idl";


[
    object,
    uuid(342c69e6-2248-4e68-aeeb-af02678715d2),
    dual,
    helpstring("IImagingDevInfo interface"),
    pointer_default(unique)
]

interface IImagingDevInfo : IDispatch
{
    // type of device. "scanner" or "camera"
    [propget, id(1), helpstring("property Type")] HRESULT Type([out, retval] BSTR *pVal);
    // Device ID
    [propget, id(2), helpstring("property DeviceId")] HRESULT DeviceId([out, retval] BSTR *pVal);
    // shell display name, for parsing by the namespace
    [propget, id(3), helpstring("property ParsingName")] HRESULT ParsingName([out, retval] BSTR *pVal);
    // user-friendly name
    [propget, id(4), helpstring("property FriendlyName")] HRESULT FriendlyName ([out,retval] BSTR *pVal);

};



[
    object,
    uuid(8ef3c147-4d40-4176-a1cd-2b0e4d9b2fcb),
    dual,
    helpstring("IImagingDevices interface"),
    pointer_default(unique)
]

interface IImagingDevices : IDispatch
{
    // number of devices
    [propget, id(1), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
    // IImagingDevInfo of nth device. index can specify a number or a device id
    [id(2), helpstring ("method Device")] HRESULT Device ([in] VARIANT *index, [out,retval] IImagingDevInfo **pInfo);

};

[
    uuid(39e73e9f-4f2b-4e61-9238-aaf22502d4b7),
    version(1.0),
    helpstring("wiadenum 1.0 type library")
]
library wiadenumLib
{
    importlib("stdole32.tlb");
    importlib("stdole2.tlb");
    [
        uuid(a2eca620-098d-48bf-a4af-a4a375c8888e),
        helpstring ("DeviceList class")
    ]
    coclass DeviceList
    {
        [default] interface IImagingDevices;
    };

    [
        uuid(6b0e0448-cad2-4f92-a52d-99ed8e3722a7),
        helpstring("DevInfo class")
    ]
    coclass DeviceInfo
    {
        [default] interface IImagingDevInfo;
    };
};


