1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _OLE2_H_
7#define _OLE2_H_
8
9#include <pshpack8.h>
10
11#ifndef WIN32
12#define WIN32 100
13#endif
14
15#include <winerror.h>
16#include <objbase.h>
17#include <oleauto.h>
18
19#define E_DRAW VIEW_E_DRAW
20
21#define DATA_E_FORMATETC DV_E_FORMATETC
22
23#define OLEIVERB_PRIMARY (__MSABI_LONG(0))
24#define OLEIVERB_SHOW (__MSABI_LONG(-1))
25#define OLEIVERB_OPEN (__MSABI_LONG(-2))
26#define OLEIVERB_HIDE (__MSABI_LONG(-3))
27#define OLEIVERB_UIACTIVATE (__MSABI_LONG(-4))
28#define OLEIVERB_INPLACEACTIVATE (__MSABI_LONG(-5))
29#define OLEIVERB_DISCARDUNDOSTATE (__MSABI_LONG(-6))
30
31#define EMBDHLP_INPROC_HANDLER __MSABI_LONG(0x0000)
32#define EMBDHLP_INPROC_SERVER __MSABI_LONG(0x0001)
33#define EMBDHLP_CREATENOW __MSABI_LONG(0x00000000)
34#define EMBDHLP_DELAYCREATE __MSABI_LONG(0x00010000)
35
36#define OLECREATE_LEAVERUNNING 0x00000001
37
38#include <oleidl.h>
39
40WINOLEAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER *ppDAHolder);
41WINOLEAPI_(DWORD) OleBuildVersion(VOID);
42WINOLEAPI ReadClassStg(LPSTORAGE pStg,CLSID *pclsid);
43WINOLEAPI WriteClassStg(LPSTORAGE pStg,REFCLSID rclsid);
44WINOLEAPI ReadClassStm(LPSTREAM pStm,CLSID *pclsid);
45WINOLEAPI WriteClassStm(LPSTREAM pStm,REFCLSID rclsid);
46WINOLEAPI WriteFmtUserTypeStg (LPSTORAGE pstg,CLIPFORMAT cf,LPOLESTR lpszUserType);
47WINOLEAPI ReadFmtUserTypeStg (LPSTORAGE pstg,CLIPFORMAT *pcf,LPOLESTR *lplpszUserType);
48WINOLEAPI OleInitialize(LPVOID pvReserved);
49WINOLEAPI_(void) OleUninitialize(void);
50WINOLEAPI OleQueryLinkFromData(LPDATAOBJECT pSrcDataObject);
51WINOLEAPI OleQueryCreateFromData(LPDATAOBJECT pSrcDataObject);
52WINOLEAPI OleCreate(REFCLSID rclsid,REFIID riid,DWORD renderopt,LPFORMATETC pFormatEtc,LPOLECLIENTSITE pClientSite,LPSTORAGE pStg,LPVOID *ppvObj);
53WINOLEAPI OleCreateEx(REFCLSID rclsid,REFIID riid,DWORD dwFlags,DWORD renderopt,ULONG cFormats,DWORD *rgAdvf,LPFORMATETC rgFormatEtc,IAdviseSink *lpAdviseSink,DWORD *rgdwConnection,LPOLECLIENTSITE pClientSite,LPSTORAGE pStg,LPVOID *ppvObj);
54WINOLEAPI OleCreateFromData(LPDATAOBJECT pSrcDataObj,REFIID riid,DWORD renderopt,LPFORMATETC pFormatEtc,LPOLECLIENTSITE pClientSite,LPSTORAGE pStg,LPVOID *ppvObj);
55WINOLEAPI OleCreateFromDataEx(LPDATAOBJECT pSrcDataObj,REFIID riid,DWORD dwFlags,DWORD renderopt,ULONG cFormats,DWORD *rgAdvf,LPFORMATETC rgFormatEtc,IAdviseSink *lpAdviseSink,DWORD *rgdwConnection,LPOLECLIENTSITE pClientSite,LPSTORAGE pStg,LPVOID *ppvObj);
56WINOLEAPI OleCreateLinkFromData(LPDATAOBJECT pSrcDataObj,REFIID riid,DWORD renderopt,LPFORMATETC pFormatEtc,LPOLECLIENTSITE pClientSite,LPSTORAGE pStg,LPVOID *ppvObj);
57WINOLEAPI OleCreateLinkFromDataEx(LPDATAOBJECT pSrcDataObj,REFIID riid,DWORD dwFlags,DWORD renderopt,ULONG cFormats,DWORD *rgAdvf,LPFORMATETC rgFormatEtc,IAdviseSink *lpAdviseSink,DWORD *rgdwConnection,LPOLECLIENTSITE pClientSite,LPSTORAGE pStg,LPVOID *ppvObj);
58WINOLEAPI OleCreateStaticFromData(LPDATAOBJECT pSrcDataObj,REFIID iid,DWORD renderopt,LPFORMATETC pFormatEtc,LPOLECLIENTSITE pClientSite,LPSTORAGE pStg,LPVOID *ppvObj);
59WINOLEAPI OleCreateLink(LPMONIKER pmkLinkSrc,REFIID riid,DWORD renderopt,LPFORMATETC lpFormatEtc,LPOLECLIENTSITE pClientSite,LPSTORAGE pStg,LPVOID *ppvObj);
60WINOLEAPI OleCreateLinkEx(LPMONIKER pmkLinkSrc,REFIID riid,DWORD dwFlags,DWORD renderopt,ULONG cFormats,DWORD *rgAdvf,LPFORMATETC rgFormatEtc,IAdviseSink *lpAdviseSink,DWORD *rgdwConnection,LPOLECLIENTSITE pClientSite,LPSTORAGE pStg,LPVOID *ppvObj);
61WINOLEAPI OleCreateLinkToFile(LPCOLESTR lpszFileName,REFIID riid,DWORD renderopt,LPFORMATETC lpFormatEtc,LPOLECLIENTSITE pClientSite,LPSTORAGE pStg,LPVOID *ppvObj);
62WINOLEAPI OleCreateLinkToFileEx(LPCOLESTR lpszFileName,REFIID riid,DWORD dwFlags,DWORD renderopt,ULONG cFormats,DWORD *rgAdvf,LPFORMATETC rgFormatEtc,IAdviseSink *lpAdviseSink,DWORD *rgdwConnection,LPOLECLIENTSITE pClientSite,LPSTORAGE pStg,LPVOID *ppvObj);
63WINOLEAPI OleCreateFromFile(REFCLSID rclsid,LPCOLESTR lpszFileName,REFIID riid,DWORD renderopt,LPFORMATETC lpFormatEtc,LPOLECLIENTSITE pClientSite,LPSTORAGE pStg,LPVOID *ppvObj);
64WINOLEAPI OleCreateFromFileEx(REFCLSID rclsid,LPCOLESTR lpszFileName,REFIID riid,DWORD dwFlags,DWORD renderopt,ULONG cFormats,DWORD *rgAdvf,LPFORMATETC rgFormatEtc,IAdviseSink *lpAdviseSink,DWORD *rgdwConnection,LPOLECLIENTSITE pClientSite,LPSTORAGE pStg,LPVOID *ppvObj);
65WINOLEAPI OleLoad(LPSTORAGE pStg,REFIID riid,LPOLECLIENTSITE pClientSite,LPVOID *ppvObj);
66WINOLEAPI OleSave(LPPERSISTSTORAGE pPS,LPSTORAGE pStg,WINBOOL fSameAsLoad);
67WINOLEAPI OleLoadFromStream(LPSTREAM pStm,REFIID iidInterface,LPVOID *ppvObj);
68WINOLEAPI OleSaveToStream(LPPERSISTSTREAM pPStm,LPSTREAM pStm);
69WINOLEAPI OleSetContainedObject(LPUNKNOWN pUnknown,WINBOOL fContained);
70WINOLEAPI OleNoteObjectVisible(LPUNKNOWN pUnknown,WINBOOL fVisible);
71WINOLEAPI RegisterDragDrop(HWND hwnd,LPDROPTARGET pDropTarget);
72WINOLEAPI RevokeDragDrop(HWND hwnd);
73WINOLEAPI DoDragDrop(LPDATAOBJECT pDataObj,LPDROPSOURCE pDropSource,DWORD dwOKEffects,LPDWORD pdwEffect);
74WINOLEAPI OleSetClipboard(LPDATAOBJECT pDataObj);
75WINOLEAPI OleGetClipboard(LPDATAOBJECT *ppDataObj);
76WINOLEAPI OleFlushClipboard(void);
77WINOLEAPI OleIsCurrentClipboard(LPDATAOBJECT pDataObj);
78WINOLEAPI_(HOLEMENU) OleCreateMenuDescriptor (HMENU hmenuCombined,LPOLEMENUGROUPWIDTHS lpMenuWidths);
79WINOLEAPI OleSetMenuDescriptor (HOLEMENU holemenu,HWND hwndFrame,HWND hwndActiveObject,LPOLEINPLACEFRAME lpFrame,LPOLEINPLACEACTIVEOBJECT lpActiveObj);
80WINOLEAPI OleDestroyMenuDescriptor (HOLEMENU holemenu);
81WINOLEAPI OleTranslateAccelerator (LPOLEINPLACEFRAME lpFrame,LPOLEINPLACEFRAMEINFO lpFrameInfo,LPMSG lpmsg);
82WINOLEAPI_(HANDLE) OleDuplicateData (HANDLE hSrc,CLIPFORMAT cfFormat,UINT uiFlags);
83WINOLEAPI OleDraw (LPUNKNOWN pUnknown,DWORD dwAspect,HDC hdcDraw,LPCRECT lprcBounds);
84WINOLEAPI OleRun(LPUNKNOWN pUnknown);
85WINOLEAPI_(WINBOOL) OleIsRunning(LPOLEOBJECT pObject);
86WINOLEAPI OleLockRunning(LPUNKNOWN pUnknown,WINBOOL fLock,WINBOOL fLastUnlockCloses);
87WINOLEAPI_(void) ReleaseStgMedium(LPSTGMEDIUM);
88WINOLEAPI CreateOleAdviseHolder(LPOLEADVISEHOLDER *ppOAHolder);
89WINOLEAPI OleCreateDefaultHandler(REFCLSID clsid,LPUNKNOWN pUnkOuter,REFIID riid,LPVOID *lplpObj);
90WINOLEAPI OleCreateEmbeddingHelper(REFCLSID clsid,LPUNKNOWN pUnkOuter,DWORD flags,LPCLASSFACTORY pCF,REFIID riid,LPVOID *lplpObj);
91WINOLEAPI_(WINBOOL) IsAccelerator(HACCEL hAccel,int cAccelEntries,LPMSG lpMsg,WORD *lpwCmd);
92WINOLEAPI_(HGLOBAL) OleGetIconOfFile(LPOLESTR lpszPath,WINBOOL fUseFileAsLabel);
93WINOLEAPI_(HGLOBAL) OleGetIconOfClass(REFCLSID rclsid,LPOLESTR lpszLabel,WINBOOL fUseTypeAsLabel);
94WINOLEAPI_(HGLOBAL) OleMetafilePictFromIconAndLabel(HICON hIcon,LPOLESTR lpszLabel,LPOLESTR lpszSourceFile,UINT iIconIndex);
95WINOLEAPI OleRegGetUserType (REFCLSID clsid,DWORD dwFormOfType,LPOLESTR *pszUserType);
96WINOLEAPI OleRegGetMiscStatus (REFCLSID clsid,DWORD dwAspect,DWORD *pdwStatus);
97WINOLEAPI OleRegEnumFormatEtc (REFCLSID clsid,DWORD dwDirection,LPENUMFORMATETC *ppenum);
98WINOLEAPI OleRegEnumVerbs (REFCLSID clsid,LPENUMOLEVERB *ppenum);
99
100typedef struct _OLESTREAM *LPOLESTREAM;
101
102#ifndef _DEFINED_OLESTREAMVRBL
103#define _DEFINED_OLESTREAMVRBL
104typedef struct _OLESTREAMVTBL {
105  DWORD (CALLBACK *Get)(LPOLESTREAM,void *,DWORD);
106  DWORD (CALLBACK *Put)(LPOLESTREAM,const void *,DWORD);
107} OLESTREAMVTBL;
108
109typedef OLESTREAMVTBL *LPOLESTREAMVTBL;
110#endif
111
112#ifndef _DEFINED_OLESTREAM
113#define _DEFINED_OLESTREAM
114typedef struct _OLESTREAM {
115  LPOLESTREAMVTBL lpstbl;
116} OLESTREAM;
117#endif
118
119WINOLEAPI OleConvertOLESTREAMToIStorage(LPOLESTREAM lpolestream,LPSTORAGE pstg,const DVTARGETDEVICE *ptd);
120WINOLEAPI OleConvertIStorageToOLESTREAM(LPSTORAGE pstg,LPOLESTREAM lpolestream);
121WINOLEAPI GetHGlobalFromILockBytes (LPLOCKBYTES plkbyt,HGLOBAL *phglobal);
122WINOLEAPI CreateILockBytesOnHGlobal (HGLOBAL hGlobal,WINBOOL fDeleteOnRelease,LPLOCKBYTES *pplkbyt);
123WINOLEAPI GetHGlobalFromStream (LPSTREAM pstm,HGLOBAL *phglobal);
124WINOLEAPI CreateStreamOnHGlobal (HGLOBAL hGlobal,WINBOOL fDeleteOnRelease,LPSTREAM *ppstm);
125WINOLEAPI OleDoAutoConvert(LPSTORAGE pStg,LPCLSID pClsidNew);
126WINOLEAPI OleGetAutoConvert(REFCLSID clsidOld,LPCLSID pClsidNew);
127WINOLEAPI OleSetAutoConvert(REFCLSID clsidOld,REFCLSID clsidNew);
128WINOLEAPI GetConvertStg(LPSTORAGE pStg);
129WINOLEAPI SetConvertStg(LPSTORAGE pStg,WINBOOL fConvert);
130WINOLEAPI OleConvertIStorageToOLESTREAMEx(LPSTORAGE pstg,CLIPFORMAT cfFormat,LONG lWidth,LONG lHeight,DWORD dwSize,LPSTGMEDIUM pmedium,LPOLESTREAM polestm);
131WINOLEAPI OleConvertOLESTREAMToIStorageEx(LPOLESTREAM polestm,LPSTORAGE pstg,CLIPFORMAT *pcfFormat,LONG *plwWidth,LONG *plHeight,DWORD *pdwSize,LPSTGMEDIUM pmedium);
132
133#ifndef RC_INVOKED
134#include <poppack.h>
135#endif
136#endif
137