/*
 *	OLE2 library
 *
 *	Copyright 1995	Martin von Loewis
 */

/*	At the moment, these are only empty stubs.
 */

#include "windows.h"
#include "ole2.h"
#include "stddebug.h"
#include "debug.h"

/***********************************************************************
 *           OleBuildVersion     [OLE.1]
 */
DWORD OleBuildVersion()
{
	dprintf_ole(stddeb,"OleBuildVersion()\n");
	return (rmm<<16)+rup;
}

/***********************************************************************
 *           OleInitialize       [OLE2.2]
 */
HRESULT OleInitialize(LPVOID reserved)
{
    dprintf_ole(stdnimp,"OleInitialize\n");
	return S_OK;
}

/***********************************************************************
 *           OleUnitialize       [OLE2.3]
 */
void OleUninitialize()
{
	dprintf_ole(stdnimp,"OleUninitialize()\n");
}
