2 * Defines the COM interfaces and APIs related to structured data storage.
4 * Depends on 'obj_base.h'.
7 #ifndef __WINE_WINE_OBJ_STORAGE_H
8 #define __WINE_WINE_OBJ_STORAGE_H
14 /*****************************************************************************
15 * Predeclare the structures
17 typedef LPOLESTR16
*SNB16
;
18 typedef LPOLESTR32
*SNB32
;
19 DECL_WINELIB_TYPE(SNB
)
21 typedef struct STATSTG STATSTG
;
24 /*****************************************************************************
25 * Predeclare the interfaces
27 DEFINE_OLEGUID(IID_IEnumSTATSTG
, 0x0000000dL
, 0, 0);
28 typedef struct IEnumSTATSTG IEnumSTATSTG
,*LPENUMSTATSTG
;
30 DEFINE_GUID (IID_IFillLockBytes
, 0x99caf010L
, 0x415e, 0x11cf, 0x88, 0x14, 0x00, 0xaa, 0x00, 0xb5, 0x69, 0xf5);
31 typedef struct IFillLockBytes IFillLockBytes
,*LPFILLLOCKBYTES
;
33 DEFINE_GUID (IID_ILayoutStorage
, 0x0e6d4d90L
, 0x6738, 0x11cf, 0x96, 0x08, 0x00, 0xaa, 0x00, 0x68, 0x0d, 0xb4);
34 typedef struct ILayoutStorage ILayoutStorage
,*LPLAYOUTSTORAGE
;
36 DEFINE_OLEGUID(IID_ILockBytes
, 0x0000000aL
, 0, 0);
37 typedef struct ILockBytes ILockBytes
,*LPLOCKBYTES
;
39 DEFINE_OLEGUID(IID_IPersist
, 0x0000010cL
, 0, 0);
40 typedef struct IPersist IPersist
,*LPPERSIST
;
42 DEFINE_OLEGUID(IID_IPersistFile
, 0x0000010bL
, 0, 0);
43 typedef struct IPersistFile IPersistFile
,*LPPERSISTFILE
;
45 DEFINE_OLEGUID(IID_IPersistStorage
, 0x0000010aL
, 0, 0);
46 typedef struct IPersistStorage IPersistStorage
,*LPPERSISTSTORAGE
;
48 DEFINE_OLEGUID(IID_IPersistStream
, 0x00000109L
, 0, 0);
49 typedef struct IPersistStream IPersistStream
,*LPPERSISTSTREAM
;
51 DEFINE_GUID (IID_IProgressNotify
, 0xa9d758a0L
, 0x4617, 0x11cf, 0x95, 0xfc, 0x00, 0xaa, 0x00, 0x68, 0x0d, 0xb4);
52 typedef struct IProgressNotify IProgressNotify
,*LPPROGRESSNOTIFY
;
54 DEFINE_OLEGUID(IID_IRootStorage
, 0x00000012L
, 0, 0);
55 typedef struct IRootStorage IRootStorage
,*LPROOTSTORAGE
;
57 DEFINE_GUID (IID_ISequentialStream
, 0x0c733a30L
, 0x2a1c, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d);
58 typedef struct ISequentialStream ISequentialStream
,*LPSEQUENTIALSTREAM
;
60 DEFINE_OLEGUID(IID_IStorage
, 0x0000000bL
, 0, 0);
61 typedef struct IStorage16 IStorage16
,*LPSTORAGE16
;
62 typedef struct IStorage32 IStorage32
,*LPSTORAGE32
;
63 DECL_WINELIB_TYPE(IStorage
)
64 DECL_WINELIB_TYPE(LPSTORAGE
)
66 DEFINE_OLEGUID(IID_IStream
, 0x0000000cL
, 0, 0);
67 typedef struct IStream16 IStream16
,*LPSTREAM16
;
68 typedef struct IStream32 IStream32
,*LPSTREAM32
;
69 DECL_WINELIB_TYPE(IStream
)
70 DECL_WINELIB_TYPE(LPSTREAM
)
73 /*****************************************************************************
76 * See IStorage and IStream
78 #define STGM_DIRECT 0x00000000
79 #define STGM_TRANSACTED 0x00010000
80 #define STGM_SIMPLE 0x08000000
81 #define STGM_READ 0x00000000
82 #define STGM_WRITE 0x00000001
83 #define STGM_READWRITE 0x00000002
84 #define STGM_SHARE_DENY_NONE 0x00000040
85 #define STGM_SHARE_DENY_READ 0x00000030
86 #define STGM_SHARE_DENY_WRITE 0x00000020
87 #define STGM_SHARE_EXCLUSIVE 0x00000010
88 #define STGM_PRIORITY 0x00040000
89 #define STGM_DELETEONRELEASE 0x04000000
90 #define STGM_CREATE 0x00001000
91 #define STGM_CONVERT 0x00020000
92 #define STGM_FAILIFTHERE 0x00000000
93 #define STGM_NOSCRATCH 0x00100000
94 #define STGM_NOSNAPSHOT 0x00200000
97 /*****************************************************************************
103 ULARGE_INTEGER cbSize
;
108 DWORD grfLocksSupported
;
115 /*****************************************************************************
116 * IEnumSTATSTG interface
118 /* FIXME: not implemented */
121 /*****************************************************************************
122 * IFillLockBytes interface
124 /* FIXME: not implemented */
127 /*****************************************************************************
128 * ILayoutStorage interface
130 /* FIXME: not implemented */
133 /*****************************************************************************
134 * ILockBytes interface
136 /* FIXME: not implemented */
139 /*****************************************************************************
142 #define ICOM_INTERFACE IPersist
143 ICOM_BEGIN(IPersist
,IUnknown
)
144 ICOM_CMETHOD1(HRESULT
,GetClassID
, CLSID
*,pClassID
);
146 #undef ICOM_INTERFACE
148 #if !defined(__cplusplus) || defined(CINTERFACE)
149 /*** IUnknown methods ***/
150 #define IPersist_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
151 #define IPersist_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
152 #define IPersist_Release(p) ICOM_ICALL (IUnknown,Release,p)
153 /*** IPersist methods ***/
154 #define IPersist_GetClassID(p,a) ICOM_CALL1(GetClassID,p,a)
158 /*****************************************************************************
159 * IPersistFile interface
161 #define ICOM_INTERFACE IPersistFile
162 ICOM_BEGIN(IPersistFile
,IPersist
)
163 ICOM_CMETHOD (HRESULT
,IsDirty
);
164 ICOM_METHOD2 (HRESULT
,Load
, LPCOLESTR32
,pszFileName
, DWORD
,dwMode
);
165 ICOM_METHOD2 (HRESULT
,Save
, LPCOLESTR32
,pszFileName
, BOOL32
,fRemember
);
166 ICOM_METHOD1 (HRESULT
,SaveCompleted
, LPCOLESTR32
,pszFileName
);
167 ICOM_CMETHOD1(HRESULT
,GetCurFile
, LPOLESTR32
*,ppszFileName
);
168 ICOM_END(IPersistFile
)
169 #undef ICOM_INTERFACE
171 #if !defined(__cplusplus) || defined(CINTERFACE)
172 /*** IUnknown methods ***/
173 #define IPersistFile_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
174 #define IPersistFile_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
175 #define IPersistFile_Release(p) ICOM_ICALL (IUnknown,Release,p)
176 /*** IPersist methods ***/
177 #define IPersistFile_GetClassID(p,a) ICOM_ICALL1(IPersist,GetClassID,p,a)
178 /*** IPersistFile methods ***/
179 #define IPersistFile_IsDirty(p) ICOM_CALL(IsDirty,p)
180 #define IPersistFile_Load(p,a,b) ICOM_CALL(Load,p,a,b)
181 #define IPersistFile_Save(p,a,b) ICOM_CALL(Save,p,a,b)
182 #define IPersistFile_SaveCompleted(p,a) ICOM_CALL(SaveCompleted,p,a)
183 #define IPersistFile_GetCurFile(p,a) ICOM_CALL(GetCurFile,p,a)
187 /*****************************************************************************
188 * IPersistStorage interface
190 /* FIXME: not implemented */
193 /*****************************************************************************
194 * IPersistStream interface
196 /* FIXME: not implemented */
199 /*****************************************************************************
200 * IProgressNotify interface
202 /* FIXME: not implemented */
205 /*****************************************************************************
206 * IRootStorage interface
208 /* FIXME: not implemented */
211 /*****************************************************************************
212 * ISequentialStream interface
214 #define ICOM_INTERFACE ISequentialStream
215 ICOM_BEGIN(ISequentialStream
,IUnknown
)
216 ICOM_METHOD3(HRESULT
,Read
, void*,pv
, ULONG
,cb
, ULONG
*,pcbRead
);
217 ICOM_METHOD3(HRESULT
,Write
, const void*,pv
, ULONG
,cb
, ULONG
*,pcbWritten
);
218 ICOM_END(ISequentialStream
)
219 #undef ICOM_INTERFACE
221 #if !defined(__cplusplus) || defined(CINTERFACE)
222 /*** IUnknown methods ***/
223 #define ISequentialStream_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
224 #define ISequentialStream_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
225 #define ISequentialStream_Release(p) ICOM_ICALL (IUnknown,Release,p)
226 /*** ISequentialStream methods ***/
227 #define ISequentialStream_Read(p,a,b,c) ICOM_CALL3(Read,p,a,b,c)
228 #define ISequentialStream_Write(p,a,b,c) ICOM_CALL3(Write,p,a,b,c)
232 /*****************************************************************************
235 #define ICOM_INTERFACE IStorage16
236 ICOM_BEGIN(IStorage16
,IUnknown
)
237 ICOM_METHOD5(HRESULT
,CreateStream
, LPCOLESTR16
,pwcsName
, DWORD
,grfMode
, DWORD
,reserved1
, DWORD
,reserved2
, IStream16
**,ppstm
)
238 ICOM_METHOD5(HRESULT
,OpenStream
, LPCOLESTR16
,pwcsName
, void*,reserved1
, DWORD
,grfMode
, DWORD
,reserved2
, IStream16
**,ppstm
)
239 ICOM_METHOD5(HRESULT
,CreateStorage
, LPCOLESTR16
,pwcsName
, DWORD
,grfMode
, DWORD
,dwStgFmt
, DWORD
,reserved2
, IStorage16
**,ppstg
)
240 ICOM_METHOD6(HRESULT
,OpenStorage
, LPCOLESTR16
,pwcsName
, IStorage16
*,pstgPriority
, DWORD
,grfMode
, SNB16
,snb16Exclude
, DWORD
,reserved
, IStorage16
**,ppstg
)
241 ICOM_METHOD4(HRESULT
,CopyTo
, DWORD
,ciidExclude
, const IID
*,rgiidExclude
, SNB16
,snb16Exclude
, IStorage16
*,pstgDest
)
242 ICOM_METHOD4(HRESULT
,MoveElementTo
, LPCOLESTR16
,pwcsName
, IStorage16
*,pstgDest
, LPCOLESTR16
,pwcsNewName
, DWORD
,grfFlags
)
243 ICOM_METHOD1(HRESULT
,Commit
, DWORD
,grfCommitFlags
)
244 ICOM_METHOD (HRESULT
,Revert
)
245 ICOM_METHOD4(HRESULT
,EnumElements
, DWORD
,reserved1
, void*,reserved2
, DWORD
,reserved3
, IEnumSTATSTG
**,ppenum
)
246 ICOM_METHOD1(HRESULT
,DestroyElement
, LPCOLESTR16
,pwcsName
)
247 ICOM_METHOD2(HRESULT
,RenameElement
, LPCOLESTR16
,pwcsOldName
, LPCOLESTR16
,pwcsNewName
)
248 ICOM_METHOD4(HRESULT
,SetElementTimes
,LPCOLESTR16
,pwcsName
, const FILETIME
*,pctime
, const FILETIME
*,patime
, const FILETIME
*,pmtime
)
249 ICOM_METHOD1(HRESULT
,SetClass
, REFCLSID
,clsid
)
250 ICOM_METHOD2(HRESULT
,SetStateBits
, DWORD
,grfStateBits
, DWORD
,grfMask
)
251 ICOM_METHOD2(HRESULT
,Stat
, STATSTG
*,pstatstg
, DWORD
,grfStatFlag
)
253 #undef ICOM_INTERFACE
255 #if !defined(__cplusplus) || defined(CINTERFACE)
256 /*** IUnknown methods ***/
257 #define IStorage16_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
258 #define IStorage16_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
259 #define IStorage16_Release(p) ICOM_ICALL (IUnknown,Release,p)
260 /*** IStorage16 methods ***/
261 #define IStorage16_CreateStream(p,a,b,c,d,e) ICOM_CALL5(CreateStream,p,a,b,c,d,e)
262 #define IStorage16_OpenStream(p,a,b,c,d,e) ICOM_CALL5(OpenStream,p,a,b,c,d,e)
263 #define IStorage16_CreateStorage(p,a,b,c,d,e) ICOM_CALL5(CreateStorage,p,a,b,c,d,e)
264 #define IStorage16_OpenStorage(p,a,b,c,d,e,f) ICOM_CALL6(OpenStorage,p,a,b,c,d,e,f)
265 #define IStorage16_CopyTo(p,a,b,c,d) ICOM_CALL4(CopyTo,p,a,b,c,d)
266 #define IStorage16_MoveElementTo(p,a,b,c,d) ICOM_CALL4(MoveElementTo,p,a,b,c,d)
267 #define IStorage16_Commit(p,a) ICOM_CALL1(Commit,p,a)
268 #define IStorage16_Revert(p) ICOM_CALL (Revert,p)
269 #define IStorage16_EnumElements(p,a,b,c,d) ICOM_CALL4(EnumElements,p,a,b,c,d)
270 #define IStorage16_DestroyElement(p,a) ICOM_CALL1(DestroyElement,p,a)
271 #define IStorage16_RenameElement(p,a,b) ICOM_CALL2(RenameElement,p,a,b)
272 #define IStorage16_SetElementTimes(p,a,b,c,d) ICOM_CALL4(SetElementTimes,p,a,b,c,d)
273 #define IStorage16_SetClass(p,a) ICOM_CALL1(SetClass,p,a)
274 #define IStorage16_SetStateBits(p,a,b) ICOM_CALL2(SetStateBits,p,a,b)
275 #define IStorage16_Stat(p,a,b) ICOM_CALL2(Stat,p,a,b)
279 #define ICOM_INTERFACE IStorage32
280 ICOM_BEGIN(IStorage32
,IUnknown
)
281 ICOM_METHOD5(HRESULT
,CreateStream
, LPCOLESTR32
,pwcsName
, DWORD
,grfMode
, DWORD
,reserved1
, DWORD
,reserved2
, IStream32
**,ppstm
);
282 ICOM_METHOD5(HRESULT
,OpenStream
, LPCOLESTR32
,pwcsName
, void*,reserved1
, DWORD
,grfMode
, DWORD
,reserved2
, IStream32
**,ppstm
);
283 ICOM_METHOD5(HRESULT
,CreateStorage
, LPCOLESTR32
,pwcsName
, DWORD
,grfMode
, DWORD
,dwStgFmt
, DWORD
,reserved2
, IStorage32
**,ppstg
);
284 ICOM_METHOD6(HRESULT
,OpenStorage
, LPCOLESTR32
,pwcsName
, IStorage32
*,pstgPriority
, DWORD
,grfMode
, SNB32
,snb16Exclude
, DWORD
,reserved
, IStorage32
**,ppstg
);
285 ICOM_METHOD4(HRESULT
,CopyTo
, DWORD
,ciidExclude
, const IID
*,rgiidExclude
, SNB32
,snb16Exclude
, IStorage32
*,pstgDest
);
286 ICOM_METHOD4(HRESULT
,MoveElementTo
, LPCOLESTR32
,pwcsName
, IStorage32
*,pstgDest
, LPCOLESTR32
,pwcsNewName
, DWORD
,grfFlags
);
287 ICOM_METHOD1(HRESULT
,Commit
, DWORD
,grfCommitFlags
);
288 ICOM_METHOD (HRESULT
,Revert
);
289 ICOM_METHOD4(HRESULT
,EnumElements
, DWORD
,reserved1
, void*,reserved2
, DWORD
,reserved3
, IEnumSTATSTG
**,ppenum
);
290 ICOM_METHOD1(HRESULT
,DestroyElement
, LPCOLESTR32
,pwcsName
);
291 ICOM_METHOD2(HRESULT
,RenameElement
, LPCOLESTR32
,pwcsOldName
, LPCOLESTR32
,pwcsNewName
);
292 ICOM_METHOD4(HRESULT
,SetElementTimes
,LPCOLESTR32
,pwcsName
, const FILETIME
*,pctime
, const FILETIME
*,patime
, const FILETIME
*,pmtime
);
293 ICOM_METHOD1(HRESULT
,SetClass
, REFCLSID
,clsid
);
294 ICOM_METHOD2(HRESULT
,SetStateBits
, DWORD
,grfStateBits
, DWORD
,grfMask
);
295 ICOM_METHOD2(HRESULT
,Stat
, STATSTG
*,pstatstg
, DWORD
,grfStatFlag
);
297 #undef ICOM_INTERFACE
299 #if !defined(__cplusplus) || defined(CINTERFACE)
300 /*** IUnknown methods ***/
301 #define IStorage32_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
302 #define IStorage32_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
303 #define IStorage32_Release(p) ICOM_ICALL (IUnknown,Release,p)
304 /*** IStorage32 methods ***/
305 #define IStorage32_CreateStream(p,a,b,c,d,e) ICOM_CALL5(CreateStream,p,a,b,c,d,e)
306 #define IStorage32_OpenStream(p,a,b,c,d,e) ICOM_CALL5(OpenStream,p,a,b,c,d,e)
307 #define IStorage32_CreateStorage(p,a,b,c,d,e) ICOM_CALL5(CreateStorage,p,a,b,c,d,e)
308 #define IStorage32_OpenStorage(p,a,b,c,d,e,f) ICOM_CALL6(OpenStorage,p,a,b,c,d,e,f)
309 #define IStorage32_CopyTo(p,a,b,c,d) ICOM_CALL4(CopyTo,p,a,b,c,d)
310 #define IStorage32_MoveElementTo(p,a,b,c,d) ICOM_CALL4(MoveElementTo,p,a,b,c,d)
311 #define IStorage32_Commit(p,a) ICOM_CALL1(Commit,p,a)
312 #define IStorage32_Revert(p) ICOM_CALL (Revert,p)
313 #define IStorage32_EnumElements(p,a,b,c,d) ICOM_CALL4(EnumElements,p,a,b,c,d)
314 #define IStorage32_DestroyElement(p,a) ICOM_CALL1(DestroyElement,p,a)
315 #define IStorage32_RenameElement(p,a,b) ICOM_CALL2(RenameElement,p,a,b)
316 #define IStorage32_SetElementTimes(p,a,b,c,d) ICOM_CALL4(SetElementTimes,p,a,b,c,d)
317 #define IStorage32_SetClass(p,a) ICOM_CALL1(SetClass,p,a)
318 #define IStorage32_SetStateBits(p,a,b) ICOM_CALL2(SetStateBits,p,a,b)
319 #define IStorage32_Stat(p,a,b) ICOM_CALL2(Stat,p,a,b)
322 /* Duplicated for WINELIB */
323 /*** IUnknown methods ***/
324 #define IStorage_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
325 #define IStorage_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
326 #define IStorage_Release(p) ICOM_ICALL (IUnknown,Release,p)
327 /*** IStorage methods ***/
328 #define IStorage_CreateStream(p,a,b,c,d,e) ICOM_CALL5(CreateStream,p,a,b,c,d,e)
329 #define IStorage_OpenStream(p,a,b,c,d,e) ICOM_CALL5(OpenStream,p,a,b,c,d,e)
330 #define IStorage_CreateStorage(p,a,b,c,d,e) ICOM_CALL5(CreateStorage,p,a,b,c,d,e)
331 #define IStorage_OpenStorage(p,a,b,c,d,e,f) ICOM_CALL6(OpenStorage,p,a,b,c,d,e,f)
332 #define IStorage_CopyTo(p,a,b,c,d) ICOM_CALL4(CopyTo,p,a,b,c,d)
333 #define IStorage_MoveElementTo(p,a,b,c,d) ICOM_CALL4(MoveElementTo,p,a,b,c,d)
334 #define IStorage_Commit(p,a) ICOM_CALL1(Commit,p,a)
335 #define IStorage_Revert(p) ICOM_CALL (Revert,p)
336 #define IStorage_EnumElements(p,a,b,c,d) ICOM_CALL4(EnumElements,p,a,b,c,d)
337 #define IStorage_DestroyElement(p,a) ICOM_CALL1(DestroyElement,p,a)
338 #define IStorage_RenameElement(p,a,b) ICOM_CALL2(RenameElement,p,a,b)
339 #define IStorage_SetElementTimes(p,a,b,c,d) ICOM_CALL4(SetElementTimes,p,a,b,c,d)
340 #define IStorage_SetClass(p,a) ICOM_CALL1(SetClass,p,a)
341 #define IStorage_SetStateBits(p,a,b) ICOM_CALL2(SetStateBits,p,a,b)
342 #define IStorage_Stat(p,a,b) ICOM_CALL2(Stat,p,a,b)
347 /*****************************************************************************
350 #define ICOM_INTERFACE IStream16
351 ICOM_BEGIN(IStream16
,ISequentialStream
)
352 ICOM_METHOD3(HRESULT
,Seek
, LARGE_INTEGER
,dlibMove
, DWORD
,dwOrigin
, ULARGE_INTEGER
*,plibNewPosition
);
353 ICOM_METHOD1(HRESULT
,SetSize
, ULARGE_INTEGER
,libNewSize
);
354 ICOM_METHOD4(HRESULT
,CopyTo
, IStream16
*,pstm
, ULARGE_INTEGER
,cb
, ULARGE_INTEGER
*,pcbRead
, ULARGE_INTEGER
*,pcbWritten
);
355 ICOM_METHOD1(HRESULT
,Commit
, DWORD
,grfCommitFlags
);
356 ICOM_METHOD (HRESULT
,Revert
);
357 ICOM_METHOD3(HRESULT
,LockRegion
, ULARGE_INTEGER
,libOffset
, ULARGE_INTEGER
,cb
, DWORD
,dwLockType
);
358 ICOM_METHOD3(HRESULT
,UnlockRegion
,ULARGE_INTEGER
,libOffset
, ULARGE_INTEGER
,cb
, DWORD
,dwLockType
);
359 ICOM_METHOD2(HRESULT
,Stat
, STATSTG
*,pstatstg
, DWORD
,grfStatFlag
);
360 ICOM_METHOD1(HRESULT
,Clone
, IStream16
**,ppstm
);
362 #undef ICOM_INTERFACE
364 #if !defined(__cplusplus) || defined(CINTERFACE)
365 /*** IUnknown methods ***/
366 #define IStream16_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
367 #define IStream16_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
368 #define IStream16_Release(p) ICOM_ICALL (IUnknown,Release,p)
369 /*** ISequentialStream methods ***/
370 #define IStream16_Read(p,a,b,c) ICOM_ICALL3(ISequentialStream,Read,p,a,b,c)
371 #define IStream16_Write(p,a,b,c) ICOM_ICALL3(ISequentialStream,Write,p,a,b,c)
372 /*** IStream16 methods ***/
373 #define IStream16_Seek(p) ICOM_CALL3(Seek,p)
374 #define IStream16_SetSize(p,a,b) ICOM_CALL1(SetSize,p,a,b)
375 #define IStream16_CopyTo(pa,b,c,d) ICOM_CALL4(CopyTo,pa,b,c,d)
376 #define IStream16_Commit(p,a) ICOM_CALL1(Commit,p,a)
377 #define IStream16_Revert(p) ICOM_CALL (Revert,p)
378 #define IStream16_LockRegion(pa,b,c) ICOM_CALL3(LockRegion,pa,b,c)
379 #define IStream16_UnlockRegion(p,a,b,c) ICOM_CALL3(UnlockRegion,p,a,b,c)
380 #define IStream16_Stat(p,a,b) ICOM_CALL2(Stat,p,a,b)
381 #define IStream16_Clone(p,a) ICOM_CALL1(Clone,p,a)
385 #define ICOM_INTERFACE IStream32
386 ICOM_BEGIN(IStream32
,ISequentialStream
)
387 ICOM_METHOD3(HRESULT
,Seek
, LARGE_INTEGER
,dlibMove
, DWORD
,dwOrigin
, ULARGE_INTEGER
*,plibNewPosition
);
388 ICOM_METHOD1(HRESULT
,SetSize
, ULARGE_INTEGER
,libNewSize
);
389 ICOM_METHOD4(HRESULT
,CopyTo
, IStream32
*,pstm
, ULARGE_INTEGER
,cb
, ULARGE_INTEGER
*,pcbRead
, ULARGE_INTEGER
*,pcbWritten
);
390 ICOM_METHOD1(HRESULT
,Commit
, DWORD
,grfCommitFlags
);
391 ICOM_METHOD (HRESULT
,Revert
);
392 ICOM_METHOD3(HRESULT
,LockRegion
, ULARGE_INTEGER
,libOffset
, ULARGE_INTEGER
,cb
, DWORD
,dwLockType
);
393 ICOM_METHOD3(HRESULT
,UnlockRegion
,ULARGE_INTEGER
,libOffset
, ULARGE_INTEGER
,cb
, DWORD
,dwLockType
);
394 ICOM_METHOD2(HRESULT
,Stat
, STATSTG
*,pstatstg
, DWORD
,grfStatFlag
);
395 ICOM_METHOD1(HRESULT
,Clone
, IStream32
**,ppstm
);
397 #undef ICOM_INTERFACE
399 #if !defined(__cplusplus) || defined(CINTERFACE)
400 /*** IUnknown methods ***/
401 #define IStream32_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
402 #define IStream32_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
403 #define IStream32_Release(p) ICOM_ICALL (IUnknown,Release,p)
404 /*** ISequentialStream methods ***/
405 #define IStream32_Read(p,a,b,c) ICOM_ICALL3(ISequentialStream,Read,p,a,b,c)
406 #define IStream32_Write(p,a,b,c) ICOM_ICALL3(ISequentialStream,Write,p,a,b,c)
407 /*** IStream32 methods ***/
408 #define IStream32_Seek(p) ICOM_CALL3(Seek,p)
409 #define IStream32_SetSize(p,a,b) ICOM_CALL1(SetSize,p,a,b)
410 #define IStream32_CopyTo(pa,b,c,d) ICOM_CALL4(CopyTo,pa,b,c,d)
411 #define IStream32_Commit(p,a) ICOM_CALL1(Commit,p,a)
412 #define IStream32_Revert(p) ICOM_CALL (Revert,p)
413 #define IStream32_LockRegion(pa,b,c) ICOM_CALL3(LockRegion,pa,b,c)
414 #define IStream32_UnlockRegion(p,a,b,c) ICOM_CALL3(UnlockRegion,p,a,b,c)
415 #define IStream32_Stat(p,a,b) ICOM_CALL2(Stat,p,a,b)
416 #define IStream32_Clone(p,a) ICOM_CALL1(Clone,p,a)
419 /* Duplicated for WINELIB */
420 /*** IUnknown methods ***/
421 #define IStream_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
422 #define IStream_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
423 #define IStream_Release(p) ICOM_ICALL (IUnknown,Release,p)
424 /*** ISequentialStream methods ***/
425 #define IStream_Read(p,a,b,c) ICOM_ICALL3(ISequentialStream,Read,p,a,b,c)
426 #define IStream_Write(p,a,b,c) ICOM_ICALL3(ISequentialStream,Write,p,a,b,c)
427 /*** IStream methods ***/
428 #define IStream_Seek(p) ICOM_CALL3(Seek,p)
429 #define IStream_SetSize(p,a,b) ICOM_CALL1(SetSize,p,a,b)
430 #define IStream_CopyTo(pa,b,c,d) ICOM_CALL4(CopyTo,pa,b,c,d)
431 #define IStream_Commit(p,a) ICOM_CALL1(Commit,p,a)
432 #define IStream_Revert(p) ICOM_CALL (Revert,p)
433 #define IStream_LockRegion(pa,b,c) ICOM_CALL3(LockRegion,pa,b,c)
434 #define IStream_UnlockRegion(p,a,b,c) ICOM_CALL3(UnlockRegion,p,a,b,c)
435 #define IStream_Stat(p,a,b) ICOM_CALL2(Stat,p,a,b)
436 #define IStream_Clone(p,a) ICOM_CALL1(Clone,p,a)
441 /*****************************************************************************
444 /* FIXME: many functions are missing */
445 HRESULT WINAPI
StgCreateDocFile16(LPCOLESTR16 pwcsName
,DWORD grfMode
,DWORD reserved
,IStorage16
**ppstgOpen
);
446 HRESULT WINAPI
StgCreateDocfile32(LPCOLESTR32 pwcsName
,DWORD grfMode
,DWORD reserved
,IStorage32
**ppstgOpen
);
447 #define StgCreateDocfile WINELIB_NAME(StgCreateDocfile)
449 HRESULT WINAPI
StgIsStorageFile16(LPCOLESTR16 fn
);
450 HRESULT WINAPI
StgIsStorageFile32(LPCOLESTR32 fn
);
451 #define StgIsStorageFile WINELIB_NAME(StgIsStorageFile)
453 HRESULT WINAPI
StgOpenStorage16(const OLECHAR16
* pwcsName
,IStorage16
* pstgPriority
,DWORD grfMode
,SNB16 snbExclude
,DWORD reserved
,IStorage16
**ppstgOpen
);
454 HRESULT WINAPI
StgOpenStorage32(const OLECHAR32
* pwcsName
,IStorage32
* pstgPriority
,DWORD grfMode
,SNB32 snbExclude
,DWORD reserved
,IStorage32
**ppstgOpen
);
455 #define StgOpenStorage WINELIB_NAME(StgOpenStorage)
459 #endif /* __WINE_WINE_OBJ_STORAGE_H */