/* * OLECLI library * * Copyright 1995 Martin von Loewis * * 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 */ /* At the moment, these are only empty stubs. */ #include "config.h" #include #include "windef.h" #include "wine/windef16.h" #include "winbase.h" #include "wingdi.h" #include "wownt32.h" #include "objbase.h" #include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(ole); 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 { olerender_none, olerender_draw, olerender_format } OLEOPT_RENDER; typedef enum { oleupdate_always, oleupdate_onsave, oleupdate_oncall, oleupdate_onclose } OLEOPT_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 LONG LHCLIENTDOC; typedef struct _OLEOBJECT *_LPOLEOBJECT; typedef struct _OLECLIENT *LPOLECLIENT; typedef LONG OLECLIPFORMAT;/* dunno about this type, please change/add */ typedef OLEOPT_UPDATE *LPOLEOPT_UPDATE; typedef LPCSTR LPCOLESTR16; struct _OLESTREAM; typedef struct _OLEOBJECTVTBL16 { 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 { const OLEOBJECTVTBL *lpvtbl; } OLEOBJECT16; static LONG OLE_current_handle; /****************************************************************************** * OleSavedClientDoc [OLECLI.45] */ OLESTATUS WINAPI OleSavedClientDoc16(LHCLIENTDOC hDoc) { FIXME("(%d: stub\n", hDoc); return OLE_OK; } /****************************************************************************** * OleRegisterClientDoc [OLECLI.41] */ OLESTATUS WINAPI OleRegisterClientDoc16(LPCSTR classname, LPCSTR docname, LONG reserved, LHCLIENTDOC *hRet ) { FIXME("(%s,%s,...): stub\n",classname,docname); *hRet=++OLE_current_handle; return OLE_OK; } /****************************************************************************** * OleRenameClientDoc [OLECLI.43] */ OLESTATUS WINAPI OleRenameClientDoc16(LHCLIENTDOC hDoc, LPCSTR newName) { FIXME("(%d,%s,...): stub\n",hDoc, newName); return OLE_OK; } /****************************************************************************** * OleRevokeClientDoc [OLECLI.42] */ OLESTATUS WINAPI OleRevokeClientDoc16(LHCLIENTDOC hServerDoc) { FIXME("(%d): stub\n",hServerDoc); return OLE_OK; } /****************************************************************************** * OleRevertClientDoc [OLECLI.44] */ OLESTATUS WINAPI OleRevertClientDoc16(LHCLIENTDOC hServerDoc) { FIXME("(%d): stub\n", hServerDoc); return OLE_OK; } /****************************************************************************** * OleEnumObjects [OLECLI.47] */ OLESTATUS WINAPI OleEnumObjects16(LHCLIENTDOC hServerDoc, SEGPTR data) { FIXME("(%d, %04x:%04x): stub\n", hServerDoc, HIWORD(data), LOWORD(data)); return OLE_OK; } /****************************************************************************** * OleCreateLinkFromClip [OLECLI.11] */ OLESTATUS WINAPI OleCreateLinkFromClip16( LPCSTR name, SEGPTR olecli, LHCLIENTDOC hclientdoc, LPCSTR xname, SEGPTR lpoleob, UINT16 render, UINT16 clipformat ) { FIXME("(%s, %04x:%04x, %d, %s, %04x:%04x, %d, %d): stub!\n", name, HIWORD(olecli), LOWORD(olecli), hclientdoc, xname, HIWORD(lpoleob), LOWORD(lpoleob), render, clipformat); return OLE_OK; } /****************************************************************************** * OleQueryLinkFromClip [OLECLI.9] */ OLESTATUS WINAPI OleQueryLinkFromClip16(LPCSTR name, UINT16 render, UINT16 clipformat) { FIXME("(%s, %d, %d): stub!\n", name, render, clipformat); return OLE_OK; } /****************************************************************************** * OleQueryCreateFromClip [OLECLI.10] */ OLESTATUS WINAPI OleQueryCreateFromClip16(LPCSTR name, UINT16 render, UINT16 clipformat) { FIXME("(%s, %d, %d): stub!\n", name, render, clipformat); return OLE_OK; } /****************************************************************************** * OleIsDcMeta [OLECLI.60] */ BOOL16 WINAPI OleIsDcMeta16(HDC16 hdc) { return GetObjectType( HDC_32(hdc) ) == OBJ_METADC; } /****************************************************************************** * OleQueryType [OLECLI.14] */ OLESTATUS WINAPI OleQueryType16(_LPOLEOBJECT oleob, SEGPTR xlong) { FIXME("(%p, %p): stub!\n", oleob, MapSL(xlong)); return OLE_OK; } /****************************************************************************** * OleCreateFromClip [OLECLI.12] */ OLESTATUS WINAPI OleCreateFromClip16( LPCSTR name, SEGPTR olecli, LHCLIENTDOC hclientdoc, LPCSTR xname, SEGPTR lpoleob, UINT16 render, UINT16 clipformat ) { FIXME("(%s, %04x:%04x, %d, %s, %04x:%04x, %d, %d): stub!\n", name, HIWORD(olecli), LOWORD(olecli), hclientdoc, xname, HIWORD(lpoleob), LOWORD(lpoleob), render, clipformat); return OLE_OK; }