21 #if !defined(ZIPARCHIVE_ZIPEXTRAFIELD_DOT_H)
22 #define ZIPARCHIVE_ZIPEXTRAFIELD_DOT_H
28 #include "ZipExport.h"
30 #include "ZipCollections.h"
33 #define ZIP_EXTRA_PKZIP 0x0001
35 #define ZIP_EXTRA_NTFS 0x000A
37 #define ZIP_EXTRA_ZARCH_NAME 0x5A4C // ZL - ZipArchive Library
39 #define ZIP_EXTRA_ZARCH_SEEK 0x5A4D
41 #define ZIP_EXTRA_WINZIP_AES 0x9901
43 #define ZIP_EXTRA_UNICODE_PATH 0x7075
44 #define ZIP_EXTRA_UNICODE_COMMENT 0x6375
47 #if (_MSC_VER > 1000) && (defined ZIP_HAS_DLL)
48 #pragma warning( disable : 4251 ) // needs to have dll-interface to be used by clients of class
74 for (
int i = 0; i < field.
GetCount(); i++)
85 int GetTotalSize()
const;
95 return GetTotalSize() <= (int)USHRT_MAX;
106 return (
int)m_aData.GetSize();
120 return m_aData.GetAt(index);
129 void RemoveAt(
int index)
131 delete (GetAt(index));
132 m_aData.RemoveAt(index);
146 return (
int)m_aData.Add(pExtra);
168 return CreateNew(headerID, temp, bAppend);
196 idx = (int)m_aData.Add(pData);
200 m_aData.InsertAt(0, pData);
209 void RemoveInternalHeaders();
215 void RemoveInternalLocalHeaders();
223 void Remove(WORD headerID);
237 return Lookup(headerID, temp);
249 bool HasHeader(WORD headerID)
251 return Lookup(headerID) != NULL;
293 static bool HasSize(WORD headerID)
295 ZIP_ARRAY_SIZE_TYPE size = m_aNoSizeExtraHeadersID.GetSize();
296 for (ZIP_ARRAY_SIZE_TYPE i = 0; i < size; i++)
298 if (m_aNoSizeExtraHeadersID.GetAt(i) == headerID)
311 for (
int i = 0; i < GetCount(); i++)
336 void Write(
char* buffer)
const;
340 CZipArray<CZipExtraData*> m_aData;
344 #endif // !defined(ZIPARCHIVE_ZIPEXTRAFIELD_DOT_H)