#ifndef __ITRANHLP_H_INCLUDED #define __ITRANHLP_H_INCLUDED #include #include #include #if defined(__cplusplus) extern "C" { #endif #include #define WIA_TRANSFERHELPER_NOPROGRESS 0x00000001 // Don't show progress dialog #define WIA_TRANSFERHELPER_NOCANCEL 0x00000002 // Don't allow the user to cancel using the system provided progress dialog #define WIA_TRANSFERHELPER_PRESERVEFAILEDFILE 0x00000004 // If the transfer results in a valid file, even if there is an error, preserve it. Otherwise, it will be deleted. #undef INTERFACE #define INTERFACE IWiaTransferHelper DECLARE_INTERFACE_(IWiaTransferHelper, IUnknown) { // *** IUnknown methods *** STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; // *** IWiaTransferHelper methods *** STDMETHOD(TransferItemFile)( THIS_ IWiaItem *pWiaItem, // IN. Transfer Item HWND hwndParent, // IN. Parent window for status dialog. NULL ok. DWORD dwFlags, // IN. Flags GUID cfFormat, // IN. WiaImgFmt_BMP, etc. Pass 0 for the default file type LPCWSTR pszFilename, // IN. File to which this data will be stored. IWiaDataCallback *pCallback, // IN. Optional callback. May specify NULL LONG nMediaType // IN. Either TYMED_FILE or TYMED_MULTIPAGE_FILE ) PURE; STDMETHOD(TransferItemBanded)( THIS_ IWiaItem *pWiaItem, // IN. Transfer Item HWND hwndParent, // IN. Parent window for status dialog. NULL ok. DWORD dwFlags, // IN. Flags GUID cfFormat, // IN. WiaImgFmt_BMP, etc. Pass 0 for the default file type ULONG ulBufferSize, // IN. Size of transfer buffer. Pass 0 to use the minimum. IWiaDataCallback *pCallback // IN. Required callback ) PURE; }; // {74569BD2-877A-4677-A1E5-ADDA5A09BDBF} DEFINE_GUID(IID_IWiaTransferHelper, 0x74569BD2, 0x877A, 0x4677, 0xA1, 0xE5, 0xAD, 0xDA, 0x5A, 0x09, 0xBD, 0xBF); #undef INTERFACE #define INTERFACE IWiaMiscellaneousHelpers DECLARE_INTERFACE_(IWiaMiscellaneousHelpers, IUnknown) { // *** IUnknown methods *** STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; // *** IWiaMiscellaneousHelper methods *** STDMETHOD(GetDeviceIcon)( THIS_ LONG nDeviceType, HICON *phIcon, int nSize ) PURE; }; // {DFF1EE6C-9A4F-4652-990B-315775D42A96} DEFINE_GUID(IID_IWiaMiscellaneousHelpers, 0xDFF1EE6C, 0x9A4F, 0x4652, 0x99, 0xB, 0x31, 0x57, 0x75, 0xD4, 0x2A, 0x96); enum CAnnotationType { AnnotationNone = 0x00000000, AnnotationUnknown = 0x00000001, AnnotationAudio = 0x00000002 }; #undef INTERFACE #define INTERFACE IWiaAnnotationHelpers DECLARE_INTERFACE_(IWiaAnnotationHelpers, IUnknown) { // *** IUnknown methods *** STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; // *** IWiaAnnotationHelpers methods *** STDMETHOD(GetAnnotationOverlayIcon)( THIS_ CAnnotationType AnnotationType, HICON *phIcon, int nSize ) PURE; STDMETHOD(GetAnnotationType)( THIS_ IUnknown *pUnknown, CAnnotationType &AnnotationType ) PURE; STDMETHOD(GetAnnotationFormat)( THIS_ IUnknown *pUnknown, GUID &guidFormat ) PURE; STDMETHOD(GetAnnotationSize)( THIS_ IUnknown *pUnknown, LONG &nSize, LONG nMediaType ) PURE; STDMETHOD(TransferAttachmentToMemory)( THIS_ IUnknown *pUnknown, GUID &guidFormat, HWND hWndProgressParent, PBYTE *pBuffer, DWORD *pdwSize ) PURE; }; // {30F6E8E8-850C-4241-8440-561EBC221A5E} DEFINE_GUID( IID_IWiaAnnotationHelpers, 0x30f6e8e8, 0x850c, 0x4241, 0x84, 0x40, 0x56, 0x1e, 0xbc, 0x22, 0x1a, 0x5e ); struct CWiaPaperSize { LPWSTR pszName; ULONG nWidth; ULONG nHeight; }; #undef INTERFACE #define INTERFACE IWiaScannerPaperSizes DECLARE_INTERFACE_(IWiaScannerPaperSizes, IUnknown) { // *** IUnknown methods *** STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; // *** IWiaScannerPaperSizes methods *** STDMETHOD(GetPaperSizes)( THIS_ CWiaPaperSize **ppPaperSizes, UINT *pnCount ) PURE; STDMETHOD(FreePaperSizes)( THIS_ CWiaPaperSize **ppPaperSizes, UINT *pnCount ) PURE; }; // {E3F1175E-BA5D-445c-8E44-F1D9BD29580D} DEFINE_GUID(IID_IWiaScannerPaperSizes, 0xe3f1175e, 0xba5d, 0x445c, 0x8e, 0x44, 0xf1, 0xd9, 0xbd, 0x29, 0x58, 0xd); #include #if defined(__cplusplus) }; #endif #endif //__ITRANHLP_H_INCLUDED