mirror of https://github.com/UMSKT/xpmgr.git
115 lines
4.3 KiB
C
115 lines
4.3 KiB
C
/****************************************************************************
|
|
*
|
|
* (C) COPYRIGHT 1998-2000, MICROSOFT CORP.
|
|
*
|
|
* FILE: wiadevd.h
|
|
*
|
|
* VERSION: 1.0
|
|
*
|
|
* DATE: 7/5/1999
|
|
*
|
|
* DESCRIPTION:
|
|
* Device Dialog and UI extensibility declarations.
|
|
*
|
|
*****************************************************************************/
|
|
|
|
#if (_WIN32_WINNT >= 0x0501) // Windows XP and later
|
|
|
|
#ifndef _WIADEVD_H_INCLUDED
|
|
#define _WIADEVD_H_INCLUDED
|
|
|
|
#include "wia.h"
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include <pshpack8.h>
|
|
|
|
#if (_WIN32_WINNT >= 0x0600) // Windows Vista and later
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IWiaUIExtension2
|
|
typedef struct tagDEVICEDIALOGDATA2
|
|
{
|
|
DWORD cbSize; // Size of the structure in bytes
|
|
IWiaItem2 *pIWiaItemRoot; // Valid root item
|
|
DWORD dwFlags; // Flags
|
|
HWND hwndParent; // Parent window
|
|
BSTR bstrFolderName; // Folder name where the files are transferred
|
|
BSTR bstrFilename; // template file name.
|
|
LONG lNumFiles; // Number of items in ppbstrFilePaths array. Filled on return.
|
|
BSTR *pbstrFilePaths; // file names created after successful transfers.
|
|
IWiaItem2 *pWiaItem; // IWiaItem2 interface pointer. This is the IWiaItem2 used for transfer.
|
|
} DEVICEDIALOGDATA2, *LPDEVICEDIALOGDATA2, *PDEVICEDIALOGDATA2;
|
|
|
|
DECLARE_INTERFACE_IID_(IWiaUIExtension2, IUnknown, "305600d7-5088-46d7-9a15-b77b09cdba7a")
|
|
{
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (__in THIS_ REFIID riid, __deref_out LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IWiaUIExtension2 methods ***
|
|
STDMETHOD(DeviceDialog)(__in THIS_ PDEVICEDIALOGDATA2 pDeviceDialogData ) PURE;
|
|
STDMETHOD(GetDeviceIcon)(__in THIS_ BSTR bstrDeviceId, __out HICON *phIcon, ULONG nSize) PURE;
|
|
};
|
|
|
|
// {305600d7-5088-46d7-9a15-b77b09cdba7a}
|
|
DEFINE_GUID(IID_IWiaUIExtension2, 0x305600D7, 0x5088, 0x46D7, 0x9A, 0x15, 0xB7, 0x7B, 0x09, 0xCD, 0xBA, 0x7A);
|
|
|
|
#endif //#if (_WIN32_WINNT >= 0x0600)
|
|
|
|
typedef struct tagDEVICEDIALOGDATA
|
|
{
|
|
DWORD cbSize; // Size of the structure in bytes
|
|
HWND hwndParent; // Parent window
|
|
IWiaItem *pIWiaItemRoot; // Valid root item
|
|
DWORD dwFlags; // Flags
|
|
LONG lIntent; // Intent flags
|
|
LONG lItemCount; // Number of items in ppWiaItems array. Filled on return.
|
|
IWiaItem **ppWiaItems; // Array of IWiaItem interface pointers. Array must
|
|
// be allocated using CoTaskMemAlloc, and all interface pointers must be AddRef'ed
|
|
} DEVICEDIALOGDATA, *LPDEVICEDIALOGDATA, *PDEVICEDIALOGDATA;
|
|
|
|
HRESULT WINAPI DeviceDialog(__in PDEVICEDIALOGDATA pDeviceDialogData);
|
|
|
|
// IWiaUIExtension provides a means to replace a device's image acquisition dialog
|
|
// and to provide custom icons and logo bitmaps to appear on the standard dialog
|
|
#undef INTERFACE
|
|
#define INTERFACE IWiaUIExtension
|
|
DECLARE_INTERFACE_IID_(IWiaUIExtension, IUnknown, "da319113-50ee-4c80-b460-57d005d44a2c")
|
|
{
|
|
// *** IUnknown methods ***
|
|
STDMETHOD(QueryInterface) (__in THIS_ REFIID riid, __deref_out LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef) (THIS) PURE;
|
|
STDMETHOD_(ULONG,Release) (THIS) PURE;
|
|
|
|
// *** IWiaUIExtension methods ***
|
|
STDMETHOD(DeviceDialog)(__in THIS_ PDEVICEDIALOGDATA pDeviceDialogData) PURE;
|
|
STDMETHOD(GetDeviceIcon)(__in THIS_ BSTR bstrDeviceId, __out HICON *phIcon, ULONG nSize) PURE;
|
|
STDMETHOD(GetDeviceBitmapLogo)(__in THIS_ BSTR bstrDeviceId, __out HBITMAP *phBitmap, ULONG nMaxWidth, ULONG nMaxHeight) PURE;
|
|
};
|
|
|
|
// {da319113-50ee-4c80-b460-57d005d44a2c}
|
|
DEFINE_GUID(IID_IWiaUIExtension, 0xDA319113, 0x50EE, 0x4C80, 0xB4, 0x60, 0x57, 0xD0, 0x05, 0xD4, 0x4A, 0x2C);
|
|
|
|
typedef HRESULT (WINAPI *DeviceDialogFunction)(PDEVICEDIALOGDATA);
|
|
|
|
#define SHELLEX_WIAUIEXTENSION_NAME TEXT("WiaDialogExtensionHandlers")
|
|
|
|
// Define clipboard format names for retrieving data from an IDataObject
|
|
#define CFSTR_WIAITEMNAMES TEXT("WIAItemNames")
|
|
#define CFSTR_WIAITEMPTR TEXT("WIAItemPointer")
|
|
|
|
#include <poppack.h>
|
|
|
|
#if defined(__cplusplus)
|
|
};
|
|
#endif
|
|
|
|
#endif // !_WIADEVD_H_INCLUDED
|
|
|
|
#endif //#if (_WIN32_WINNT >= 0x0501)
|
|
|