/*    
	OleCli.c	2.4
    	Copyright 1997 Willows Software, Inc. 

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.

You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB.  If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA.


For more information about the Willows Twin Libraries.

	http://www.willows.com	

To send email to the maintainer of the Willows Twin Libraries.

	mailto:twin@willows.com 

 */
#include "windows.h"
#include "windowsx.h"
#include "ole.h"
#include "Log.h"

OLESTATUS WINAPI
OleActivate(LPOLEOBJECT lpObject, UINT iVerb, BOOL fShow, BOOL fTakeFocus,
		HWND hWnd, const RECT *lpBounds)
{
    LOGSTR((LF_STUB, "OleActivate: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleClone(LPOLEOBJECT lpObject, LPOLECLIENT lpClient, LHCLIENTDOC lhClientDoc,
	LPCSTR lpszObjname, LPOLEOBJECT *lplpObject)
{
    LOGSTR((LF_STUB, "OleClone: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleClose(LPOLEOBJECT lpObject)
{
    LOGSTR((LF_STUB, "OleClose: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleCopyFromLink(LPOLEOBJECT lpObject, LPCSTR lpszProtocol,
		LPOLECLIENT lpClient, LHCLIENTDOC lhDoc,
		LPCSTR lpszObjname, LPOLEOBJECT *lplpObject)
{
    LOGSTR((LF_STUB, "OleCopyFromLink: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleCopyToClipboard(LPOLEOBJECT lpObject)
{
    LOGSTR((LF_STUB, "OleCopyToClipboard: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleCreate(LPCSTR lpszProtocol, LPOLECLIENT lpClient, LPCSTR lpszClass,
	LHCLIENTDOC lhDoc, LPCSTR lpszObjname, LPOLEOBJECT *lplpObject,
	OLEOPT_RENDER renderopt, OLECLIPFORMAT cfFormat)
{
    LOGSTR((LF_STUB, "OleCreate: STUB\n"));
    return OLE_ERROR_PROTOCOL;
}

OLESTATUS WINAPI
OleCreateFromClip(LPCSTR lpszProtocol, LPOLECLIENT lpClient,
	LHCLIENTDOC lhDoc, LPCSTR lpszObjname, LPOLEOBJECT *lplpObject,
	OLEOPT_RENDER renderopt, OLECLIPFORMAT cfFormat)
{
    LOGSTR((LF_STUB, "OleCreateFromClip: STUB\n"));
    return OLE_ERROR_PROTOCOL;
}

OLESTATUS WINAPI
OleCreateFromFile(LPCSTR lpszProtocol, LPOLECLIENT lpClient, LPCSTR lpszClass,
	LPCSTR lpszFile, LHCLIENTDOC lhDoc, LPCSTR lpszObjname, LPOLEOBJECT *lplpObject,
	OLEOPT_RENDER renderopt, OLECLIPFORMAT cfFormat)
{
    LOGSTR((LF_STUB, "OleCreateFromFile: STUB\n"));
    return OLE_ERROR_MEMORY;
}

OLESTATUS WINAPI
OleCreateInvisible(LPCSTR lpszProtocol, LPOLECLIENT lpClient, LPCSTR lpszClass,
	LHCLIENTDOC lhDoc, LPCSTR lpszObjname, LPOLEOBJECT *lplpObject,
	OLEOPT_RENDER renderopt, OLECLIPFORMAT cfFormat, BOOL fActivate)
{
    LOGSTR((LF_STUB, "OleCreateInvisible: STUB\n"));
    return OLE_ERROR_PROTOCOL;
}

OLESTATUS WINAPI
OleCreateLinkFromClip(LPCSTR lpszProtocol, LPOLECLIENT lpClient,
	LHCLIENTDOC lhDoc, LPCSTR lpszObjname, LPOLEOBJECT *lplpObject,
	OLEOPT_RENDER renderopt, OLECLIPFORMAT cfFormat)
{
    LOGSTR((LF_STUB, "OleCreateLinkFromClip: STUB\n"));
    return OLE_ERROR_PROTOCOL;
}

OLESTATUS WINAPI
OleCreateLinkFromFile(LPCSTR lpszProtocol, LPOLECLIENT lpClient, LPCSTR lpszClass,
	LPCSTR lpszFile, LPCSTR lpszItem,
	LHCLIENTDOC lhDoc, LPCSTR lpszObjname, LPOLEOBJECT *lplpObject,
	OLEOPT_RENDER renderopt, OLECLIPFORMAT cfFormat)
{
    LOGSTR((LF_STUB, "OleCreateLinkFromFile: STUB\n"));
    return OLE_ERROR_MEMORY;
}

OLESTATUS WINAPI
OleDelete(LPOLEOBJECT lpObject)
{
    LOGSTR((LF_STUB, "OleDelete: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleDraw(LPOLEOBJECT lpObject, HDC hDC, const RECT *lprcBounds,
	const RECT *lprcWBounds, HDC hDCFormat)
{
    LOGSTR((LF_STUB, "OleDraw: STUB\n"));
    return OLE_ERROR_MEMORY;
}

OLECLIPFORMAT WINAPI
OleEnumFormats(LPOLEOBJECT lpObject1, OLECLIPFORMAT cfFormat)
{
    LOGSTR((LF_STUB, "OleEnumFormats: STUB\n"));
    return 0;
}

OLESTATUS WINAPI
OleEnumObjects(LHCLIENTDOC lhDoc, LPOLEOBJECT *lplpObject)
{
    LOGSTR((LF_STUB, "OleEnumObjects: STUB doc %x\n",lhDoc));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleEqual(LPOLEOBJECT lpObject1, LPOLEOBJECT lpObject2)
{
    LOGSTR((LF_STUB, "OleEqual: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleGetData(LPOLEOBJECT lpObject1, OLECLIPFORMAT cfFormat, HANDLE *phData)
{
    LOGSTR((LF_STUB, "OleGetData: STUB\n"));
    return OLE_ERROR_FORMAT;
}

OLESTATUS WINAPI
OleGetLinkUpdateOptions(LPOLEOBJECT lpObject, OLEOPT_UPDATE *lpUpdateOpt)
{
    LOGSTR((LF_STUB, "OleGetLinkUpdateOptions: STUB\n"));
    return OLE_ERROR_MEMORY;
}

OLESTATUS WINAPI
OleLoadFromStream(LPOLESTREAM lpStream, LPCSTR lpszProtocol,
		LPOLECLIENT lpClient, LHCLIENTDOC lhClientDoc,
		LPCSTR lpszObjname, LPOLEOBJECT *lplpObject)
{
    LOGSTR((LF_STUB,
	"OleLoadFromStream: STUB stream %x proto %s cli %x doc %x obj %s\n",
	lpStream,lpszProtocol,lpClient,lhClientDoc,lpszObjname));
    return OLE_ERROR_PROTOCOL;
}

OLESTATUS WINAPI
OleObjectConvert(LPOLEOBJECT lpObject, LPCSTR lpszProtocol,
		LPOLECLIENT lpClient, LHCLIENTDOC lhClientDoc,
		LPCSTR lpszObjname, LPOLEOBJECT *lplpObject)
{
    LOGSTR((LF_STUB,"OleObjectConvert: STUB\n"));
    return OLE_ERROR_MEMORY;
}

OLESTATUS WINAPI
OleRelease(LPOLEOBJECT lpObject)
{
    LOGSTR((LF_STUB, "OleRelease: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleQueryBounds(LPOLEOBJECT lpObject, RECT *lpBounds)
{
    LOGSTR((LF_STUB, "OleQueryBounds: STUB\n"));
    return OLE_ERROR_OBJECT;
}

DWORD
OleQueryClientVersion(void)
{
    LOGSTR((LF_STUB,"OleQueryClientVersion: STUB\n"));
    return MAKELONG(0x1001,0);
}

OLESTATUS
OleQueryCreateFromClip(LPCSTR lpszProtocol, OLEOPT_RENDER renderopt,
			OLECLIPFORMAT cfFormat)
{
    LOGSTR((LF_STUB,
	"OleQueryCreateFromClip: STUB proto %s renderopts %x cf %x\n",
	lpszProtocol,renderopt,cfFormat));
    return OLE_ERROR_PROTOCOL;
}

OLESTATUS
OleQueryLinkFromClip(LPCSTR lpszProtocol, OLEOPT_RENDER renderopt,
			OLECLIPFORMAT cfFormat)
{
    LOGSTR((LF_STUB,
	"OleQueryLinkFromClip: STUB proto %s renderopts %x cf %x\n",
	lpszProtocol,renderopt,cfFormat));
    return OLE_ERROR_PROTOCOL;
}

OLESTATUS WINAPI
OleQueryName(LPOLEOBJECT lpObject, LPSTR lpszObject, UINT *lpwBuffSize)
{
    LOGSTR((LF_STUB, "OleQueryName: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleQueryOpen(LPOLEOBJECT lpObject)
{
    LOGSTR((LF_STUB, "OleQueryOpen: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleQueryReleaseError(LPOLEOBJECT lpObject)
{
    LOGSTR((LF_STUB, "OleQueryReleaseError: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLE_RELEASE_METHOD WINAPI
OleQueryReleaseMethod(LPOLEOBJECT lpObject)
{
    LOGSTR((LF_STUB, "OleQueryReleaseMethod: STUB\n"));
    return OLE_NONE;
}

OLESTATUS WINAPI
OleQueryReleaseStatus(LPOLEOBJECT lpObject)
{
    LOGSTR((LF_STUB, "OleQueryReleaseStatus: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleQuerySize(LPOLEOBJECT lpObject, LPDWORD lpdwSize)
{
    LOGSTR((LF_STUB, "OleQuerySize: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleQueryType(LPOLEOBJECT lpObject, LPLONG lpType)
{
    LOGSTR((LF_STUB, "OleQuerySize: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleReconnect(LPOLEOBJECT lpObject)
{
    LOGSTR((LF_STUB, "OleReconnect: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS
OleRegisterClientDoc(LPCSTR lpszClass, LPCSTR lpszDoc, LONG reserved,
			LHCLIENTDOC *lplhDoc)
{
    LOGSTR((LF_STUB,"OleRegisterClientDoc: STUB %s %s\n",
	lpszClass,lpszDoc));
    *lplhDoc = 0x1234;
    return OLE_OK;
}

OLESTATUS
OleRename(LPOLEOBJECT lpObject, LPCSTR lpszNewname)
{
    LOGSTR((LF_STUB,"OleRename: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS
OleRenameClientDoc(LHCLIENTDOC lhClientDoc, LPCSTR lpszNewDocname)
{
    LOGSTR((LF_STUB,"OleRenameClientDoc: STUB %x %s\n",
	lhClientDoc,lpszNewDocname));
    return OLE_OK;
}

OLESTATUS WINAPI
OleRequestData(LPOLEOBJECT lpObject, OLECLIPFORMAT cfFormat)
{
    LOGSTR((LF_STUB,"OleRequestData: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS
OleRevertClientDoc(LHCLIENTDOC lhClientDoc)
{
    LOGSTR((LF_STUB,"OleRevertClientDoc: STUB %x\n",lhClientDoc));
    return OLE_OK;
}

OLESTATUS
OleRevokeClientDoc(LHCLIENTDOC lhClientDoc)
{
    LOGSTR((LF_STUB,"OleRevokeClientDoc: STUB %x\n",lhClientDoc));
    return OLE_OK;
}

OLESTATUS
OleSavedClientDoc(LHCLIENTDOC lhClientDoc)
{
    LOGSTR((LF_STUB,"OleSavedClientDoc: STUB %x\n",lhClientDoc));
    return OLE_OK;
}

OLESTATUS
OleSaveToStream(LPOLEOBJECT lpObject, LPOLESTREAM lpStream)
{
    LOGSTR((LF_STUB,"OleSaveToStream: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleSetBounds(LPOLEOBJECT lpObject, const RECT *lpBounds)
{
    LOGSTR((LF_STUB,"OleSetBounds: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleSetColorScheme(LPOLEOBJECT lpObject, const LOGPALETTE *lpPalette)
{
    LOGSTR((LF_STUB,"OleSetColorScheme: STUB\n"));
    return OLE_ERROR_OBJECT;
}

OLESTATUS WINAPI
OleSetData(LPOLEOBJECT lpObject, OLECLIPFORMAT cfFormat, HANDLE hData)
{
    LOGSTR((LF_STUB, "OleSetData: STUB\n"));
    return OLE_ERROR_MEMORY;
}

OLESTATUS WINAPI
OleSetHostNames(LPOLEOBJECT lpObject, LPCSTR lpszClient, LPCSTR lpszClientObj)
{
    LOGSTR((LF_STUB, "OleSetHostNames: STUB\n"));
    return OLE_ERROR_MEMORY;
}

OLESTATUS WINAPI
OleSetLinkUpdateOptions(LPOLEOBJECT lpObject, OLEOPT_UPDATE UpdateOpt)
{
    LOGSTR((LF_STUB, "OleSetLinkUpdateOptions: STUB\n"));
    return OLE_ERROR_MEMORY;
}

OLESTATUS WINAPI
OleSetTargetDevice(LPOLEOBJECT lpObject, HGLOBAL hTargetDevice)
{
    LOGSTR((LF_STUB, "OleSetTargetDevice: STUB\n"));
    return OLE_ERROR_MEMORY;
}

OLESTATUS WINAPI
OleUpdate(LPOLEOBJECT lpObject)
{
    LOGSTR((LF_STUB, "OleUpdate: STUB\n"));
    return OLE_ERROR_OBJECT;
}

