1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef _WIADEVD_H_INCLUDED
7 #define _WIADEVD_H_INCLUDED
8 
9 #include "wia.h"
10 
11 #if defined(__cplusplus)
12 extern "C" {
13 #endif
14 
15 #include <pshpack8.h>
16 
17   typedef struct tagDEVICEDIALOGDATA {
18     DWORD cbSize;
19     HWND hwndParent;
20     IWiaItem *pIWiaItemRoot;
21     DWORD dwFlags;
22     LONG lIntent;
23     LONG lItemCount;
24     IWiaItem **ppWiaItems;
25   } DEVICEDIALOGDATA,*LPDEVICEDIALOGDATA,*PDEVICEDIALOGDATA;
26 
27   HRESULT WINAPI DeviceDialog(PDEVICEDIALOGDATA pDeviceDialogData);
28 
29 #undef INTERFACE
30 #define INTERFACE IWiaUIExtension
DECLARE_INTERFACE_(IWiaUIExtension,IUnknown)31   DECLARE_INTERFACE_(IWiaUIExtension,IUnknown) {
32     STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE;
33     STDMETHOD_(ULONG,AddRef) (THIS) PURE;
34     STDMETHOD_(ULONG,Release) (THIS) PURE;
35     STDMETHOD(DeviceDialog)(THIS_ PDEVICEDIALOGDATA pDeviceDialogData) PURE;
36     STDMETHOD(GetDeviceIcon)(THIS_ BSTR bstrDeviceId,HICON *phIcon,ULONG nSize) PURE;
37     STDMETHOD(GetDeviceBitmapLogo)(THIS_ BSTR bstrDeviceId,HBITMAP *phBitmap,ULONG nMaxWidth,ULONG nMaxHeight) PURE;
38   };
39 
40   DEFINE_GUID(IID_IWiaUIExtension,0xDA319113,0x50EE,0x4C80,0xB4,0x60,0x57,0xD0,0x05,0xD4,0x4A,0x2C);
41 
42   typedef HRESULT (WINAPI *DeviceDialogFunction)(PDEVICEDIALOGDATA);
43 
44 #define SHELLEX_WIAUIEXTENSION_NAME TEXT("WiaDialogExtensionHandlers")
45 
46 #define CFSTR_WIAITEMNAMES TEXT("WIAItemNames")
47 #define CFSTR_WIAITEMPTR TEXT("WIAItemPointer")
48 
49 #include <poppack.h>
50 
51 #if defined(__cplusplus)
52 };
53 #endif
54 #endif
55