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.

118 lines
3.5 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (c) Microsoft Corporation. All rights reserved.
  5. //
  6. // File: OleStor.idl Cairo only interfaces for OLE Storage
  7. //
  8. // Contents: IOverlappedStream interface definition
  9. //
  10. // History: 14-Sep-1995 HenryLee initial version
  11. //
  12. //--------------------------------------------------------------------------
  13. cpp_quote("//+-------------------------------------------------------------------------")
  14. cpp_quote("//")
  15. cpp_quote("// Microsoft Windows")
  16. cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
  17. cpp_quote("//")
  18. cpp_quote("//--------------------------------------------------------------------------")
  19. cpp_quote("#if ( _MSC_VER >= 1020 )")
  20. cpp_quote("#pragma once")
  21. cpp_quote("#endif")
  22. #ifndef DO_NO_IMPORTS
  23. import "wtypes.idl";
  24. import "unknwn.idl";
  25. import "objidl.idl";
  26. #endif
  27. typedef [wire_marshal(ULONG)] void * HEVENT;
  28. interface IOverlappedCompletion;
  29. typedef struct _STGOVERLAPPED {
  30. DWORD Internal;
  31. DWORD InternalHigh;
  32. DWORD Offset;
  33. DWORD OffsetHigh;
  34. HEVENT hEvent;
  35. IOverlappedCompletion * lpCompletion;
  36. DWORD reserved;
  37. } STGOVERLAPPED, *LPSTGOVERLAPPED;
  38. //+-------------------------------------------------------------------------
  39. //
  40. // Microsoft Windows
  41. // Copyright (c) Microsoft Corporation. All rights reserved.
  42. //
  43. // Contents: IOverlappedCompletion interface definition
  44. //
  45. // History: 14-Sep-1995 HenryLee initial version
  46. //
  47. //--------------------------------------------------------------------------
  48. [
  49. object,
  50. uuid(521a28f0-e40b-11ce-b2c9-00aa00680937),
  51. pointer_default(unique)
  52. ]
  53. interface IOverlappedCompletion : IUnknown
  54. {
  55. HRESULT OnComplete (
  56. [in] HRESULT hr,
  57. [in] DWORD pcbTransferred,
  58. [in] STGOVERLAPPED *lpOverlapped);
  59. }
  60. //+-------------------------------------------------------------------------
  61. //
  62. // Microsoft Windows
  63. // Copyright (c) Microsoft Corporation. All rights reserved.
  64. //
  65. // Contents: IOverlappedStream interface definition
  66. //
  67. // History: 14-Sep-1995 HenryLee initial version
  68. //
  69. //--------------------------------------------------------------------------
  70. [
  71. object,
  72. uuid(49384070-e40a-11ce-b2c9-00aa00680937),
  73. pointer_default(unique)
  74. ]
  75. interface IOverlappedStream : IStream
  76. {
  77. [local]
  78. HRESULT ReadOverlapped (
  79. [in, size_is(cb)] void * pv,
  80. [in] ULONG cb,
  81. [out] ULONG * pcbRead,
  82. [in] STGOVERLAPPED *lpOverlapped);
  83. [call_as(ReadOverlapped)]
  84. HRESULT RemoteReadOverlapped (
  85. [in, size_is(cb)] byte * pv,
  86. [in] ULONG cb,
  87. [out] ULONG * pcbRead,
  88. [in] STGOVERLAPPED *lpOverlapped);
  89. [local]
  90. HRESULT __stdcall WriteOverlapped (
  91. [in, size_is(cb)] void *pv,
  92. [in] ULONG cb,
  93. [out] ULONG * pcbWritten,
  94. [in] STGOVERLAPPED *lpOverlapped);
  95. [call_as(WriteOverlapped)]
  96. HRESULT __stdcall RemoteWriteOverlapped (
  97. [in, size_is(cb)] byte *pv,
  98. [in] ULONG cb,
  99. [out] ULONG * pcbWritten,
  100. [in] STGOVERLAPPED *lpOverlapped);
  101. HRESULT GetOverlappedResult (
  102. [in, out] STGOVERLAPPED *lpOverlapped,
  103. [out] DWORD * plcbTransfer,
  104. [in] BOOL fWait);
  105. }