//-----------------------------------------------------------------------------
//  
//  File: ResBase.H
//  Copyright (C) 1994-1997 Microsoft Corporation
//  All rights reserved.
//  
//
// Purpose: Declares the abstract base class CResObj
//
//-----------------------------------------------------------------------------

#ifndef __RESBASE_H
#define __RESBASE_H

class CResObj : public CObject
{
public:
	virtual BOOL Read(C32File *p32File) = 0;
	virtual BOOL Write(C32File *p32File) = 0;
	virtual BOOL CanReadWrite() = 0;
	virtual BOOL ReadWrite(C32File* pSrcFile, C32File* pTgtFile) = 0;
	virtual BOOL ReadRes32(C32File *p32File) = 0;
	virtual BOOL WriteRes32(C32File *p32File) = 0;
	virtual BOOL ReadRgLocItem(CLocItemPtrArray * pRgLocItem, int iSelIndex) = 0;
	virtual BOOL WriteRgLocItem(CLocItemPtrArray * pRgLocItem, 
		CReporter* pReporter) = 0;
	virtual const void* GetBufferPointer(void) = 0;
	virtual DWORD GetBufferSize(void) = 0;
	virtual void SetBufferSize(DWORD dwSize) = 0;
	virtual void MakeRes32Header(LangId nLangId) = 0;

	virtual CLocItem* GetLocItem() = 0;
	virtual BOOL IsKeepLocItems() = 0;
	virtual void SetKeepLocItems(BOOL fKeep) = 0;
	virtual BOOL GetMnemonics(CMnemonicsMap & mapMnemonics, 
		CReporter* pReporter) = 0;
};


#endif //__RESBASE_H