| /* | |
| * Copyright 2009 Damjan Jovanovic | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | |
| */ | |
| import "unknwn.idl"; | |
| import "oaidl.idl"; | |
| import "propidl.idl"; | |
| typedef struct _WIA_DITHER_PATTERN_DATA | |
| { | |
| LONG lSize; | |
| BSTR bstrPatternName; | |
| LONG lPatternWidth; | |
| LONG lPatternLength; | |
| LONG cbPattern; | |
| [size_is(cbPattern)] BYTE *pbPattern; | |
| } WIA_DITHER_PATTERN_DATA, *PWIA_DITHER_PATTERN_DATA; | |
| typedef struct _WIA_PROPID_TO_NAME | |
| { | |
| PROPID propid; | |
| LPOLESTR pszName; | |
| } WIA_PROPID_TO_NAME, *PWIA_PROPID_TO_NAME; | |
| typedef struct _WIA_FORMAT_INFO | |
| { | |
| GUID guidFormatID; | |
| LONG lTymed; | |
| } WIA_FORMAT_INFO, *PWIA_FORMAT_INFO; | |
| cpp_quote("#include <wiadef.h>") | |
| interface IEnumWIA_DEV_INFO; | |
| interface IWiaPropertyStorage; | |
| interface IWiaItem; | |
| interface IWiaEventCallback; | |
| interface IEnumWIA_DEV_CAPS; | |
| interface IWiaTransferCallback; | |
| interface IWiaPreview; | |
| interface IEnumWiaItem2; | |
| interface IWiaItem2; | |
| interface IWiaDevMgr2; | |
| cpp_quote("DEFINE_GUID(CLSID_WiaDevMgr, 0xa1f4e726,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11);") | |
| [ | |
| object, | |
| uuid(5eb2502a-8cf1-11d1-bf92-0060081ed811) | |
| ] | |
| interface IWiaDevMgr : IUnknown | |
| { | |
| HRESULT EnumDeviceInfo( | |
| [in] LONG lFlag, | |
| [retval, out] IEnumWIA_DEV_INFO **ppIEnum); | |
| HRESULT CreateDevice( | |
| [in] BSTR bstrDeviceID, | |
| [out] IWiaItem **ppWiaItemRoot); | |
| HRESULT SelectDeviceDlg( | |
| [in] HWND hwndParent, | |
| [in] LONG lDeviceType, | |
| [in] LONG lFlags, | |
| [in, out, unique] BSTR *pbstrDeviceID, | |
| [retval, out] IWiaItem **ppItemRoot); | |
| HRESULT SelectDeviceDlgID( | |
| [in] HWND hwndParent, | |
| [in] LONG lDeviceType, | |
| [in] LONG lFlags, | |
| [retval, out] BSTR *pbstrDeviceID); | |
| HRESULT GetImageDlg( | |
| [in] HWND hwndParent, | |
| [in] LONG lDeviceType, | |
| [in] LONG lFlags, | |
| [in] LONG lIntent, | |
| [in] IWiaItem *pItemRoot, | |
| [in] BSTR bstrFilename, | |
| [in, out] GUID *pguidFormat); | |
| HRESULT RegisterEventCallbackProgram( | |
| [in] LONG lFlags, | |
| [in] BSTR bstrDeviceID, | |
| [in] const GUID *pEventGUID, | |
| [in] BSTR bstrCommandline, | |
| [in] BSTR bstrName, | |
| [in] BSTR bstrDescription, | |
| [in] BSTR bstrIcon); | |
| HRESULT RegisterEventCallbackInterface( | |
| [in] LONG lFlags, | |
| [in] BSTR bstrDeviceID, | |
| [in] const GUID *pEventGUID, | |
| [unique, in] IWiaEventCallback *pIWiaEventCallback, | |
| [out] IUnknown **pEventObject); | |
| HRESULT RegisterEventCallbackCLSID( | |
| [in] LONG lFlags, | |
| [in] BSTR bstrDeviceID, | |
| [in] const GUID *pEventGUID, | |
| [unique, in] const GUID *pClsID, | |
| [in] BSTR bstrName, | |
| [in] BSTR bstrDescription, | |
| [in] BSTR bstrIcon); | |
| HRESULT AddDeviceDlg( | |
| [in] HWND hwndParent, | |
| [in] LONG lFlags); | |
| } | |
| [ | |
| object, | |
| uuid(5e38b83c-8cf1-11d1-bf92-0060081ed811) | |
| ] | |
| interface IEnumWIA_DEV_INFO : IUnknown | |
| { | |
| HRESULT Next( | |
| [in] ULONG celt, | |
| [out, size_is(celt), length_is(*pceltFetched)] IWiaPropertyStorage **rgelt, | |
| [out] ULONG *pceltFetched | |
| ); | |
| HRESULT Skip( | |
| [in] ULONG celt | |
| ); | |
| HRESULT Reset(); | |
| HRESULT Clone( | |
| [out] IEnumWIA_DEV_INFO **ppIEnum | |
| ); | |
| HRESULT GetCount( | |
| [out] ULONG *celt | |
| ); | |
| } | |
| [ | |
| object, | |
| uuid(98B5E8A0-29CC-491a-AAC0-E6DB4FDCCEB6) | |
| ] | |
| interface IWiaPropertyStorage : IUnknown | |
| { | |
| /* FIXME: fill in */ | |
| } | |
| [ | |
| object, | |
| uuid(4db1ad10-3391-11d2-9a33-00c04fa36145) | |
| ] | |
| interface IWiaItem : IUnknown | |
| { | |
| /* FIXME: fill in */ | |
| } | |
| [ | |
| object, | |
| uuid(ae6287b0-0084-11d2-973b-00a0c9068f2e) | |
| ] | |
| interface IWiaEventCallback : IUnknown | |
| { | |
| HRESULT ImageEventCallback( | |
| [in] const GUID *pEventGUID, | |
| [in] BSTR bstrEventDescription, | |
| [in] BSTR bstrDeviceID, | |
| [in] BSTR bstrDeviceDescription, | |
| [in] DWORD dwDeviceType, | |
| [in] BSTR bstrFullItemName, | |
| [in,out] ULONG *pulEventType, | |
| [in] ULONG ulReserved); | |
| } | |
| typedef struct _WIA_DEV_CAP | |
| { | |
| GUID guid; | |
| ULONG ulFlags; | |
| BSTR bstrName; | |
| BSTR bstrDescription; | |
| BSTR bstrIcon; | |
| BSTR bstrCommandline; | |
| } WIA_DEV_CAP, *PWIA_DEV_CAP, WIA_EVENT_HANDLER, *PWIA_EVENT_HANDLER; | |
| [ | |
| object, | |
| uuid(1fcc4287-aca6-11d2-a093-00c04f72dc3c) | |
| ] | |
| interface IEnumWIA_DEV_CAPS : IUnknown | |
| { | |
| HRESULT Next( | |
| [in] ULONG celt, | |
| [out, size_is(celt), length_is(*pceltFetched)] WIA_DEV_CAP *rgelt, | |
| [in, out, unique] ULONG *pceltFetched); | |
| HRESULT Skip( | |
| [in] ULONG celt); | |
| HRESULT Reset(void); | |
| HRESULT Clone( | |
| [out] IEnumWIA_DEV_CAPS **ppIEnum); | |
| HRESULT GetCount( | |
| [out] ULONG *pcelt); | |
| } | |
| typedef struct _WiaTransferParams | |
| { | |
| LONG lMessage; | |
| LONG lPercentComplete; | |
| ULONG64 ulTransferredBytes; | |
| HRESULT hrErrorStatus; | |
| } WiaTransferParams; | |
| [ | |
| object, | |
| uuid(27d4eaaf-28a6-4ca5-9aab-e678168b9527) | |
| ] | |
| interface IWiaTransferCallback : IUnknown | |
| { | |
| HRESULT TransferCallback( | |
| [in] LONG lFlags, | |
| [in] WiaTransferParams *pWiaTransferParams); | |
| HRESULT GetNextStream( | |
| [in] LONG lFlags, | |
| [in] BSTR bstrItemName, | |
| [in] BSTR bstrFullItemName, | |
| [out] IStream **ppDestination); | |
| } | |
| [ | |
| object, | |
| uuid(95c2b4fd-33f2-4d86-ad40-9431f0df08f7) | |
| ] | |
| interface IWiaPreview : IUnknown | |
| { | |
| HRESULT GetNewPreview( | |
| [in] LONG lFlags, | |
| [in] IWiaItem2 *pWiaItem2, | |
| [in] IWiaTransferCallback *pWiaTransferCallback); | |
| HRESULT UpdatePreview( | |
| [in] LONG lFlags, | |
| [in] IWiaItem2 *pChildWiaItem2, | |
| [in] IWiaTransferCallback *pWiaTransferCallback); | |
| HRESULT DetectRegions( | |
| [in] LONG lFlags); | |
| HRESULT Clear(void); | |
| } | |
| [ | |
| object, | |
| uuid(59970af4-cd0d-44d9-ab24-52295630e582) | |
| ] | |
| interface IEnumWiaItem2 : IUnknown | |
| { | |
| HRESULT Next( | |
| [in] ULONG cElt, | |
| [out, size_is(cElt), length_is(*pcEltFetched)] IWiaItem2 **ppIWiaItem2, | |
| [in, out, unique] ULONG *pcEltFetched); | |
| HRESULT Skip( | |
| [in] ULONG cElt); | |
| HRESULT Reset(void); | |
| HRESULT Clone( | |
| [out] IEnumWiaItem2 **ppIEnum); | |
| HRESULT GetCount( | |
| [out] ULONG *cElt); | |
| } | |
| [ | |
| object, | |
| uuid(6cba0075-1287-407d-9b77-cf0e030435cc) | |
| ] | |
| interface IWiaItem2 : IUnknown | |
| { | |
| HRESULT CreateChildItem( | |
| [in] LONG lItemFlags, | |
| [in] LONG lCreationFlags, | |
| [in] BSTR bstrItemName, | |
| [out] IWiaItem2 **ppIWiaItem2); | |
| HRESULT DeleteItem( | |
| [in] LONG lFlags); | |
| HRESULT EnumChildItems( | |
| [in, unique] const GUID *pCategoryGUID, | |
| [out] IEnumWiaItem2 **ppIEnumWiaItem2); | |
| HRESULT FindItemByName( | |
| [in] LONG lFlags, | |
| [in] BSTR bstrFullItemName, | |
| [out] IWiaItem2 **ppIWiaItem2); | |
| HRESULT GetItemCategory( | |
| [out] GUID *pItemCategoryGUID); | |
| HRESULT GetItemType( | |
| [out] LONG *pItemType); | |
| HRESULT DeviceDlg( | |
| [in] LONG lFlags, | |
| [in] HWND hwndParent, | |
| [in] BSTR bstrFolderName, | |
| [in] BSTR bstrFilename, | |
| [out] LONG *plNumFiles, | |
| [out, size_is(*plNumFiles)] BSTR **ppbstrFilePaths, | |
| [in, out, optional] IWiaItem2 **ppItem); | |
| HRESULT DeviceCommand( | |
| [in] LONG lFlags, | |
| [in] const GUID *pCmdGUID, | |
| [in, out] IWiaItem2 **ppIWiaItem2); | |
| HRESULT EnumDeviceCapabilities( | |
| [in] LONG lFlags, | |
| [out] IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS); | |
| HRESULT CheckExtension( | |
| [in] LONG lFlags, | |
| [in] BSTR bstrName, | |
| [in] REFIID riidExtensionInterface, | |
| [out] BOOL *pbExtensionExists); | |
| HRESULT GetExtension( | |
| [in] LONG lFlags, | |
| [in] BSTR bstrName, | |
| [in] REFIID riidExtensionInterface, | |
| [out, iid_is(riidExtensionInterface)] void **ppOut); | |
| HRESULT GetParentItem( | |
| [out] IWiaItem2 **ppIWiaItem2); | |
| HRESULT GetRootItem( | |
| [out] IWiaItem2 **ppIWiaItem2); | |
| HRESULT GetPreviewComponent( | |
| [in] LONG lFlags, | |
| [out] IWiaPreview **ppWiaPreview); | |
| HRESULT EnumRegisterEventInfo( | |
| [in] LONG lFlags, | |
| [in] const GUID *pEventGUID, | |
| [out] IEnumWIA_DEV_CAPS **ppIEnum); | |
| HRESULT Diagnostic( | |
| [in] ULONG ulSize, | |
| [in, size_is(ulSize)] BYTE *pBuffer); | |
| } | |
| [ | |
| object, | |
| uuid(79c07cf1-cbdd-41ee-8ec3-f00080cada7a) | |
| ] | |
| interface IWiaDevMgr2 : IUnknown | |
| { | |
| HRESULT EnumDeviceInfo( | |
| [in] LONG lFlags, | |
| [out, retval] IEnumWIA_DEV_INFO **ppIEnum); | |
| HRESULT CreateDevice( | |
| [in] LONG lFlags, | |
| [in] BSTR bstrDeviceID, | |
| [out] IWiaItem2 **ppWiaItem2Root); | |
| HRESULT SelectDeviceDlg( | |
| [in] HWND hwndParent, | |
| [in] LONG lDeviceType, | |
| [in] LONG lFlags, | |
| [in, out] BSTR *pbstrDeviceID, | |
| [out, retval] IWiaItem2 **ppItemRoot); | |
| HRESULT SelectDeviceDlgID( | |
| [in] HWND hwndParent, | |
| [in] LONG lDeviceType, | |
| [in] LONG lFlags, | |
| [out, retval] BSTR *pbstrDeviceID); | |
| HRESULT RegisterEventCallbackInterface( | |
| [in] LONG lFlags, | |
| [in] BSTR bstrDeviceID, | |
| [in] const GUID *pEventGUID, | |
| [in, unique] IWiaEventCallback *pIWiaEventCallback, | |
| [out] IUnknown **pEventObject); | |
| HRESULT RegisterEventCallbackProgram( | |
| [in] LONG lFlags, | |
| [in] BSTR bstrDeviceID, | |
| [in] const GUID *pEventGUID, | |
| [in] BSTR bstrFullAppName, | |
| [in] BSTR bstrCommandLineArg, | |
| [in] BSTR bstrName, | |
| [in] BSTR bstrDescription, | |
| [in] BSTR bstrIcon); | |
| HRESULT RegisterEventCallbackCLSID( | |
| [in] LONG lFlags, | |
| [in] BSTR bstrDeviceID, | |
| [in] const GUID *pEventGUID, | |
| [in, unique] const GUID *pClsID, | |
| [in] BSTR bstrName, | |
| [in] BSTR bstrDescription, | |
| [in] BSTR bstrIcon); | |
| HRESULT GetImageDlg( | |
| [in] LONG lFlags, | |
| [in] BSTR bstrDeviceID, | |
| [in] HWND hwndParent, | |
| [in] BSTR bstrFolderName, | |
| [in] BSTR bstrFilename, | |
| [out] LONG *plNumFiles, | |
| [out, size_is(*plNumFiles)] BSTR **ppbstrFilePaths, | |
| [in, out] IWiaItem2 **ppItem); | |
| } | |
| [ | |
| uuid(b6c292bc-7c88-41ee-8b54-8ec92617e599) | |
| ] | |
| coclass WiaDevMgr2 | |
| { | |
| interface IWiaDevMgr2; | |
| } |