Mercurial > vba-linux
annotate 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 |
rev | line source |
---|---|
rlm@1 | 1 // RegisterArc.h |
rlm@1 | 2 |
rlm@1 | 3 #ifndef __REGISTERARC_H |
rlm@1 | 4 #define __REGISTERARC_H |
rlm@1 | 5 |
rlm@1 | 6 #include "../Archive/IArchive.h" |
rlm@1 | 7 #include "DeclareArcs.h" |
rlm@1 | 8 |
rlm@1 | 9 typedef IInArchive * (*CreateInArchiveP)(); |
rlm@1 | 10 typedef IOutArchive * (*CreateOutArchiveP)(); |
rlm@1 | 11 |
rlm@1 | 12 struct CArcInfo |
rlm@1 | 13 { |
rlm@1 | 14 const wchar_t *Name; |
rlm@1 | 15 const wchar_t *Ext; |
rlm@1 | 16 const wchar_t *AddExt; |
rlm@1 | 17 Byte ClassId; |
rlm@1 | 18 Byte Signature[16]; |
rlm@1 | 19 int SignatureSize; |
rlm@1 | 20 bool KeepName; |
rlm@1 | 21 CreateInArchiveP CreateInArchive; |
rlm@1 | 22 CreateOutArchiveP CreateOutArchive; |
rlm@1 | 23 }; |
rlm@1 | 24 |
rlm@1 | 25 void RegisterArc(const CArcInfo *arcInfo); |
rlm@1 | 26 |
rlm@1 | 27 #define REGISTER_ARC(x) CRegister##x::CRegister##x() { RegisterArc(&g_ArcInfo); } \ |
rlm@1 | 28 CRegister##x g_RegisterArc##x; |
rlm@1 | 29 |
rlm@1 | 30 #define REGISTER_ARCN(x,n) CRegister##x##n::CRegister##x##n() { RegisterArc(&g_ArcInfo##n); } \ |
rlm@1 | 31 CRegister##x##n g_RegisterArc##n##x; |
rlm@1 | 32 |
rlm@1 | 33 #endif |