windows-nt/Source/XPSP1/NT/printscan/wia/inc/wiapriv.idl
2020-09-26 16:20:57 +08:00

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();
}