|
|
/****************************************************************************** * * (C) COPYRIGHT MICROSOFT CORP., 1998-1999 * * TITLE: WIA.idl * * VERSION: 2.0 * * DATE: 6 Jan, 1998 * * DESCRIPTION: * IDL source for WIA device manager. The MIDL compiler generates * marshaling code and a type library from this file. * ******************************************************************************/
interface IWiaDevMgr; interface IWiaEventCallback; interface IWiaDataCallback; interface IWiaItem; interface IWiaPropertyStorage; interface IEnumWiaItem; interface IEnumWIA_DEV_INFO; interface IEnumWIA_DEV_CAPS; interface IEnumWIA_FORMAT_INFO; interface IStiDevice;
import "unknwn.idl"; import "oaidl.idl"; import "propidl.idl"; /******************************************************************************* * * Structures used by WIA * *******************************************************************************/
// // Dither pattern specification structure used // with WIA_DPS_DITHER_PATTERN_DATA //
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;
/******************************************************************************* * * Import header file which contains WIA constants and globals * *******************************************************************************/
cpp_quote("#include \"wiadef.h\"")
/******************************************************************************* * * WIA Device Manager Interface * *******************************************************************************/
[ object, uuid(5eb2502a-8cf1-11d1-bf92-0060081ed811), helpstring("WIA Device Manager Interface"), pointer_default(unique) ]
interface IWiaDevMgr : IUnknown { [helpstring("Create an WIA device information enumerator")] HRESULT EnumDeviceInfo( [in] LONG lFlag, [out, retval] IEnumWIA_DEV_INFO **ppIEnum);
// // Creates/loads device. //
[local] HRESULT CreateDevice( [in] BSTR bstrDeviceID, [out] IWiaItem **ppWiaItemRoot); [call_as(CreateDevice), helpstring("Create an WIA device object")] HRESULT LocalCreateDevice( [in] BSTR bstrDeviceID, [out] IWiaItem **ppWiaItemRoot);
// // Creates/loads user selected device. Client side only call. //
[local] HRESULT SelectDeviceDlg( [in] HWND hwndParent, [in] LONG lDeviceType, [in] LONG lFlags, [in,out] BSTR *pbstrDeviceID, [out,retval] IWiaItem **ppItemRoot);
[call_as(SelectDeviceDlg), helpstring("Present UI to select then create an WIA device")] HRESULT LocalSelectDeviceDlg( [in] HWND hwndParent, [in] LONG lDeviceType, [in] LONG lFlags, [in,out] BSTR *pbstrDeviceID, [out, retval] IWiaItem **ppItemRoot);
// // Returns the device ID of user selected device. Client side only call. //
[local] HRESULT SelectDeviceDlgID( [in] HWND hwndParent, [in] LONG lDeviceType, [in] LONG lFlags, [out, retval] BSTR *pbstrDeviceID );
[call_as(SelectDeviceDlgID), helpstring("Present UI to select then create an WIA device, returns BSTR")] HRESULT LocalSelectDeviceDlgID( [in] HWND hwndParent, [in] LONG lDeviceType, [in] LONG lFlags, [out, retval] BSTR *pbstrDeviceID );
// // Creates/loads user selected device and gets image. Client side only call. //
[local] HRESULT GetImageDlg( [in] HWND hwndParent, [in] LONG lDeviceType, [in] LONG lFlags, [in] LONG lIntent, [in] IWiaItem *pItemRoot, [in] BSTR bstrFilename, [in,out] GUID *pguidFormat);
[call_as(GetImageDlg), helpstring("Get an image to file")] HRESULT LocalGetImageDlg( [in] HWND hwndParent, [in] LONG lDeviceType, [in] LONG lFlags, [in] LONG lIntent, [in] IWiaItem *pItemRoot, [in] BSTR bstrFilename, [in,out] GUID *pguidFormat);
// // Event registration //
[local] HRESULT RegisterEventCallbackProgram( [in] LONG lFlags, [in] BSTR bstrDeviceID, [in] const GUID *pEventGUID, [in] BSTR bstrCommandline, [in] BSTR bstrName, [in] BSTR bstrDescription, [in] BSTR bstrIcon);
[call_as(RegisterEventCallbackProgram), helpstring("Register application launch")] HRESULT LocalRegisterEventCallbackProgram( [in] LONG lFlags, [in] BSTR bstrDeviceID, [in] const GUID *pEventGUID, [in] BSTR bstrCommandline, [in] BSTR bstrName, [in] BSTR bstrDescription, [in] BSTR bstrIcon);
[helpstring("Registers a WIA Event Callback")] HRESULT RegisterEventCallbackInterface( [in] LONG lFlags, [in] BSTR bstrDeviceID, [in] const GUID *pEventGUID, [in,unique] IWiaEventCallback *pIWiaEventCallback, [out] IUnknown **pEventObject);
[local] 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);
[call_as(RegisterEventCallbackCLSID), helpstring("Registers a WIA Event Callback via CLSID")] HRESULT LocalRegisterEventCallbackCLSID( [in] LONG lFlags, [in] BSTR bstrDeviceID, [in] const GUID *pEventGUID, [in,unique] const GUID *pClsID, [in] BSTR bstrName, [in] BSTR bstrDescription, [in] BSTR bstrIcon);
// // add either a non-pnp local Wia device or a network device //
[helpstring("Present UI to add a WIA device")] HRESULT AddDeviceDlg( [in] HWND hwndParent, [in] LONG lFlags);
};
/******************************************************************************* * * WIA Device Information Enumeration Interface * *******************************************************************************/
[ object, uuid(5e38b83c-8cf1-11d1-bf92-0060081ed811), helpstring("WIA Device Information Enumeration Interface"), pointer_default(unique) ]
interface IEnumWIA_DEV_INFO : IUnknown { [local] HRESULT Next( [in] ULONG celt, [out,size_is(celt), length_is(*pceltFetched)] IWiaPropertyStorage **rgelt, [in,out,unique] ULONG* pceltFetched);
[call_as(Next), helpstring("Gets the next device information IWiaPropertyStorage object")] HRESULT RemoteNext( [in] ULONG celt, [out,size_is(celt), length_is(*pceltFetched)] IWiaPropertyStorage **rgelt, [in,out,unique] ULONG* pceltFetched);
[helpstring("Skips the next device information IWiaPropertyStorage object")] HRESULT Skip( [in] ULONG celt);
[helpstring("Resets to first device information IWiaPropertyStorage object")] HRESULT Reset(void);
[helpstring("Clones this IEnumWIA_DEV_INFO object")] HRESULT Clone( [out] IEnumWIA_DEV_INFO **ppIEnum);
[helpstring("Returns the number of elements stored by this enumerator")] HRESULT GetCount( [out] ULONG *celt); }
/**************************************************************************\ * * IWiaEventCallback Interface * * * * * * * History: * * 2/11/1998 * \**************************************************************************/
[ object, uuid(ae6287b0-0084-11d2-973b-00a0c9068f2e), helpstring("WIA Event callback"), pointer_default(unique) ]
interface IWiaEventCallback : IUnknown { // // WIA event notification //
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); }
/**************************************************************************\ * * WIA_DATA_CALLBACK_HEADER * * lSize - size of this structure * lFormat - format of image * lBufferSize - size of buffer needed for complete data transfer * lPageCount - zero based count of total pages transfered * * History: * * 10/29/98 * \**************************************************************************/
typedef struct _WIA_DATA_CALLBACK_HEADER{ LONG lSize; GUID guidFormatID; LONG lBufferSize; LONG lPageCount; }WIA_DATA_CALLBACK_HEADER,*PWIA_DATA_CALLBACK_HEADER;
/**************************************************************************\ * * IWiaDataCallback interface * * * * * * History: * * 10/29/1998 Original Version * \**************************************************************************/
[ object, uuid(a558a866-a5b0-11d2-a08f-00c04f72dc3c), helpstring("WIA data callback"), pointer_default(unique) ]
interface IWiaDataCallback : IUnknown { // // image transfer status //
[local] HRESULT BandedDataCallback( [in] LONG lMessage, [in] LONG lStatus, [in] LONG lPercentComplete, [in] LONG lOffset, [in] LONG lLength, [in] LONG lReserved, [in] LONG lResLength, [in,size_is(lResLength)] BYTE *pbBuffer);
[call_as(BandedDataCallback) ,helpstring(" client data callback")] HRESULT RemoteBandedDataCallback( [in] LONG lMessage, [in] LONG lStatus, [in] LONG lPercentComplete, [in] LONG lOffset, [in] LONG lLength, [in] LONG lReserved, [in] LONG lResLength, [in,size_is(lResLength),unique] BYTE *pbBuffer); }
/**************************************************************************\ * * WIA_DATA_TRANSFER_INFO * * ulSize - Size of this structure * ulSection - Section provided by the client, otherwise NULL * ulBufferSize - Size of the buffer used in data transfer * bDoubleBuffer - Indicate whether the client want to use double buffer * ulReserved1 - Must be ZERO * ulReserved2 - Must be ZERO * History: * * 10/29/98 * \**************************************************************************/
typedef struct _WIA_DATA_TRANSFER_INFO { ULONG ulSize; ULONG ulSection; ULONG ulBufferSize; BOOL bDoubleBuffer; ULONG ulReserved1; ULONG ulReserved2; ULONG ulReserved3; } WIA_DATA_TRANSFER_INFO, *PWIA_DATA_TRANSFER_INFO;
/**************************************************************************\ * * WIA_EXTENDED_TRANSFER_INFO * * ulSize - Size of this structure. * ulMinBufferSize - Minimum size of buffer that can be requested. * ulOptimalBufferSize - The device's optimal buffer size. * ulMaxBufferSize - The maximum buffer size that can be requested. * ulNumBuffers - Number of buffers the server may use. * * History: * * 01/20/2000 * \**************************************************************************/
typedef struct _WIA_EXTENDED_TRANSFER_INFO { ULONG ulSize; ULONG ulMinBufferSize; ULONG ulOptimalBufferSize; ULONG ulMaxBufferSize; ULONG ulNumBuffers; } WIA_EXTENDED_TRANSFER_INFO, *PWIA_EXTENDED_TRANSFER_INFO;
/**************************************************************************\ * * IWiaDataTransfer - Interface to use shared memory to transfer an image * * * * * * * * History: * * 4/1/1998 * \**************************************************************************/
[ object, uuid(a6cef998-a5b0-11d2-a08f-00c04f72dc3c), helpstring("WIA Data Transfer Interface"), pointer_default(unique) ]
interface IWiaDataTransfer : IUnknown { [local] HRESULT idtGetData( [in,out] LPSTGMEDIUM pMedium, [in,unique] IWiaDataCallback *pIWiaDataCallback);
[call_as(idtGetData), helpstring("IDataObject style data transfer with progress callback")] HRESULT idtGetDataEx( [in,out] LPSTGMEDIUM pMedium, [in,unique] IWiaDataCallback *pIWiaDataCallback);
[local] HRESULT idtGetBandedData( [in,unique] PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo, [in,unique] IWiaDataCallback *pIWiaDataCallback);
[call_as(idtGetBandedData), helpstring("transfer image into a buffer")] HRESULT idtGetBandedDataEx( [in,unique] PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo, [in,unique] IWiaDataCallback *pIWiaDataCallback);
[helpstring("Check if format is supported")] HRESULT idtQueryGetData( [in,unique] WIA_FORMAT_INFO* pfe);
[helpstring("Create format enumerator")] HRESULT idtEnumWIA_FORMAT_INFO( [out] IEnumWIA_FORMAT_INFO **ppEnum);
[helpstring("Returns extended transfer information")] HRESULT idtGetExtendedTransferInfo( [out] PWIA_EXTENDED_TRANSFER_INFO pExtendedTransferInfo); }
/******************************************************************************* * * IWiaItem Interface * *******************************************************************************/
[ object, uuid(4db1ad10-3391-11d2-9a33-00c04fa36145), helpstring("WIA Device Item Interface"), pointer_default(unique) ]
interface IWiaItem : IUnknown { [helpstring("Get item type")] HRESULT GetItemType( [out] LONG *pItemType);
[helpstring("Analyze an item")] HRESULT AnalyzeItem( [in] LONG lFlags);
[helpstring("Get item enumerator")] HRESULT EnumChildItems( [out] IEnumWiaItem **ppIEnumWiaItem);
[helpstring("Delete an item")] HRESULT DeleteItem( [in] LONG lFlags);
[helpstring("Create a new child item")] HRESULT CreateChildItem( [in] LONG lFlags, [in] BSTR bstrItemName, [in] BSTR bstrFullItemName, [out] IWiaItem **ppIWiaItem);
[helpstring("Enumerate event info")] HRESULT EnumRegisterEventInfo( [in] LONG lFlags, [in] const GUID *pEventGUID, [out] IEnumWIA_DEV_CAPS **ppIEnum);
[helpstring("search for item by name")] HRESULT FindItemByName( [in] LONG lFlags, [in] BSTR bstrFullItemName, [out] IWiaItem **ppIWiaItem);
// Client side only call. [local] HRESULT DeviceDlg( [in] HWND hwndParent, [in] LONG lFlags, [in] LONG lIntent, [out] LONG *plItemCount, [out] IWiaItem ***ppIWiaItem);
[call_as(DeviceDlg), helpstring("Display device data acquistion UI")] HRESULT LocalDeviceDlg( [in] HWND hwndParent, [in] LONG lFlags, [in] LONG lIntent, [out] LONG *plItemCount, [out] IWiaItem ***pIWiaItem);
[helpstring("Issue a device command")] HRESULT DeviceCommand( [in] LONG lFlags, [in] const GUID *pCmdGUID, [in, out] IWiaItem **pIWiaItem);
[helpstring("Get device root item")] HRESULT GetRootItem( [out] IWiaItem **ppIWiaItem);
[helpstring("Enumerate device events and commands")] HRESULT EnumDeviceCapabilities( [in] LONG lFlags, [out] IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS);
[helpstring("Dump private item data, debug only")] HRESULT DumpItemData( [out] BSTR *bstrData);
[helpstring("Dump private driver item data, debug only")] HRESULT DumpDrvItemData( [out] BSTR *bstrData);
[helpstring("Dump private tree item data, debug only")] HRESULT DumpTreeItemData( [out] BSTR *bstrData);
[helpstring("Diagnostic")] HRESULT Diagnostic( [in] ULONG ulSize, [in, size_is(ulSize)] BYTE *pBuffer); };
/******************************************************************************* * * IWiaPropertyStorage Interface * *******************************************************************************/
[ object, uuid(98B5E8A0-29CC-491a-AAC0-E6DB4FDCCEB6), helpstring("WIA Property Storage Interface"), pointer_default(unique) ]
interface IWiaPropertyStorage : IUnknown {
/* * Should be inherited really */
// When this IDL file is used for "IProp.dll" (the // standalone property set DLL), we must have local // and remotable routines (call_as routines are used // to remove BSTRs, which are not remotable with some // RPC run-times). // // For the remotable routines, we must use pointer // parameters (e.g. "*rgspec" rather than "rgspec[]") // so that the MIDL 2.0 compiler will generate an // interpereted proxy/stub, rather than inline.
#ifdef IPROPERTY_DLL [local] #endif HRESULT ReadMultiple( [in] ULONG cpspec, [in, size_is(cpspec)] const PROPSPEC rgpspec[], [out, size_is(cpspec)] PROPVARIANT rgpropvar[] );
#ifdef IPROPERTY_DLL [call_as(ReadMultiple)] HRESULT RemoteReadMultiple( [out] BOOL *pfBstrPresent, [in] ULONG cpspec, [in, size_is(cpspec)] const PROPSPEC *rgpspec, [out, size_is(cpspec)] PROPVARIANT *rgpropvar ); #endif
#ifdef IPROPERTY_DLL [local] #endif HRESULT WriteMultiple( [in] ULONG cpspec, [in, size_is(cpspec)] const PROPSPEC rgpspec[], [in, size_is(cpspec)] const PROPVARIANT rgpropvar[], [in] PROPID propidNameFirst );
#ifdef IPROPERTY_DLL [call_as(WriteMultiple)] HRESULT RemoteWriteMultiple( [in] BOOL fBstrPresent, [in] ULONG cpspec, [in, size_is(cpspec)] const PROPSPEC *rgpspec, [in, size_is(cpspec)] const PROPVARIANT *rgpropvar, [in] PROPID propidNameFirst ); #endif
#ifdef IPROPERTY_DLL [local] #endif HRESULT DeleteMultiple( [in] ULONG cpspec, [in, size_is(cpspec)] const PROPSPEC rgpspec[] );
#ifdef IPROPERTY_DLL [call_as(DeleteMultiple)] HRESULT RemoteDeleteMultiple( [in] ULONG cpspec, [in, size_is(cpspec)] const PROPSPEC *rgpspec ); #endif
HRESULT ReadPropertyNames( [in] ULONG cpropid, [in, size_is(cpropid)] const PROPID rgpropid[], [out, size_is(cpropid)] LPOLESTR rglpwstrName[] );
HRESULT WritePropertyNames( [in] ULONG cpropid, [in, size_is(cpropid)] const PROPID rgpropid[], [in, size_is(cpropid)] const LPOLESTR rglpwstrName[] );
HRESULT DeletePropertyNames( [in] ULONG cpropid, [in, size_is(cpropid)] const PROPID rgpropid[] );
HRESULT Commit( [in] DWORD grfCommitFlags );
HRESULT Revert();
HRESULT Enum( [out] IEnumSTATPROPSTG ** ppenum );
HRESULT SetTimes( [in] FILETIME const * pctime, [in] FILETIME const * patime, [in] FILETIME const * pmtime );
HRESULT SetClass( [in] REFCLSID clsid );
HRESULT Stat( [out] STATPROPSETSTG * pstatpsstg );
/* *=====================================================================* */
[helpstring("Get property attribute information.")] HRESULT GetPropertyAttributes( [in] ULONG cpspec, [in, size_is(cpspec)] PROPSPEC rgpspec[], [out, size_is(cpspec)] ULONG rgflags[], [out, size_is(cpspec)] PROPVARIANT rgpropvar[]);
[helpstring("Returns the current number of properties in this property storage.")] HRESULT GetCount( [out] ULONG *pulNumProps);
[helpstring("Get an items property stream")] HRESULT GetPropertyStream( [out] GUID *pCompatibilityId, [out] IStream **ppIStream);
[helpstring("Set an items property stream")] HRESULT SetPropertyStream( [in] GUID *pCompatibilityId, [in, unique] IStream *pIStream); };
/******************************************************************************* * * IEnumWiaItem Interface * *******************************************************************************/
[ object, uuid(5e8383fc-3391-11d2-9a33-00c04fa36145), helpstring("WIA Device Class Item Enumeration Interface"), pointer_default(unique) ]
interface IEnumWiaItem : IUnknown { [local] HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] IWiaItem **ppIWiaItem, [in, out, unique] ULONG *pceltFetched);
[call_as(Next), helpstring("Gets the next IWiaItem object")] HRESULT RemoteNext( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] IWiaItem **ppIWiaItem, [in, out, unique] ULONG *pceltFetched);
[helpstring("Skips the next IWiaItem object")] HRESULT Skip( [in] ULONG celt);
[helpstring("Resets to first IWiaItem object")] HRESULT Reset(void);
[helpstring("Clone IEnumWiaItem object")] HRESULT Clone( [out] IEnumWiaItem **ppIEnum);
[helpstring("Returns the number of elements stored by this enumerator")] HRESULT GetCount( [out] ULONG *celt);
}
/******************************************************************************* * * WIA_DEV_CAP * * WIA_DEV_CAP structure returns event and command information * for the IEnumWIA_DEV_CAPS Interface * *******************************************************************************/
typedef struct _WIA_DEV_CAP { GUID guid; ULONG ulFlags; // Indicate the handler is default, etc BSTR bstrName; BSTR bstrDescription; BSTR bstrIcon; BSTR bstrCommandline; } WIA_DEV_CAP, *PWIA_DEV_CAP, WIA_EVENT_HANDLER, *PWIA_EVENT_HANDLER;
/******************************************************************************* * * IEnumWIA_DEV_CAPS Interface * *******************************************************************************/
[ object, uuid(1fcc4287-aca6-11d2-a093-00c04f72dc3c), helpstring("WIA_DEV_CAPS Enumeration Interface"), pointer_default(unique) ]
interface IEnumWIA_DEV_CAPS : IUnknown { [local] HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] WIA_DEV_CAP *rgelt, [in,out,unique] ULONG *pceltFetched);
[call_as(Next), helpstring("Gets the next WIA_DEV_CAPS")] HRESULT RemoteNext( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] WIA_DEV_CAP *rgelt, [in,out,unique] ULONG *pceltFetched);
[helpstring("Skips the next WIA_DEV_CAPS")] HRESULT Skip( [in] ULONG celt);
[helpstring("Resets to first WIA_DEV_CAPS")] HRESULT Reset(void);
[helpstring("Clone IEnumWIA_DEV_CAPS object")] HRESULT Clone( [out] IEnumWIA_DEV_CAPS **ppIEnum);
[helpstring("Returns the number of elements stored by this enumerator")] HRESULT GetCount( [out] ULONG *pcelt);
}
/******************************************************************************* * * IEnumWIA_FORMAT_INF Interface * *******************************************************************************/
[ object, uuid(81BEFC5B-656D-44f1-B24C-D41D51B4DC81), helpstring("WIA_FORMAT_INFO Enumeration Interface"), pointer_default(unique) ]
interface IEnumWIA_FORMAT_INFO : IUnknown { [local] HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] WIA_FORMAT_INFO *rgelt, [in,out,unique] ULONG *pceltFetched);
[call_as(Next), helpstring("Gets the next WIA_FORMAT_INFO")] HRESULT RemoteNext( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] WIA_FORMAT_INFO *rgelt, [in,out,unique] ULONG *pceltFetched);
[helpstring("Skips the next WIA_FORMAT_INFO")] HRESULT Skip( [in] ULONG celt);
[helpstring("Resets to first WIA_FORMAT_INFO")] HRESULT Reset(void);
[helpstring("Clone IEnumWIA_FORMAT_INFO object")] HRESULT Clone( [out] IEnumWIA_FORMAT_INFO **ppIEnum);
[helpstring("Returns the number of elements stored by this enumerator")] HRESULT GetCount( [out] ULONG *pcelt);
}
/******************************************************************************* * * WIA Logging Interface * *******************************************************************************/
[ object, uuid(A00C10B6-82A1-452f-8B6C-86062AAD6890), helpstring("WIA Logging Interface"), pointer_default(unique) ]
interface IWiaLog : IUnknown { [helpstring("Initialize Logging object")] HRESULT InitializeLog( [in] LONG hInstance);
[helpstring("Write ERRROR Information to log file, Translating HRESULT to error string")] HRESULT hResult( [in] HRESULT hResult);
[helpstring("Write TRACE,ERROR,WARNING, etc.. Information to log file, using service Resource ID")] HRESULT Log( [in] LONG lFlags, [in] LONG lResID, [in] LONG lDetail, [in] BSTR bstrText); };
/******************************************************************************* * * WIA Extended Logging Interface * *******************************************************************************/
[ object, uuid(AF1F22AC-7A40-4787-B421-AEb47A1FBD0B), helpstring("WIA (Extended) Logging Interface"), pointer_default(unique) ]
interface IWiaLogEx : IUnknown { [helpstring("Initialize Logging object")] HRESULT InitializeLogEx( [in] BYTE *hInstance); [helpstring("Write ERRROR Information to log file, Translating HRESULT to error string")] HRESULT hResult( [in] HRESULT hResult);
[helpstring("Write information to log - compatible with IWiaLog::Log(...)")] HRESULT Log( [in] LONG lFlags, [in] LONG lResID, [in] LONG lDetail, [in] BSTR bstrText); [helpstring("Write ERRROR Information to log file, Translating HRESULT to error string")] HRESULT hResultEx( [in] LONG lMethodId, [in] HRESULT hResult);
[helpstring("Write TRACE,ERROR,WARNING, etc.. Information to log file, using service Resource ID")] HRESULT LogEx( [in] LONG lMethodId, [in] LONG lFlags, [in] LONG lResID, [in] LONG lDetail, [in] BSTR bstrText);
};
/******************************************************************************* * * WiaDevMgr General Notification Interface * *******************************************************************************/ [ object, uuid(70681EA0-E7BF-4291-9FB1-4E8813A3F78E), helpstring("WiaDevMgr Notification Interface"), pointer_default(unique) ]
interface IWiaNotifyDevMgr : IUnknown { [helpstring("Notify of new device arrival")] HRESULT NewDeviceArrival(); };
[ object, uuid(6291ef2c-36ef-4532-876a-8e132593778d), helpstring("WIA Item extras interface"), pointer_default(unique) ]
interface IWiaItemExtras : IUnknown { [helpstring("Retrieve extended error string")] HRESULT GetExtendedErrorInfo([out] BSTR *bstrErrorText);
[helpstring("Escape to driver")] HRESULT Escape([in] DWORD dwEscapeCode, [in, size_is(cbInDataSize)] BYTE * lpInData, [in] DWORD cbInDataSize, [out, size_is(dwOutDataSize), length_is((pdwActualDataSize) ? *pdwActualDataSize : dwOutDataSize)] BYTE * pOutData, [in] DWORD dwOutDataSize, [out] DWORD *pdwActualDataSize);
[helpstring("Cancel pending IO")] HRESULT CancelPendingIO(); }
/******************************************************************************* * * C O M P O N E N T D E S C R I P T I O N S * *******************************************************************************/
[ uuid(99f74582-8cf1-11d1-bf92-0060081ed811), version(1.0), helpstring("WIA Type Library") ]
library WiaDevMgr { importlib("stdole32.tlb") ;
// WIA Device Manager [ uuid(a1f4e726-8cf1-11d1-bf92-0060081ed811), helpstring("WIA Device Manager") ]
coclass WiaDevMgr { [default] interface IWiaDevMgr; };
// WIA Logging [ uuid(A1E75357-881A-419e-83E2-BB16DB197C68), helpstring("WIA Logging") ]
coclass WiaLog { interface IWiaLog; };
};
|