3 #ifndef __REGISTERARC_H
4 #define __REGISTERARC_H
6 #include "../Archive/IArchive.h"
8 typedef IInArchive * (*CreateInArchiveP)();
9 typedef IOutArchive * (*CreateOutArchiveP)();
15 const wchar_t *AddExt;
20 CreateInArchiveP CreateInArchive;
21 CreateOutArchiveP CreateOutArchive;
24 void RegisterArc(const CArcInfo *arcInfo);
26 #define REGISTER_ARC_NAME(x) CRegister ## x
28 #define REGISTER_ARC_DEC_SIG(x) struct REGISTER_ARC_NAME(x) { \
29 REGISTER_ARC_NAME(x)() { g_ArcInfo.Signature[0]--; RegisterArc(&g_ArcInfo); }}; \
30 static REGISTER_ARC_NAME(x) g_RegisterArc;
32 #define REGISTER_ARC(x) struct REGISTER_ARC_NAME(x) { \
33 REGISTER_ARC_NAME(x)() { RegisterArc(&g_ArcInfo); }}; \
34 static REGISTER_ARC_NAME(x) g_RegisterArc;