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

		IValidateChannel.h

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

		IValidateChannel Definition

		Author:	Mathieu
		Date: 03/19/99

		Revision History

		when		who			what & why
		==========	==========	======================================================
		12/10/99	Nba			Added parameter to validate so that it can return the locked tile
		06/01/99	del			Moved from IShValidateChannel and removed unecessary parameters
		04/23/99	Nba			changed Validate to take tile + subrect instead

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

#ifndef __IValidateChannel__
#define __IValidateChannel__

#include "MCCompObj.h"
#include "MCRect.h"
#include "LayerTypes.h"

//************************ Globally Unique Ids *******************************

MCDEFINE_GUID(IID_IValidateChannel, 0x8a8b1150, 0xde67, 0x11d2, 0xa4, 0xd2, 0x0, 0x60, 0x97, 0x3d, 0x52, 0x67);

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

struct IShRasterLayer;
struct IShChannel;
class TChannelDataBucket;


/*****************************************************************************\
*                                                                             *
*  IValidateChannel                                                           *
*                                                                             *
\*****************************************************************************/

struct IValidateChannel : public IMCUnknown
{
	virtual MCCOMErr Validate(IShRasterLayer* layer, uint32 tileIndex, const TMCRect& inTile, IShChannel* channel, ETileAccess newTileAccess, const TChannelDataBucket**outDB) = 0;
};

#endif // __IValidateChannel__