view src/win32/7zip/7z/CPP/7zip/Common/RegisterArc.h @ 1:f9f4f1b99eed

importing src directory
author Robert McIntyre <rlm@mit.edu>
date Sat, 03 Mar 2012 10:31:27 -0600
parents
children
line wrap: on
line source
1 // RegisterArc.h
3 #ifndef __REGISTERARC_H
4 #define __REGISTERARC_H
6 #include "../Archive/IArchive.h"
7 #include "DeclareArcs.h"
9 typedef IInArchive * (*CreateInArchiveP)();
10 typedef IOutArchive * (*CreateOutArchiveP)();
12 struct CArcInfo
13 {
14 const wchar_t *Name;
15 const wchar_t *Ext;
16 const wchar_t *AddExt;
17 Byte ClassId;
18 Byte Signature[16];
19 int SignatureSize;
20 bool KeepName;
21 CreateInArchiveP CreateInArchive;
22 CreateOutArchiveP CreateOutArchive;
23 };
25 void RegisterArc(const CArcInfo *arcInfo);
27 #define REGISTER_ARC(x) CRegister##x::CRegister##x() { RegisterArc(&g_ArcInfo); } \
28 CRegister##x g_RegisterArc##x;
30 #define REGISTER_ARCN(x,n) CRegister##x##n::CRegister##x##n() { RegisterArc(&g_ArcInfo##n); } \
31 CRegister##x##n g_RegisterArc##n##x;
33 #endif