| /* | |
| * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| */ | |
| /* At the moment, these are only empty stubs. | |
| */ | |
| #include "config.h" | |
| #include <stdarg.h> | |
| #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 _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; | |
| static LONG OLE_current_handle; | |
| /****************************************************************************** | |
| * OleSavedClientDoc [OLECLI32.45] | |
| */ | |
| OLESTATUS WINAPI OleSavedClientDoc(LHCLIENTDOC hDoc) | |
| { | |
| FIXME("(%ld: stub\n", hDoc); | |
| return OLE_OK; | |
| } | |
| /****************************************************************************** | |
| * OleRegisterClientDoc [OLECLI32.41] | |
| */ | |
| OLESTATUS WINAPI OleRegisterClientDoc(LPCSTR classname, LPCSTR docname, | |
| LONG reserved, LHCLIENTDOC *hRet ) | |
| { | |
| FIXME("(%s,%s,...): stub\n",classname,docname); | |
| *hRet=++OLE_current_handle; | |
| return OLE_OK; | |
| } | |
| /****************************************************************************** | |
| * OleRenameClientDoc [OLECLI32.43] | |
| */ | |
| OLESTATUS WINAPI OleRenameClientDoc(LHCLIENTDOC hDoc, LPCSTR newName) | |
| { | |
| FIXME("(%ld,%s,...): stub\n",hDoc, newName); | |
| return OLE_OK; | |
| } | |
| /****************************************************************************** | |
| * OleRevokeClientDoc [OLECLI32.42] | |
| */ | |
| OLESTATUS WINAPI OleRevokeClientDoc(LHCLIENTDOC hServerDoc) | |
| { | |
| FIXME("(%ld): stub\n",hServerDoc); | |
| return OLE_OK; | |
| } | |
| /****************************************************************************** | |
| * OleCreateLinkFromClip [OLECLI32.11] | |
| */ | |
| OLESTATUS WINAPI OleCreateLinkFromClip( | |
| LPCSTR name,LPOLECLIENT olecli,LHCLIENTDOC hclientdoc,LPCSTR xname, | |
| _LPOLEOBJECT *lpoleob,OLEOPT_RENDER render,OLECLIPFORMAT clipformat | |
| ) { | |
| FIXME("(%s,%p,%08lx,%s,%p,%d,%ld): stub!\n", | |
| name,olecli,hclientdoc,xname,lpoleob,render,clipformat); | |
| return OLE_OK; | |
| } | |
| /****************************************************************************** | |
| * OleQueryLinkFromClip [OLECLI32.9] | |
| */ | |
| OLESTATUS WINAPI OleQueryLinkFromClip(LPCSTR name,OLEOPT_RENDER render,OLECLIPFORMAT clipformat) { | |
| FIXME("(%s,%d,%ld): stub!\n",name,render,clipformat); | |
| return OLE_OK; | |
| } | |
| /****************************************************************************** | |
| * OleQueryCreateFromClip [OLECLI32.10] | |
| */ | |
| OLESTATUS WINAPI OleQueryCreateFromClip(LPCSTR name,OLEOPT_RENDER render,OLECLIPFORMAT clipformat) { | |
| FIXME("(%s,%d,%ld): stub!\n",name,render,clipformat); | |
| return OLE_OK; | |
| } | |
| /****************************************************************************** | |
| * OleIsDcMeta [OLECLI32.60] | |
| */ | |
| BOOL WINAPI OleIsDcMeta(HDC hdc) | |
| { | |
| TRACE("(%p)\n",hdc); | |
| return GetObjectType( hdc ) == OBJ_METADC; | |
| } | |
| /****************************************************************************** | |
| * OleSetHostNames [OLECLI32.15] | |
| */ | |
| OLESTATUS WINAPI OleSetHostNames(_LPOLEOBJECT oleob,LPCSTR name1,LPCSTR name2) { | |
| FIXME("(%p,%s,%s): stub\n",oleob,name1,name2); | |
| return OLE_OK; | |
| } | |
| /****************************************************************************** | |
| * OleQueryType [OLECLI32.14] | |
| */ | |
| OLESTATUS WINAPI OleQueryType(_LPOLEOBJECT oleob,LONG*xlong) { | |
| FIXME("(%p,%p): stub!\n",oleob,xlong); | |
| if (!oleob) | |
| return 0x10; | |
| TRACE("Calling OLEOBJECT.QueryType (%p) (%p,%p)\n", | |
| oleob->lpvtbl->QueryType,oleob,xlong); | |
| return oleob->lpvtbl->QueryType(oleob,xlong); | |
| } | |
| /****************************************************************************** | |
| * OleCreateFromClip [OLECLI32.12] | |
| */ | |
| OLESTATUS WINAPI OleCreateFromClip( | |
| LPCSTR name,LPOLECLIENT olecli,LHCLIENTDOC hclientdoc,LPCSTR xname, | |
| _LPOLEOBJECT *lpoleob,OLEOPT_RENDER render, OLECLIPFORMAT clipformat | |
| ) { | |
| FIXME("(%s,%p,%08lx,%s,%p,%d,%ld): stub!\n", | |
| name,olecli,hclientdoc,xname,lpoleob,render,clipformat); | |
| /* clipb type, object kreieren entsprechend etc. */ | |
| return OLE_OK; | |
| } |