master
   1/*** Autogenerated by WIDL 10.4 from include/wia_lh.idl - Do not edit ***/
   2
   3#ifdef _WIN32
   4#ifndef __REQUIRED_RPCNDR_H_VERSION__
   5#define __REQUIRED_RPCNDR_H_VERSION__ 475
   6#endif
   7#include <rpc.h>
   8#include <rpcndr.h>
   9#endif
  10
  11#ifndef COM_NO_WINDOWS_H
  12#include <windows.h>
  13#include <ole2.h>
  14#endif
  15
  16#ifndef __wia_lh_h__
  17#define __wia_lh_h__
  18
  19/* Forward declarations */
  20
  21#ifndef __IWiaDevMgr_FWD_DEFINED__
  22#define __IWiaDevMgr_FWD_DEFINED__
  23typedef interface IWiaDevMgr IWiaDevMgr;
  24#ifdef __cplusplus
  25interface IWiaDevMgr;
  26#endif /* __cplusplus */
  27#endif
  28
  29#ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__
  30#define __IEnumWIA_DEV_INFO_FWD_DEFINED__
  31typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO;
  32#ifdef __cplusplus
  33interface IEnumWIA_DEV_INFO;
  34#endif /* __cplusplus */
  35#endif
  36
  37#ifndef __IWiaPropertyStorage_FWD_DEFINED__
  38#define __IWiaPropertyStorage_FWD_DEFINED__
  39typedef interface IWiaPropertyStorage IWiaPropertyStorage;
  40#ifdef __cplusplus
  41interface IWiaPropertyStorage;
  42#endif /* __cplusplus */
  43#endif
  44
  45#ifndef __IWiaItem_FWD_DEFINED__
  46#define __IWiaItem_FWD_DEFINED__
  47typedef interface IWiaItem IWiaItem;
  48#ifdef __cplusplus
  49interface IWiaItem;
  50#endif /* __cplusplus */
  51#endif
  52
  53#ifndef __IWiaEventCallback_FWD_DEFINED__
  54#define __IWiaEventCallback_FWD_DEFINED__
  55typedef interface IWiaEventCallback IWiaEventCallback;
  56#ifdef __cplusplus
  57interface IWiaEventCallback;
  58#endif /* __cplusplus */
  59#endif
  60
  61#ifndef __IEnumWIA_DEV_CAPS_FWD_DEFINED__
  62#define __IEnumWIA_DEV_CAPS_FWD_DEFINED__
  63typedef interface IEnumWIA_DEV_CAPS IEnumWIA_DEV_CAPS;
  64#ifdef __cplusplus
  65interface IEnumWIA_DEV_CAPS;
  66#endif /* __cplusplus */
  67#endif
  68
  69#ifndef __IWiaTransferCallback_FWD_DEFINED__
  70#define __IWiaTransferCallback_FWD_DEFINED__
  71typedef interface IWiaTransferCallback IWiaTransferCallback;
  72#ifdef __cplusplus
  73interface IWiaTransferCallback;
  74#endif /* __cplusplus */
  75#endif
  76
  77#ifndef __IWiaPreview_FWD_DEFINED__
  78#define __IWiaPreview_FWD_DEFINED__
  79typedef interface IWiaPreview IWiaPreview;
  80#ifdef __cplusplus
  81interface IWiaPreview;
  82#endif /* __cplusplus */
  83#endif
  84
  85#ifndef __IEnumWiaItem2_FWD_DEFINED__
  86#define __IEnumWiaItem2_FWD_DEFINED__
  87typedef interface IEnumWiaItem2 IEnumWiaItem2;
  88#ifdef __cplusplus
  89interface IEnumWiaItem2;
  90#endif /* __cplusplus */
  91#endif
  92
  93#ifndef __IWiaItem2_FWD_DEFINED__
  94#define __IWiaItem2_FWD_DEFINED__
  95typedef interface IWiaItem2 IWiaItem2;
  96#ifdef __cplusplus
  97interface IWiaItem2;
  98#endif /* __cplusplus */
  99#endif
 100
 101#ifndef __IWiaDevMgr2_FWD_DEFINED__
 102#define __IWiaDevMgr2_FWD_DEFINED__
 103typedef interface IWiaDevMgr2 IWiaDevMgr2;
 104#ifdef __cplusplus
 105interface IWiaDevMgr2;
 106#endif /* __cplusplus */
 107#endif
 108
 109#ifndef __WiaDevMgr2_FWD_DEFINED__
 110#define __WiaDevMgr2_FWD_DEFINED__
 111#ifdef __cplusplus
 112typedef class WiaDevMgr2 WiaDevMgr2;
 113#else
 114typedef struct WiaDevMgr2 WiaDevMgr2;
 115#endif /* defined __cplusplus */
 116#endif /* defined __WiaDevMgr2_FWD_DEFINED__ */
 117
 118/* Headers for imported files */
 119
 120#include <unknwn.h>
 121#include <oaidl.h>
 122#include <propidl.h>
 123
 124#ifdef __cplusplus
 125extern "C" {
 126#endif
 127
 128typedef struct _WIA_DITHER_PATTERN_DATA {
 129    LONG lSize;
 130    BSTR bstrPatternName;
 131    LONG lPatternWidth;
 132    LONG lPatternLength;
 133    LONG cbPattern;
 134    BYTE *pbPattern;
 135} WIA_DITHER_PATTERN_DATA;
 136typedef struct _WIA_DITHER_PATTERN_DATA *PWIA_DITHER_PATTERN_DATA;
 137typedef struct _WIA_PROPID_TO_NAME {
 138    PROPID propid;
 139    LPOLESTR pszName;
 140} WIA_PROPID_TO_NAME;
 141typedef struct _WIA_PROPID_TO_NAME *PWIA_PROPID_TO_NAME;
 142typedef struct _WIA_FORMAT_INFO {
 143    GUID guidFormatID;
 144    LONG lTymed;
 145} WIA_FORMAT_INFO;
 146typedef struct _WIA_FORMAT_INFO *PWIA_FORMAT_INFO;
 147#include <wiadef.h>
 148#ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__
 149#define __IEnumWIA_DEV_INFO_FWD_DEFINED__
 150typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO;
 151#ifdef __cplusplus
 152interface IEnumWIA_DEV_INFO;
 153#endif /* __cplusplus */
 154#endif
 155
 156#ifndef __IWiaPropertyStorage_FWD_DEFINED__
 157#define __IWiaPropertyStorage_FWD_DEFINED__
 158typedef interface IWiaPropertyStorage IWiaPropertyStorage;
 159#ifdef __cplusplus
 160interface IWiaPropertyStorage;
 161#endif /* __cplusplus */
 162#endif
 163
 164#ifndef __IWiaItem_FWD_DEFINED__
 165#define __IWiaItem_FWD_DEFINED__
 166typedef interface IWiaItem IWiaItem;
 167#ifdef __cplusplus
 168interface IWiaItem;
 169#endif /* __cplusplus */
 170#endif
 171
 172#ifndef __IWiaEventCallback_FWD_DEFINED__
 173#define __IWiaEventCallback_FWD_DEFINED__
 174typedef interface IWiaEventCallback IWiaEventCallback;
 175#ifdef __cplusplus
 176interface IWiaEventCallback;
 177#endif /* __cplusplus */
 178#endif
 179
 180#ifndef __IEnumWIA_DEV_CAPS_FWD_DEFINED__
 181#define __IEnumWIA_DEV_CAPS_FWD_DEFINED__
 182typedef interface IEnumWIA_DEV_CAPS IEnumWIA_DEV_CAPS;
 183#ifdef __cplusplus
 184interface IEnumWIA_DEV_CAPS;
 185#endif /* __cplusplus */
 186#endif
 187
 188#ifndef __IWiaTransferCallback_FWD_DEFINED__
 189#define __IWiaTransferCallback_FWD_DEFINED__
 190typedef interface IWiaTransferCallback IWiaTransferCallback;
 191#ifdef __cplusplus
 192interface IWiaTransferCallback;
 193#endif /* __cplusplus */
 194#endif
 195
 196#ifndef __IWiaPreview_FWD_DEFINED__
 197#define __IWiaPreview_FWD_DEFINED__
 198typedef interface IWiaPreview IWiaPreview;
 199#ifdef __cplusplus
 200interface IWiaPreview;
 201#endif /* __cplusplus */
 202#endif
 203
 204#ifndef __IEnumWiaItem2_FWD_DEFINED__
 205#define __IEnumWiaItem2_FWD_DEFINED__
 206typedef interface IEnumWiaItem2 IEnumWiaItem2;
 207#ifdef __cplusplus
 208interface IEnumWiaItem2;
 209#endif /* __cplusplus */
 210#endif
 211
 212#ifndef __IWiaItem2_FWD_DEFINED__
 213#define __IWiaItem2_FWD_DEFINED__
 214typedef interface IWiaItem2 IWiaItem2;
 215#ifdef __cplusplus
 216interface IWiaItem2;
 217#endif /* __cplusplus */
 218#endif
 219
 220#ifndef __IWiaDevMgr2_FWD_DEFINED__
 221#define __IWiaDevMgr2_FWD_DEFINED__
 222typedef interface IWiaDevMgr2 IWiaDevMgr2;
 223#ifdef __cplusplus
 224interface IWiaDevMgr2;
 225#endif /* __cplusplus */
 226#endif
 227
 228DEFINE_GUID(CLSID_WiaDevMgr, 0xa1f4e726,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11);
 229/*****************************************************************************
 230 * IWiaDevMgr interface
 231 */
 232#ifndef __IWiaDevMgr_INTERFACE_DEFINED__
 233#define __IWiaDevMgr_INTERFACE_DEFINED__
 234
 235DEFINE_GUID(IID_IWiaDevMgr, 0x5eb2502a, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11);
 236#if defined(__cplusplus) && !defined(CINTERFACE)
 237MIDL_INTERFACE("5eb2502a-8cf1-11d1-bf92-0060081ed811")
 238IWiaDevMgr : public IUnknown
 239{
 240    virtual HRESULT STDMETHODCALLTYPE EnumDeviceInfo(
 241        LONG lFlag,
 242        IEnumWIA_DEV_INFO **ppIEnum) = 0;
 243
 244    virtual HRESULT STDMETHODCALLTYPE CreateDevice(
 245        BSTR bstrDeviceID,
 246        IWiaItem **ppWiaItemRoot) = 0;
 247
 248    virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlg(
 249        HWND hwndParent,
 250        LONG lDeviceType,
 251        LONG lFlags,
 252        BSTR *pbstrDeviceID,
 253        IWiaItem **ppItemRoot) = 0;
 254
 255    virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlgID(
 256        HWND hwndParent,
 257        LONG lDeviceType,
 258        LONG lFlags,
 259        BSTR *pbstrDeviceID) = 0;
 260
 261    virtual HRESULT STDMETHODCALLTYPE GetImageDlg(
 262        HWND hwndParent,
 263        LONG lDeviceType,
 264        LONG lFlags,
 265        LONG lIntent,
 266        IWiaItem *pItemRoot,
 267        BSTR bstrFilename,
 268        GUID *pguidFormat) = 0;
 269
 270    virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackProgram(
 271        LONG lFlags,
 272        BSTR bstrDeviceID,
 273        const GUID *pEventGUID,
 274        BSTR bstrCommandline,
 275        BSTR bstrName,
 276        BSTR bstrDescription,
 277        BSTR bstrIcon) = 0;
 278
 279    virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackInterface(
 280        LONG lFlags,
 281        BSTR bstrDeviceID,
 282        const GUID *pEventGUID,
 283        IWiaEventCallback *pIWiaEventCallback,
 284        IUnknown **pEventObject) = 0;
 285
 286    virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackCLSID(
 287        LONG lFlags,
 288        BSTR bstrDeviceID,
 289        const GUID *pEventGUID,
 290        const GUID *pClsID,
 291        BSTR bstrName,
 292        BSTR bstrDescription,
 293        BSTR bstrIcon) = 0;
 294
 295    virtual HRESULT STDMETHODCALLTYPE AddDeviceDlg(
 296        HWND hwndParent,
 297        LONG lFlags) = 0;
 298
 299};
 300#ifdef __CRT_UUID_DECL
 301__CRT_UUID_DECL(IWiaDevMgr, 0x5eb2502a, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11)
 302#endif
 303#else
 304typedef struct IWiaDevMgrVtbl {
 305    BEGIN_INTERFACE
 306
 307    /*** IUnknown methods ***/
 308    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 309        IWiaDevMgr *This,
 310        REFIID riid,
 311        void **ppvObject);
 312
 313    ULONG (STDMETHODCALLTYPE *AddRef)(
 314        IWiaDevMgr *This);
 315
 316    ULONG (STDMETHODCALLTYPE *Release)(
 317        IWiaDevMgr *This);
 318
 319    /*** IWiaDevMgr methods ***/
 320    HRESULT (STDMETHODCALLTYPE *EnumDeviceInfo)(
 321        IWiaDevMgr *This,
 322        LONG lFlag,
 323        IEnumWIA_DEV_INFO **ppIEnum);
 324
 325    HRESULT (STDMETHODCALLTYPE *CreateDevice)(
 326        IWiaDevMgr *This,
 327        BSTR bstrDeviceID,
 328        IWiaItem **ppWiaItemRoot);
 329
 330    HRESULT (STDMETHODCALLTYPE *SelectDeviceDlg)(
 331        IWiaDevMgr *This,
 332        HWND hwndParent,
 333        LONG lDeviceType,
 334        LONG lFlags,
 335        BSTR *pbstrDeviceID,
 336        IWiaItem **ppItemRoot);
 337
 338    HRESULT (STDMETHODCALLTYPE *SelectDeviceDlgID)(
 339        IWiaDevMgr *This,
 340        HWND hwndParent,
 341        LONG lDeviceType,
 342        LONG lFlags,
 343        BSTR *pbstrDeviceID);
 344
 345    HRESULT (STDMETHODCALLTYPE *GetImageDlg)(
 346        IWiaDevMgr *This,
 347        HWND hwndParent,
 348        LONG lDeviceType,
 349        LONG lFlags,
 350        LONG lIntent,
 351        IWiaItem *pItemRoot,
 352        BSTR bstrFilename,
 353        GUID *pguidFormat);
 354
 355    HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackProgram)(
 356        IWiaDevMgr *This,
 357        LONG lFlags,
 358        BSTR bstrDeviceID,
 359        const GUID *pEventGUID,
 360        BSTR bstrCommandline,
 361        BSTR bstrName,
 362        BSTR bstrDescription,
 363        BSTR bstrIcon);
 364
 365    HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackInterface)(
 366        IWiaDevMgr *This,
 367        LONG lFlags,
 368        BSTR bstrDeviceID,
 369        const GUID *pEventGUID,
 370        IWiaEventCallback *pIWiaEventCallback,
 371        IUnknown **pEventObject);
 372
 373    HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackCLSID)(
 374        IWiaDevMgr *This,
 375        LONG lFlags,
 376        BSTR bstrDeviceID,
 377        const GUID *pEventGUID,
 378        const GUID *pClsID,
 379        BSTR bstrName,
 380        BSTR bstrDescription,
 381        BSTR bstrIcon);
 382
 383    HRESULT (STDMETHODCALLTYPE *AddDeviceDlg)(
 384        IWiaDevMgr *This,
 385        HWND hwndParent,
 386        LONG lFlags);
 387
 388    END_INTERFACE
 389} IWiaDevMgrVtbl;
 390
 391interface IWiaDevMgr {
 392    CONST_VTBL IWiaDevMgrVtbl* lpVtbl;
 393};
 394
 395#ifdef COBJMACROS
 396#ifndef WIDL_C_INLINE_WRAPPERS
 397/*** IUnknown methods ***/
 398#define IWiaDevMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 399#define IWiaDevMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
 400#define IWiaDevMgr_Release(This) (This)->lpVtbl->Release(This)
 401/*** IWiaDevMgr methods ***/
 402#define IWiaDevMgr_EnumDeviceInfo(This,lFlag,ppIEnum) (This)->lpVtbl->EnumDeviceInfo(This,lFlag,ppIEnum)
 403#define IWiaDevMgr_CreateDevice(This,bstrDeviceID,ppWiaItemRoot) (This)->lpVtbl->CreateDevice(This,bstrDeviceID,ppWiaItemRoot)
 404#define IWiaDevMgr_SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot) (This)->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot)
 405#define IWiaDevMgr_SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID) (This)->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID)
 406#define IWiaDevMgr_GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat) (This)->lpVtbl->GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat)
 407#define IWiaDevMgr_RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon)
 408#define IWiaDevMgr_RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject) (This)->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject)
 409#define IWiaDevMgr_RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon)
 410#define IWiaDevMgr_AddDeviceDlg(This,hwndParent,lFlags) (This)->lpVtbl->AddDeviceDlg(This,hwndParent,lFlags)
 411#else
 412/*** IUnknown methods ***/
 413static inline HRESULT IWiaDevMgr_QueryInterface(IWiaDevMgr* This,REFIID riid,void **ppvObject) {
 414    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 415}
 416static inline ULONG IWiaDevMgr_AddRef(IWiaDevMgr* This) {
 417    return This->lpVtbl->AddRef(This);
 418}
 419static inline ULONG IWiaDevMgr_Release(IWiaDevMgr* This) {
 420    return This->lpVtbl->Release(This);
 421}
 422/*** IWiaDevMgr methods ***/
 423static inline HRESULT IWiaDevMgr_EnumDeviceInfo(IWiaDevMgr* This,LONG lFlag,IEnumWIA_DEV_INFO **ppIEnum) {
 424    return This->lpVtbl->EnumDeviceInfo(This,lFlag,ppIEnum);
 425}
 426static inline HRESULT IWiaDevMgr_CreateDevice(IWiaDevMgr* This,BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot) {
 427    return This->lpVtbl->CreateDevice(This,bstrDeviceID,ppWiaItemRoot);
 428}
 429static inline HRESULT IWiaDevMgr_SelectDeviceDlg(IWiaDevMgr* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem **ppItemRoot) {
 430    return This->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot);
 431}
 432static inline HRESULT IWiaDevMgr_SelectDeviceDlgID(IWiaDevMgr* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID) {
 433    return This->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID);
 434}
 435static inline HRESULT IWiaDevMgr_GetImageDlg(IWiaDevMgr* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,LONG lIntent,IWiaItem *pItemRoot,BSTR bstrFilename,GUID *pguidFormat) {
 436    return This->lpVtbl->GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat);
 437}
 438static inline HRESULT IWiaDevMgr_RegisterEventCallbackProgram(IWiaDevMgr* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrCommandline,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
 439    return This->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon);
 440}
 441static inline HRESULT IWiaDevMgr_RegisterEventCallbackInterface(IWiaDevMgr* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject) {
 442    return This->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject);
 443}
 444static inline HRESULT IWiaDevMgr_RegisterEventCallbackCLSID(IWiaDevMgr* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
 445    return This->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon);
 446}
 447static inline HRESULT IWiaDevMgr_AddDeviceDlg(IWiaDevMgr* This,HWND hwndParent,LONG lFlags) {
 448    return This->lpVtbl->AddDeviceDlg(This,hwndParent,lFlags);
 449}
 450#endif
 451#endif
 452
 453#endif
 454
 455
 456#endif  /* __IWiaDevMgr_INTERFACE_DEFINED__ */
 457
 458/*****************************************************************************
 459 * IEnumWIA_DEV_INFO interface
 460 */
 461#ifndef __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
 462#define __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
 463
 464DEFINE_GUID(IID_IEnumWIA_DEV_INFO, 0x5e38b83c, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11);
 465#if defined(__cplusplus) && !defined(CINTERFACE)
 466MIDL_INTERFACE("5e38b83c-8cf1-11d1-bf92-0060081ed811")
 467IEnumWIA_DEV_INFO : public IUnknown
 468{
 469    virtual HRESULT STDMETHODCALLTYPE Next(
 470        ULONG celt,
 471        IWiaPropertyStorage **rgelt,
 472        ULONG *pceltFetched) = 0;
 473
 474    virtual HRESULT STDMETHODCALLTYPE Skip(
 475        ULONG celt) = 0;
 476
 477    virtual HRESULT STDMETHODCALLTYPE Reset(
 478        ) = 0;
 479
 480    virtual HRESULT STDMETHODCALLTYPE Clone(
 481        IEnumWIA_DEV_INFO **ppIEnum) = 0;
 482
 483    virtual HRESULT STDMETHODCALLTYPE GetCount(
 484        ULONG *celt) = 0;
 485
 486};
 487#ifdef __CRT_UUID_DECL
 488__CRT_UUID_DECL(IEnumWIA_DEV_INFO, 0x5e38b83c, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11)
 489#endif
 490#else
 491typedef struct IEnumWIA_DEV_INFOVtbl {
 492    BEGIN_INTERFACE
 493
 494    /*** IUnknown methods ***/
 495    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 496        IEnumWIA_DEV_INFO *This,
 497        REFIID riid,
 498        void **ppvObject);
 499
 500    ULONG (STDMETHODCALLTYPE *AddRef)(
 501        IEnumWIA_DEV_INFO *This);
 502
 503    ULONG (STDMETHODCALLTYPE *Release)(
 504        IEnumWIA_DEV_INFO *This);
 505
 506    /*** IEnumWIA_DEV_INFO methods ***/
 507    HRESULT (STDMETHODCALLTYPE *Next)(
 508        IEnumWIA_DEV_INFO *This,
 509        ULONG celt,
 510        IWiaPropertyStorage **rgelt,
 511        ULONG *pceltFetched);
 512
 513    HRESULT (STDMETHODCALLTYPE *Skip)(
 514        IEnumWIA_DEV_INFO *This,
 515        ULONG celt);
 516
 517    HRESULT (STDMETHODCALLTYPE *Reset)(
 518        IEnumWIA_DEV_INFO *This);
 519
 520    HRESULT (STDMETHODCALLTYPE *Clone)(
 521        IEnumWIA_DEV_INFO *This,
 522        IEnumWIA_DEV_INFO **ppIEnum);
 523
 524    HRESULT (STDMETHODCALLTYPE *GetCount)(
 525        IEnumWIA_DEV_INFO *This,
 526        ULONG *celt);
 527
 528    END_INTERFACE
 529} IEnumWIA_DEV_INFOVtbl;
 530
 531interface IEnumWIA_DEV_INFO {
 532    CONST_VTBL IEnumWIA_DEV_INFOVtbl* lpVtbl;
 533};
 534
 535#ifdef COBJMACROS
 536#ifndef WIDL_C_INLINE_WRAPPERS
 537/*** IUnknown methods ***/
 538#define IEnumWIA_DEV_INFO_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 539#define IEnumWIA_DEV_INFO_AddRef(This) (This)->lpVtbl->AddRef(This)
 540#define IEnumWIA_DEV_INFO_Release(This) (This)->lpVtbl->Release(This)
 541/*** IEnumWIA_DEV_INFO methods ***/
 542#define IEnumWIA_DEV_INFO_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
 543#define IEnumWIA_DEV_INFO_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
 544#define IEnumWIA_DEV_INFO_Reset(This) (This)->lpVtbl->Reset(This)
 545#define IEnumWIA_DEV_INFO_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
 546#define IEnumWIA_DEV_INFO_GetCount(This,celt) (This)->lpVtbl->GetCount(This,celt)
 547#else
 548/*** IUnknown methods ***/
 549static inline HRESULT IEnumWIA_DEV_INFO_QueryInterface(IEnumWIA_DEV_INFO* This,REFIID riid,void **ppvObject) {
 550    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 551}
 552static inline ULONG IEnumWIA_DEV_INFO_AddRef(IEnumWIA_DEV_INFO* This) {
 553    return This->lpVtbl->AddRef(This);
 554}
 555static inline ULONG IEnumWIA_DEV_INFO_Release(IEnumWIA_DEV_INFO* This) {
 556    return This->lpVtbl->Release(This);
 557}
 558/*** IEnumWIA_DEV_INFO methods ***/
 559static inline HRESULT IEnumWIA_DEV_INFO_Next(IEnumWIA_DEV_INFO* This,ULONG celt,IWiaPropertyStorage **rgelt,ULONG *pceltFetched) {
 560    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
 561}
 562static inline HRESULT IEnumWIA_DEV_INFO_Skip(IEnumWIA_DEV_INFO* This,ULONG celt) {
 563    return This->lpVtbl->Skip(This,celt);
 564}
 565static inline HRESULT IEnumWIA_DEV_INFO_Reset(IEnumWIA_DEV_INFO* This) {
 566    return This->lpVtbl->Reset(This);
 567}
 568static inline HRESULT IEnumWIA_DEV_INFO_Clone(IEnumWIA_DEV_INFO* This,IEnumWIA_DEV_INFO **ppIEnum) {
 569    return This->lpVtbl->Clone(This,ppIEnum);
 570}
 571static inline HRESULT IEnumWIA_DEV_INFO_GetCount(IEnumWIA_DEV_INFO* This,ULONG *celt) {
 572    return This->lpVtbl->GetCount(This,celt);
 573}
 574#endif
 575#endif
 576
 577#endif
 578
 579
 580#endif  /* __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__ */
 581
 582/*****************************************************************************
 583 * IWiaPropertyStorage interface
 584 */
 585#ifndef __IWiaPropertyStorage_INTERFACE_DEFINED__
 586#define __IWiaPropertyStorage_INTERFACE_DEFINED__
 587
 588DEFINE_GUID(IID_IWiaPropertyStorage, 0x98b5e8a0, 0x29cc, 0x491a, 0xaa,0xc0, 0xe6,0xdb,0x4f,0xdc,0xce,0xb6);
 589#if defined(__cplusplus) && !defined(CINTERFACE)
 590MIDL_INTERFACE("98b5e8a0-29cc-491a-aac0-e6db4fdcceb6")
 591IWiaPropertyStorage : public IUnknown
 592{
 593};
 594#ifdef __CRT_UUID_DECL
 595__CRT_UUID_DECL(IWiaPropertyStorage, 0x98b5e8a0, 0x29cc, 0x491a, 0xaa,0xc0, 0xe6,0xdb,0x4f,0xdc,0xce,0xb6)
 596#endif
 597#else
 598typedef struct IWiaPropertyStorageVtbl {
 599    BEGIN_INTERFACE
 600
 601    /*** IUnknown methods ***/
 602    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 603        IWiaPropertyStorage *This,
 604        REFIID riid,
 605        void **ppvObject);
 606
 607    ULONG (STDMETHODCALLTYPE *AddRef)(
 608        IWiaPropertyStorage *This);
 609
 610    ULONG (STDMETHODCALLTYPE *Release)(
 611        IWiaPropertyStorage *This);
 612
 613    END_INTERFACE
 614} IWiaPropertyStorageVtbl;
 615
 616interface IWiaPropertyStorage {
 617    CONST_VTBL IWiaPropertyStorageVtbl* lpVtbl;
 618};
 619
 620#ifdef COBJMACROS
 621#ifndef WIDL_C_INLINE_WRAPPERS
 622/*** IUnknown methods ***/
 623#define IWiaPropertyStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 624#define IWiaPropertyStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
 625#define IWiaPropertyStorage_Release(This) (This)->lpVtbl->Release(This)
 626#else
 627/*** IUnknown methods ***/
 628static inline HRESULT IWiaPropertyStorage_QueryInterface(IWiaPropertyStorage* This,REFIID riid,void **ppvObject) {
 629    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 630}
 631static inline ULONG IWiaPropertyStorage_AddRef(IWiaPropertyStorage* This) {
 632    return This->lpVtbl->AddRef(This);
 633}
 634static inline ULONG IWiaPropertyStorage_Release(IWiaPropertyStorage* This) {
 635    return This->lpVtbl->Release(This);
 636}
 637#endif
 638#endif
 639
 640#endif
 641
 642
 643#endif  /* __IWiaPropertyStorage_INTERFACE_DEFINED__ */
 644
 645/*****************************************************************************
 646 * IWiaItem interface
 647 */
 648#ifndef __IWiaItem_INTERFACE_DEFINED__
 649#define __IWiaItem_INTERFACE_DEFINED__
 650
 651DEFINE_GUID(IID_IWiaItem, 0x4db1ad10, 0x3391, 0x11d2, 0x9a,0x33, 0x00,0xc0,0x4f,0xa3,0x61,0x45);
 652#if defined(__cplusplus) && !defined(CINTERFACE)
 653MIDL_INTERFACE("4db1ad10-3391-11d2-9a33-00c04fa36145")
 654IWiaItem : public IUnknown
 655{
 656};
 657#ifdef __CRT_UUID_DECL
 658__CRT_UUID_DECL(IWiaItem, 0x4db1ad10, 0x3391, 0x11d2, 0x9a,0x33, 0x00,0xc0,0x4f,0xa3,0x61,0x45)
 659#endif
 660#else
 661typedef struct IWiaItemVtbl {
 662    BEGIN_INTERFACE
 663
 664    /*** IUnknown methods ***/
 665    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 666        IWiaItem *This,
 667        REFIID riid,
 668        void **ppvObject);
 669
 670    ULONG (STDMETHODCALLTYPE *AddRef)(
 671        IWiaItem *This);
 672
 673    ULONG (STDMETHODCALLTYPE *Release)(
 674        IWiaItem *This);
 675
 676    END_INTERFACE
 677} IWiaItemVtbl;
 678
 679interface IWiaItem {
 680    CONST_VTBL IWiaItemVtbl* lpVtbl;
 681};
 682
 683#ifdef COBJMACROS
 684#ifndef WIDL_C_INLINE_WRAPPERS
 685/*** IUnknown methods ***/
 686#define IWiaItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 687#define IWiaItem_AddRef(This) (This)->lpVtbl->AddRef(This)
 688#define IWiaItem_Release(This) (This)->lpVtbl->Release(This)
 689#else
 690/*** IUnknown methods ***/
 691static inline HRESULT IWiaItem_QueryInterface(IWiaItem* This,REFIID riid,void **ppvObject) {
 692    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 693}
 694static inline ULONG IWiaItem_AddRef(IWiaItem* This) {
 695    return This->lpVtbl->AddRef(This);
 696}
 697static inline ULONG IWiaItem_Release(IWiaItem* This) {
 698    return This->lpVtbl->Release(This);
 699}
 700#endif
 701#endif
 702
 703#endif
 704
 705
 706#endif  /* __IWiaItem_INTERFACE_DEFINED__ */
 707
 708/*****************************************************************************
 709 * IWiaEventCallback interface
 710 */
 711#ifndef __IWiaEventCallback_INTERFACE_DEFINED__
 712#define __IWiaEventCallback_INTERFACE_DEFINED__
 713
 714DEFINE_GUID(IID_IWiaEventCallback, 0xae6287b0, 0x0084, 0x11d2, 0x97,0x3b, 0x00,0xa0,0xc9,0x06,0x8f,0x2e);
 715#if defined(__cplusplus) && !defined(CINTERFACE)
 716MIDL_INTERFACE("ae6287b0-0084-11d2-973b-00a0c9068f2e")
 717IWiaEventCallback : public IUnknown
 718{
 719    virtual HRESULT STDMETHODCALLTYPE ImageEventCallback(
 720        const GUID *pEventGUID,
 721        BSTR bstrEventDescription,
 722        BSTR bstrDeviceID,
 723        BSTR bstrDeviceDescription,
 724        DWORD dwDeviceType,
 725        BSTR bstrFullItemName,
 726        ULONG *pulEventType,
 727        ULONG ulReserved) = 0;
 728
 729};
 730#ifdef __CRT_UUID_DECL
 731__CRT_UUID_DECL(IWiaEventCallback, 0xae6287b0, 0x0084, 0x11d2, 0x97,0x3b, 0x00,0xa0,0xc9,0x06,0x8f,0x2e)
 732#endif
 733#else
 734typedef struct IWiaEventCallbackVtbl {
 735    BEGIN_INTERFACE
 736
 737    /*** IUnknown methods ***/
 738    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 739        IWiaEventCallback *This,
 740        REFIID riid,
 741        void **ppvObject);
 742
 743    ULONG (STDMETHODCALLTYPE *AddRef)(
 744        IWiaEventCallback *This);
 745
 746    ULONG (STDMETHODCALLTYPE *Release)(
 747        IWiaEventCallback *This);
 748
 749    /*** IWiaEventCallback methods ***/
 750    HRESULT (STDMETHODCALLTYPE *ImageEventCallback)(
 751        IWiaEventCallback *This,
 752        const GUID *pEventGUID,
 753        BSTR bstrEventDescription,
 754        BSTR bstrDeviceID,
 755        BSTR bstrDeviceDescription,
 756        DWORD dwDeviceType,
 757        BSTR bstrFullItemName,
 758        ULONG *pulEventType,
 759        ULONG ulReserved);
 760
 761    END_INTERFACE
 762} IWiaEventCallbackVtbl;
 763
 764interface IWiaEventCallback {
 765    CONST_VTBL IWiaEventCallbackVtbl* lpVtbl;
 766};
 767
 768#ifdef COBJMACROS
 769#ifndef WIDL_C_INLINE_WRAPPERS
 770/*** IUnknown methods ***/
 771#define IWiaEventCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 772#define IWiaEventCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
 773#define IWiaEventCallback_Release(This) (This)->lpVtbl->Release(This)
 774/*** IWiaEventCallback methods ***/
 775#define IWiaEventCallback_ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved) (This)->lpVtbl->ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved)
 776#else
 777/*** IUnknown methods ***/
 778static inline HRESULT IWiaEventCallback_QueryInterface(IWiaEventCallback* This,REFIID riid,void **ppvObject) {
 779    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 780}
 781static inline ULONG IWiaEventCallback_AddRef(IWiaEventCallback* This) {
 782    return This->lpVtbl->AddRef(This);
 783}
 784static inline ULONG IWiaEventCallback_Release(IWiaEventCallback* This) {
 785    return This->lpVtbl->Release(This);
 786}
 787/*** IWiaEventCallback methods ***/
 788static inline HRESULT IWiaEventCallback_ImageEventCallback(IWiaEventCallback* This,const GUID *pEventGUID,BSTR bstrEventDescription,BSTR bstrDeviceID,BSTR bstrDeviceDescription,DWORD dwDeviceType,BSTR bstrFullItemName,ULONG *pulEventType,ULONG ulReserved) {
 789    return This->lpVtbl->ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved);
 790}
 791#endif
 792#endif
 793
 794#endif
 795
 796
 797#endif  /* __IWiaEventCallback_INTERFACE_DEFINED__ */
 798
 799typedef struct _WIA_DEV_CAP {
 800    GUID guid;
 801    ULONG ulFlags;
 802    BSTR bstrName;
 803    BSTR bstrDescription;
 804    BSTR bstrIcon;
 805    BSTR bstrCommandline;
 806} WIA_DEV_CAP;
 807typedef struct _WIA_DEV_CAP *PWIA_DEV_CAP;
 808typedef struct _WIA_DEV_CAP WIA_EVENT_HANDLER;
 809typedef struct _WIA_DEV_CAP *PWIA_EVENT_HANDLER;
 810/*****************************************************************************
 811 * IEnumWIA_DEV_CAPS interface
 812 */
 813#ifndef __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__
 814#define __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__
 815
 816DEFINE_GUID(IID_IEnumWIA_DEV_CAPS, 0x1fcc4287, 0xaca6, 0x11d2, 0xa0,0x93, 0x00,0xc0,0x4f,0x72,0xdc,0x3c);
 817#if defined(__cplusplus) && !defined(CINTERFACE)
 818MIDL_INTERFACE("1fcc4287-aca6-11d2-a093-00c04f72dc3c")
 819IEnumWIA_DEV_CAPS : public IUnknown
 820{
 821    virtual HRESULT STDMETHODCALLTYPE Next(
 822        ULONG celt,
 823        WIA_DEV_CAP *rgelt,
 824        ULONG *pceltFetched) = 0;
 825
 826    virtual HRESULT STDMETHODCALLTYPE Skip(
 827        ULONG celt) = 0;
 828
 829    virtual HRESULT STDMETHODCALLTYPE Reset(
 830        ) = 0;
 831
 832    virtual HRESULT STDMETHODCALLTYPE Clone(
 833        IEnumWIA_DEV_CAPS **ppIEnum) = 0;
 834
 835    virtual HRESULT STDMETHODCALLTYPE GetCount(
 836        ULONG *pcelt) = 0;
 837
 838};
 839#ifdef __CRT_UUID_DECL
 840__CRT_UUID_DECL(IEnumWIA_DEV_CAPS, 0x1fcc4287, 0xaca6, 0x11d2, 0xa0,0x93, 0x00,0xc0,0x4f,0x72,0xdc,0x3c)
 841#endif
 842#else
 843typedef struct IEnumWIA_DEV_CAPSVtbl {
 844    BEGIN_INTERFACE
 845
 846    /*** IUnknown methods ***/
 847    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 848        IEnumWIA_DEV_CAPS *This,
 849        REFIID riid,
 850        void **ppvObject);
 851
 852    ULONG (STDMETHODCALLTYPE *AddRef)(
 853        IEnumWIA_DEV_CAPS *This);
 854
 855    ULONG (STDMETHODCALLTYPE *Release)(
 856        IEnumWIA_DEV_CAPS *This);
 857
 858    /*** IEnumWIA_DEV_CAPS methods ***/
 859    HRESULT (STDMETHODCALLTYPE *Next)(
 860        IEnumWIA_DEV_CAPS *This,
 861        ULONG celt,
 862        WIA_DEV_CAP *rgelt,
 863        ULONG *pceltFetched);
 864
 865    HRESULT (STDMETHODCALLTYPE *Skip)(
 866        IEnumWIA_DEV_CAPS *This,
 867        ULONG celt);
 868
 869    HRESULT (STDMETHODCALLTYPE *Reset)(
 870        IEnumWIA_DEV_CAPS *This);
 871
 872    HRESULT (STDMETHODCALLTYPE *Clone)(
 873        IEnumWIA_DEV_CAPS *This,
 874        IEnumWIA_DEV_CAPS **ppIEnum);
 875
 876    HRESULT (STDMETHODCALLTYPE *GetCount)(
 877        IEnumWIA_DEV_CAPS *This,
 878        ULONG *pcelt);
 879
 880    END_INTERFACE
 881} IEnumWIA_DEV_CAPSVtbl;
 882
 883interface IEnumWIA_DEV_CAPS {
 884    CONST_VTBL IEnumWIA_DEV_CAPSVtbl* lpVtbl;
 885};
 886
 887#ifdef COBJMACROS
 888#ifndef WIDL_C_INLINE_WRAPPERS
 889/*** IUnknown methods ***/
 890#define IEnumWIA_DEV_CAPS_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 891#define IEnumWIA_DEV_CAPS_AddRef(This) (This)->lpVtbl->AddRef(This)
 892#define IEnumWIA_DEV_CAPS_Release(This) (This)->lpVtbl->Release(This)
 893/*** IEnumWIA_DEV_CAPS methods ***/
 894#define IEnumWIA_DEV_CAPS_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
 895#define IEnumWIA_DEV_CAPS_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
 896#define IEnumWIA_DEV_CAPS_Reset(This) (This)->lpVtbl->Reset(This)
 897#define IEnumWIA_DEV_CAPS_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
 898#define IEnumWIA_DEV_CAPS_GetCount(This,pcelt) (This)->lpVtbl->GetCount(This,pcelt)
 899#else
 900/*** IUnknown methods ***/
 901static inline HRESULT IEnumWIA_DEV_CAPS_QueryInterface(IEnumWIA_DEV_CAPS* This,REFIID riid,void **ppvObject) {
 902    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 903}
 904static inline ULONG IEnumWIA_DEV_CAPS_AddRef(IEnumWIA_DEV_CAPS* This) {
 905    return This->lpVtbl->AddRef(This);
 906}
 907static inline ULONG IEnumWIA_DEV_CAPS_Release(IEnumWIA_DEV_CAPS* This) {
 908    return This->lpVtbl->Release(This);
 909}
 910/*** IEnumWIA_DEV_CAPS methods ***/
 911static inline HRESULT IEnumWIA_DEV_CAPS_Next(IEnumWIA_DEV_CAPS* This,ULONG celt,WIA_DEV_CAP *rgelt,ULONG *pceltFetched) {
 912    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
 913}
 914static inline HRESULT IEnumWIA_DEV_CAPS_Skip(IEnumWIA_DEV_CAPS* This,ULONG celt) {
 915    return This->lpVtbl->Skip(This,celt);
 916}
 917static inline HRESULT IEnumWIA_DEV_CAPS_Reset(IEnumWIA_DEV_CAPS* This) {
 918    return This->lpVtbl->Reset(This);
 919}
 920static inline HRESULT IEnumWIA_DEV_CAPS_Clone(IEnumWIA_DEV_CAPS* This,IEnumWIA_DEV_CAPS **ppIEnum) {
 921    return This->lpVtbl->Clone(This,ppIEnum);
 922}
 923static inline HRESULT IEnumWIA_DEV_CAPS_GetCount(IEnumWIA_DEV_CAPS* This,ULONG *pcelt) {
 924    return This->lpVtbl->GetCount(This,pcelt);
 925}
 926#endif
 927#endif
 928
 929#endif
 930
 931
 932#endif  /* __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__ */
 933
 934typedef struct _WiaTransferParams {
 935    LONG lMessage;
 936    LONG lPercentComplete;
 937    ULONG64 ulTransferredBytes;
 938    HRESULT hrErrorStatus;
 939} WiaTransferParams;
 940/*****************************************************************************
 941 * IWiaTransferCallback interface
 942 */
 943#ifndef __IWiaTransferCallback_INTERFACE_DEFINED__
 944#define __IWiaTransferCallback_INTERFACE_DEFINED__
 945
 946DEFINE_GUID(IID_IWiaTransferCallback, 0x27d4eaaf, 0x28a6, 0x4ca5, 0x9a,0xab, 0xe6,0x78,0x16,0x8b,0x95,0x27);
 947#if defined(__cplusplus) && !defined(CINTERFACE)
 948MIDL_INTERFACE("27d4eaaf-28a6-4ca5-9aab-e678168b9527")
 949IWiaTransferCallback : public IUnknown
 950{
 951    virtual HRESULT STDMETHODCALLTYPE TransferCallback(
 952        LONG lFlags,
 953        WiaTransferParams *pWiaTransferParams) = 0;
 954
 955    virtual HRESULT STDMETHODCALLTYPE GetNextStream(
 956        LONG lFlags,
 957        BSTR bstrItemName,
 958        BSTR bstrFullItemName,
 959        IStream **ppDestination) = 0;
 960
 961};
 962#ifdef __CRT_UUID_DECL
 963__CRT_UUID_DECL(IWiaTransferCallback, 0x27d4eaaf, 0x28a6, 0x4ca5, 0x9a,0xab, 0xe6,0x78,0x16,0x8b,0x95,0x27)
 964#endif
 965#else
 966typedef struct IWiaTransferCallbackVtbl {
 967    BEGIN_INTERFACE
 968
 969    /*** IUnknown methods ***/
 970    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 971        IWiaTransferCallback *This,
 972        REFIID riid,
 973        void **ppvObject);
 974
 975    ULONG (STDMETHODCALLTYPE *AddRef)(
 976        IWiaTransferCallback *This);
 977
 978    ULONG (STDMETHODCALLTYPE *Release)(
 979        IWiaTransferCallback *This);
 980
 981    /*** IWiaTransferCallback methods ***/
 982    HRESULT (STDMETHODCALLTYPE *TransferCallback)(
 983        IWiaTransferCallback *This,
 984        LONG lFlags,
 985        WiaTransferParams *pWiaTransferParams);
 986
 987    HRESULT (STDMETHODCALLTYPE *GetNextStream)(
 988        IWiaTransferCallback *This,
 989        LONG lFlags,
 990        BSTR bstrItemName,
 991        BSTR bstrFullItemName,
 992        IStream **ppDestination);
 993
 994    END_INTERFACE
 995} IWiaTransferCallbackVtbl;
 996
 997interface IWiaTransferCallback {
 998    CONST_VTBL IWiaTransferCallbackVtbl* lpVtbl;
 999};
