#pragma once
#include "vector.h"
#include <list>
#include <string>

// Messages for the ClientContext
class Message
{
public:
	Message(void);
	~Message(void);
	Message * Copy();

	enum Type {
		Unknown,
		Quit,
		InstantMessageNotify,
		GroupMessageNotify,
		Notify,
		KeepHouse
	};

	Vector<std::wstring> str; // a vector of string parameters
	int idType;
	int id; // user, event, location, or group id
	int reason;
	Vector<int> param;
	int result; // message processing result is stored here

	Type type;
	std::wstring description;
	HANDLE NotifyDone;  // set this to a valid handle if you want notification
						// Note: if you set this then a copy will not be made
};
