/****************************************************************************************************

		IShowBackBufferWindow.h
		Copyright: (c) 2001 Eovia Corp. All rights reserved.

		Author:	Arnaud
		Date:	3/18/2002

****************************************************************************************************/

#ifndef __IShowBackBufferWindow__
#define __IShowBackBufferWindow__

#if CP_PRAGMA_ONCE
#pragma once
#endif


#include "MCCompObj.h"
#include "MCPlateformTypes.h"

class TMCRect;

MCDEFINE_GUID(IID_IShowBackBufferWindow, 0xaba36e5c, 0xd9c6, 0x4195, 0xaf, 0x3, 0x79, 0xc1, 0x3c, 0xf7, 0x13, 0x11);


struct IShowBackBufferWindow : public IMCUnknown
{
	virtual SystWindowPtr	MCCOMAPI GetSystemWindowPtr				() = 0;
	virtual void 			MCCOMAPI SetBoundsOnScreen				(const TMCRect& inBounds) = 0;
	virtual void 			MCCOMAPI GetBoundsOnScreen				(TMCRect& outBounds) = 0;
	virtual void 			MCCOMAPI CaptureBackBuffer				() = 0;
	virtual void 			MCCOMAPI Show							(boolean beVisible, boolean doActivate) = 0;
	virtual void 			MCCOMAPI SendBehindApplication			() = 0;
	virtual void 			MCCOMAPI SendBehind						(SystWindowPtr window) = 0;
	virtual void 			MCCOMAPI BringToFront					() = 0;
	virtual void 			MCCOMAPI ForceAppBackBufferBlit			(const TMCRect& screenUpdateBounds) = 0;
	virtual boolean			MCCOMAPI HasValidRect					() = 0;
	virtual TMCPlatformWindow*	MCCOMAPI GetPlatformWindow			() = 0;
};

#endif