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)
37 /***********************************************************************
41 typedef struct IMalloc16
*LPMALLOC16
;
43 #define INTERFACE IMalloc16
44 DECLARE_INTERFACE_(IMalloc16
,IUnknown
)
46 /*** IUnknown methods ***/
47 STDMETHOD16_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
48 STDMETHOD16_(ULONG
,AddRef
)(THIS
) PURE
;
49 STDMETHOD16_(ULONG
,Release
)(THIS
) PURE
;
50 /*** IMalloc16 methods ***/
51 STDMETHOD16_(LPVOID
,Alloc
)(THIS_ DWORD cb
) PURE
;
52 STDMETHOD16_(LPVOID
,Realloc
)(THIS_ LPVOID pv
, DWORD cb
) PURE
;
53 STDMETHOD16_(void,Free
)(THIS_ LPVOID pv
) PURE
;
54 STDMETHOD16_(DWORD
,GetSize
)(THIS_ LPVOID pv
) PURE
;
55 STDMETHOD16_(INT16
,DidAlloc
)(THIS_ LPVOID pv
) PURE
;
56 STDMETHOD16_(LPVOID
,HeapMinimize
)(THIS
) PURE
;
60 /**********************************************************************/
62 extern LPMALLOC16
IMalloc16_Constructor(void);
64 /**********************************************************************/
66 typedef struct ILockBytes16
*LPLOCKBYTES16
;
68 #define INTERFACE ILockBytes16
69 DECLARE_INTERFACE_(ILockBytes16
,IUnknown
)
71 /*** IUnknown methods ***/
72 STDMETHOD16_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
73 STDMETHOD16_(ULONG
,AddRef
)(THIS
) PURE
;
74 STDMETHOD16_(ULONG
,Release
)(THIS
) PURE
;
75 /*** ILockBytes16 methods ***/
76 STDMETHOD16(ReadAt
)(THIS_ ULARGE_INTEGER ulOffset
, void *pv
, ULONG cb
, ULONG
*pcbRead
) PURE
;
77 STDMETHOD16(WriteAt
)(THIS_ ULARGE_INTEGER ulOffset
, const void *pv
, ULONG cb
, ULONG
*pcbWritten
) PURE
;
78 STDMETHOD16(Flush
)(THIS
) PURE
;
79 STDMETHOD16(SetSize
)(THIS_ ULARGE_INTEGER cb
) PURE
;
80 STDMETHOD16(LockRegion
)(THIS_ ULARGE_INTEGER libOffset
, ULARGE_INTEGER cb
, DWORD dwLockType
) PURE
;
81 STDMETHOD16(UnlockRegion
)(THIS_ ULARGE_INTEGER libOffset
, ULARGE_INTEGER cb
, DWORD dwLockType
) PURE
;
82 STDMETHOD16(Stat
)(THIS_ STATSTG
*pstatstg
, DWORD grfStatFlag
) PURE
;
86 /**********************************************************************/
88 typedef struct tagSTATSTG16
92 ULARGE_INTEGER cbSize
;
97 DWORD grfLocksSupported
;
103 typedef struct IStream16
*LPSTREAM16
;
105 #define INTERFACE IStream16
106 DECLARE_INTERFACE_(IStream16
,ISequentialStream
)
108 /*** IUnknown methods ***/
109 STDMETHOD16_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
110 STDMETHOD16_(ULONG
,AddRef
)(THIS
) PURE
;
111 STDMETHOD16_(ULONG
,Release
)(THIS
) PURE
;
112 /*** ISequentialStream methods ***/
113 STDMETHOD16_(HRESULT
,Read
)(THIS_
void* pv
, ULONG cb
, ULONG
* pcbRead
) PURE
;
114 STDMETHOD16_(HRESULT
,Write
)(THIS_
const void* pv
, ULONG cb
, ULONG
* pcbWritten
) PURE
;
115 /*** IStream16 methods ***/
116 STDMETHOD16(Seek
)(THIS_ LARGE_INTEGER dlibMove
, DWORD dwOrigin
, ULARGE_INTEGER
* plibNewPosition
) PURE
;
117 STDMETHOD16(SetSize
)(THIS_ ULARGE_INTEGER libNewSize
) PURE
;
118 STDMETHOD16(CopyTo
)(THIS_ IStream16
* pstm
, ULARGE_INTEGER cb
, ULARGE_INTEGER
* pcbRead
, ULARGE_INTEGER
* pcbWritten
) PURE
;
119 STDMETHOD16(Commit
)(THIS_ DWORD grfCommitFlags
) PURE
;
120 STDMETHOD16(Revert
)(THIS
) PURE
;
121 STDMETHOD16(LockRegion
)(THIS_ ULARGE_INTEGER libOffset
, ULARGE_INTEGER cb
, DWORD dwLockType
) PURE
;
122 STDMETHOD16(UnlockRegion
)(THIS_ ULARGE_INTEGER libOffset
, ULARGE_INTEGER cb
, DWORD dwLockType
) PURE
;
123 STDMETHOD16(Stat
)(THIS_ STATSTG
* pstatstg
, DWORD grfStatFlag
) PURE
;
124 STDMETHOD16(Clone
)(THIS_ IStream16
** ppstm
) PURE
;
128 /**********************************************************************/
130 typedef OLECHAR16
**SNB16
;
132 typedef struct IStorage16
*LPSTORAGE16
;
134 #define INTERFACE IStorage16
135 DECLARE_INTERFACE_(IStorage16
,IUnknown
)
137 /*** IUnknown methods ***/
138 STDMETHOD16_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
139 STDMETHOD16_(ULONG
,AddRef
)(THIS
) PURE
;
140 STDMETHOD16_(ULONG
,Release
)(THIS
) PURE
;
141 /*** IStorage16 methods ***/
142 STDMETHOD16_(HRESULT
,CreateStream
)(THIS_ LPCOLESTR16 pwcsName
, DWORD grfMode
, DWORD reserved1
, DWORD reserved2
, IStream16
** ppstm
) PURE
;
143 STDMETHOD16_(HRESULT
,OpenStream
)(THIS_ LPCOLESTR16 pwcsName
, void* reserved1
, DWORD grfMode
, DWORD reserved2
, IStream16
** ppstm
) PURE
;
144 STDMETHOD16_(HRESULT
,CreateStorage
)(THIS_ LPCOLESTR16 pwcsName
, DWORD grfMode
, DWORD dwStgFmt
, DWORD reserved2
, IStorage16
** ppstg
) PURE
;
145 STDMETHOD16_(HRESULT
,OpenStorage
)(THIS_ LPCOLESTR16 pwcsName
, IStorage16
* pstgPriority
, DWORD grfMode
, SNB16 snbExclude
, DWORD reserved
, IStorage16
** ppstg
) PURE
;
146 STDMETHOD16_(HRESULT
,CopyTo
)(THIS_ DWORD ciidExclude
, const IID
* rgiidExclude
, SNB16 snbExclude
, IStorage16
* pstgDest
) PURE
;
147 STDMETHOD16_(HRESULT
,MoveElementTo
)(THIS_ LPCOLESTR16 pwcsName
, IStorage16
* pstgDest
, LPCOLESTR16 pwcsNewName
, DWORD grfFlags
) PURE
;
148 STDMETHOD16_(HRESULT
,Commit
)(THIS_ DWORD grfCommitFlags
) PURE
;
149 STDMETHOD16_(HRESULT
,Revert
)(THIS
) PURE
;
150 STDMETHOD16_(HRESULT
,EnumElements
)(THIS_ DWORD reserved1
, void* reserved2
, DWORD reserved3
, IEnumSTATSTG
** ppenum
) PURE
;
151 STDMETHOD16_(HRESULT
,DestroyElement
)(THIS_ LPCOLESTR16 pwcsName
) PURE
;
152 STDMETHOD16_(HRESULT
,RenameElement
)(THIS_ LPCOLESTR16 pwcsOldName
, LPCOLESTR16 pwcsNewName
) PURE
;
153 STDMETHOD16_(HRESULT
,SetElementTimes
)(THIS_ LPCOLESTR16 pwcsName
, const FILETIME
* pctime
, const FILETIME
* patime
, const FILETIME
* pmtime
) PURE
;
154 STDMETHOD16_(HRESULT
,SetClass
)(THIS_ REFCLSID clsid
) PURE
;
155 STDMETHOD16_(HRESULT
,SetStateBits
)(THIS_ DWORD grfStateBits
, DWORD grfMask
) PURE
;
156 STDMETHOD16_(HRESULT
,Stat
)(THIS_ STATSTG
* pstatstg
, DWORD grfStatFlag
) PURE
;
160 #endif /* __WINE_OLE_IFS_H */