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