1000
1001#ifdef COBJMACROS
1002#ifndef WIDL_C_INLINE_WRAPPERS
1003/*** IUnknown methods ***/
1004#define IWiaTransferCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1005#define IWiaTransferCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
1006#define IWiaTransferCallback_Release(This) (This)->lpVtbl->Release(This)
1007/*** IWiaTransferCallback methods ***/
1008#define IWiaTransferCallback_TransferCallback(This,lFlags,pWiaTransferParams) (This)->lpVtbl->TransferCallback(This,lFlags,pWiaTransferParams)
1009#define IWiaTransferCallback_GetNextStream(This,lFlags,bstrItemName,bstrFullItemName,ppDestination) (This)->lpVtbl->GetNextStream(This,lFlags,bstrItemName,bstrFullItemName,ppDestination)
1010#else
1011/*** IUnknown methods ***/
1012static inline HRESULT IWiaTransferCallback_QueryInterface(IWiaTransferCallback* This,REFIID riid,void **ppvObject) {
1013    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1014}
1015static inline ULONG IWiaTransferCallback_AddRef(IWiaTransferCallback* This) {
1016    return This->lpVtbl->AddRef(This);
1017}
1018static inline ULONG IWiaTransferCallback_Release(IWiaTransferCallback* This) {
1019    return This->lpVtbl->Release(This);
1020}
1021/*** IWiaTransferCallback methods ***/
1022static inline HRESULT IWiaTransferCallback_TransferCallback(IWiaTransferCallback* This,LONG lFlags,WiaTransferParams *pWiaTransferParams) {
1023    return This->lpVtbl->TransferCallback(This,lFlags,pWiaTransferParams);
1024}
1025static inline HRESULT IWiaTransferCallback_GetNextStream(IWiaTransferCallback* This,LONG lFlags,BSTR bstrItemName,BSTR bstrFullItemName,IStream **ppDestination) {
1026    return This->lpVtbl->GetNextStream(This,lFlags,bstrItemName,bstrFullItemName,ppDestination);
1027}
1028#endif
1029#endif
1030
1031#endif
1032
1033
1034#endif  /* __IWiaTransferCallback_INTERFACE_DEFINED__ */
1035
1036/*****************************************************************************
1037 * IWiaPreview interface
1038 */
1039#ifndef __IWiaPreview_INTERFACE_DEFINED__
1040#define __IWiaPreview_INTERFACE_DEFINED__
1041
1042DEFINE_GUID(IID_IWiaPreview, 0x95c2b4fd, 0x33f2, 0x4d86, 0xad,0x40, 0x94,0x31,0xf0,0xdf,0x08,0xf7);
1043#if defined(__cplusplus) && !defined(CINTERFACE)
1044MIDL_INTERFACE("95c2b4fd-33f2-4d86-ad40-9431f0df08f7")
1045IWiaPreview : public IUnknown
1046{
1047    virtual HRESULT STDMETHODCALLTYPE GetNewPreview(
1048        LONG lFlags,
1049        IWiaItem2 *pWiaItem2,
1050        IWiaTransferCallback *pWiaTransferCallback) = 0;
1051
1052    virtual HRESULT STDMETHODCALLTYPE UpdatePreview(
1053        LONG lFlags,
1054        IWiaItem2 *pChildWiaItem2,
1055        IWiaTransferCallback *pWiaTransferCallback) = 0;
1056
1057    virtual HRESULT STDMETHODCALLTYPE DetectRegions(
1058        LONG lFlags) = 0;
1059
1060    virtual HRESULT STDMETHODCALLTYPE Clear(
1061        ) = 0;
1062
1063};
1064#ifdef __CRT_UUID_DECL
1065__CRT_UUID_DECL(IWiaPreview, 0x95c2b4fd, 0x33f2, 0x4d86, 0xad,0x40, 0x94,0x31,0xf0,0xdf,0x08,0xf7)
1066#endif
1067#else
1068typedef struct IWiaPreviewVtbl {
1069    BEGIN_INTERFACE
1070
1071    /*** IUnknown methods ***/
1072    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1073        IWiaPreview *This,
1074        REFIID riid,
1075        void **ppvObject);
1076
1077    ULONG (STDMETHODCALLTYPE *AddRef)(
1078        IWiaPreview *This);
1079
1080    ULONG (STDMETHODCALLTYPE *Release)(
1081        IWiaPreview *This);
1082
1083    /*** IWiaPreview methods ***/
1084    HRESULT (STDMETHODCALLTYPE *GetNewPreview)(
1085        IWiaPreview *This,
1086        LONG lFlags,
1087        IWiaItem2 *pWiaItem2,
1088        IWiaTransferCallback *pWiaTransferCallback);
1089
1090    HRESULT (STDMETHODCALLTYPE *UpdatePreview)(
1091        IWiaPreview *This,
1092        LONG lFlags,
1093        IWiaItem2 *pChildWiaItem2,
1094        IWiaTransferCallback *pWiaTransferCallback);
1095
1096    HRESULT (STDMETHODCALLTYPE *DetectRegions)(
1097        IWiaPreview *This,
1098        LONG lFlags);
1099
1100    HRESULT (STDMETHODCALLTYPE *Clear)(
1101        IWiaPreview *This);
1102
1103    END_INTERFACE
1104} IWiaPreviewVtbl;
1105
1106interface IWiaPreview {
1107    CONST_VTBL IWiaPreviewVtbl* lpVtbl;
1108};
1109
1110#ifdef COBJMACROS
1111#ifndef WIDL_C_INLINE_WRAPPERS
1112/*** IUnknown methods ***/
1113#define IWiaPreview_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1114#define IWiaPreview_AddRef(This) (This)->lpVtbl->AddRef(This)
1115#define IWiaPreview_Release(This) (This)->lpVtbl->Release(This)
1116/*** IWiaPreview methods ***/
1117#define IWiaPreview_GetNewPreview(This,lFlags,pWiaItem2,pWiaTransferCallback) (This)->lpVtbl->GetNewPreview(This,lFlags,pWiaItem2,pWiaTransferCallback)
1118#define IWiaPreview_UpdatePreview(This,lFlags,pChildWiaItem2,pWiaTransferCallback) (This)->lpVtbl->UpdatePreview(This,lFlags,pChildWiaItem2,pWiaTransferCallback)
1119#define IWiaPreview_DetectRegions(This,lFlags) (This)->lpVtbl->DetectRegions(This,lFlags)
1120#define IWiaPreview_Clear(This) (This)->lpVtbl->Clear(This)
1121#else
1122/*** IUnknown methods ***/
1123static inline HRESULT IWiaPreview_QueryInterface(IWiaPreview* This,REFIID riid,void **ppvObject) {
1124    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1125}
1126static inline ULONG IWiaPreview_AddRef(IWiaPreview* This) {
1127    return This->lpVtbl->AddRef(This);
1128}
1129static inline ULONG IWiaPreview_Release(IWiaPreview* This) {
1130    return This->lpVtbl->Release(This);
1131}
1132/*** IWiaPreview methods ***/
1133static inline HRESULT IWiaPreview_GetNewPreview(IWiaPreview* This,LONG lFlags,IWiaItem2 *pWiaItem2,IWiaTransferCallback *pWiaTransferCallback) {
1134    return This->lpVtbl->GetNewPreview(This,lFlags,pWiaItem2,pWiaTransferCallback);
1135}
1136static inline HRESULT IWiaPreview_UpdatePreview(IWiaPreview* This,LONG lFlags,IWiaItem2 *pChildWiaItem2,IWiaTransferCallback *pWiaTransferCallback) {
1137    return This->lpVtbl->UpdatePreview(This,lFlags,pChildWiaItem2,pWiaTransferCallback);
1138}
1139static inline HRESULT IWiaPreview_DetectRegions(IWiaPreview* This,LONG lFlags) {
1140    return This->lpVtbl->DetectRegions(This,lFlags);
1141}
1142static inline HRESULT IWiaPreview_Clear(IWiaPreview* This) {
1143    return This->lpVtbl->Clear(This);
1144}
1145#endif
1146#endif
1147
1148#endif
1149
1150
1151#endif  /* __IWiaPreview_INTERFACE_DEFINED__ */
1152
1153/*****************************************************************************
1154 * IEnumWiaItem2 interface
1155 */
1156#ifndef __IEnumWiaItem2_INTERFACE_DEFINED__
1157#define __IEnumWiaItem2_INTERFACE_DEFINED__
1158
1159DEFINE_GUID(IID_IEnumWiaItem2, 0x59970af4, 0xcd0d, 0x44d9, 0xab,0x24, 0x52,0x29,0x56,0x30,0xe5,0x82);
1160#if defined(__cplusplus) && !defined(CINTERFACE)
1161MIDL_INTERFACE("59970af4-cd0d-44d9-ab24-52295630e582")
1162IEnumWiaItem2 : public IUnknown
1163{
1164    virtual HRESULT STDMETHODCALLTYPE Next(
1165        ULONG cElt,
1166        IWiaItem2 **ppIWiaItem2,
1167        ULONG *pcEltFetched) = 0;
1168
1169    virtual HRESULT STDMETHODCALLTYPE Skip(
1170        ULONG cElt) = 0;
1171
1172    virtual HRESULT STDMETHODCALLTYPE Reset(
1173        ) = 0;
1174
1175    virtual HRESULT STDMETHODCALLTYPE Clone(
1176        IEnumWiaItem2 **ppIEnum) = 0;
1177
1178    virtual HRESULT STDMETHODCALLTYPE GetCount(
1179        ULONG *cElt) = 0;
1180
1181};
1182#ifdef __CRT_UUID_DECL
1183__CRT_UUID_DECL(IEnumWiaItem2, 0x59970af4, 0xcd0d, 0x44d9, 0xab,0x24, 0x52,0x29,0x56,0x30,0xe5,0x82)
1184#endif
1185#else
1186typedef struct IEnumWiaItem2Vtbl {
1187    BEGIN_INTERFACE
1188
1189    /*** IUnknown methods ***/
1190    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1191        IEnumWiaItem2 *This,
1192        REFIID riid,
1193        void **ppvObject);
1194
1195    ULONG (STDMETHODCALLTYPE *AddRef)(
1196        IEnumWiaItem2 *This);
1197
1198    ULONG (STDMETHODCALLTYPE *Release)(
1199        IEnumWiaItem2 *This);
1200
1201    /*** IEnumWiaItem2 methods ***/
1202    HRESULT (STDMETHODCALLTYPE *Next)(
1203        IEnumWiaItem2 *This,
1204        ULONG cElt,
1205        IWiaItem2 **ppIWiaItem2,
1206        ULONG *pcEltFetched);
1207
1208    HRESULT (STDMETHODCALLTYPE *Skip)(
1209        IEnumWiaItem2 *This,
1210        ULONG cElt);
1211
1212    HRESULT (STDMETHODCALLTYPE *Reset)(
1213        IEnumWiaItem2 *This);
1214
1215    HRESULT (STDMETHODCALLTYPE *Clone)(
1216        IEnumWiaItem2 *This,
1217        IEnumWiaItem2 **ppIEnum);
1218
1219    HRESULT (STDMETHODCALLTYPE *GetCount)(
1220        IEnumWiaItem2 *This,
1221        ULONG *cElt);
1222
1223    END_INTERFACE
1224} IEnumWiaItem2Vtbl;
1225
1226interface IEnumWiaItem2 {
1227    CONST_VTBL IEnumWiaItem2Vtbl* lpVtbl;
1228};
1229
1230#ifdef COBJMACROS
1231#ifndef WIDL_C_INLINE_WRAPPERS
1232/*** IUnknown methods ***/
1233#define IEnumWiaItem2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1234#define IEnumWiaItem2_AddRef(This) (This)->lpVtbl->AddRef(This)
1235#define IEnumWiaItem2_Release(This) (This)->lpVtbl->Release(This)
1236/*** IEnumWiaItem2 methods ***/
1237#define IEnumWiaItem2_Next(This,cElt,ppIWiaItem2,pcEltFetched) (This)->lpVtbl->Next(This,cElt,ppIWiaItem2,pcEltFetched)
1238#define IEnumWiaItem2_Skip(This,cElt) (This)->lpVtbl->Skip(This,cElt)
1239#define IEnumWiaItem2_Reset(This) (This)->lpVtbl->Reset(This)
1240#define IEnumWiaItem2_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
1241#define IEnumWiaItem2_GetCount(This,cElt) (This)->lpVtbl->GetCount(This,cElt)
1242#else
1243/*** IUnknown methods ***/
1244static inline HRESULT IEnumWiaItem2_QueryInterface(IEnumWiaItem2* This,REFIID riid,void **ppvObject) {
1245    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1246}
1247static inline ULONG IEnumWiaItem2_AddRef(IEnumWiaItem2* This) {
1248    return This->lpVtbl->AddRef(This);
1249}
1250static inline ULONG IEnumWiaItem2_Release(IEnumWiaItem2* This) {
1251    return This->lpVtbl->Release(This);
1252}
1253/*** IEnumWiaItem2 methods ***/
1254static inline HRESULT IEnumWiaItem2_Next(IEnumWiaItem2* This,ULONG cElt,IWiaItem2 **ppIWiaItem2,ULONG *pcEltFetched) {
1255    return This->lpVtbl->Next(This,cElt,ppIWiaItem2,pcEltFetched);
1256}
1257static inline HRESULT IEnumWiaItem2_Skip(IEnumWiaItem2* This,ULONG cElt) {
1258    return This->lpVtbl->Skip(This,cElt);
1259}
1260static inline HRESULT IEnumWiaItem2_Reset(IEnumWiaItem2* This) {
1261    return This->lpVtbl->Reset(This);
1262}
1263static inline HRESULT IEnumWiaItem2_Clone(IEnumWiaItem2* This,IEnumWiaItem2 **ppIEnum) {
1264    return This->lpVtbl->Clone(This,ppIEnum);
1265}
1266static inline HRESULT IEnumWiaItem2_GetCount(IEnumWiaItem2* This,ULONG *cElt) {
1267    return This->lpVtbl->GetCount(This,cElt);
1268}
1269#endif
1270#endif
1271
1272#endif
1273
1274
1275#endif  /* __IEnumWiaItem2_INTERFACE_DEFINED__ */
1276
1277/*****************************************************************************
1278 * IWiaItem2 interface
1279 */
1280#ifndef __IWiaItem2_INTERFACE_DEFINED__
1281#define __IWiaItem2_INTERFACE_DEFINED__
1282
1283DEFINE_GUID(IID_IWiaItem2, 0x6cba0075, 0x1287, 0x407d, 0x9b,0x77, 0xcf,0x0e,0x03,0x04,0x35,0xcc);
1284#if defined(__cplusplus) && !defined(CINTERFACE)
1285MIDL_INTERFACE("6cba0075-1287-407d-9b77-cf0e030435cc")
1286IWiaItem2 : public IUnknown
1287{
1288    virtual HRESULT STDMETHODCALLTYPE CreateChildItem(
1289        LONG lItemFlags,
1290        LONG lCreationFlags,
1291        BSTR bstrItemName,
1292        IWiaItem2 **ppIWiaItem2) = 0;
1293
1294    virtual HRESULT STDMETHODCALLTYPE DeleteItem(
1295        LONG lFlags) = 0;
1296
1297    virtual HRESULT STDMETHODCALLTYPE EnumChildItems(
1298        const GUID *pCategoryGUID,
1299        IEnumWiaItem2 **ppIEnumWiaItem2) = 0;
1300
1301    virtual HRESULT STDMETHODCALLTYPE FindItemByName(
1302        LONG lFlags,
1303        BSTR bstrFullItemName,
1304        IWiaItem2 **ppIWiaItem2) = 0;
1305
1306    virtual HRESULT STDMETHODCALLTYPE GetItemCategory(
1307        GUID *pItemCategoryGUID) = 0;
1308
1309    virtual HRESULT STDMETHODCALLTYPE GetItemType(
1310        LONG *pItemType) = 0;
1311
1312    virtual HRESULT STDMETHODCALLTYPE DeviceDlg(
1313        LONG lFlags,
1314        HWND hwndParent,
1315        BSTR bstrFolderName,
1316        BSTR bstrFilename,
1317        LONG *plNumFiles,
1318        BSTR **ppbstrFilePaths,
1319        IWiaItem2 **ppItem) = 0;
1320
1321    virtual HRESULT STDMETHODCALLTYPE DeviceCommand(
1322        LONG lFlags,
1323        const GUID *pCmdGUID,
1324        IWiaItem2 **ppIWiaItem2) = 0;
1325
1326    virtual HRESULT STDMETHODCALLTYPE EnumDeviceCapabilities(
1327        LONG lFlags,
1328        IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS) = 0;
1329
1330    virtual HRESULT STDMETHODCALLTYPE CheckExtension(
1331        LONG lFlags,
1332        BSTR bstrName,
1333        REFIID riidExtensionInterface,
1334        WINBOOL *pbExtensionExists) = 0;
1335
1336    virtual HRESULT STDMETHODCALLTYPE GetExtension(
1337        LONG lFlags,
1338        BSTR bstrName,
1339        REFIID riidExtensionInterface,
1340        void **ppOut) = 0;
1341
1342    virtual HRESULT STDMETHODCALLTYPE GetParentItem(
1343        IWiaItem2 **ppIWiaItem2) = 0;
1344
1345    virtual HRESULT STDMETHODCALLTYPE GetRootItem(
1346        IWiaItem2 **ppIWiaItem2) = 0;
1347
1348    virtual HRESULT STDMETHODCALLTYPE GetPreviewComponent(
1349        LONG lFlags,
1350        IWiaPreview **ppWiaPreview) = 0;
1351
1352    virtual HRESULT STDMETHODCALLTYPE EnumRegisterEventInfo(
1353        LONG lFlags,
1354        const GUID *pEventGUID,
1355        IEnumWIA_DEV_CAPS **ppIEnum) = 0;
1356
1357    virtual HRESULT STDMETHODCALLTYPE Diagnostic(
1358        ULONG ulSize,
1359        BYTE *pBuffer) = 0;
1360
1361};
1362#ifdef __CRT_UUID_DECL
1363__CRT_UUID_DECL(IWiaItem2, 0x6cba0075, 0x1287, 0x407d, 0x9b,0x77, 0xcf,0x0e,0x03,0x04,0x35,0xcc)
1364#endif
1365#else
1366typedef struct IWiaItem2Vtbl {
1367    BEGIN_INTERFACE
1368
1369    /*** IUnknown methods ***/
1370    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1371        IWiaItem2 *This,
1372        REFIID riid,
1373        void **ppvObject);
1374
1375    ULONG (STDMETHODCALLTYPE *AddRef)(
1376        IWiaItem2 *This);
1377
1378    ULONG (STDMETHODCALLTYPE *Release)(
1379        IWiaItem2 *This);
1380
1381    /*** IWiaItem2 methods ***/
1382    HRESULT (STDMETHODCALLTYPE *CreateChildItem)(
1383        IWiaItem2 *This,
1384        LONG lItemFlags,
1385        LONG lCreationFlags,
1386        BSTR bstrItemName,
1387        IWiaItem2 **ppIWiaItem2);
1388
1389    HRESULT (STDMETHODCALLTYPE *DeleteItem)(
1390        IWiaItem2 *This,
1391        LONG lFlags);
1392
1393    HRESULT (STDMETHODCALLTYPE *EnumChildItems)(
1394        IWiaItem2 *This,
1395        const GUID *pCategoryGUID,
1396        IEnumWiaItem2 **ppIEnumWiaItem2);
1397
1398    HRESULT (STDMETHODCALLTYPE *FindItemByName)(
1399        IWiaItem2 *This,
1400        LONG lFlags,
1401        BSTR bstrFullItemName,
1402        IWiaItem2 **ppIWiaItem2);
1403
1404    HRESULT (STDMETHODCALLTYPE *GetItemCategory)(
1405        IWiaItem2 *This,
1406        GUID *pItemCategoryGUID);
1407
1408    HRESULT (STDMETHODCALLTYPE *GetItemType)(
1409        IWiaItem2 *This,
1410        LONG *pItemType);
1411
1412    HRESULT (STDMETHODCALLTYPE *DeviceDlg)(
1413        IWiaItem2 *This,
1414        LONG lFlags,
1415        HWND hwndParent,
1416        BSTR bstrFolderName,
1417        BSTR bstrFilename,
1418        LONG *plNumFiles,
1419        BSTR **ppbstrFilePaths,
1420        IWiaItem2 **ppItem);
1421
1422    HRESULT (STDMETHODCALLTYPE *DeviceCommand)(
1423        IWiaItem2 *This,
1424        LONG lFlags,
1425        const GUID *pCmdGUID,
1426        IWiaItem2 **ppIWiaItem2);
1427
1428    HRESULT (STDMETHODCALLTYPE *EnumDeviceCapabilities)(
1429        IWiaItem2 *This,
1430        LONG lFlags,
1431        IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS);
1432
1433    HRESULT (STDMETHODCALLTYPE *CheckExtension)(
1434        IWiaItem2 *This,
1435        LONG lFlags,
1436        BSTR bstrName,
1437        REFIID riidExtensionInterface,
1438        WINBOOL *pbExtensionExists);
1439
1440    HRESULT (STDMETHODCALLTYPE *GetExtension)(
1441        IWiaItem2 *This,
1442        LONG lFlags,
1443        BSTR bstrName,
1444        REFIID riidExtensionInterface,
1445        void **ppOut);
1446
1447    HRESULT (STDMETHODCALLTYPE *GetParentItem)(
1448        IWiaItem2 *This,
1449        IWiaItem2 **ppIWiaItem2);
1450
1451    HRESULT (STDMETHODCALLTYPE *GetRootItem)(
1452        IWiaItem2 *This,
1453        IWiaItem2 **ppIWiaItem2);
1454
1455    HRESULT (STDMETHODCALLTYPE *GetPreviewComponent)(
1456        IWiaItem2 *This,
1457        LONG lFlags,
1458        IWiaPreview **ppWiaPreview);
1459
1460    HRESULT (STDMETHODCALLTYPE *EnumRegisterEventInfo)(
1461        IWiaItem2 *This,
1462        LONG lFlags,
1463        const GUID *pEventGUID,
1464        IEnumWIA_DEV_CAPS **ppIEnum);
1465
1466    HRESULT (STDMETHODCALLTYPE *Diagnostic)(
1467        IWiaItem2 *This,
1468        ULONG ulSize,
1469        BYTE *pBuffer);
1470
1471    END_INTERFACE
1472} IWiaItem2Vtbl;
1473
1474interface IWiaItem2 {
1475    CONST_VTBL IWiaItem2Vtbl* lpVtbl;
1476};
1477
1478#ifdef COBJMACROS
1479#ifndef WIDL_C_INLINE_WRAPPERS
1480/*** IUnknown methods ***/
1481#define IWiaItem2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1482#define IWiaItem2_AddRef(This) (This)->lpVtbl->AddRef(This)
1483#define IWiaItem2_Release(This) (This)->lpVtbl->Release(This)
1484/*** IWiaItem2 methods ***/
1485#define IWiaItem2_CreateChildItem(This,lItemFlags,lCreationFlags,bstrItemName,ppIWiaItem2) (This)->lpVtbl->CreateChildItem(This,lItemFlags,lCreationFlags,bstrItemName,ppIWiaItem2)
1486#define IWiaItem2_DeleteItem(This,lFlags) (This)->lpVtbl->DeleteItem(This,lFlags)
1487#define IWiaItem2_EnumChildItems(This,pCategoryGUID,ppIEnumWiaItem2) (This)->lpVtbl->EnumChildItems(This,pCategoryGUID,ppIEnumWiaItem2)
1488#define IWiaItem2_FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem2) (This)->lpVtbl->FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem2)
1489#define IWiaItem2_GetItemCategory(This,pItemCategoryGUID) (This)->lpVtbl->GetItemCategory(This,pItemCategoryGUID)
1490#define IWiaItem2_GetItemType(This,pItemType) (This)->lpVtbl->GetItemType(This,pItemType)
1491#define IWiaItem2_DeviceDlg(This,lFlags,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem) (This)->lpVtbl->DeviceDlg(This,lFlags,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem)
1492#define IWiaItem2_DeviceCommand(This,lFlags,pCmdGUID,ppIWiaItem2) (This)->lpVtbl->DeviceCommand(This,lFlags,pCmdGUID,ppIWiaItem2)
1493#define IWiaItem2_EnumDeviceCapabilities(This,lFlags,ppIEnumWIA_DEV_CAPS) (This)->lpVtbl->EnumDeviceCapabilities(This,lFlags,ppIEnumWIA_DEV_CAPS)
1494#define IWiaItem2_CheckExtension(This,lFlags,bstrName,riidExtensionInterface,pbExtensionExists) (This)->lpVtbl->CheckExtension(This,lFlags,bstrName,riidExtensionInterface,pbExtensionExists)
1495#define IWiaItem2_GetExtension(This,lFlags,bstrName,riidExtensionInterface,ppOut) (This)->lpVtbl->GetExtension(This,lFlags,bstrName,riidExtensionInterface,ppOut)
1496#define IWiaItem2_GetParentItem(This,ppIWiaItem2) (This)->lpVtbl->GetParentItem(This,ppIWiaItem2)
1497#define IWiaItem2_GetRootItem(This,ppIWiaItem2) (This)->lpVtbl->GetRootItem(This,ppIWiaItem2)
1498#define IWiaItem2_GetPreviewComponent(This,lFlags,ppWiaPreview) (This)->lpVtbl->GetPreviewComponent(This,lFlags,ppWiaPreview)
1499#define IWiaItem2_EnumRegisterEventInfo(This,lFlags,pEventGUID,ppIEnum) (This)->lpVtbl->EnumRegisterEventInfo(This,lFlags,pEventGUID,ppIEnum)
1500#define IWiaItem2_Diagnostic(This,ulSize,pBuffer) (This)->lpVtbl->Diagnostic(This,ulSize,pBuffer)
1501#else
1502/*** IUnknown methods ***/
1503static inline HRESULT IWiaItem2_QueryInterface(IWiaItem2* This,REFIID riid,void **ppvObject) {
1504    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1505}
1506static inline ULONG IWiaItem2_AddRef(IWiaItem2* This) {
1507    return This->lpVtbl->AddRef(This);
1508}
1509static inline ULONG IWiaItem2_Release(IWiaItem2* This) {
1510    return This->lpVtbl->Release(This);
1511}
1512/*** IWiaItem2 methods ***/
1513static inline HRESULT IWiaItem2_CreateChildItem(IWiaItem2* This,LONG lItemFlags,LONG lCreationFlags,BSTR bstrItemName,IWiaItem2 **ppIWiaItem2) {
1514    return This->lpVtbl->CreateChildItem(This,lItemFlags,lCreationFlags,bstrItemName,ppIWiaItem2);
1515}
1516static inline HRESULT IWiaItem2_DeleteItem(IWiaItem2* This,LONG lFlags) {
1517    return This->lpVtbl->DeleteItem(This,lFlags);
1518}
1519static inline HRESULT IWiaItem2_EnumChildItems(IWiaItem2* This,const GUID *pCategoryGUID,IEnumWiaItem2 **ppIEnumWiaItem2) {
1520    return This->lpVtbl->EnumChildItems(This,pCategoryGUID,ppIEnumWiaItem2);
1521}
1522static inline HRESULT IWiaItem2_FindItemByName(IWiaItem2* This,LONG lFlags,BSTR bstrFullItemName,IWiaItem2 **ppIWiaItem2) {
1523    return This->lpVtbl->FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem2);
1524}
1525static inline HRESULT IWiaItem2_GetItemCategory(IWiaItem2* This,GUID *pItemCategoryGUID) {
1526    return This->lpVtbl->GetItemCategory(This,pItemCategoryGUID);
1527}
1528static inline HRESULT IWiaItem2_GetItemType(IWiaItem2* This,LONG *pItemType) {
1529    return This->lpVtbl->GetItemType(This,pItemType);
1530}
1531static inline HRESULT IWiaItem2_DeviceDlg(IWiaItem2* This,LONG lFlags,HWND hwndParent,BSTR bstrFolderName,BSTR bstrFilename,LONG *plNumFiles,BSTR **ppbstrFilePaths,IWiaItem2 **ppItem) {
1532    return This->lpVtbl->DeviceDlg(This,lFlags,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem);
1533}
1534static inline HRESULT IWiaItem2_DeviceCommand(IWiaItem2* This,LONG lFlags,const GUID *pCmdGUID,IWiaItem2 **ppIWiaItem2) {
1535    return This->lpVtbl->DeviceCommand(This,lFlags,pCmdGUID,ppIWiaItem2);
1536}
1537static inline HRESULT IWiaItem2_EnumDeviceCapabilities(IWiaItem2* This,LONG lFlags,IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS) {
1538    return This->lpVtbl->EnumDeviceCapabilities(This,lFlags,ppIEnumWIA_DEV_CAPS);
1539}
1540static inline HRESULT IWiaItem2_CheckExtension(IWiaItem2* This,LONG lFlags,BSTR bstrName,REFIID riidExtensionInterface,WINBOOL *pbExtensionExists) {
1541    return This->lpVtbl->CheckExtension(This,lFlags,bstrName,riidExtensionInterface,pbExtensionExists);
1542}
1543static inline HRESULT IWiaItem2_GetExtension(IWiaItem2* This,LONG lFlags,BSTR bstrName,REFIID riidExtensionInterface,void **ppOut) {
1544    return This->lpVtbl->GetExtension(This,lFlags,bstrName,riidExtensionInterface,ppOut);
1545}
1546static inline HRESULT IWiaItem2_GetParentItem(IWiaItem2* This,IWiaItem2 **ppIWiaItem2) {
1547    return This->lpVtbl->GetParentItem(This,ppIWiaItem2);
1548}
1549static inline HRESULT IWiaItem2_GetRootItem(IWiaItem2* This,IWiaItem2 **ppIWiaItem2) {
1550    return This->lpVtbl->GetRootItem(This,ppIWiaItem2);
1551}
1552static inline HRESULT IWiaItem2_GetPreviewComponent(IWiaItem2* This,LONG lFlags,IWiaPreview **ppWiaPreview) {
1553    return This->lpVtbl->GetPreviewComponent(This,lFlags,ppWiaPreview);
1554}
1555static inline HRESULT IWiaItem2_EnumRegisterEventInfo(IWiaItem2* This,LONG lFlags,const GUID *pEventGUID,IEnumWIA_DEV_CAPS **ppIEnum) {
1556    return This->lpVtbl->EnumRegisterEventInfo(This,lFlags,pEventGUID,ppIEnum);
1557}
1558static inline HRESULT IWiaItem2_Diagnostic(IWiaItem2* This,ULONG ulSize,BYTE *pBuffer) {
1559    return This->lpVtbl->Diagnostic(This,ulSize,pBuffer);
1560}
1561#endif
1562#endif
1563
1564#endif
1565
1566
1567#endif  /* __IWiaItem2_INTERFACE_DEFINED__ */
1568
1569/*****************************************************************************
1570 * IWiaDevMgr2 interface
1571 */
1572#ifndef __IWiaDevMgr2_INTERFACE_DEFINED__
1573#define __IWiaDevMgr2_INTERFACE_DEFINED__
1574
1575DEFINE_GUID(IID_IWiaDevMgr2, 0x79c07cf1, 0xcbdd, 0x41ee, 0x8e,0xc3, 0xf0,0x00,0x80,0xca,0xda,0x7a);
1576#if defined(__cplusplus) && !defined(CINTERFACE)
1577MIDL_INTERFACE("79c07cf1-cbdd-41ee-8ec3-f00080cada7a")
1578IWiaDevMgr2 : public IUnknown
1579{
1580    virtual HRESULT STDMETHODCALLTYPE EnumDeviceInfo(
1581        LONG lFlags,
1582        IEnumWIA_DEV_INFO **ppIEnum) = 0;
1583
1584    virtual HRESULT STDMETHODCALLTYPE CreateDevice(
1585        LONG lFlags,
1586        BSTR bstrDeviceID,
1587        IWiaItem2 **ppWiaItem2Root) = 0;
1588
1589    virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlg(
1590        HWND hwndParent,
1591        LONG lDeviceType,
1592        LONG lFlags,
1593        BSTR *pbstrDeviceID,
1594        IWiaItem2 **ppItemRoot) = 0;
1595
1596    virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlgID(
1597        HWND hwndParent,
1598        LONG lDeviceType,
1599        LONG lFlags,
1600        BSTR *pbstrDeviceID) = 0;
1601
1602    virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackInterface(
1603        LONG lFlags,
1604        BSTR bstrDeviceID,
1605        const GUID *pEventGUID,
1606        IWiaEventCallback *pIWiaEventCallback,
1607        IUnknown **pEventObject) = 0;
1608
1609    virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackProgram(
1610        LONG lFlags,
1611        BSTR bstrDeviceID,
1612        const GUID *pEventGUID,
1613        BSTR bstrFullAppName,
1614        BSTR bstrCommandLineArg,
1615        BSTR bstrName,
1616        BSTR bstrDescription,
1617        BSTR bstrIcon) = 0;
1618
1619    virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackCLSID(
1620        LONG lFlags,
1621        BSTR bstrDeviceID,
1622        const GUID *pEventGUID,
1623        const GUID *pClsID,
1624        BSTR bstrName,
1625        BSTR bstrDescription,
1626        BSTR bstrIcon) = 0;
1627
1628    virtual HRESULT STDMETHODCALLTYPE GetImageDlg(
1629        LONG lFlags,
1630        BSTR bstrDeviceID,
1631        HWND hwndParent,
1632        BSTR bstrFolderName,
1633        BSTR bstrFilename,
1634        LONG *plNumFiles,
1635        BSTR **ppbstrFilePaths,
1636        IWiaItem2 **ppItem) = 0;
1637
1638};
1639#ifdef __CRT_UUID_DECL
1640__CRT_UUID_DECL(IWiaDevMgr2, 0x79c07cf1, 0xcbdd, 0x41ee, 0x8e,0xc3, 0xf0,0x00,0x80,0xca,0xda,0x7a)
1641#endif
1642#else
1643typedef struct IWiaDevMgr2Vtbl {
1644    BEGIN_INTERFACE
1645
1646    /*** IUnknown methods ***/
1647    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1648        IWiaDevMgr2 *This,
1649        REFIID riid,
1650        void **ppvObject);
1651
1652    ULONG (STDMETHODCALLTYPE *AddRef)(
1653        IWiaDevMgr2 *This);
1654
1655    ULONG (STDMETHODCALLTYPE *Release)(
1656        IWiaDevMgr2 *This);
1657
1658    /*** IWiaDevMgr2 methods ***/
1659    HRESULT (STDMETHODCALLTYPE *EnumDeviceInfo)(
1660        IWiaDevMgr2 *This,
1661        LONG lFlags,
1662        IEnumWIA_DEV_INFO **ppIEnum);
1663
1664    HRESULT (STDMETHODCALLTYPE *CreateDevice)(
1665        IWiaDevMgr2 *This,
1666        LONG lFlags,
1667        BSTR bstrDeviceID,
1668        IWiaItem2 **ppWiaItem2Root);
1669
1670    HRESULT (STDMETHODCALLTYPE *SelectDeviceDlg)(
1671        IWiaDevMgr2 *This,
1672        HWND hwndParent,
1673        LONG lDeviceType,
1674        LONG lFlags,
1675        BSTR *pbstrDeviceID,
1676        IWiaItem2 **ppItemRoot);
1677
1678    HRESULT (STDMETHODCALLTYPE *SelectDeviceDlgID)(
1679        IWiaDevMgr2 *This,
1680        HWND hwndParent,
1681        LONG lDeviceType,
1682        LONG lFlags,
1683        BSTR *pbstrDeviceID);
1684
1685    HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackInterface)(
1686        IWiaDevMgr2 *This,
1687        LONG lFlags,
1688        BSTR bstrDeviceID,
1689        const GUID *pEventGUID,
1690        IWiaEventCallback *pIWiaEventCallback,
1691        IUnknown **pEventObject);
1692
1693    HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackProgram)(
1694        IWiaDevMgr2 *This,
1695        LONG lFlags,
1696        BSTR bstrDeviceID,
1697        const GUID *pEventGUID,
1698        BSTR bstrFullAppName,
1699        BSTR bstrCommandLineArg,
1700        BSTR bstrName,
1701        BSTR bstrDescription,
1702        BSTR bstrIcon);
1703
1704    HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackCLSID)(
1705        IWiaDevMgr2 *This,
1706        LONG lFlags,
1707        BSTR bstrDeviceID,
1708        const GUID *pEventGUID,
1709        const GUID *pClsID,
1710        BSTR bstrName,
1711        BSTR bstrDescription,
1712        BSTR bstrIcon);
1713
1714    HRESULT (STDMETHODCALLTYPE *GetImageDlg)(
1715        IWiaDevMgr2 *This,
1716        LONG lFlags,
1717        BSTR bstrDeviceID,
1718        HWND hwndParent,
1719        BSTR bstrFolderName,
1720        BSTR bstrFilename,
1721        LONG *plNumFiles,
1722        BSTR **ppbstrFilePaths,
1723        IWiaItem2 **ppItem);
1724
1725    END_INTERFACE
1726} IWiaDevMgr2Vtbl;
1727
1728interface IWiaDevMgr2 {
1729    CONST_VTBL IWiaDevMgr2Vtbl* lpVtbl;
1730};
1731
1732#ifdef COBJMACROS
1733#ifndef WIDL_C_INLINE_WRAPPERS
1734/*** IUnknown methods ***/
1735#define IWiaDevMgr2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1736#define IWiaDevMgr2_AddRef(This) (This)->lpVtbl->AddRef(This)
1737#define IWiaDevMgr2_Release(This) (This)->lpVtbl->Release(This)
1738/*** IWiaDevMgr2 methods ***/
1739#define IWiaDevMgr2_EnumDeviceInfo(This,lFlags,ppIEnum) (This)->lpVtbl->EnumDeviceInfo(This,lFlags,ppIEnum)
1740#define IWiaDevMgr2_CreateDevice(This,lFlags,bstrDeviceID,ppWiaItem2Root) (This)->lpVtbl->CreateDevice(This,lFlags,bstrDeviceID,ppWiaItem2Root)
1741#define IWiaDevMgr2_SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot) (This)->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot)
1742#define IWiaDevMgr2_SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID) (This)->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID)
1743#define IWiaDevMgr2_RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject) (This)->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject)
1744#define IWiaDevMgr2_RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrFullAppName,bstrCommandLineArg,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrFullAppName,bstrCommandLineArg,bstrName,bstrDescription,bstrIcon)
1745#define IWiaDevMgr2_RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon)
1746#define IWiaDevMgr2_GetImageDlg(This,lFlags,bstrDeviceID,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem) (This)->lpVtbl->GetImageDlg(This,lFlags,bstrDeviceID,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem)
1747#else
1748/*** IUnknown methods ***/
1749static inline HRESULT IWiaDevMgr2_QueryInterface(IWiaDevMgr2* This,REFIID riid,void **ppvObject) {
1750    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1751}
1752static inline ULONG IWiaDevMgr2_AddRef(IWiaDevMgr2* This) {
1753    return This->lpVtbl->AddRef(This);
1754}
1755static inline ULONG IWiaDevMgr2_Release(IWiaDevMgr2* This) {
1756    return This->lpVtbl->Release(This);
1757}
1758/*** IWiaDevMgr2 methods ***/
1759static inline HRESULT IWiaDevMgr2_EnumDeviceInfo(IWiaDevMgr2* This,LONG lFlags,IEnumWIA_DEV_INFO **ppIEnum) {
1760    return This->lpVtbl->EnumDeviceInfo(This,lFlags,ppIEnum);
1761}
1762static inline HRESULT IWiaDevMgr2_CreateDevice(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,IWiaItem2 **ppWiaItem2Root) {
1763    return This->lpVtbl->CreateDevice(This,lFlags,bstrDeviceID,ppWiaItem2Root);
1764}
1765static inline HRESULT IWiaDevMgr2_SelectDeviceDlg(IWiaDevMgr2* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem2 **ppItemRoot) {
1766    return This->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot);
1767}
1768static inline HRESULT IWiaDevMgr2_SelectDeviceDlgID(IWiaDevMgr2* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID) {
1769    return This->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID);
1770}
1771static inline HRESULT IWiaDevMgr2_RegisterEventCallbackInterface(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject) {
1772    return This->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject);
1773}
1774static inline HRESULT IWiaDevMgr2_RegisterEventCallbackProgram(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrFullAppName,BSTR bstrCommandLineArg,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
1775    return This->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrFullAppName,bstrCommandLineArg,bstrName,bstrDescription,bstrIcon);
1776}
1777static inline HRESULT IWiaDevMgr2_RegisterEventCallbackCLSID(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
1778    return This->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon);
1779}
1780static inline HRESULT IWiaDevMgr2_GetImageDlg(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,HWND hwndParent,BSTR bstrFolderName,BSTR bstrFilename,LONG *plNumFiles,BSTR **ppbstrFilePaths,IWiaItem2 **ppItem) {
1781    return This->lpVtbl->GetImageDlg(This,lFlags,bstrDeviceID,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem);
1782}
1783#endif
1784#endif
1785
1786#endif
1787
1788
1789#endif  /* __IWiaDevMgr2_INTERFACE_DEFINED__ */
1790
1791/*****************************************************************************
1792 * WiaDevMgr2 coclass
1793 */
1794
1795DEFINE_GUID(CLSID_WiaDevMgr2, 0xb6c292bc, 0x7c88, 0x41ee, 0x8b,0x54, 0x8e,0xc9,0x26,0x17,0xe5,0x99);
1796
1797#ifdef __cplusplus
1798class DECLSPEC_UUID("b6c292bc-7c88-41ee-8b54-8ec92617e599") WiaDevMgr2;
1799#ifdef __CRT_UUID_DECL
1800__CRT_UUID_DECL(WiaDevMgr2, 0xb6c292bc, 0x7c88, 0x41ee, 0x8b,0x54, 0x8e,0xc9,0x26,0x17,0xe5,0x99)
1801#endif
1802#endif
1803
1804/* Begin additional prototypes for all interfaces */
1805
1806ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
1807unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
1808unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
1809void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
1810ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
1811unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
1812unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
1813void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
1814
1815/* End additional prototypes */
1816
1817#ifdef __cplusplus
1818}
1819#endif
1820
1821#endif /* __wia_lh_h__ */