#ifndef _ERRORS_H_ #define _ERRORS_H_ #include // for wchar_t class PSERROR { public: int magic; // = 0x45725221, so the exception handler can recognise // that it's a PSERROR and not some other random object. int code; // unique (but arbitrary) code, for translation tables etc }; #define ERROR_GROUP(a,b) class a##_##b : public a {} #define ERROR_TYPE(a,b) class a##_##b : public a { public: a##_##b(); } const wchar_t* GetErrorString(int code); #endif