#ifndef DLLDateien_H
#define DLLDateien_H

#include <Text.h>
#include <Array.h>
#include <Critical.h>

using namespace Framework;

struct DLLDatei
{
	Text *name;
	HINSTANCE handle;
	int ref;
};

class DLLDateien
{
private:
	Array< DLLDatei* > *dlls;
	Critical cs;
	int ref;

public:
	// Konstruktor
	DLLDateien();
	// Destruktor
	~DLLDateien();
	// nicht constant
	HINSTANCE ladeDLL( char *name, char *pfad );
	void releaseDLL( char *name );
	// Reference Counting
	DLLDateien *getThis();
	DLLDateien *release();
};

#endif