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.

225 lines
5.8 KiB

  1. /*++
  2. Copyright (c) 1997 Microsoft Corporation
  3. Module Name:
  4. stirpc.idl
  5. Abstract:
  6. Contains the Stii Image Input R_StiApi API definitions
  7. Also contains the R_StiApi specific data structures for these API.
  8. Author:
  9. Vlad Sadovsky (vlads) 10-Jan-1997
  10. Environment:
  11. User Mode - Win32 - MIDL
  12. Revision History:
  13. 26-Jan-1997 VladS created
  14. --*/
  15. //
  16. // Interface Attributes
  17. //
  18. [
  19. uuid(8C7A6DE0-788D-11D0-9EDF-444553540000),
  20. version(2.0),
  21. #ifdef __midl
  22. ms_union,
  23. #endif // __midl
  24. pointer_default(unique)
  25. ]
  26. //
  27. // Interface Keyword
  28. //
  29. interface stirpc
  30. //
  31. // Interface Body
  32. //
  33. {
  34. import "imports.idl";
  35. //
  36. // ---------------------------------------------------------------//
  37. //
  38. typedef [handle] LPCWSTR STI_STRING_HANDLE;
  39. typedef [context_handle] HANDLE STI_DEVICE_HANDLE;
  40. typedef [context_handle] HANDLE STI_CLIENT_CONTEXT;
  41. typedef struct _NOTIFY_DATA_CONTAINER {
  42. DWORD cbNotifyData;
  43. [size_is(cbNotifyData), unique] BYTE *pNotifyData;
  44. } NOTIFY_DATA_CONTAINER, *PNOTIFY_DATA_CONTAINER, *LPNOTIFY_DATA_CONTAINER;
  45. typedef struct _LOCAL_SUBSCRIBE_CONTAINER {
  46. DWORD dwSize;
  47. DWORD dwFlags;
  48. DWORD dwFilter;
  49. UINT_PTR upLocalWindowHandle;
  50. UINT_PTR upLocalEventHandle;
  51. UINT uiNotificationMessage;
  52. } LOCAL_SUBSCRIBE_CONTAINER, *PLOCAL_SUBSCRIBE_CONTAINER;
  53. cpp_quote("#ifndef _tagBLOB_DEFINED")
  54. /* IDL declarations for BSTR how to transmit them */
  55. typedef struct _FLAGGED_WORD_BLOB {
  56. unsigned long fFlags;
  57. unsigned long clSize;
  58. [size_is(clSize)] unsigned short asData[];
  59. } FLAGGED_WORD_BLOB;
  60. typedef [unique] FLAGGED_WORD_BLOB * wireBSTR;
  61. typedef [wire_marshal( wireBSTR )] OLECHAR * BSTR;
  62. typedef BSTR * LPBSTR;
  63. cpp_quote("#endif")
  64. typedef struct _WIA_ASYNC_EVENT_REG_DATA
  65. {
  66. DWORD dwFlags;
  67. GUID guidEvent;
  68. BSTR bstrDeviceID;
  69. ULONG_PTR ulCallback;
  70. } WIA_ASYNC_EVENT_REG_DATA;
  71. typedef struct _WIA_ASYNC_EVENT_NOTIFY_DATA
  72. {
  73. GUID EventGuid;
  74. BSTR bstrEventDescription;
  75. BSTR bstrDeviceID;
  76. BSTR bstrDeviceDescription;
  77. DWORD dwDeviceType;
  78. BSTR bstrFullItemName;
  79. ULONG ulEventType;
  80. } WIA_ASYNC_EVENT_NOTIFY_DATA;
  81. DWORD
  82. R_StiApiGetVersion(
  83. [in, string, unique] STI_STRING_HANDLE pszServer,
  84. [in] DWORD dwReserved,
  85. [out] DWORD *pdwVersion
  86. );
  87. DWORD
  88. R_StiApiEnableHwNotifications(
  89. [in, string, unique] STI_STRING_HANDLE pszServer,
  90. [in, string, unique] STI_STRING_HANDLE pdeviceName,
  91. [in] BOOL bNewState
  92. );
  93. DWORD
  94. R_StiApiGetHwNotificationState(
  95. [in, string, unique] STI_STRING_HANDLE pszServer,
  96. [in, string, unique] STI_STRING_HANDLE pdeviceName,
  97. [out] LPDWORD pState
  98. );
  99. DWORD
  100. R_StiApiLaunchApplication(
  101. [in, string, unique] STI_STRING_HANDLE pszServer,
  102. [in, string, unique] STI_STRING_HANDLE pDeviceName,
  103. [in, string, unique] STI_STRING_HANDLE pAppName,
  104. [in] STINOTIFY* pStiNotify
  105. );
  106. DWORD
  107. R_StiApiOpenDevice(
  108. [in, string, unique] STI_STRING_HANDLE pszServer,
  109. [in, string, unique] STI_STRING_HANDLE pdeviceName,
  110. [in] DWORD dwMode,
  111. [in] DWORD dwAccessRequired,
  112. [in] DWORD dwProcessId,
  113. [out] STI_DEVICE_HANDLE *pHandle
  114. );
  115. DWORD
  116. R_StiApiSubscribe(
  117. [in] STI_DEVICE_HANDLE Handle,
  118. [in,ref,unique] LOCAL_SUBSCRIBE_CONTAINER *lpSubscribe
  119. );
  120. DWORD
  121. R_StiApiGetLastNotificationData(
  122. [in] STI_DEVICE_HANDLE Handle,
  123. [out, size_is(nSize)] LPBYTE pData,
  124. [in] DWORD nSize,
  125. [out] LPDWORD pcbNeeded
  126. );
  127. DWORD
  128. R_StiApiUnSubscribe(
  129. [in] STI_DEVICE_HANDLE Handle
  130. );
  131. DWORD
  132. R_StiApiCloseDevice(
  133. [in, string, unique] STI_STRING_HANDLE pszServer,
  134. [in] STI_DEVICE_HANDLE hDevice
  135. );
  136. DWORD
  137. R_StiApiLockDevice(
  138. [in, string, unique] STI_STRING_HANDLE pszServer,
  139. [in, string, unique] STI_STRING_HANDLE pdeviceName,
  140. [in] DWORD dwWait,
  141. [in] BOOL bInServerProcess,
  142. [in] DWORD dwClientThreadId
  143. );
  144. DWORD
  145. R_StiApiUnlockDevice(
  146. [in, string, unique] STI_STRING_HANDLE pszServer,
  147. [in, string, unique] STI_STRING_HANDLE pdeviceName,
  148. [in] BOOL bInServerProcess,
  149. [in] DWORD dwClientThreadId
  150. );
  151. DWORD
  152. R_WiaGetEventDataAsync(
  153. handle_t hBinding,
  154. [in, out, size_is(1), length_is(1)] WIA_ASYNC_EVENT_NOTIFY_DATA *pData
  155. );
  156. DWORD
  157. OpenClientConnection(
  158. handle_t hBinding,
  159. [out] STI_CLIENT_CONTEXT *pSyncClientContext,
  160. [out] STI_CLIENT_CONTEXT *pAsyncClientContext);
  161. DWORD
  162. CloseClientConnection(
  163. handle_t hBinding,
  164. [in] STI_CLIENT_CONTEXT ClientContext);
  165. DWORD
  166. RegisterUnregisterForEventNotification(
  167. handle_t hBinding,
  168. [in] STI_CLIENT_CONTEXT SyncClientContext,
  169. [in] WIA_ASYNC_EVENT_REG_DATA *pWIA_ASYNC_EVENT_REG_DATA);
  170. DWORD
  171. WiaGetRuntimetEventDataAsync(
  172. handle_t hBinding,
  173. [in] STI_CLIENT_CONTEXT AsyncClientContext,
  174. [in,out, size_is(1), length_is(1)] WIA_ASYNC_EVENT_NOTIFY_DATA *pWIA_ASYNC_EVENT_NOTIFY_DATA);
  175. };