使用soui开发的mbc,只支持windows版本
w1146869587
2022-01-24 479b1995ef435713c2cf4f0da8de3a6af6c30922
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
////////////////////////////////////////////////////////////////////////////////
// This source file is part of the ZipArchive library source distribution and
// is Copyrighted 2000 - 2011 by Artpol Software - Tadeusz Dracz
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// 
// For the licensing details refer to the License.txt file.
//
// Web Site: http://www.artpol-software.com
////////////////////////////////////////////////////////////////////////////////
 
 
/**
* \file ZipCompatibility.h
* ZipCompatibility namespace declaration.
*
*/
 
#if !defined(ZIPARCHIVE_ZIPCOMPATIBILITY_DOT_H)
#define ZIPARCHIVE_ZIPCOMPATIBILITY_DOT_H
 
#if _MSC_VER > 1000
#pragma once
#endif
 
class CZipAutoBuffer;
class CZipFileHeader;
 
#include "ZipString.h"
#include "ZipPlatform.h"
/**
    Includes functions that provide support for the proper conversion of attributes 
    and filenames between different system platforms.
*/
namespace ZipCompatibility  
{
    /**
        The codes of the compatibility of the file attribute information.
 
        \see
            CZipArchive::GetSystemCompatibility
        \see
            CZipFileHeader::GetSystemCompatibility
        \see
            ZipPlatform::GetSystemID
    */
    enum ZipPlatforms
    {           
       zcDosFat,        ///< MS-DOS and OS/2 (FAT / VFAT / FAT32 file systems)
       zcAmiga,            ///< Amiga 
       zcVaxVms,        ///< VAX/VMS
       zcUnix,            ///< Unix / Linux
       zcVmCms,            ///< VM/CMS
       zcAtari,            ///< Atari ST
       zcOs2Hpfs,        ///< OS/2 H.P.F.S.
       zcMacintosh,        ///< Macintosh 
       zcZsystem,        ///< Z-System
       zcCpm,            ///< CP/M 
       zcTops20,        ///< TOPS-20
       zcNtfs,            ///< Windows NTFS
       zcQDos,            ///< SMS/QDOS
       zcAcorn,            ///< Acorn RISC OS
       ZcMvs,            ///< MVS
       zcVfat,            ///< Win32 VFAT
       zcAtheOS,        ///< AtheOS
       zcBeOS,            ///< BeOS
       zcTandem,        ///< Tandem NSK
       zcTheos,            ///< Theos
       zcMacDarwin,        ///< Mac OS/X (Darwin)
       zcLast            ///< For the internal use
    };
 
    /**
        Platform independent attributes.
    */
    enum InternalFileAttributes
    {
        attROnly    = 0x01,    ///< Read-only attribute.
        attHidd        = 0x02,    ///< Hidden attribute.
        attSys        = 0x04,    ///< System attribute.
        attDir        = 0x10,    ///< Directory attribute.
        attArch        = 0x20    ///< Archived attribute.
    };
 
    ZIP_API DWORD GetAsInternalAttributes(DWORD uAttr, int iFromSystem);
 
    /**
        Checks whether the system with the given code is supported by the ZipArchive Library.
 
        \param iCode
            One of the #ZipPlatforms values to check.
 
        \return
            \c true, if supported; \c false otherwise.
    */
    ZIP_API bool IsPlatformSupported(int iCode);
 
    /**
        Converts the system attributes between different system platforms.
 
        \param uAttr
            The attributes to convert.
 
        \param iFromSystem
            The system code to convert \a uAttr from.
 
        \param iToSystem
            The system code to convert \a uAttr to.
 
        \return
            The converted attributes.
 
        
        \see
            ZipPlatforms
    */
    ZIP_API DWORD ConvertToSystem(DWORD uAttr, int iFromSystem, int iToSystem);
 
    /**
        Converts the string stored in \a buffer using the given code page.
 
        \param buffer
            The buffer to convert the string from.
 
        \param szString
            The string to receive the result.
 
        \param uCodePage
            The code page used in conversion.
    */
    ZIP_API void ConvertBufferToString(CZipString& szString, const CZipAutoBuffer& buffer, UINT uCodePage);
    
    /**
        Converts the \a lpszString using the given code page.
 
        \param lpszString
            The string to convert from.
 
        \param buffer
            The buffer to receive the result.
 
        \param uCodePage
            The code page used in conversion.
    */
    ZIP_API void ConvertStringToBuffer(LPCTSTR lpszString, CZipAutoBuffer& buffer, UINT uCodePage);
 
    /**
        Changes the path separators from slash to backslash or vice-versa in \a szFileName.
 
        \param szFileName
            The filename to have the path separators changed.
 
        \param    bReplaceSlash
            If \c true, changes slash to backslash. If \c false, changes backslash to slash.
    */
    ZIP_API void SlashBackslashChg(CZipString& szFileName, bool bReplaceSlash);
 
    /**
        Normalizes path separators to the default character used by the current platform.
 
        \param szFileName
            The filename to have the path separators normalized.
    */
    ZIP_API void NormalizePathSeparators(CZipString& szFileName);
 
    /**
        Returns the default filename code page for the given platform.
 
        \param iPlatform
            One of the ZipCompatibility::ZipPlatforms values.    
 
        \return 
            The default filename code page.
    */
    ZIP_API UINT GetDefaultNameCodePage(int iPlatform);
 
    
    /**
        Returns the default filename code page for the current platform.
 
        \return 
            The default filename code page.
    */
    ZIP_API UINT GetDefaultNameCodePage();
 
    /**
        Returns the default comment code page.
 
        \param iPlatform
            One of the ZipCompatibility::ZipPlatforms values.
 
        \return 
            The default comment code page.
    */
    ZIP_API UINT GetDefaultCommentCodePage(int iPlatform);
 
    /**
        Returns the default password code page.
 
        \param iPlatform
            One of the ZipCompatibility::ZipPlatforms values.
 
        \return 
            The default password code page.
    */
    ZIP_API UINT GetDefaultPasswordCodePage(int iPlatform);
 
    /**
        Returns the default comment code page for the current platform.
 
        \return 
            The default comment code page.
    */
    ZIP_API UINT GetDefaultCommentCodePage();
};
 
#endif // !defined(ZIPARCHIVE_ZIPCOMPATIBILITY_DOT_H)