blob: 49a8a31f5ef1c42d8bacd35478a470f320d89930 [file] [log] [blame]
Alexandre Julliardbd34d4f1995-06-20 19:08:12 +00001/*
2 * ole2.h - Declarations for OLE2
3 */
4
Alexandre Julliardc6c09441997-01-12 18:32:19 +00005#ifndef __WINE_OLE2_H
6#define __WINE_OLE2_H
7
Jim Aston2e1cafa1999-03-14 16:35:05 +00008#include "windef.h"
Paul Quinn40d9d3d1999-02-25 17:10:15 +00009#include "winerror.h"
Michael Veksler4405f3c1999-08-18 18:35:57 +000010#include "wine/obj_storage.h"
11#include "wine/obj_moniker.h"
12#include "wine/obj_base.h"
13#include "wine/obj_dragdrop.h"
14#include "wine/obj_inplace.h"
15#include "wine/obj_oleobj.h"
Abey George21dbb6c2000-03-08 18:49:36 +000016#include "wine/obj_oleview.h"
Michael Veksler4405f3c1999-08-18 18:35:57 +000017#ifndef __WINE__
Marcus Meissner317af321999-02-17 13:51:06 +000018#include "oleidl.h"
Francois Gougetfcfce841999-03-13 18:14:13 +000019#include "oleauto.h"
Michael Veksler4405f3c1999-08-18 18:35:57 +000020#endif
21struct tagMSG;
Michael Veksler17822f41999-02-09 15:46:25 +000022
Patrik Stridvall14da7b11999-06-12 10:53:06 +000023#ifdef __cplusplus
24extern "C" {
25#endif /* defined(__cplusplus) */
26
Paul Quinn89b21b41999-03-14 13:47:00 +000027#define OLEIVERB_PRIMARY (0L)
28#define OLEIVERB_SHOW (-1L)
29#define OLEIVERB_OPEN (-2L)
30#define OLEIVERB_HIDE (-3L)
31#define OLEIVERB_UIACTIVATE (-4L)
32#define OLEIVERB_INPLACEACTIVATE (-5L)
33#define OLEIVERB_DISCARDUNDOSTATE (-6L)
34#define OLEIVERB_PROPERTIES (-7L)
Alexandre Julliardc6c09441997-01-12 18:32:19 +000035
Francis Beaudet3f7ad7a1999-02-13 09:13:49 +000036/*
37 * API declarations
38 */
39HRESULT WINAPI RegisterDragDrop16(HWND16,LPDROPTARGET);
Alexandre Julliarda3960291999-02-26 11:11:13 +000040HRESULT WINAPI RegisterDragDrop(HWND,LPDROPTARGET);
Michael Veksler17822f41999-02-09 15:46:25 +000041HRESULT WINAPI RevokeDragDrop16(HWND16);
Alexandre Julliarda3960291999-02-26 11:11:13 +000042HRESULT WINAPI RevokeDragDrop(HWND);
Paul Quinn40d9d3d1999-02-25 17:10:15 +000043HRESULT WINAPI DoDragDrop16(LPDATAOBJECT,LPDROPSOURCE,DWORD,DWORD*);
Alexandre Julliarda3960291999-02-26 11:11:13 +000044HRESULT WINAPI DoDragDrop(LPDATAOBJECT,LPDROPSOURCE,DWORD,DWORD*);
Noomen Hamzaed494ec1999-03-23 13:48:56 +000045HRESULT WINAPI OleLoadFromStream(IStream *pStm,REFIID iidInterface,void** ppvObj);
46HRESULT WINAPI OleSaveToStream(IPersistStream *pPStm,IStream *pStm);
47HOLEMENU WINAPI OleCreateMenuDescriptor(HMENU hmenuCombined,LPOLEMENUGROUPWIDTHS lpMenuWidths);
Paul Quinn89b21b41999-03-14 13:47:00 +000048HRESULT WINAPI OleDestroyMenuDescriptor(HOLEMENU hmenuDescriptor);
Noomen Hamzaed494ec1999-03-23 13:48:56 +000049HRESULT WINAPI OleSetMenuDescriptor(HOLEMENU hmenuDescriptor,HWND hwndFrame,HWND hwndActiveObject,LPOLEINPLACEFRAME lpFrame,LPOLEINPLACEACTIVEOBJECT lpActiveObject);
50
51HRESULT WINAPI ReadClassStg(IStorage *pstg,CLSID *pclsid);
52HRESULT WINAPI WriteClassStm(IStream *pStm,REFCLSID rclsid);
Paul Quinnaaa83061999-06-05 15:23:20 +000053HRESULT WINAPI ReadClassStm(IStream *pStm,CLSID *pclsid);
Francis Beaudet1921ef21999-02-20 16:05:50 +000054
Alexandre Julliardf80b2ab1999-03-28 13:15:40 +000055
56HRESULT WINAPI OleSave(LPPERSISTSTORAGE pPS, LPSTORAGE pStg, BOOL fSameAsLoad);
Francis Beaudetebdea251999-05-02 09:27:08 +000057HRESULT WINAPI OleRegGetUserType(REFCLSID clsid,
58 DWORD dwFormOfType,
59 LPOLESTR* pszUserType);
Alexandre Julliardf80b2ab1999-03-28 13:15:40 +000060HRESULT WINAPI OleRegGetMiscStatus (REFCLSID clsid, DWORD dwAspect, DWORD* pdwStatus);
Francis Beaudetebdea251999-05-02 09:27:08 +000061HRESULT WINAPI OleRegEnumFormatEtc (REFCLSID clsid,
62 DWORD dwDirection,
63 LPENUMFORMATETC* ppenumFormatetc);
Alexandre Julliardf80b2ab1999-03-28 13:15:40 +000064HRESULT WINAPI CreateStreamOnHGlobal (HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM* ppstm);
65HRESULT WINAPI OleRegEnumVerbs (REFCLSID clsid, LPENUMOLEVERB* ppenum);
66BOOL WINAPI OleIsRunning(LPOLEOBJECT pObject);
67HRESULT WINAPI OleCreateLinkFromData(LPDATAOBJECT pSrcDataObj, REFIID riid,
68 DWORD renderopt, LPFORMATETC pFormatEtc,
69 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
70 LPVOID* ppvObj);
71HRESULT WINAPI OleSetContainedObject(LPUNKNOWN pUnknown, BOOL fContained);
72HRESULT WINAPI OleQueryLinkFromData(IDataObject* pSrcDataObject);
73HRESULT WINAPI OleQueryCreateFromData(LPDATAOBJECT pSrcDataObject);
74HRESULT WINAPI OleRun(LPUNKNOWN pUnknown);
Noel Borthwick557ff411999-07-18 15:43:45 +000075VOID WINAPI ReleaseStgMedium(LPSTGMEDIUM);
Alexandre Julliardf80b2ab1999-03-28 13:15:40 +000076HRESULT WINAPI OleGetClipboard(IDataObject** ppDataObj);
77HRESULT WINAPI OleCreateStaticFromData(LPDATAOBJECT pSrcDataObj, REFIID iid,
78 DWORD renderopt, LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite,
79 LPSTORAGE pStg, LPVOID* ppvObj);
80HRESULT WINAPI ReadFmtUserTypeStg(LPSTORAGE pstg, CLIPFORMAT* pcf, LPOLESTR* lplpszUserType);
81HRESULT WINAPI OleLoad(LPSTORAGE pStg, REFIID riid, LPOLECLIENTSITE pClientSite, LPVOID* ppvObj);
82HRESULT WINAPI GetHGlobalFromILockBytes(LPLOCKBYTES plkbyt, HGLOBAL* phglobal);
83HRESULT WINAPI CreateILockBytesOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPLOCKBYTES* pplkbyt);
84HRESULT WINAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER* ppDAHolder);
85HGLOBAL WINAPI OleGetIconOfClass(REFCLSID rclsid, LPOLESTR lpszLabel, BOOL fUseTypeAsLabel);
86HRESULT WINAPI OleLockRunning(LPUNKNOWN pUnknown, BOOL fLock, BOOL fLastUnlockCloses);
87HRESULT WINAPI OleCreateFromFile(REFCLSID rclsid, LPCOLESTR lpszFileName, REFIID riid,
88 DWORD renderopt, LPFORMATETC lpFormatEtc, LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj);
89HRESULT WINAPI OleCreateLink(LPMONIKER pmkLinkSrc, REFIID riid, DWORD renderopt, LPFORMATETC lpFormatEtc,
90 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj);
91HRESULT WINAPI OleCreate(REFCLSID rclsid, REFIID riid, DWORD renderopt, LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite,
92 LPSTORAGE pStg, LPVOID* ppvObj);
Juergen Schmied235776b1999-07-25 11:17:37 +000093HRESULT WINAPI OleFlushClipboard(void);
Alexandre Julliardf80b2ab1999-03-28 13:15:40 +000094HRESULT WINAPI SetConvertStg(LPSTORAGE pStg, BOOL fConvert);
Michael Veksler4405f3c1999-08-18 18:35:57 +000095BOOL WINAPI IsAccelerator(HACCEL hAccel, int cAccelEntries, struct tagMSG* lpMsg, WORD* lpwCmd);
Alexandre Julliardf80b2ab1999-03-28 13:15:40 +000096HRESULT WINAPI OleCreateLinkToFile(LPCOLESTR lpszFileName, REFIID riid, DWORD renderopt, LPFORMATETC lpFormatEtc,
97 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj);
98HRESULT WINAPI OleDuplicateData(HANDLE hSrc, CLIPFORMAT cfFormat, UINT uiFlags);
99HRESULT WINAPI WriteFmtUserTypeStg(LPSTORAGE pstg, CLIPFORMAT cf, LPOLESTR lpszUserType);
Michael Veksler4405f3c1999-08-18 18:35:57 +0000100HRESULT WINAPI OleTranslateAccelerator (LPOLEINPLACEFRAME lpFrame, LPOLEINPLACEFRAMEINFO lpFrameInfo, struct tagMSG* lpmsg);
Alexandre Julliardf80b2ab1999-03-28 13:15:40 +0000101HRESULT WINAPI OleCreateFromData(LPDATAOBJECT pSrcDataObj, REFIID riid, DWORD renderopt, LPFORMATETC pFormatEtc,
102 LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj);
Francis Beaudetebdea251999-05-02 09:27:08 +0000103HRESULT WINAPI OleCreateDefaultHandler(REFCLSID clsid,
104 LPUNKNOWN pUnkOuter,
105 REFIID riid,
106 LPVOID* ppvObj);
107HRESULT WINAPI CreateOleAdviseHolder (LPOLEADVISEHOLDER *ppOAHolder);
Juergen Schmied61ef5112000-02-26 19:33:11 +0000108HRESULT WINAPI OleInitialize(LPVOID pvReserved);
109void WINAPI OleUninitialize(void);
Patrik Stridvall7e9913f2000-03-08 18:25:22 +0000110BOOL WINAPI IsValidInterface(LPUNKNOWN punk);
Alexandre Julliardf80b2ab1999-03-28 13:15:40 +0000111
Pierre Mageau89aa8612000-02-25 20:58:25 +0000112/*
113 * OLE version conversion declarations
114 */
115
116
117typedef struct _OLESTREAM* LPOLESTREAM;
118typedef struct _OLESTREAMVTBL {
Francois Gougetae41e8c2000-06-11 20:07:58 +0000119 DWORD CALLBACK (*Get)(LPOLESTREAM,LPSTR,DWORD);
120 DWORD CALLBACK (*Put)(LPOLESTREAM,LPSTR,DWORD);
Pierre Mageau89aa8612000-02-25 20:58:25 +0000121} OLESTREAMVTBL;
122typedef OLESTREAMVTBL* LPOLESTREAMVTBL;
123typedef struct _OLESTREAM {
124 LPOLESTREAMVTBL lpstbl;
125} OLESTREAM;
126
127HRESULT WINAPI OleConvertOLESTREAMToIStorage( LPOLESTREAM lpolestream, LPSTORAGE pstg, const DVTARGETDEVICE* ptd);
128HRESULT WINAPI OleConvertIStorageToOLESTREAM( LPSTORAGE pstg, LPOLESTREAM lpolestream);
129
Patrik Stridvall14da7b11999-06-12 10:53:06 +0000130#ifdef __cplusplus
131} /* extern "C" */
132#endif /* defined(__cplusplus) */
133
Alexandre Julliardc6c09441997-01-12 18:32:19 +0000134#endif /* __WINE_OLE2_H */
Francis Beaudet1921ef21999-02-20 16:05:50 +0000135