|
|
/******************************************************************************* * * (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"; import "oaidl.idl"; import "propidl.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_PTR 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([in, out] LPSTGMEDIUM pStgMedium);
[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();
[helpstring("Cancel remote transfer")] HRESULT idtCancelRemoteDataTransfer(); }
|