windows-nt/Source/XPSP1/NT/public/sdk/inc/storext.idl
2020-09-26 16:20:57 +08:00

119 lines
3.4 KiB
Plaintext

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// File: OleStor.idl Cairo only interfaces for OLE Storage
//
// Contents: IOverlappedStream interface definition
//
// History: 14-Sep-1995 HenryLee initial version
//
//--------------------------------------------------------------------------
cpp_quote("//+-------------------------------------------------------------------------")
cpp_quote("//")
cpp_quote("// Microsoft Windows")
cpp_quote("// Copyright (c) Microsoft Corporation. All rights reserved.")
cpp_quote("//")
cpp_quote("//--------------------------------------------------------------------------")
cpp_quote("#if ( _MSC_VER >= 1020 )")
cpp_quote("#pragma once")
cpp_quote("#endif")
#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. All rights reserved.
//
// 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. All rights reserved.
//
// 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);
}