Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

154 lines
5.0 KiB

  1. /*******************************************************************************
  2. *
  3. * (C) COPYRIGHT MICROSOFT CORP., 1999
  4. *
  5. * TITLE: WiaPriv.Idl
  6. *
  7. * VERSION: 1.0
  8. *
  9. * DATE: 30 Nov, 1999
  10. *
  11. * DESCRIPTION:
  12. * Private IDL source for STI/WIA.
  13. *
  14. *******************************************************************************/
  15. interface IStiLockMgr;
  16. interface IWiaDataCallback;
  17. interface IWiaItemInternal;
  18. import "unknwn.idl";
  19. import "oaidl.idl";
  20. import "propidl.idl";
  21. /*******************************************************************************
  22. *
  23. * Sti Locking Interface
  24. *
  25. *******************************************************************************/
  26. [
  27. object,
  28. uuid(70681EA0-E7BF-4291-9FB1-FE550482AB88),
  29. helpstring("Lock Manager Interface"),
  30. pointer_default(unique)
  31. ]
  32. interface IStiLockMgr : IUnknown
  33. {
  34. [id(1), helpstring("Request Device Lock method")]
  35. HRESULT RequestLock(
  36. [in] BSTR bstrDeviceName,
  37. [in] ULONG ulTimeout,
  38. [in] BOOL bInServerProcess);
  39. [id(2), helpstring("Request Device Unlock method")]
  40. HRESULT RequestUnlock(
  41. [in] BSTR bstrDeviceName,
  42. [in] BOOL bInServerProcess);
  43. };
  44. /*******************************************************************************
  45. * WIA_DATA_THREAD_INFO
  46. *
  47. * Information for data callback thread
  48. *
  49. * History:
  50. *
  51. * 4/9/1999 Original Version
  52. *
  53. *******************************************************************************/
  54. typedef struct _WIA_DATA_THREAD_INFO {
  55. //
  56. // communications to client
  57. //
  58. LONG lReason;
  59. LONG lStatus;
  60. LONG lPercentComplete;
  61. LONG lOffset;
  62. LONG lLength;
  63. LONG_PTR lClientAddress;
  64. LONG lMarshalLength;
  65. BYTE *pBuffer;
  66. //
  67. // thread sync
  68. //
  69. BOOL bTerminateThread;
  70. HANDLE hEventStart;
  71. HANDLE hEventComplete;
  72. HRESULT hr;
  73. IWiaDataCallback* pIDataCallback;
  74. }WIA_DATA_THREAD_INFO,*PWIA_DATA_THREAD_INFO;
  75. /**************************************************************************\
  76. *
  77. * WIA_DATA_CB_BUF_INFO
  78. * Internal transfer information struct.
  79. *
  80. * ulSize - Size of this structure
  81. * pMappingHandle - File mapped handle provided as shared memory buffer
  82. * pTransferBuffer - Pointer to shared memory buffer
  83. * ulBufferSize - Size of the buffer used in data transfer
  84. * ulClientProcessId- Process ID of client
  85. * History:
  86. *
  87. * 07/20/00
  88. *
  89. \**************************************************************************/
  90. typedef struct _WIA_DATA_CB_BUF_INFO {
  91. ULONG ulSize;
  92. ULONG_PTR pMappingHandle;
  93. ULONG_PTR pTransferBuffer;
  94. ULONG ulBufferSize;
  95. ULONG ulClientProcessId;
  96. } WIA_DATA_CB_BUF_INFO, *PWIA_DATA_CB_BUF_INFO;
  97. /*******************************************************************************
  98. *
  99. * IWiaItemInternal Interface
  100. *
  101. *******************************************************************************/
  102. [
  103. object,
  104. uuid(B884E681-66BA-4014-AFBF-DCB3BEE45FAA),
  105. helpstring("WIA Item Internal Interface"),
  106. pointer_default(unique)
  107. ]
  108. interface IWiaItemInternal : IUnknown
  109. {
  110. [helpstring("Store info for callbacks")]
  111. HRESULT SetCallbackBufferInfo(
  112. [in] WIA_DATA_CB_BUF_INFO DataCBBufInfo);
  113. [helpstring("Retrieve info for callbacks")]
  114. HRESULT GetCallbackBufferInfo(
  115. [in, out] WIA_DATA_CB_BUF_INFO *pDataCBBufInfo);
  116. [helpstring("Start remote transfer")]
  117. HRESULT idtStartRemoteDataTransfer([in, out] LPSTGMEDIUM pStgMedium);
  118. [helpstring("Get a single band (or other message) from remote device")]
  119. HRESULT idtRemoteDataTransfer(
  120. [in] ULONG nNumberOfBytesToRead,
  121. [out] ULONG *pNumberOfBytesRead,
  122. [out, size_is(nNumberOfBytesToRead), length_is(*pNumberOfBytesRead)] BYTE *pBuffer,
  123. [out] LONG *pOffset,
  124. [out] LONG *pMessage,
  125. [out] LONG *pStatus,
  126. [out] LONG *pPercentComplete);
  127. [helpstring("Stop remote transfer")]
  128. HRESULT idtStopRemoteDataTransfer();
  129. [helpstring("Cancel remote transfer")]
  130. HRESULT idtCancelRemoteDataTransfer();
  131. }