149 lines
4.7 KiB
Plaintext
149 lines
4.7 KiB
Plaintext
|
/*******************************************************************************
|
||
|
*
|
||
|
* (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();
|
||
|
}
|
||
|
|