2 * Copyright 1997 Marcus Meissner
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WINE_OLE_IFS_H
20 #define __WINE_OLE_IFS_H
28 typedef CHAR OLECHAR16
;
29 typedef LPSTR LPOLESTR16
;
30 typedef LPCSTR LPCOLESTR16
;
32 #define STDMETHOD16CALLTYPE __cdecl
33 #define STDMETHOD16(m) HRESULT (STDMETHOD16CALLTYPE *m)
34 #define STDMETHOD16_(t,m) t (STDMETHOD16CALLTYPE *m)
36 /**********************************************************************/
38 typedef struct ILockBytes16
*LPLOCKBYTES16
;
40 #define INTERFACE ILockBytes16
41 DECLARE_INTERFACE_(ILockBytes16
,IUnknown
)
43 /*** IUnknown methods ***/
44 STDMETHOD16_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
45 STDMETHOD16_(ULONG
,AddRef
)(THIS
) PURE
;
46 STDMETHOD16_(ULONG
,Release
)(THIS
) PURE
;
47 /*** ILockBytes16 methods ***/
48 STDMETHOD16(ReadAt
)(THIS_ ULARGE_INTEGER ulOffset
, void *pv
, ULONG cb
, ULONG
*pcbRead
) PURE
;
49 STDMETHOD16(WriteAt
)(THIS_ ULARGE_INTEGER ulOffset
, const void *pv
, ULONG cb
, ULONG
*pcbWritten
) PURE
;
50 STDMETHOD16(Flush
)(THIS
) PURE
;
51 STDMETHOD16(SetSize
)(THIS_ ULARGE_INTEGER cb
) PURE
;
52 STDMETHOD16(LockRegion
)(THIS_ ULARGE_INTEGER libOffset
, ULARGE_INTEGER cb
, DWORD dwLockType
) PURE
;
53 STDMETHOD16(UnlockRegion
)(THIS_ ULARGE_INTEGER libOffset
, ULARGE_INTEGER cb
, DWORD dwLockType
) PURE
;
54 STDMETHOD16(Stat
)(THIS_ STATSTG
*pstatstg
, DWORD grfStatFlag
) PURE
;
58 /**********************************************************************/
60 typedef struct tagSTATSTG16
64 ULARGE_INTEGER cbSize
;
69 DWORD grfLocksSupported
;
75 typedef struct IStream16
*LPSTREAM16
;
77 #define INTERFACE IStream16
78 DECLARE_INTERFACE_(IStream16
,ISequentialStream
)
80 /*** IUnknown methods ***/
81 STDMETHOD16_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
82 STDMETHOD16_(ULONG
,AddRef
)(THIS
) PURE
;
83 STDMETHOD16_(ULONG
,Release
)(THIS
) PURE
;
84 /*** ISequentialStream methods ***/
85 STDMETHOD16_(HRESULT
,Read
)(THIS_
void* pv
, ULONG cb
, ULONG
* pcbRead
) PURE
;
86 STDMETHOD16_(HRESULT
,Write
)(THIS_
const void* pv
, ULONG cb
, ULONG
* pcbWritten
) PURE
;
87 /*** IStream16 methods ***/
88 STDMETHOD16(Seek
)(THIS_ LARGE_INTEGER dlibMove
, DWORD dwOrigin
, ULARGE_INTEGER
* plibNewPosition
) PURE
;
89 STDMETHOD16(SetSize
)(THIS_ ULARGE_INTEGER libNewSize
) PURE
;
90 STDMETHOD16(CopyTo
)(THIS_ IStream16
* pstm
, ULARGE_INTEGER cb
, ULARGE_INTEGER
* pcbRead
, ULARGE_INTEGER
* pcbWritten
) PURE
;
91 STDMETHOD16(Commit
)(THIS_ DWORD grfCommitFlags
) PURE
;
92 STDMETHOD16(Revert
)(THIS
) PURE
;
93 STDMETHOD16(LockRegion
)(THIS_ ULARGE_INTEGER libOffset
, ULARGE_INTEGER cb
, DWORD dwLockType
) PURE
;
94 STDMETHOD16(UnlockRegion
)(THIS_ ULARGE_INTEGER libOffset
, ULARGE_INTEGER cb
, DWORD dwLockType
) PURE
;
95 STDMETHOD16(Stat
)(THIS_ STATSTG
* pstatstg
, DWORD grfStatFlag
) PURE
;
96 STDMETHOD16(Clone
)(THIS_ IStream16
** ppstm
) PURE
;
100 /**********************************************************************/
102 typedef OLECHAR16
**SNB16
;
104 typedef struct IStorage16
*LPSTORAGE16
;
106 #define INTERFACE IStorage16
107 DECLARE_INTERFACE_(IStorage16
,IUnknown
)
109 /*** IUnknown methods ***/
110 STDMETHOD16_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
111 STDMETHOD16_(ULONG
,AddRef
)(THIS
) PURE
;
112 STDMETHOD16_(ULONG
,Release
)(THIS
) PURE
;
113 /*** IStorage16 methods ***/
114 STDMETHOD16_(HRESULT
,CreateStream
)(THIS_ LPCOLESTR16 pwcsName
, DWORD grfMode
, DWORD reserved1
, DWORD reserved2
, IStream16
** ppstm
) PURE
;
115 STDMETHOD16_(HRESULT
,OpenStream
)(THIS_ LPCOLESTR16 pwcsName
, void* reserved1
, DWORD grfMode
, DWORD reserved2
, IStream16
** ppstm
) PURE
;
116 STDMETHOD16_(HRESULT
,CreateStorage
)(THIS_ LPCOLESTR16 pwcsName
, DWORD grfMode
, DWORD dwStgFmt
, DWORD reserved2
, IStorage16
** ppstg
) PURE
;
117 STDMETHOD16_(HRESULT
,OpenStorage
)(THIS_ LPCOLESTR16 pwcsName
, IStorage16
* pstgPriority
, DWORD grfMode
, SNB16 snbExclude
, DWORD reserved
, IStorage16
** ppstg
) PURE
;
118 STDMETHOD16_(HRESULT
,CopyTo
)(THIS_ DWORD ciidExclude
, const IID
* rgiidExclude
, SNB16 snbExclude
, IStorage16
* pstgDest
) PURE
;
119 STDMETHOD16_(HRESULT
,MoveElementTo
)(THIS_ LPCOLESTR16 pwcsName
, IStorage16
* pstgDest
, LPCOLESTR16 pwcsNewName
, DWORD grfFlags
) PURE
;
120 STDMETHOD16_(HRESULT
,Commit
)(THIS_ DWORD grfCommitFlags
) PURE
;
121 STDMETHOD16_(HRESULT
,Revert
)(THIS
) PURE
;
122 STDMETHOD16_(HRESULT
,EnumElements
)(THIS_ DWORD reserved1
, void* reserved2
, DWORD reserved3
, IEnumSTATSTG
** ppenum
) PURE
;
123 STDMETHOD16_(HRESULT
,DestroyElement
)(THIS_ LPCOLESTR16 pwcsName
) PURE
;
124 STDMETHOD16_(HRESULT
,RenameElement
)(THIS_ LPCOLESTR16 pwcsOldName
, LPCOLESTR16 pwcsNewName
) PURE
;
125 STDMETHOD16_(HRESULT
,SetElementTimes
)(THIS_ LPCOLESTR16 pwcsName
, const FILETIME
* pctime
, const FILETIME
* patime
, const FILETIME
* pmtime
) PURE
;
126 STDMETHOD16_(HRESULT
,SetClass
)(THIS_ REFCLSID clsid
) PURE
;
127 STDMETHOD16_(HRESULT
,SetStateBits
)(THIS_ DWORD grfStateBits
, DWORD grfMask
) PURE
;
128 STDMETHOD16_(HRESULT
,Stat
)(THIS_ STATSTG
* pstatstg
, DWORD grfStatFlag
) PURE
;
132 #endif /* __WINE_OLE_IFS_H */