//+------------------------------------------------------------------------- // // 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); }