|  | /* | 
|  | *	ole.h	-	Declarations for OLESVR and OLECLI | 
|  | */ | 
|  |  | 
|  | #ifndef __WINE_OLE_H | 
|  | #define __WINE_OLE_H | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | #include "windef.h" | 
|  | #include "wine/windef16.h" | 
|  | #include "wine/obj_base.h" | 
|  | #include "wine/obj_misc.h" | 
|  | #include "wine/obj_storage.h" | 
|  | #include "wine/obj_moniker.h" | 
|  | #include "wine/obj_dataobject.h" | 
|  | #include "wine/obj_dragdrop.h" | 
|  |  | 
|  | struct tagLOGPALETTE; | 
|  |  | 
|  | /* object types */ | 
|  | #define OT_LINK		1 | 
|  | #define OT_EMBEDDED	2 | 
|  | #define OT_STATIC	3 | 
|  |  | 
|  | /* activate verbs */ | 
|  | #define OLEVERB_PRIMARY	0 | 
|  |  | 
|  | typedef enum | 
|  | { | 
|  | OLE_OK, | 
|  | OLE_WAIT_FOR_RELEASE, | 
|  | OLE_BUSY, | 
|  | OLE_ERROR_PROTECT_ONLY, | 
|  | OLE_ERROR_MEMORY, | 
|  | OLE_ERROR_STREAM, | 
|  | OLE_ERROR_STATIC, | 
|  | OLE_ERROR_BLANK, | 
|  | OLE_ERROR_DRAW, | 
|  | OLE_ERROR_METAFILE, | 
|  | OLE_ERROR_ABORT, | 
|  | OLE_ERROR_CLIPBOARD, | 
|  | OLE_ERROR_FORMAT, | 
|  | OLE_ERROR_OBJECT, | 
|  | OLE_ERROR_OPTION, | 
|  | OLE_ERROR_PROTOCOL, | 
|  | OLE_ERROR_ADDRESS, | 
|  | OLE_ERROR_NOT_EQUAL, | 
|  | OLE_ERROR_HANDLE, | 
|  | OLE_ERROR_GENERIC, | 
|  | OLE_ERROR_CLASS, | 
|  | OLE_ERROR_SYNTAX, | 
|  | OLE_ERROR_DATATYPE, | 
|  | OLE_ERROR_PALETTE, | 
|  | OLE_ERROR_NOT_LINK, | 
|  | OLE_ERROR_NOT_EMPTY, | 
|  | OLE_ERROR_SIZE, | 
|  | OLE_ERROR_DRIVE, | 
|  | OLE_ERROR_NETWORK, | 
|  | OLE_ERROR_NAME, | 
|  | OLE_ERROR_TEMPLATE, | 
|  | OLE_ERROR_NEW, | 
|  | OLE_ERROR_EDIT, | 
|  | OLE_ERROR_OPEN, | 
|  | OLE_ERROR_NOT_OPEN, | 
|  | OLE_ERROR_LAUNCH, | 
|  | OLE_ERROR_COMM, | 
|  | OLE_ERROR_TERMINATE, | 
|  | OLE_ERROR_COMMAND, | 
|  | OLE_ERROR_SHOW, | 
|  | OLE_ERROR_DOVERB, | 
|  | OLE_ERROR_ADVISE_NATIVE, | 
|  | OLE_ERROR_ADVISE_PICT, | 
|  | OLE_ERROR_ADVISE_RENAME, | 
|  | OLE_ERROR_POKE_NATIVE, | 
|  | OLE_ERROR_REQUEST_NATIVE, | 
|  | OLE_ERROR_REQUEST_PICT, | 
|  | OLE_ERROR_SERVER_BLOCKED, | 
|  | OLE_ERROR_REGISTRATION, | 
|  | OLE_ERROR_ALREADY_REGISTERED, | 
|  | OLE_ERROR_TASK, | 
|  | OLE_ERROR_OUTOFDATE, | 
|  | OLE_ERROR_CANT_UPDATE_CLIENT, | 
|  | OLE_ERROR_UPDATE, | 
|  | OLE_ERROR_SETDATA_FORMAT, | 
|  | OLE_ERROR_STATIC_FROM_OTHER_OS, | 
|  | OLE_WARN_DELETE_DATA = 1000 | 
|  | } OLESTATUS; | 
|  |  | 
|  | typedef enum { | 
|  | OLE_SERVER_MULTI, | 
|  | OLE_SERVER_SINGLE | 
|  | } OLE_SERVER_USE; | 
|  |  | 
|  | typedef enum { | 
|  | OLE_CHANGED, | 
|  | OLE_SAVED, | 
|  | OLE_CLOSED, | 
|  | OLE_RENAMED, | 
|  | OLE_QUERY_PAINT, | 
|  | OLE_RELEASE, | 
|  | OLE_QUERY_RETRY | 
|  | } OLE_NOTIFICATION; | 
|  |  | 
|  | typedef enum { | 
|  | olerender_none, | 
|  | olerender_draw, | 
|  | olerender_format | 
|  | } OLEOPT_RENDER; | 
|  |  | 
|  | typedef enum { | 
|  | oleupdate_always, | 
|  | oleupdate_onsave, | 
|  | oleupdate_oncall, | 
|  | oleupdate_onclose | 
|  | } OLEOPT_UPDATE; | 
|  |  | 
|  | typedef	LONG	LHSERVER; | 
|  | typedef LONG	LHSERVERDOC; | 
|  | typedef LONG	LHCLIENTDOC; | 
|  | typedef LONG	OLECLIPFORMAT;/* dunno about this type, please change/add */ | 
|  | typedef OLEOPT_UPDATE*	LPOLEOPT_UPDATE; | 
|  |  | 
|  | typedef enum { | 
|  | OLE_NONE,	/* none */ | 
|  | OLE_DELETE,	/* delete object */ | 
|  | OLE_LNKPASTE,	/* link paste */ | 
|  | OLE_EMBPASTE,	/* paste(and update) */ | 
|  | OLE_SHOW, | 
|  | OLE_RUN, | 
|  | OLE_ACTIVATE, | 
|  | OLE_UPDATE, | 
|  | OLE_CLOSE, | 
|  | OLE_RECONNECT, | 
|  | OLE_SETUPDATEOPTIONS, | 
|  | OLE_SERVERRUNLAUNCH,	/* unlaunch (terminate?) server */ | 
|  | OLE_LOADFROMSTREAM,	/* (auto reconnect) */ | 
|  | OLE_SETDATA,		/* OleSetData */ | 
|  | OLE_REQUESTDATA,	/* OleRequestData */ | 
|  | OLE_OTHER, | 
|  | OLE_CREATE, | 
|  | OLE_CREATEFROMTEMPLATE, | 
|  | OLE_CREATELINKFROMFILE, | 
|  | OLE_COPYFROMLNK, | 
|  | OLE_CREATREFROMFILE, | 
|  | OLE_CREATEINVISIBLE | 
|  | } OLE_RELEASE_METHOD; | 
|  |  | 
|  | typedef struct _OLETARGETDEVICE { | 
|  | UINT16	otdDeviceNameOffset; | 
|  | UINT16	otdDriverNameOffset; | 
|  | UINT16	otdPortNameOffset; | 
|  | UINT16	otdExtDevmodeOffset; | 
|  | UINT16	otdExtDevmodeSize; | 
|  | UINT16	otdEnvironmentOffset; | 
|  | UINT16	otdEnvironmentSize; | 
|  | BYTE	otdData[1]; | 
|  | /* ... */ | 
|  | } OLETARGETDEVICE; | 
|  |  | 
|  | typedef struct _OLESERVERDOC*	LPOLESERVERDOC; | 
|  | typedef struct _OLEOBJECT*	LPOLEOBJECT; | 
|  | typedef struct _OLECLIENT*	LPOLECLIENT; | 
|  | typedef struct _OLESERVERDOCVTBL { | 
|  | OLESTATUS	CALLBACK (*Save)(LPOLESERVERDOC); | 
|  | OLESTATUS	CALLBACK (*Close)(LPOLESERVERDOC); | 
|  | OLESTATUS	CALLBACK (*SetHostNames)(LPOLESERVERDOC,LPCOLESTR16,LPCOLESTR16); | 
|  | OLESTATUS	CALLBACK (*SetDocDimensions)(LPOLESERVERDOC,LPRECT16); | 
|  | #ifdef __WINE__ | 
|  | /* GetObject is a WINELIB_NAME macro so it cannot be used in Wine itself */ | 
|  | OLESTATUS	CALLBACK (*pGetObject)(LPOLESERVERDOC,LPCOLESTR16,LPOLEOBJECT*,LPOLECLIENT); | 
|  | #else | 
|  | OLESTATUS	CALLBACK (*GetObject)(LPOLESERVERDOC,LPCOLESTR16,LPOLEOBJECT*,LPOLECLIENT); | 
|  | #endif | 
|  | OLESTATUS	CALLBACK (*Release)(LPOLESERVERDOC); | 
|  | OLESTATUS	CALLBACK (*SetColorScheme)(LPOLESERVERDOC,struct tagLOGPALETTE*); | 
|  | OLESTATUS	CALLBACK (*Execute)(LPOLESERVERDOC,HGLOBAL16); | 
|  | } OLESERVERDOCVTBL; | 
|  | typedef OLESERVERDOCVTBL*	LPOLESERVERDOCVTBL; | 
|  | typedef struct _OLESERVERDOC { | 
|  | LPOLESERVERDOCVTBL	lpvtbl; | 
|  | /* server provided state info */ | 
|  | } OLESERVERDOC; | 
|  |  | 
|  | typedef struct _OLESERVER*	LPOLESERVER; | 
|  | typedef struct _OLESERVERVTBL { | 
|  | OLESTATUS	CALLBACK (*Open)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPOLESERVERDOC *); | 
|  | OLESTATUS	CALLBACK (*Create)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPCOLESTR16,LPOLESERVERDOC*); | 
|  | OLESTATUS	CALLBACK (*CreateFromTemplate)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPCOLESTR16,LPCOLESTR16,LPOLESERVERDOC *); | 
|  | OLESTATUS	CALLBACK (*Edit)(LPOLESERVER,LHSERVERDOC,LPCOLESTR16,LPCOLESTR16,LPOLESERVERDOC *); | 
|  | OLESTATUS	CALLBACK (*Exit)(LPOLESERVER); | 
|  | OLESTATUS	CALLBACK (*Release)(LPOLESERVER); | 
|  | OLESTATUS	CALLBACK (*Execute)(LPOLESERVER); | 
|  | } OLESERVERVTBL; | 
|  | typedef OLESERVERVTBL	*LPOLESERVERVTBL; | 
|  | typedef struct _OLESERVER { | 
|  | LPOLESERVERVTBL	lpvtbl; | 
|  | /* server specific data */ | 
|  | } OLESERVER; | 
|  | typedef struct _OLECLIENTVTBL { | 
|  | int CALLBACK (*CallBack)(LPOLECLIENT,OLE_NOTIFICATION,LPOLEOBJECT); | 
|  | } OLECLIENTVTBL; | 
|  | typedef OLECLIENTVTBL	*LPOLECLIENTVTBL; | 
|  |  | 
|  | typedef struct _OLECLIENT { | 
|  | LPOLECLIENTVTBL	lpvtbl; | 
|  | /* client data... */ | 
|  | } OLECLIENT; | 
|  |  | 
|  | struct _OLESTREAM; | 
|  |  | 
|  | typedef struct _OLEOBJECTVTBL { | 
|  | void   		CALLBACK *(*QueryProtocol)(LPOLEOBJECT,LPCOLESTR16); | 
|  | OLESTATUS	CALLBACK (*Release)(LPOLEOBJECT); | 
|  | OLESTATUS	CALLBACK (*Show)(LPOLEOBJECT,BOOL16); | 
|  | OLESTATUS	CALLBACK (*DoVerb)(LPOLEOBJECT,UINT16,BOOL16,BOOL16); | 
|  | OLESTATUS	CALLBACK (*GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16 *); | 
|  | OLESTATUS	CALLBACK (*SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16); | 
|  | OLESTATUS	CALLBACK (*SetTargetDevice)(LPOLEOBJECT,HGLOBAL16); | 
|  | OLESTATUS	CALLBACK (*SetBounds)(LPOLEOBJECT,LPRECT16); | 
|  | OLESTATUS	CALLBACK (*EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT); | 
|  | OLESTATUS	CALLBACK (*SetColorScheme)(LPOLEOBJECT,struct tagLOGPALETTE*); | 
|  | OLESTATUS	CALLBACK (*Delete)(LPOLEOBJECT); | 
|  | OLESTATUS	CALLBACK (*SetHostNames)(LPOLEOBJECT,LPCOLESTR16,LPCOLESTR16); | 
|  | OLESTATUS	CALLBACK (*SaveToStream)(LPOLEOBJECT,struct _OLESTREAM*); | 
|  | OLESTATUS	CALLBACK (*Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *); | 
|  | OLESTATUS	CALLBACK (*CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *); | 
|  | OLESTATUS	CALLBACK (*Equal)(LPOLEOBJECT,LPOLEOBJECT); | 
|  | OLESTATUS	CALLBACK (*CopyToClipBoard)(LPOLEOBJECT); | 
|  | OLESTATUS	CALLBACK (*Draw)(LPOLEOBJECT,HDC16,LPRECT16,LPRECT16,HDC16); | 
|  | OLESTATUS	CALLBACK (*Activate)(LPOLEOBJECT,UINT16,BOOL16,BOOL16,HWND16,LPRECT16); | 
|  | OLESTATUS	CALLBACK (*Execute)(LPOLEOBJECT,HGLOBAL16,UINT16); | 
|  | OLESTATUS	CALLBACK (*Close)(LPOLEOBJECT); | 
|  | OLESTATUS	CALLBACK (*Update)(LPOLEOBJECT); | 
|  | OLESTATUS	CALLBACK (*Reconnect)(LPOLEOBJECT); | 
|  | OLESTATUS	CALLBACK (*ObjectConvert)(LPOLEOBJECT,LPCOLESTR16,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT*); | 
|  | OLESTATUS	CALLBACK (*GetLinkUpdateOptions)(LPOLEOBJECT,LPOLEOPT_UPDATE); | 
|  | OLESTATUS	CALLBACK (*SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE); | 
|  | OLESTATUS	CALLBACK (*Rename)(LPOLEOBJECT,LPCOLESTR16); | 
|  | OLESTATUS	CALLBACK (*QueryName)(LPOLEOBJECT,LPSTR,LPUINT16); | 
|  | OLESTATUS	CALLBACK (*QueryType)(LPOLEOBJECT,LPLONG); | 
|  | OLESTATUS	CALLBACK (*QueryBounds)(LPOLEOBJECT,LPRECT16); | 
|  | OLESTATUS	CALLBACK (*QuerySize)(LPOLEOBJECT,LPDWORD); | 
|  | OLESTATUS	CALLBACK (*QueryOpen)(LPOLEOBJECT); | 
|  | OLESTATUS	CALLBACK (*QueryOutOfDate)(LPOLEOBJECT); | 
|  | OLESTATUS	CALLBACK (*QueryReleaseStatus)(LPOLEOBJECT); | 
|  | OLESTATUS	CALLBACK (*QueryReleaseError)(LPOLEOBJECT); | 
|  | OLE_RELEASE_METHOD CALLBACK (*QueryReleaseMethod)(LPOLEOBJECT); | 
|  | OLESTATUS	CALLBACK (*RequestData)(LPOLEOBJECT,OLECLIPFORMAT); | 
|  | OLESTATUS	CALLBACK (*ObjectLong)(LPOLEOBJECT,UINT16,LPLONG); | 
|  | } OLEOBJECTVTBL; | 
|  | typedef OLEOBJECTVTBL*	LPOLEOBJECTVTBL; | 
|  |  | 
|  | typedef struct _OLEOBJECT { | 
|  | LPOLEOBJECTVTBL	lpvtbl; | 
|  | } OLEOBJECT; | 
|  |  | 
|  |  | 
|  | typedef struct IMalloc16 IMalloc16,*LPMALLOC16; | 
|  |  | 
|  | #define ICOM_INTERFACE IMalloc16 | 
|  | #define IMalloc16_METHODS \ | 
|  | ICOM_METHOD1 (LPVOID,Alloc,       DWORD,cb) \ | 
|  | ICOM_METHOD2 (LPVOID,Realloc,     LPVOID,pv, DWORD,cb) \ | 
|  | ICOM_VMETHOD1(       Free,        LPVOID,pv) \ | 
|  | ICOM_METHOD1(DWORD, GetSize,     LPVOID,pv) \ | 
|  | ICOM_METHOD1(INT16, DidAlloc,    LPVOID,pv) \ | 
|  | ICOM_METHOD  (LPVOID,HeapMinimize) | 
|  | #define IMalloc16_IMETHODS \ | 
|  | IUnknown_IMETHODS \ | 
|  | IMalloc16_METHODS | 
|  | ICOM_DEFINE(IMalloc16,IUnknown) | 
|  | #undef ICOM_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | #define IMalloc16_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b) | 
|  | #define IMalloc16_AddRef(p)             ICOM_CALL (AddRef,p) | 
|  | #define IMalloc16_Release(p)            ICOM_CALL (Release,p) | 
|  | /*** IMalloc16 methods ***/ | 
|  | #define IMalloc16_Alloc(p,a)      ICOM_CALL1(Alloc,p,a) | 
|  | #define IMalloc16_Realloc(p,a,b)  ICOM_CALL2(Realloc,p,a,b) | 
|  | #define IMalloc16_Free(p,a)       ICOM_CALL1(Free,p,a) | 
|  | #define IMalloc16_GetSize(p,a)    ICOM_CALL1(GetSize,p,a) | 
|  | #define IMalloc16_DidAlloc(p,a)   ICOM_CALL1(DidAlloc,p,a) | 
|  | #define IMalloc16_HeapMinimize(p) ICOM_CALL (HeapMinimize,p) | 
|  |  | 
|  |  | 
|  | HRESULT   WINAPI CoCreateStandardMalloc16(DWORD dwMemContext, LPMALLOC16* lpMalloc); | 
|  | HRESULT   WINAPI CoGetMalloc16(DWORD dwMemContext,LPMALLOC16* lpMalloc); | 
|  | HRESULT   WINAPI CoInitialize16(LPVOID lpReserved); | 
|  | HRESULT   WINAPI CoLockObjectExternal16(LPUNKNOWN,BOOL16,BOOL16); | 
|  | HRESULT   WINAPI CoRegisterClassObject16(REFCLSID,LPUNKNOWN,DWORD,DWORD,LPDWORD); | 
|  | void      WINAPI CoUninitialize16(void); | 
|  | HRESULT   WINAPI DoDragDrop16(LPDATAOBJECT,LPDROPSOURCE,DWORD,DWORD*); | 
|  | OLESTATUS WINAPI OleRegisterServer16(LPCSTR,LPOLESERVER,LHSERVER *,HINSTANCE16,OLE_SERVER_USE); | 
|  | OLESTATUS WINAPI OleUnblockServer16(LHSERVER,BOOL16 *); | 
|  | OLESTATUS WINAPI OleRegisterServerDoc16(LHSERVER,LPCSTR,LPOLESERVERDOC,LHSERVERDOC *); | 
|  | OLESTATUS WINAPI OleRegisterClientDoc16(LPCSTR,LPCSTR,LONG,LHCLIENTDOC *); | 
|  | OLESTATUS WINAPI OleRenameClientDoc16(LHCLIENTDOC,LPCSTR); | 
|  | OLESTATUS WINAPI OleRevokeServerDoc16(LHSERVERDOC); | 
|  | OLESTATUS WINAPI OleRevokeClientDoc16(LHCLIENTDOC); | 
|  | OLESTATUS WINAPI OleRevokeServer16(LHSERVER); | 
|  | OLESTATUS WINAPI OleRevertClientDoc16(LHCLIENTDOC hServerDoc); | 
|  | OLESTATUS WINAPI OleEnumObjects16(LHCLIENTDOC hServerDoc, SEGPTR data); | 
|  | OLESTATUS WINAPI OleCreateLinkFromClip16(LPCSTR,SEGPTR,LHCLIENTDOC,LPCSTR,SEGPTR,UINT16,UINT16); | 
|  | OLESTATUS WINAPI OleQueryLinkFromClip16(LPCSTR name, UINT16 render, UINT16 clipformat); | 
|  | OLESTATUS WINAPI OleQueryCreateFromClip16(LPCSTR name, UINT16 render, UINT16 clipformat); | 
|  | OLESTATUS WINAPI OleQueryType16(LPOLEOBJECT oleob,  SEGPTR xlong); | 
|  | OLESTATUS WINAPI OleCreateFromClip16(LPCSTR,SEGPTR,LHCLIENTDOC,LPCSTR,SEGPTR,UINT16,UINT16); | 
|  | HRESULT   WINAPI RegisterDragDrop16(HWND16,LPDROPTARGET); | 
|  | HRESULT   WINAPI RevokeDragDrop16(HWND16); | 
|  |  | 
|  | BSTR16 WINAPI SysAllocString16(LPCOLESTR16); | 
|  | INT16  WINAPI SysReAllocString16(LPBSTR16,LPCOLESTR16); | 
|  | VOID   WINAPI SysFreeString16(BSTR16); | 
|  | BSTR16 WINAPI SysAllocStringLen16(const char*, int); | 
|  | int    WINAPI SysReAllocStringLen16(BSTR16*, const char*,  int); | 
|  | int    WINAPI SysStringLen16(BSTR16); | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } /*extern*/ | 
|  | #endif | 
|  |  | 
|  | #endif  /* __WINE_OLE_H */ |