|  | /* | 
|  | * Declarations for OLE2 | 
|  | * | 
|  | * Copyright (C) the Wine project | 
|  | * | 
|  | * This library is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU Lesser General Public | 
|  | * License as published by the Free Software Foundation; either | 
|  | * version 2.1 of the License, or (at your option) any later version. | 
|  | * | 
|  | * This library is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
|  | * Lesser General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU Lesser General Public | 
|  | * License along with this library; if not, write to the Free Software | 
|  | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
|  | */ | 
|  |  | 
|  | #ifndef __WINE_OLE2_H | 
|  | #define __WINE_OLE2_H | 
|  |  | 
|  | #include <winerror.h> | 
|  | #include <objbase.h> | 
|  | #include <oleauto.h> | 
|  | #include <oleidl.h> | 
|  |  | 
|  | struct tagMSG; | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif /* defined(__cplusplus) */ | 
|  |  | 
|  | #define E_DRAW                  VIEW_E_DRAW | 
|  | #define DATA_E_FORMATETC        DV_E_FORMATETC | 
|  |  | 
|  | #define OLEIVERB_PRIMARY            (0L) | 
|  | #define OLEIVERB_SHOW               (-1L) | 
|  | #define OLEIVERB_OPEN               (-2L) | 
|  | #define OLEIVERB_HIDE               (-3L) | 
|  | #define OLEIVERB_UIACTIVATE         (-4L) | 
|  | #define OLEIVERB_INPLACEACTIVATE    (-5L) | 
|  | #define OLEIVERB_DISCARDUNDOSTATE   (-6L) | 
|  | #define OLEIVERB_PROPERTIES         (-7L) | 
|  |  | 
|  | #define EMBDHLP_INPROC_HANDLER  0x00000000 | 
|  | #define EMBDHLP_INPROC_SERVER   0x00000001 | 
|  | #define EMBDHLP_CREATENOW       0x00000000 | 
|  | #define EMBDHLP_DELAYCREATE     0x00010000 | 
|  |  | 
|  | /* | 
|  | * API declarations | 
|  | */ | 
|  | HRESULT     WINAPI RegisterDragDrop(HWND,LPDROPTARGET); | 
|  | HRESULT     WINAPI RevokeDragDrop(HWND); | 
|  | HRESULT     WINAPI DoDragDrop(LPDATAOBJECT,LPDROPSOURCE,DWORD,DWORD*); | 
|  | HRESULT  WINAPI OleLoadFromStream(IStream *pStm,REFIID iidInterface,void** ppvObj); | 
|  | HRESULT  WINAPI OleSaveToStream(IPersistStream *pPStm,IStream *pStm); | 
|  | HOLEMENU WINAPI OleCreateMenuDescriptor(HMENU hmenuCombined,LPOLEMENUGROUPWIDTHS lpMenuWidths); | 
|  | HRESULT   WINAPI OleDestroyMenuDescriptor(HOLEMENU hmenuDescriptor); | 
|  | HRESULT  WINAPI OleSetMenuDescriptor(HOLEMENU hmenuDescriptor,HWND hwndFrame,HWND hwndActiveObject,LPOLEINPLACEFRAME lpFrame,LPOLEINPLACEACTIVEOBJECT lpActiveObject); | 
|  |  | 
|  | HRESULT WINAPI WriteClassStg(IStorage *pstg, REFCLSID rclsid); | 
|  | HRESULT WINAPI ReadClassStg(IStorage *pstg,CLSID *pclsid); | 
|  | HRESULT WINAPI WriteClassStm(IStream *pStm,REFCLSID rclsid); | 
|  | HRESULT WINAPI ReadClassStm(IStream *pStm,CLSID *pclsid); | 
|  |  | 
|  |  | 
|  | HRESULT     WINAPI OleSave(LPPERSISTSTORAGE pPS, LPSTORAGE pStg, BOOL fSameAsLoad); | 
|  | HRESULT     WINAPI OleRegGetUserType(REFCLSID clsid, | 
|  | DWORD dwFormOfType, | 
|  | LPOLESTR* pszUserType); | 
|  | HRESULT     WINAPI OleRegGetMiscStatus (REFCLSID clsid, DWORD dwAspect, DWORD* pdwStatus); | 
|  | HRESULT     WINAPI OleRegEnumFormatEtc (REFCLSID clsid, | 
|  | DWORD    dwDirection, | 
|  | LPENUMFORMATETC* ppenumFormatetc); | 
|  | HRESULT     WINAPI CreateStreamOnHGlobal (HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM* ppstm); | 
|  | HRESULT     WINAPI GetHGlobalFromStream(LPSTREAM pstm, HGLOBAL* phglobal); | 
|  | HRESULT     WINAPI OleRegEnumVerbs (REFCLSID clsid, LPENUMOLEVERB* ppenum); | 
|  | BOOL        WINAPI OleIsRunning(LPOLEOBJECT pObject); | 
|  | HRESULT     WINAPI OleCreateLinkFromData(LPDATAOBJECT pSrcDataObj, REFIID riid, | 
|  | DWORD renderopt, LPFORMATETC pFormatEtc, | 
|  | LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, | 
|  | LPVOID* ppvObj); | 
|  | HRESULT     WINAPI OleSetContainedObject(LPUNKNOWN pUnknown, BOOL fContained); | 
|  | HRESULT     WINAPI OleQueryLinkFromData(IDataObject* pSrcDataObject); | 
|  | HRESULT     WINAPI OleQueryCreateFromData(LPDATAOBJECT pSrcDataObject); | 
|  | HRESULT     WINAPI OleRun(LPUNKNOWN pUnknown); | 
|  | HRESULT     WINAPI OleDraw(LPUNKNOWN pUnknown, DWORD dwAspect, HDC hdcDraw, LPCRECT lprcBounds); | 
|  | VOID        WINAPI ReleaseStgMedium(LPSTGMEDIUM); | 
|  | HRESULT     WINAPI OleGetClipboard(IDataObject** ppDataObj); | 
|  | HRESULT     WINAPI OleIsCurrentClipboard(LPDATAOBJECT); | 
|  | HRESULT     WINAPI OleSetClipboard(LPDATAOBJECT); | 
|  | HRESULT     WINAPI OleCreateStaticFromData(LPDATAOBJECT pSrcDataObj, REFIID iid, | 
|  | DWORD renderopt, LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite, | 
|  | LPSTORAGE pStg, LPVOID* ppvObj); | 
|  | HRESULT     WINAPI ReadFmtUserTypeStg(LPSTORAGE pstg, CLIPFORMAT* pcf, LPOLESTR* lplpszUserType); | 
|  | HRESULT     WINAPI OleLoad(LPSTORAGE pStg, REFIID riid, LPOLECLIENTSITE pClientSite, LPVOID* ppvObj); | 
|  | HRESULT     WINAPI GetHGlobalFromILockBytes(LPLOCKBYTES plkbyt, HGLOBAL* phglobal); | 
|  | HRESULT     WINAPI CreateILockBytesOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPLOCKBYTES* pplkbyt); | 
|  | HRESULT     WINAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER* ppDAHolder); | 
|  | HGLOBAL     WINAPI OleGetIconOfClass(REFCLSID rclsid, LPOLESTR lpszLabel, BOOL fUseTypeAsLabel); | 
|  | HGLOBAL     WINAPI OleGetIconOfFile(LPOLESTR lpszPath, BOOL fUseFileAsLabel); | 
|  | HGLOBAL     WINAPI OleMetafilePictFromIconAndLabel(HICON hIcon, LPOLESTR lpszLabel, LPOLESTR lpszSourceFile, UINT iIconIndex); | 
|  | HRESULT     WINAPI OleLockRunning(LPUNKNOWN pUnknown, BOOL fLock, BOOL fLastUnlockCloses); | 
|  | HRESULT     WINAPI OleCreateFromFile(REFCLSID rclsid, LPCOLESTR lpszFileName, REFIID riid, | 
|  | DWORD renderopt, LPFORMATETC lpFormatEtc, LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj); | 
|  | HRESULT     WINAPI OleCreateLink(LPMONIKER pmkLinkSrc, REFIID riid, DWORD renderopt, LPFORMATETC lpFormatEtc, | 
|  | LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj); | 
|  | HRESULT     WINAPI OleCreate(REFCLSID rclsid, REFIID riid, DWORD renderopt, LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite, | 
|  | LPSTORAGE pStg, LPVOID* ppvObj); | 
|  | HRESULT     WINAPI OleFlushClipboard(void); | 
|  | HRESULT     WINAPI SetConvertStg(LPSTORAGE pStg, BOOL fConvert); | 
|  | BOOL        WINAPI IsAccelerator(HACCEL hAccel, int cAccelEntries, struct tagMSG* lpMsg, WORD* lpwCmd); | 
|  | HRESULT     WINAPI OleCreateLinkToFile(LPCOLESTR lpszFileName, REFIID riid, DWORD renderopt, LPFORMATETC lpFormatEtc, | 
|  | LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj); | 
|  | HANDLE      WINAPI OleDuplicateData(HANDLE hSrc, CLIPFORMAT cfFormat, UINT uiFlags); | 
|  | HRESULT     WINAPI WriteFmtUserTypeStg(LPSTORAGE pstg, CLIPFORMAT cf, LPOLESTR lpszUserType); | 
|  | HRESULT     WINAPI OleTranslateAccelerator (LPOLEINPLACEFRAME lpFrame, LPOLEINPLACEFRAMEINFO lpFrameInfo, struct tagMSG* lpmsg); | 
|  | HRESULT     WINAPI OleCreateFromData(LPDATAOBJECT pSrcDataObj, REFIID riid, DWORD renderopt, LPFORMATETC pFormatEtc, | 
|  | LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj); | 
|  | HRESULT     WINAPI OleCreateDefaultHandler(REFCLSID  clsid, | 
|  | LPUNKNOWN pUnkOuter, | 
|  | REFIID    riid, | 
|  | LPVOID*   ppvObj); | 
|  | HRESULT     WINAPI OleCreateEmbeddingHelper(REFCLSID  clsid, | 
|  | LPUNKNOWN pUnkOuter, | 
|  | DWORD     flags, | 
|  | IClassFactory *pCF, | 
|  | REFIID    riid, | 
|  | LPVOID*   ppvObj); | 
|  | HRESULT     WINAPI CreateOleAdviseHolder (LPOLEADVISEHOLDER *ppOAHolder); | 
|  | HRESULT     WINAPI OleInitialize(LPVOID pvReserved); | 
|  | void        WINAPI OleUninitialize(void); | 
|  | BOOL        WINAPI IsValidInterface(LPUNKNOWN punk); | 
|  | DWORD       WINAPI OleBuildVersion(VOID); | 
|  |  | 
|  | /* | 
|  | *  OLE version conversion declarations | 
|  | */ | 
|  |  | 
|  |  | 
|  | typedef struct _OLESTREAM* LPOLESTREAM; | 
|  | typedef struct _OLESTREAMVTBL { | 
|  | DWORD	(CALLBACK *Get)(LPOLESTREAM,LPSTR,DWORD); | 
|  | DWORD	(CALLBACK *Put)(LPOLESTREAM,LPSTR,DWORD); | 
|  | } OLESTREAMVTBL; | 
|  | typedef OLESTREAMVTBL*	LPOLESTREAMVTBL; | 
|  | typedef struct _OLESTREAM { | 
|  | LPOLESTREAMVTBL	lpstbl; | 
|  | } OLESTREAM; | 
|  |  | 
|  | HRESULT     WINAPI OleConvertOLESTREAMToIStorage( LPOLESTREAM lpolestream, LPSTORAGE pstg, const DVTARGETDEVICE* ptd); | 
|  | HRESULT     WINAPI OleConvertIStorageToOLESTREAM( LPSTORAGE pstg, LPOLESTREAM lpolestream); | 
|  |  | 
|  | HRESULT     WINAPI OleGetAutoConvert( REFCLSID clsidOld, LPCLSID pClsidNew ); | 
|  | HRESULT     WINAPI OleSetAutoConvert( REFCLSID clsidOld, REFCLSID clsidNew ); | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } /* extern "C" */ | 
|  | #endif /* defined(__cplusplus) */ | 
|  |  | 
|  | #endif  /* __WINE_OLE2_H */ |