#ifndef CIMAGE_H
#define CIMAGE_H

#include <windows.h>   // include important windows stuff
#include <windowsx.h> 
#include <mmsystem.h>
#include <iostream.h> // include important C/C++ stuff
#include <conio.h>
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <string.h>
#include <stdarg.h>
#include <stdio.h> 
#include <math.h>
#include <io.h>
#include <fcntl.h>
#include "STRINGC.h"

#define BITMAP_ID            0x4D42 // universal id for a bitmap

#include "d3d8.h"
#include "d3dx8.h"




class CImage
{

public:

	virtual ~CImage(){ };

	int getWidth(){ return Width; }
	int getHeight(){ return Height; }	
	void setWidth(int w){ Width=w; }
	void setHeight(int h){ Height=h; }
	void getWidthHeight(STRINGC file);

	virtual VOID* getScale()=0;
	virtual VOID* getCenter()=0;
	virtual void setScale(float s)=0;
	virtual void setScale(float w, float h)=0;
	virtual void setCenter(int x, int y)=0;

	virtual float getRotation()=0;
	virtual void rotate(int deg)=0;
	
	virtual void setTransparency(int pct)=0;	
	virtual void mirror()=0;
	
	//I dont like this
	virtual DWORD getColorMod(){ return colorMod; }
	void setColorMod(DWORD c){ colorMod |= 0x00FFFFFF; colorMod = colorMod & c; }



	STRINGC FileName;

	

protected:

	
	//stuff for loading Bitmap		
	BITMAPFILEHEADER	bitmapfileheader;					//Simple header
	BITMAPINFOHEADER	bitmapinfoheader;					//INfo like heigth, width, bpp...

	int Width, Height;
	DWORD colorMod;
	
	



};




#endif