/******************************************************************************* * * (C) COPYRIGHT MICROSOFT CORP., 1999 * * TITLE: WiaPriv.Idl * * VERSION: 1.0 * * DATE: 30 Nov, 1999 * * DESCRIPTION: * Private IDL source for STI/WIA. * *******************************************************************************/ interface IStiLockMgr; interface IWiaDataCallback; interface IWiaItemInternal; import "unknwn.idl"; /******************************************************************************* * * Sti Locking Interface * *******************************************************************************/ [ object, uuid(70681EA0-E7BF-4291-9FB1-FE550482AB88), helpstring("Lock Manager Interface"), pointer_default(unique) ] interface IStiLockMgr : IUnknown { [id(1), helpstring("Request Device Lock method")] HRESULT RequestLock( [in] BSTR bstrDeviceName, [in] ULONG ulTimeout, [in] BOOL bInServerProcess); [id(2), helpstring("Request Device Unlock method")] HRESULT RequestUnlock( [in] BSTR bstrDeviceName, [in] BOOL bInServerProcess); }; /******************************************************************************* * WIA_DATA_THREAD_INFO * * Information for data callback thread * * History: * * 4/9/1999 Original Version * *******************************************************************************/ typedef struct _WIA_DATA_THREAD_INFO { // // communications to client // LONG lReason; LONG lStatus; LONG lPercentComplete; LONG lOffset; LONG lLength; LONG lClientAddress; LONG lMarshalLength; BYTE *pBuffer; // // thread sync // BOOL bTerminateThread; HANDLE hEventStart; HANDLE hEventComplete; HRESULT hr; IWiaDataCallback* pIDataCallback; }WIA_DATA_THREAD_INFO,*PWIA_DATA_THREAD_INFO; /**************************************************************************\ * * WIA_DATA_CB_BUF_INFO * Internal transfer information struct. * * ulSize - Size of this structure * pMappingHandle - File mapped handle provided as shared memory buffer * pTransferBuffer - Pointer to shared memory buffer * ulBufferSize - Size of the buffer used in data transfer * ulClientProcessId- Process ID of client * History: * * 07/20/00 * \**************************************************************************/ typedef struct _WIA_DATA_CB_BUF_INFO { ULONG ulSize; ULONG_PTR pMappingHandle; ULONG_PTR pTransferBuffer; ULONG ulBufferSize; ULONG ulClientProcessId; } WIA_DATA_CB_BUF_INFO, *PWIA_DATA_CB_BUF_INFO; /******************************************************************************* * * IWiaItemInternal Interface * *******************************************************************************/ [ object, uuid(B884E681-66BA-4014-AFBF-DCB3BEE45FAA), helpstring("WIA Item Internal Interface"), pointer_default(unique) ] interface IWiaItemInternal : IUnknown { [helpstring("Store info for callbacks")] HRESULT SetCallbackBufferInfo( [in] WIA_DATA_CB_BUF_INFO DataCBBufInfo); [helpstring("Retrieve info for callbacks")] HRESULT GetCallbackBufferInfo( [in, out] WIA_DATA_CB_BUF_INFO *pDataCBBufInfo); [helpstring("Start remote transfer")] HRESULT idtStartRemoteDataTransfer(); [helpstring("Get a single band (or other message) from remote device")] HRESULT idtRemoteDataTransfer( [in] ULONG nNumberOfBytesToRead, [out] ULONG *pNumberOfBytesRead, [out, size_is(nNumberOfBytesToRead), length_is(*pNumberOfBytesRead)] BYTE *pBuffer, [out] LONG *pOffset, [out] LONG *pMessage, [out] LONG *pStatus, [out] LONG *pPercentComplete); [helpstring("Stop remote transfer")] HRESULT idtStopRemoteDataTransfer(); }