0000: 23 69 6e 63 6c 75 64 65 20 22 73 74 64 61 66 78 #include "stdafx
0010: 2e 68 22 0d 0a 23 69 6e 63 6c 75 64 65 20 22 72 .h"..#include "r
0020: 73 72 63 2f 72 65 73 6f 75 72 63 65 2e 68 22 0d src/resource.h".
0030: 0a 23 69 6e 63 6c 75 64 65 20 22 6b 69 6c 69 62 .#include "kilib
0040: 2f 6b 69 6c 69 62 2e 68 22 0d 0a 23 69 6e 63 6c /kilib.h"..#incl
0050: 75 64 65 20 22 4f 70 65 6e 53 61 76 65 44 6c 67 ude "OpenSaveDlg
0060: 2e 68 22 0d 0a 75 73 69 6e 67 20 6e 61 6d 65 73 .h"..using names
0070: 70 61 63 65 20 6b 69 3b 0d 0a 0d 0a 0d 0a 0d 0a pace ki;........
0080: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d //--------------
0090: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
00a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
00b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
00c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 95 ----------..// .
00d0: b6 8e 9a 83 52 81 5b 83 68 83 8a 83 58 83 67 0d ....R.[.h...X.g.
00e0: 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//-------------
00f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0100: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0110: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0120: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 43 -----------....C
0130: 68 61 72 53 65 74 4c 69 73 74 3a 3a 43 68 61 72 harSetList::Char
0140: 53 65 74 4c 69 73 74 28 29 0d 0a 09 3a 20 6c 69 SetList()...: li
0150: 73 74 5f 28 20 33 30 20 29 0d 0a 7b 0d 0a 09 73 st_( 30 )..{...s
0160: 74 61 74 69 63 20 63 6f 6e 73 74 20 54 43 48 41 tatic const TCHA
0170: 52 2a 20 63 6f 6e 73 74 20 6c 6e 6d 4a 70 5b 5d R* const lnmJp[]
0180: 20 3d 20 7b 0d 0a 09 09 54 45 58 54 28 22 8e a9 = {....TEXT("..
0190: 93 ae 94 bb 92 e8 22 29 2c 0d 0a 09 09 54 45 58 ......"),....TEX
01a0: 54 28 22 93 fa 96 7b 8c ea 28 53 68 69 66 74 4a T("...{..(ShiftJ
01b0: 49 53 29 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 IS)"),....TEXT("
01c0: 93 fa 96 7b 8c ea 28 45 55 43 29 22 29 2c 0d 0a ...{..(EUC)"),..
01d0: 09 09 54 45 58 54 28 22 93 fa 96 7b 8c ea 28 49 ..TEXT("...{..(I
01e0: 53 4f 2d 32 30 32 32 2d 4a 50 29 22 29 2c 0d 0a SO-2022-JP)"),..
01f0: 09 09 54 45 58 54 28 22 55 54 46 2d 35 22 29 2c ..TEXT("UTF-5"),
0200: 0d 0a 09 09 54 45 58 54 28 22 55 54 46 2d 37 22 ....TEXT("UTF-7"
0210: 29 2c 0d 0a 09 09 54 45 58 54 28 22 55 54 46 2d ),....TEXT("UTF-
0220: 38 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 55 54 8"),....TEXT("UT
0230: 46 2d 38 4e 22 29 2c 0d 0a 09 09 54 45 58 54 28 F-8N"),....TEXT(
0240: 22 55 54 46 2d 31 36 42 45 28 42 4f 4d 29 22 29 "UTF-16BE(BOM)")
0250: 2c 0d 0a 09 09 54 45 58 54 28 22 55 54 46 2d 31 ,....TEXT("UTF-1
0260: 36 4c 45 28 42 4f 4d 29 22 29 2c 0d 0a 09 09 54 6LE(BOM)"),....T
0270: 45 58 54 28 22 55 54 46 2d 31 36 42 45 22 29 2c EXT("UTF-16BE"),
0280: 0d 0a 09 09 54 45 58 54 28 22 55 54 46 2d 31 36 ....TEXT("UTF-16
0290: 4c 45 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 55 LE"),....TEXT("U
02a0: 54 46 2d 33 32 42 45 28 42 4f 4d 29 22 29 2c 0d TF-32BE(BOM)"),.
02b0: 0a 09 09 54 45 58 54 28 22 55 54 46 2d 33 32 4c ...TEXT("UTF-32L
02c0: 45 28 42 4f 4d 29 22 29 2c 0d 0a 09 09 54 45 58 E(BOM)"),....TEX
02d0: 54 28 22 55 54 46 2d 33 32 42 45 22 29 2c 0d 0a T("UTF-32BE"),..
02e0: 09 09 54 45 58 54 28 22 55 54 46 2d 33 32 4c 45 ..TEXT("UTF-32LE
02f0: 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 89 a2 95 "),....TEXT("...
0300: c4 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 92 86 ."),....TEXT("..
0310: 89 a2 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 8a .."),....TEXT(".
0320: d8 8d 91 8c ea 28 45 55 43 2d 4b 52 29 22 29 2c .....(EUC-KR)"),
0330: 0d 0a 09 09 54 45 58 54 28 22 8a d8 8d 91 8c ea ....TEXT("......
0340: 28 49 53 4f 2d 32 30 32 32 2d 4b 52 29 22 29 2c (ISO-2022-KR)"),
0350: 0d 0a 09 09 54 45 58 54 28 22 8a d8 8d 91 8c ea ....TEXT("......
0360: 28 4a 6f 68 61 62 29 22 29 2c 0d 0a 09 09 54 45 (Johab)"),....TE
0370: 58 54 28 22 92 86 8d 91 8c ea 28 47 42 32 33 31 XT("......(GB231
0380: 32 29 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 92 2)"),....TEXT(".
0390: 86 8d 91 8c ea 28 49 53 4f 2d 32 30 32 32 2d 43 .....(ISO-2022-C
03a0: 4e 29 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 92 N)"),....TEXT(".
03b0: 86 8d 91 8c ea 28 48 5a 29 22 29 2c 0d 0a 09 09 .....(HZ)"),....
03c0: 54 45 58 54 28 22 92 86 8d 91 8c ea 28 42 69 67 TEXT("......(Big
03d0: 35 29 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 83 5)"),....TEXT(".
03e0: 4c 83 8a 83 8b 8c ea 28 57 69 6e 64 6f 77 73 29 L......(Windows)
03f0: 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 83 4c 83 "),....TEXT(".L.
0400: 8a 83 8b 8c ea 28 4b 4f 49 38 2d 52 29 22 29 2c .....(KOI8-R)"),
0410: 0d 0a 09 09 54 45 58 54 28 22 83 4c 83 8a 83 8b ....TEXT(".L....
0420: 8c ea 28 4b 4f 49 38 2d 55 29 22 29 2c 0d 0a 09 ..(KOI8-U)"),...
0430: 09 54 45 58 54 28 22 83 5e 83 43 8c ea 22 29 2c .TEXT(".^.C.."),
0440: 0d 0a 09 09 54 45 58 54 28 22 83 67 83 8b 83 52 ....TEXT(".g...R
0450: 8c ea 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 83 .."),....TEXT(".
0460: 6f 83 8b 83 67 8c ea 22 29 2c 0d 0a 09 09 54 45 o...g.."),....TE
0470: 58 54 28 22 83 78 83 67 83 69 83 80 8c ea 22 29 XT(".x.g.i....")
0480: 2c 0d 0a 09 09 54 45 58 54 28 22 83 4d 83 8a 83 ,....TEXT(".M...
0490: 56 83 83 8c ea 22 29 2c 0d 0a 09 09 54 45 58 54 V...."),....TEXT
04a0: 28 22 4d 53 44 4f 53 28 75 73 29 22 29 0d 0a 09 ("MSDOS(us)")...
04b0: 7d 3b 0d 0a 09 73 74 61 74 69 63 20 63 6f 6e 73 };...static cons
04c0: 74 20 54 43 48 41 52 2a 20 63 6f 6e 73 74 20 6c t TCHAR* const l
04d0: 6e 6d 45 6e 5b 5d 20 3d 20 7b 0d 0a 09 09 54 45 nmEn[] = {....TE
04e0: 58 54 28 22 41 75 74 6f 44 65 74 65 63 74 22 29 XT("AutoDetect")
04f0: 2c 0d 0a 09 09 54 45 58 54 28 22 4a 61 70 61 6e ,....TEXT("Japan
0500: 65 73 65 28 53 68 69 66 74 4a 49 53 29 22 29 2c ese(ShiftJIS)"),
0510: 0d 0a 09 09 54 45 58 54 28 22 4a 61 70 61 6e 65 ....TEXT("Japane
0520: 73 65 28 45 55 43 29 22 29 2c 0d 0a 09 09 54 45 se(EUC)"),....TE
0530: 58 54 28 22 4a 61 70 61 6e 65 73 65 28 49 53 4f XT("Japanese(ISO
0540: 2d 32 30 32 32 2d 4a 50 29 22 29 2c 0d 0a 09 09 -2022-JP)"),....
0550: 54 45 58 54 28 22 55 54 46 2d 35 22 29 2c 0d 0a TEXT("UTF-5"),..
0560: 09 09 54 45 58 54 28 22 55 54 46 2d 37 22 29 2c ..TEXT("UTF-7"),
0570: 0d 0a 09 09 54 45 58 54 28 22 55 54 46 2d 38 22 ....TEXT("UTF-8"
0580: 29 2c 0d 0a 09 09 54 45 58 54 28 22 55 54 46 2d ),....TEXT("UTF-
0590: 38 4e 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 55 8N"),....TEXT("U
05a0: 54 46 2d 31 36 42 45 28 42 4f 4d 29 22 29 2c 0d TF-16BE(BOM)"),.
05b0: 0a 09 09 54 45 58 54 28 22 55 54 46 2d 31 36 4c ...TEXT("UTF-16L
05c0: 45 28 42 4f 4d 29 22 29 2c 0d 0a 09 09 54 45 58 E(BOM)"),....TEX
05d0: 54 28 22 55 54 46 2d 31 36 42 45 22 29 2c 0d 0a T("UTF-16BE"),..
05e0: 09 09 54 45 58 54 28 22 55 54 46 2d 31 36 4c 45 ..TEXT("UTF-16LE
05f0: 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 55 54 46 "),....TEXT("UTF
0600: 2d 33 32 42 45 28 42 4f 4d 29 22 29 2c 0d 0a 09 -32BE(BOM)"),...
0610: 09 54 45 58 54 28 22 55 54 46 2d 33 32 4c 45 28 .TEXT("UTF-32LE(
0620: 42 4f 4d 29 22 29 2c 0d 0a 09 09 54 45 58 54 28 BOM)"),....TEXT(
0630: 22 55 54 46 2d 33 32 42 45 22 29 2c 0d 0a 09 09 "UTF-32BE"),....
0640: 54 45 58 54 28 22 55 54 46 2d 33 32 4c 45 22 29 TEXT("UTF-32LE")
0650: 2c 0d 0a 09 09 54 45 58 54 28 22 4c 61 74 69 6e ,....TEXT("Latin
0660: 2d 31 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 4c -1"),....TEXT("L
0670: 61 74 69 6e 2d 32 22 29 2c 0d 0a 09 09 54 45 58 atin-2"),....TEX
0680: 54 28 22 4b 6f 72 65 61 6e 28 45 55 43 2d 4b 52 T("Korean(EUC-KR
0690: 29 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 4b 6f )"),....TEXT("Ko
06a0: 72 65 61 6e 28 49 53 4f 2d 32 30 32 32 2d 4b 52 rean(ISO-2022-KR
06b0: 29 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 4b 6f )"),....TEXT("Ko
06c0: 72 65 61 6e 28 4a 6f 68 61 62 29 22 29 2c 0d 0a rean(Johab)"),..
06d0: 09 09 54 45 58 54 28 22 43 68 69 6e 65 73 65 28 ..TEXT("Chinese(
06e0: 47 42 32 33 31 32 29 22 29 2c 0d 0a 09 09 54 45 GB2312)"),....TE
06f0: 58 54 28 22 43 68 69 6e 65 73 65 28 49 53 4f 2d XT("Chinese(ISO-
0700: 32 30 32 32 2d 43 4e 29 22 29 2c 0d 0a 09 09 54 2022-CN)"),....T
0710: 45 58 54 28 22 43 68 69 6e 65 73 65 28 48 5a 29 EXT("Chinese(HZ)
0720: 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 43 68 69 "),....TEXT("Chi
0730: 6e 65 73 65 28 42 69 67 35 29 22 29 2c 0d 0a 09 nese(Big5)"),...
0740: 09 54 45 58 54 28 22 43 79 72 69 6c 6c 69 63 28 .TEXT("Cyrillic(
0750: 57 69 6e 64 6f 77 73 29 22 29 2c 0d 0a 09 09 54 Windows)"),....T
0760: 45 58 54 28 22 43 79 72 69 6c 6c 69 63 28 4b 4f EXT("Cyrillic(KO
0770: 49 38 2d 52 29 22 29 2c 0d 0a 09 09 54 45 58 54 I8-R)"),....TEXT
0780: 28 22 43 79 72 69 6c 6c 69 63 28 4b 4f 49 38 2d ("Cyrillic(KOI8-
0790: 55 29 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 54 U)"),....TEXT("T
07a0: 68 61 69 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 hai"),....TEXT("
07b0: 54 75 72 6b 69 73 68 22 29 2c 0d 0a 09 09 54 45 Turkish"),....TE
07c0: 58 54 28 22 42 61 6c 74 69 63 22 29 2c 0d 0a 09 XT("Baltic"),...
07d0: 09 54 45 58 54 28 22 56 69 65 74 6e 61 6d 65 73 .TEXT("Vietnames
07e0: 65 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 47 72 e"),....TEXT("Gr
07f0: 65 65 6b 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 eek"),....TEXT("
0800: 4d 53 44 4f 53 28 75 73 29 22 29 0d 0a 09 7d 3b MSDOS(us)")...};
0810: 0d 0a 09 73 74 61 74 69 63 20 63 6f 6e 73 74 20 ...static const
0820: 54 43 48 41 52 2a 20 63 6f 6e 73 74 20 73 6e 6d TCHAR* const snm
0830: 5b 5d 20 3d 20 7b 0d 0a 09 09 54 45 58 54 28 22 [] = {....TEXT("
0840: 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 53 4a 49 "),....TEXT("SJI
0850: 53 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 45 55 S"),....TEXT("EU
0860: 43 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 4a 49 C"),....TEXT("JI
0870: 53 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 55 54 S"),....TEXT("UT
0880: 46 35 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 55 F5"),....TEXT("U
0890: 54 46 37 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 TF7"),....TEXT("
08a0: 55 54 46 38 22 29 2c 0d 0a 09 09 54 45 58 54 28 UTF8"),....TEXT(
08b0: 22 55 54 46 38 22 29 2c 0d 0a 09 09 54 45 58 54 "UTF8"),....TEXT
08c0: 28 22 55 31 36 42 22 29 2c 0d 0a 09 09 54 45 58 ("U16B"),....TEX
08d0: 54 28 22 55 31 36 4c 22 29 2c 0d 0a 09 09 54 45 T("U16L"),....TE
08e0: 58 54 28 22 55 31 36 42 22 29 2c 0d 0a 09 09 54 XT("U16B"),....T
08f0: 45 58 54 28 22 55 31 36 4c 22 29 2c 0d 0a 09 09 EXT("U16L"),....
0900: 54 45 58 54 28 22 55 33 32 42 22 29 2c 0d 0a 09 TEXT("U32B"),...
0910: 09 54 45 58 54 28 22 55 33 32 4c 22 29 2c 0d 0a .TEXT("U32L"),..
0920: 09 09 54 45 58 54 28 22 55 33 32 42 22 29 2c 0d ..TEXT("U32B"),.
0930: 0a 09 09 54 45 58 54 28 22 55 33 32 4c 22 29 2c ...TEXT("U32L"),
0940: 0d 0a 09 09 54 45 58 54 28 22 4c 54 4e 31 22 29 ....TEXT("LTN1")
0950: 2c 0d 0a 09 09 54 45 58 54 28 22 4c 54 4e 32 22 ,....TEXT("LTN2"
0960: 29 2c 0d 0a 09 09 54 45 58 54 28 22 55 48 43 22 ),....TEXT("UHC"
0970: 29 2c 0d 0a 09 09 54 45 58 54 28 22 49 32 4b 52 ),....TEXT("I2KR
0980: 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 4a 68 62 "),....TEXT("Jhb
0990: 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 47 42 4b "),....TEXT("GBK
09a0: 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 49 32 43 "),....TEXT("I2C
09b0: 4e 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 48 5a N"),....TEXT("HZ
09c0: 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 42 49 47 "),....TEXT("BIG
09d0: 35 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 43 59 5"),....TEXT("CY
09e0: 52 4c 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 4b RL"),....TEXT("K
09f0: 4f 38 52 22 29 2c 0d 0a 09 09 54 45 58 54 28 22 O8R"),....TEXT("
0a00: 4b 4f 38 55 22 29 2c 0d 0a 09 09 54 45 58 54 28 KO8U"),....TEXT(
0a10: 22 54 48 41 49 22 29 2c 0d 0a 09 09 54 45 58 54 "THAI"),....TEXT
0a20: 28 22 54 52 4b 22 29 2c 0d 0a 09 09 54 45 58 54 ("TRK"),....TEXT
0a30: 28 22 42 41 4c 54 22 29 2c 0d 0a 09 09 54 45 58 ("BALT"),....TEX
0a40: 54 28 22 56 54 4e 4d 22 29 2c 0d 0a 09 09 54 45 T("VTNM"),....TE
0a50: 58 54 28 22 47 52 4b 22 29 2c 0d 0a 09 09 54 45 XT("GRK"),....TE
0a60: 58 54 28 22 44 4f 53 22 29 0d 0a 09 7d 3b 0d 0a XT("DOS")...};..
0a70: 0d 0a 09 2f 2f 20 93 fa 96 7b 8c ea 8a c2 8b ab ...// ...{......
0a80: 82 c8 82 e7 93 fa 96 7b 8c ea 95 5c 8e a6 82 f0 .......{...\....
0a90: 91 49 82 d4 0d 0a 09 63 6f 6e 73 74 20 54 43 48 .I.....const TCH
0aa0: 41 52 2a 20 63 6f 6e 73 74 20 2a 20 6c 6e 6d 20 AR* const * lnm
0ab0: 3d 20 28 3a 3a 47 65 74 41 43 50 28 29 3d 3d 39 = (::GetACP()==9
0ac0: 33 32 20 3f 20 6c 6e 6d 4a 70 20 3a 20 6c 6e 6d 32 ? lnmJp : lnm
0ad0: 45 6e 29 3b 0d 0a 0d 0a 09 2f 2f 20 82 a2 82 bf En);.....// ....
0ae0: 82 a2 82 bf 8f 91 82 ad 82 cc 96 ca 93 7c 82 c8 .............|..
0af0: 82 cc 82 c5 92 5a 8f 6b 95 5c 8b 4c 28 5e 5e 3b .....Z.k.\.L(^^;
0b00: 0d 0a 09 43 73 49 6e 66 6f 20 63 73 3b 0d 0a 09 ...CsInfo cs;...
0b10: 23 64 65 66 69 6e 65 20 45 6e 72 6f 6c 6c 28 5f #define Enroll(_
0b20: 69 64 2c 5f 6e 6d 29 20 20 20 63 73 2e 49 44 3d id,_nm) cs.ID=
0b30: 5f 69 64 2c 20 20 20 20 20 20 20 20 20 20 20 20 _id,
0b40: 20 5c 0d 0a 09 09 63 73 2e 6c 6f 6e 67 4e 61 6d \....cs.longNam
0b50: 65 3d 6c 6e 6d 5b 5f 6e 6d 5d 2c 20 63 73 2e 73 e=lnm[_nm], cs.s
0b60: 68 6f 72 74 4e 61 6d 65 3d 73 6e 6d 5b 5f 6e 6d hortName=snm[_nm
0b70: 5d 2c 20 5c 0d 0a 09 09 63 73 2e 74 79 70 65 3d ], \....cs.type=
0b80: 4c 4f 41 44 7c 53 41 56 45 2c 20 20 20 20 6c 69 LOAD|SAVE, li
0b90: 73 74 5f 2e 41 64 64 28 20 63 73 20 29 0d 0a 09 st_.Add( cs )...
0ba0: 23 64 65 66 69 6e 65 20 45 6e 72 6f 6c 6c 53 28 #define EnrollS(
0bb0: 5f 69 64 2c 5f 6e 6d 29 20 20 63 73 2e 49 44 3d _id,_nm) cs.ID=
0bc0: 5f 69 64 2c 20 20 20 20 20 20 20 20 20 20 20 20 _id,
0bd0: 20 5c 0d 0a 09 09 63 73 2e 6c 6f 6e 67 4e 61 6d \....cs.longNam
0be0: 65 3d 6c 6e 6d 5b 5f 6e 6d 5d 2c 20 63 73 2e 73 e=lnm[_nm], cs.s
0bf0: 68 6f 72 74 4e 61 6d 65 3d 73 6e 6d 5b 5f 6e 6d hortName=snm[_nm
0c00: 5d 2c 20 5c 0d 0a 09 09 63 73 2e 74 79 70 65 3d ], \....cs.type=
0c10: 53 41 56 45 2c 20 20 20 20 20 20 20 20 20 6c 69 SAVE, li
0c20: 73 74 5f 2e 41 64 64 28 20 63 73 20 29 0d 0a 09 st_.Add( cs )...
0c30: 23 64 65 66 69 6e 65 20 45 6e 72 6f 6c 6c 4c 28 #define EnrollL(
0c40: 5f 69 64 2c 5f 6e 6d 29 20 20 63 73 2e 49 44 3d _id,_nm) cs.ID=
0c50: 5f 69 64 2c 20 20 20 20 20 20 20 20 20 20 20 20 _id,
0c60: 20 5c 0d 0a 09 09 63 73 2e 6c 6f 6e 67 4e 61 6d \....cs.longNam
0c70: 65 3d 6c 6e 6d 5b 5f 6e 6d 5d 2c 20 63 73 2e 73 e=lnm[_nm], cs.s
0c80: 68 6f 72 74 4e 61 6d 65 3d 73 6e 6d 5b 5f 6e 6d hortName=snm[_nm
0c90: 5d 2c 20 5c 0d 0a 09 09 63 73 2e 74 79 70 65 3d ], \....cs.type=
0ca0: 4c 4f 41 44 2c 20 20 20 20 20 20 20 20 20 6c 69 LOAD, li
0cb0: 73 74 5f 2e 41 64 64 28 20 63 73 20 29 0d 0a 0d st_.Add( cs )...
0cc0: 0a 09 2f 2f 20 93 4b 8b 58 93 6f 98 5e 0d 0a 09 ..// .K.X.o.^...
0cd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0ce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 E
0cf0: 6e 72 6f 6c 6c 4c 28 20 41 75 74 6f 44 65 74 65 nrollL( AutoDete
0d00: 63 74 2c 30 20 29 3b 0d 0a 09 69 66 28 20 3a 3a ct,0 );...if( ::
0d10: 49 73 56 61 6c 69 64 43 6f 64 65 50 61 67 65 28 IsValidCodePage(
0d20: 39 33 32 29 20 29 20 20 20 45 6e 72 6f 6c 6c 28 932) ) Enroll(
0d30: 20 20 53 4a 49 53 2c 20 20 20 20 20 20 31 20 29 SJIS, 1 )
0d40: 2c 0d 0a 09 20 20 20 20 20 20 20 20 20 20 20 20 ,...
0d50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0d60: 20 20 20 45 6e 72 6f 6c 6c 28 20 20 45 75 63 4a Enroll( EucJ
0d70: 50 2c 20 20 20 20 20 32 20 29 2c 0d 0a 09 20 20 P, 2 ),...
0d80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0d90: 20 20 20 20 20 20 20 20 20 20 20 20 20 45 6e 72 Enr
0da0: 6f 6c 6c 28 20 20 49 73 6f 4a 50 2c 20 20 20 20 oll( IsoJP,
0db0: 20 33 20 29 3b 0d 0a 09 2f 2a 20 69 66 28 20 61 3 );.../* if( a
0dc0: 6c 77 61 79 73 20 29 20 2a 2f 20 20 20 20 20 20 lways ) */
0dd0: 20 20 20 20 20 20 20 45 6e 72 6f 6c 6c 28 20 20 Enroll(
0de0: 55 54 46 35 2c 20 20 20 20 20 20 34 20 29 3b 0d UTF5, 4 );.
0df0: 0a 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0e00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0e10: 20 45 6e 72 6f 6c 6c 28 20 20 55 54 46 37 2c 20 Enroll( UTF7,
0e20: 20 20 20 20 20 35 20 29 3b 0d 0a 09 20 20 20 20 5 );...
0e30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0e40: 20 20 20 20 20 20 20 20 20 20 20 45 6e 72 6f 6c Enrol
0e50: 6c 28 20 20 55 54 46 38 2c 20 20 20 20 20 20 36 l( UTF8, 6
0e60: 20 29 3b 0d 0a 09 20 20 20 20 20 20 20 20 20 20 );...
0e70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0e80: 20 20 20 20 20 45 6e 72 6f 6c 6c 53 28 20 55 54 EnrollS( UT
0e90: 46 38 4e 2c 20 20 20 20 20 37 20 29 3b 0d 0a 09 F8N, 7 );...
0ea0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0eb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 E
0ec0: 6e 72 6f 6c 6c 53 28 20 55 54 46 31 36 62 2c 20 nrollS( UTF16b,
0ed0: 20 20 20 38 20 29 3b 0d 0a 09 20 20 20 20 20 20 8 );...
0ee0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0ef0: 20 20 20 20 20 20 20 20 20 45 6e 72 6f 6c 6c 53 EnrollS
0f00: 28 20 55 54 46 31 36 6c 2c 20 20 20 20 39 20 29 ( UTF16l, 9 )
0f10: 3b 0d 0a 09 20 20 20 20 20 20 20 20 20 20 20 20 ;...
0f20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0f30: 20 20 20 45 6e 72 6f 6c 6c 28 20 20 55 54 46 31 Enroll( UTF1
0f40: 36 42 45 2c 20 20 31 30 20 29 3b 0d 0a 09 20 20 6BE, 10 );...
0f50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 45 6e 72 Enr
0f70: 6f 6c 6c 28 20 20 55 54 46 31 36 4c 45 2c 20 20 oll( UTF16LE,
0f80: 31 31 20 29 3b 0d 0a 09 20 20 20 20 20 20 20 20 11 );...
0f90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0fa0: 20 20 20 20 20 20 20 45 6e 72 6f 6c 6c 53 28 20 EnrollS(
0fb0: 55 54 46 33 32 62 2c 20 20 20 31 32 20 29 3b 0d UTF32b, 12 );.
0fc0: 0a 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
0fd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0fe0: 20 45 6e 72 6f 6c 6c 53 28 20 55 54 46 33 32 6c EnrollS( UTF32l
0ff0: 2c 20 20 20 31 33 20 29 3b 0d 0a 09 20 20 20 20 , 13 );...
1000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1010: 20 20 20 20 20 20 20 20 20 20 20 45 6e 72 6f 6c Enrol
1020: 6c 28 20 20 55 54 46 33 32 42 45 2c 20 20 31 34 l( UTF32BE, 14
1030: 20 29 3b 0d 0a 09 20 20 20 20 20 20 20 20 20 20 );...
1040: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1050: 20 20 20 20 20 45 6e 72 6f 6c 6c 28 20 20 55 54 Enroll( UT
1060: 46 33 32 4c 45 2c 20 20 31 35 20 29 3b 0d 0a 09 F32LE, 15 );...
1070: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 E
1090: 6e 72 6f 6c 6c 28 20 20 57 65 73 74 65 72 6e 2c nroll( Western,
10a0: 20 20 31 36 20 29 3b 0d 0a 09 69 66 28 20 3a 3a 16 );...if( ::
10b0: 49 73 56 61 6c 69 64 43 6f 64 65 50 61 67 65 28 IsValidCodePage(
10c0: 32 38 35 39 32 29 20 29 20 45 6e 72 6f 6c 6c 28 28592) ) Enroll(
10d0: 20 20 43 65 6e 74 72 61 6c 2c 20 20 31 37 20 29 Central, 17 )
10e0: 3b 0d 0a 09 69 66 28 20 3a 3a 49 73 56 61 6c 69 ;...if( ::IsVali
10f0: 64 43 6f 64 65 50 61 67 65 28 39 34 39 29 20 29 dCodePage(949) )
1100: 20 20 20 45 6e 72 6f 6c 6c 28 20 20 55 48 43 2c Enroll( UHC,
1110: 20 20 20 20 20 20 31 38 20 29 2c 0d 0a 09 20 20 18 ),...
1120: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1130: 20 20 20 20 20 20 20 20 20 20 20 20 20 45 6e 72 Enr
1140: 6f 6c 6c 28 20 20 49 73 6f 4b 52 2c 20 20 20 20 oll( IsoKR,
1150: 31 39 20 29 3b 0d 0a 09 69 66 28 20 3a 3a 49 73 19 );...if( ::Is
1160: 56 61 6c 69 64 43 6f 64 65 50 61 67 65 28 31 33 ValidCodePage(13
1170: 36 31 29 20 29 20 20 45 6e 72 6f 6c 6c 28 20 20 61) ) Enroll(
1180: 4a 6f 68 61 62 2c 20 20 20 20 32 30 20 29 3b 0d Johab, 20 );.
1190: 0a 09 69 66 28 20 3a 3a 49 73 56 61 6c 69 64 43 ..if( ::IsValidC
11a0: 6f 64 65 50 61 67 65 28 39 33 36 29 20 29 20 20 odePage(936) )
11b0: 20 45 6e 72 6f 6c 6c 28 20 20 47 42 4b 2c 20 20 Enroll( GBK,
11c0: 20 20 20 20 32 31 20 29 2c 0d 0a 09 20 20 20 20 21 ),...
11d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
11e0: 20 20 20 20 20 20 20 20 20 20 20 45 6e 72 6f 6c Enrol
11f0: 6c 28 20 20 49 73 6f 43 4e 2c 20 20 20 20 32 32 l( IsoCN, 22
1200: 20 29 2c 0d 0a 09 20 20 20 20 20 20 20 20 20 20 ),...
1210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1220: 20 20 20 20 20 45 6e 72 6f 6c 6c 28 20 20 48 5a Enroll( HZ
1230: 20 20 20 2c 20 20 20 20 32 33 20 29 3b 0d 0a 09 , 23 );...
1240: 69 66 28 20 3a 3a 49 73 56 61 6c 69 64 43 6f 64 if( ::IsValidCod
1250: 65 50 61 67 65 28 39 35 30 29 20 29 20 20 20 45 ePage(950) ) E
1260: 6e 72 6f 6c 6c 28 20 20 42 69 67 35 20 2c 20 20 nroll( Big5 ,
1270: 20 20 32 34 20 29 3b 0d 0a 09 69 66 28 20 3a 3a 24 );...if( ::
1280: 49 73 56 61 6c 69 64 43 6f 64 65 50 61 67 65 28 IsValidCodePage(
1290: 32 38 35 39 35 29 20 29 20 45 6e 72 6f 6c 6c 28 28595) ) Enroll(
12a0: 20 20 43 79 72 69 6c 6c 69 63 2c 20 32 35 20 29 Cyrillic, 25 )
12b0: 3b 0d 0a 09 69 66 28 20 3a 3a 49 73 56 61 6c 69 ;...if( ::IsVali
12c0: 64 43 6f 64 65 50 61 67 65 28 32 30 38 36 36 29 dCodePage(20866)
12d0: 20 29 20 45 6e 72 6f 6c 6c 28 20 20 4b 6f 69 38 ) Enroll( Koi8
12e0: 52 2c 20 20 20 20 32 36 20 29 3b 0d 0a 09 69 66 R, 26 );...if
12f0: 28 20 3a 3a 49 73 56 61 6c 69 64 43 6f 64 65 50 ( ::IsValidCodeP
1300: 61 67 65 28 32 31 38 36 36 29 20 29 20 45 6e 72 age(21866) ) Enr
1310: 6f 6c 6c 28 20 20 4b 6f 69 38 55 2c 20 20 20 20 oll( Koi8U,
1320: 32 37 20 29 3b 0d 0a 09 69 66 28 20 3a 3a 49 73 27 );...if( ::Is
1330: 56 61 6c 69 64 43 6f 64 65 50 61 67 65 28 38 37 ValidCodePage(87
1340: 34 29 20 29 20 20 20 45 6e 72 6f 6c 6c 28 20 20 4) ) Enroll(
1350: 54 68 61 69 2c 20 20 20 20 20 32 38 20 29 3b 0d Thai, 28 );.
1360: 0a 09 69 66 28 20 3a 3a 49 73 56 61 6c 69 64 43 ..if( ::IsValidC
1370: 6f 64 65 50 61 67 65 28 31 32 35 34 29 20 29 20 odePage(1254) )
1380: 20 45 6e 72 6f 6c 6c 28 20 20 54 75 72 6b 69 73 Enroll( Turkis
1390: 68 2c 20 20 32 39 20 29 3b 0d 0a 09 69 66 28 20 h, 29 );...if(
13a0: 3a 3a 49 73 56 61 6c 69 64 43 6f 64 65 50 61 67 ::IsValidCodePag
13b0: 65 28 31 32 35 37 29 20 29 20 20 45 6e 72 6f 6c e(1257) ) Enrol
13c0: 6c 28 20 20 42 61 6c 74 69 63 2c 20 20 20 33 30 l( Baltic, 30
13d0: 20 29 3b 0d 0a 09 69 66 28 20 3a 3a 49 73 56 61 );...if( ::IsVa
13e0: 6c 69 64 43 6f 64 65 50 61 67 65 28 31 32 35 38 lidCodePage(1258
13f0: 29 20 29 20 20 45 6e 72 6f 6c 6c 28 20 56 69 65 ) ) Enroll( Vie
1400: 74 6e 61 6d 65 73 65 2c 33 31 20 29 3b 0d 0a 09 tnamese,31 );...
1410: 69 66 28 20 3a 3a 49 73 56 61 6c 69 64 43 6f 64 if( ::IsValidCod
1420: 65 50 61 67 65 28 32 38 35 39 37 29 20 29 20 45 ePage(28597) ) E
1430: 6e 72 6f 6c 6c 28 20 20 47 72 65 65 6b 2c 20 20 nroll( Greek,
1440: 20 20 33 32 20 29 3b 0d 0a 09 20 20 20 20 20 20 32 );...
1450: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1460: 20 20 20 20 20 20 20 20 20 45 6e 72 6f 6c 6c 28 Enroll(
1470: 20 20 44 4f 53 55 53 2c 20 20 20 20 33 33 20 29 DOSUS, 33 )
1480: 3b 0d 0a 0d 0a 09 2f 2f 20 8f 49 97 b9 0d 0a 09 ;.....// .I.....
1490: 23 75 6e 64 65 66 20 45 6e 72 6f 6c 6c 0d 0a 09 #undef Enroll...
14a0: 23 75 6e 64 65 66 20 45 6e 72 6f 6c 6c 53 0d 0a #undef EnrollS..
14b0: 09 23 75 6e 64 65 66 20 45 6e 72 6f 6c 6c 4c 0d .#undef EnrollL.
14c0: 0a 7d 0d 0a 0d 0a 69 6e 74 20 43 68 61 72 53 65 .}....int CharSe
14d0: 74 4c 69 73 74 3a 3a 64 65 66 61 75 6c 74 43 73 tList::defaultCs
14e0: 28 29 20 63 6f 6e 73 74 0d 0a 7b 0d 0a 09 72 65 () const..{...re
14f0: 74 75 72 6e 20 3a 3a 47 65 74 41 43 50 28 29 3b turn ::GetACP();
1500: 0d 0a 2f 2a 0d 0a 09 73 77 69 74 63 68 28 20 3a ../*...switch( :
1510: 3a 47 65 74 41 43 50 28 29 20 29 0d 0a 09 7b 0d :GetACP() )...{.
1520: 0a 09 63 61 73 65 20 39 33 32 3a 20 72 65 74 75 ..case 932: retu
1530: 72 6e 20 53 4a 49 53 3b 0d 0a 09 63 61 73 65 20 rn SJIS;...case
1540: 39 33 36 3a 20 72 65 74 75 72 6e 20 47 42 4b 3b 936: return GBK;
1550: 0d 0a 09 63 61 73 65 20 39 34 39 3a 20 72 65 74 ...case 949: ret
1560: 75 72 6e 20 55 48 43 3b 0d 0a 09 63 61 73 65 20 urn UHC;...case
1570: 39 35 30 3a 20 72 65 74 75 72 6e 20 42 69 67 35 950: return Big5
1580: 3b 0d 0a 09 64 65 66 61 75 6c 74 3a 20 20 72 65 ;...default: re
1590: 74 75 72 6e 20 57 65 73 74 65 72 6e 3b 0d 0a 09 turn Western;...
15a0: 7d 0d 0a 2a 2f 0d 0a 7d 0d 0a 0d 0a 75 6c 6f 6e }..*/..}....ulon
15b0: 67 20 43 68 61 72 53 65 74 4c 69 73 74 3a 3a 64 g CharSetList::d
15c0: 65 66 61 75 6c 74 43 73 69 28 29 20 63 6f 6e 73 efaultCsi() cons
15d0: 74 0d 0a 7b 0d 0a 09 72 65 74 75 72 6e 20 66 69 t..{...return fi
15e0: 6e 64 43 73 69 28 20 64 65 66 61 75 6c 74 43 73 ndCsi( defaultCs
15f0: 28 29 20 29 3b 0d 0a 7d 0d 0a 0d 0a 75 6c 6f 6e () );..}....ulon
1600: 67 20 43 68 61 72 53 65 74 4c 69 73 74 3a 3a 66 g CharSetList::f
1610: 69 6e 64 43 73 69 28 20 69 6e 74 20 63 73 20 29 indCsi( int cs )
1620: 20 63 6f 6e 73 74 0d 0a 7b 0d 0a 09 66 6f 72 28 const..{...for(
1630: 20 75 6c 6f 6e 67 20 69 3d 30 2c 69 65 3d 6c 69 ulong i=0,ie=li
1640: 73 74 5f 2e 73 69 7a 65 28 29 3b 20 69 3c 69 65 st_.size(); i<ie
1650: 3b 20 2b 2b 69 20 29 0d 0a 09 09 69 66 28 20 6c ; ++i )....if( l
1660: 69 73 74 5f 5b 69 5d 2e 49 44 20 3d 3d 20 63 73 ist_[i].ID == cs
1670: 20 29 0d 0a 09 09 09 72 65 74 75 72 6e 20 69 3b ).....return i;
1680: 0d 0a 09 72 65 74 75 72 6e 20 30 78 66 66 66 66 ...return 0xffff
1690: 66 66 66 66 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a 0d 0a ffff;..}........
16a0: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d //--------------
16b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
16c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
16d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
16e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 81 ----------..// .
16f0: 75 8a 4a 82 ad 81 76 83 5f 83 43 83 41 83 8d 83 u.J...v._.C.A...
1700: 4f 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d O..//-----------
1710: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1720: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1730: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1740: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d -------------...
1750: 0a 6e 61 6d 65 73 70 61 63 65 0d 0a 7b 0d 0a 09 .namespace..{...
1760: 2f 2f 20 8a d6 90 94 8f 49 97 b9 8e 9e 82 c9 81 // .....I.......
1770: 41 83 4a 83 8c 83 93 83 67 83 66 83 42 83 8c 83 A.J.....g.f.B...
1780: 4e 83 67 83 8a 82 f0 8c b3 82 c9 96 df 82 b7 0d N.g.............
1790: 0a 09 63 6c 61 73 73 20 43 75 72 72 65 6e 74 44 ..class CurrentD
17a0: 69 72 52 65 63 6f 76 65 72 79 0d 0a 09 7b 0d 0a irRecovery...{..
17b0: 09 09 50 61 74 68 20 63 75 72 5f 3b 0d 0a 09 70 ..Path cur_;...p
17c0: 75 62 6c 69 63 3a 0d 0a 09 09 43 75 72 72 65 6e ublic:....Curren
17d0: 74 44 69 72 52 65 63 6f 76 65 72 79 28 29 20 3a tDirRecovery() :
17e0: 20 63 75 72 5f 28 50 61 74 68 3a 3a 43 75 72 29 cur_(Path::Cur)
17f0: 20 7b 7d 0d 0a 09 09 7e 43 75 72 72 65 6e 74 44 {}....~CurrentD
1800: 69 72 52 65 63 6f 76 65 72 79 28 29 20 7b 20 3a irRecovery() { :
1810: 3a 53 65 74 43 75 72 72 65 6e 74 44 69 72 65 63 :SetCurrentDirec
1820: 74 6f 72 79 28 63 75 72 5f 2e 63 5f 73 74 72 28 tory(cur_.c_str(
1830: 29 29 3b 20 7d 0d 0a 09 7d 3b 0d 0a 7d 0d 0a 0d )); }...};..}...
1840: 0a 4f 70 65 6e 46 69 6c 65 44 6c 67 2a 20 4f 70 .OpenFileDlg* Op
1850: 65 6e 46 69 6c 65 44 6c 67 3a 3a 70 54 68 69 73 enFileDlg::pThis
1860: 3b 0d 0a 0d 0a 62 6f 6f 6c 20 4f 70 65 6e 46 69 ;....bool OpenFi
1870: 6c 65 44 6c 67 3a 3a 44 6f 4d 6f 64 61 6c 28 20 leDlg::DoModal(
1880: 48 57 4e 44 20 77 6e 64 2c 20 63 6f 6e 73 74 20 HWND wnd, const
1890: 54 43 48 41 52 2a 20 66 6c 74 72 2c 20 63 6f 6e TCHAR* fltr, con
18a0: 73 74 20 54 43 48 41 52 2a 20 66 6e 6d 20 29 0d st TCHAR* fnm ).
18b0: 0a 7b 0d 0a 09 43 75 72 72 65 6e 74 44 69 72 52 .{...CurrentDirR
18c0: 65 63 6f 76 65 72 79 20 63 64 72 3b 0d 0a 0d 0a ecovery cdr;....
18d0: 09 69 66 28 20 66 6e 6d 20 3d 3d 20 4e 55 4c 4c .if( fnm == NULL
18e0: 20 29 0d 0a 09 09 66 69 6c 65 6e 61 6d 65 5f 5b )....filename_[
18f0: 30 5d 20 3d 20 54 45 58 54 28 27 5c 30 27 29 3b 0] = TEXT('\0');
1900: 0d 0a 09 65 6c 73 65 0d 0a 09 09 3a 3a 6c 73 74 ...else....::lst
1910: 72 63 70 79 28 20 66 69 6c 65 6e 61 6d 65 5f 2c rcpy( filename_,
1920: 20 66 6e 6d 20 29 3b 0d 0a 0d 0a 09 4f 50 45 4e fnm );.....OPEN
1930: 46 49 4c 45 4e 41 4d 45 20 6f 66 6e 20 3d 20 7b FILENAME ofn = {
1940: 73 69 7a 65 6f 66 28 6f 66 6e 29 7d 3b 0d 0a 09 sizeof(ofn)};...
1950: 6f 66 6e 2e 68 77 6e 64 4f 77 6e 65 72 20 20 20 ofn.hwndOwner
1960: 20 20 20 3d 20 77 6e 64 3b 0d 0a 09 6f 66 6e 2e = wnd;...ofn.
1970: 68 49 6e 73 74 61 6e 63 65 20 20 20 20 20 20 3d hInstance =
1980: 20 61 70 70 28 29 2e 68 69 6e 73 74 28 29 3b 0d app().hinst();.
1990: 0a 09 6f 66 6e 2e 6c 70 73 74 72 46 69 6c 74 65 ..ofn.lpstrFilte
19a0: 72 20 20 20 20 3d 20 66 6c 74 72 3b 0d 0a 09 6f r = fltr;...o
19b0: 66 6e 2e 6c 70 73 74 72 46 69 6c 65 20 20 20 20 fn.lpstrFile
19c0: 20 20 3d 20 66 69 6c 65 6e 61 6d 65 5f 3b 0d 0a = filename_;..
19d0: 09 6f 66 6e 2e 6e 4d 61 78 46 69 6c 65 20 20 20 .ofn.nMaxFile
19e0: 20 20 20 20 3d 20 63 6f 75 6e 74 6f 66 28 66 69 = countof(fi
19f0: 6c 65 6e 61 6d 65 5f 29 3b 0d 0a 09 6f 66 6e 2e lename_);...ofn.
1a00: 6c 70 54 65 6d 70 6c 61 74 65 4e 61 6d 65 20 3d lpTemplateName =
1a10: 20 4d 41 4b 45 49 4e 54 52 45 53 4f 55 52 43 45 MAKEINTRESOURCE
1a20: 28 49 44 44 5f 4f 50 45 4e 46 49 4c 45 48 4f 4f (IDD_OPENFILEHOO
1a30: 4b 29 3b 0d 0a 09 6f 66 6e 2e 6c 70 66 6e 48 6f K);...ofn.lpfnHo
1a40: 6f 6b 20 20 20 20 20 20 20 3d 20 4f 66 6e 48 6f ok = OfnHo
1a50: 6f 6b 3b 0d 0a 09 6f 66 6e 2e 46 6c 61 67 73 20 ok;...ofn.Flags
1a60: 3d 20 4f 46 4e 5f 46 49 4c 45 4d 55 53 54 45 58 = OFN_FILEMUSTEX
1a70: 49 53 54 20 7c 0d 0a 09 09 09 09 4f 46 4e 5f 48 IST |......OFN_H
1a80: 49 44 45 52 45 41 44 4f 4e 4c 59 20 20 7c 0d 0a IDEREADONLY |..
1a90: 09 09 09 09 4f 46 4e 5f 45 58 50 4c 4f 52 45 52 ....OFN_EXPLORER
1aa0: 20 20 20 20 20 20 7c 0d 0a 09 09 09 09 4f 46 4e |......OFN
1ab0: 5f 45 4e 41 42 4c 45 53 49 5a 49 4e 47 20 20 7c _ENABLESIZING |
1ac0: 0d 0a 09 09 09 09 4f 46 4e 5f 45 4e 41 42 4c 45 ......OFN_ENABLE
1ad0: 48 4f 4f 4b 20 20 20 20 7c 0d 0a 09 09 09 09 4f HOOK |......O
1ae0: 46 4e 5f 45 4e 41 42 4c 45 54 45 4d 50 4c 41 54 FN_ENABLETEMPLAT
1af0: 45 3b 0d 0a 0d 0a 09 70 54 68 69 73 20 3d 20 74 E;.....pThis = t
1b00: 68 69 73 3b 0d 0a 09 72 65 74 75 72 6e 20 28 20 his;...return (
1b10: 3a 3a 47 65 74 4f 70 65 6e 46 69 6c 65 4e 61 6d ::GetOpenFileNam
1b20: 65 28 26 6f 66 6e 29 20 21 3d 20 30 20 29 3b 0d e(&ofn) != 0 );.
1b30: 0a 7d 0d 0a 0d 0a 55 49 4e 54 5f 50 54 52 20 43 .}....UINT_PTR C
1b40: 41 4c 4c 42 41 43 4b 20 4f 70 65 6e 46 69 6c 65 ALLBACK OpenFile
1b50: 44 6c 67 3a 3a 4f 66 6e 48 6f 6f 6b 28 20 48 57 Dlg::OfnHook( HW
1b60: 4e 44 20 64 6c 67 2c 20 55 49 4e 54 20 6d 73 67 ND dlg, UINT msg
1b70: 2c 20 57 50 41 52 41 4d 2c 20 4c 50 41 52 41 4d , WPARAM, LPARAM
1b80: 20 6c 70 20 29 0d 0a 7b 0d 0a 09 69 66 28 20 6d lp )..{...if( m
1b90: 73 67 3d 3d 57 4d 5f 49 4e 49 54 44 49 41 4c 4f sg==WM_INITDIALO
1ba0: 47 20 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 83 52 G )...{....// .R
1bb0: 83 93 83 7b 83 7b 83 62 83 4e 83 58 82 f0 96 84 ...{.{.b.N.X....
1bc0: 82 df 82 c4 81 41 81 75 8e a9 93 ae 91 49 91 f0 .....A.u.....I..
1bd0: 81 76 82 f0 91 49 82 d4 0d 0a 09 09 43 6f 6d 62 .v...I......Comb
1be0: 6f 42 6f 78 20 63 62 28 20 64 6c 67 2c 20 49 44 oBox cb( dlg, ID
1bf0: 43 5f 43 4f 44 45 4c 49 53 54 20 29 3b 0d 0a 09 C_CODELIST );...
1c00: 09 63 6f 6e 73 74 20 43 68 61 72 53 65 74 4c 69 .const CharSetLi
1c10: 73 74 26 20 63 73 6c 20 3d 20 70 54 68 69 73 2d st& csl = pThis-
1c20: 3e 63 73 6c 5f 3b 0d 0a 09 09 66 6f 72 28 20 75 >csl_;....for( u
1c30: 6c 6f 6e 67 20 69 3d 30 3b 20 69 3c 63 73 6c 2e long i=0; i<csl.
1c40: 73 69 7a 65 28 29 3b 20 2b 2b 69 20 29 0d 0a 09 size(); ++i )...
1c50: 09 09 69 66 28 20 63 73 6c 5b 69 5d 2e 74 79 70 ..if( csl[i].typ
1c60: 65 20 26 20 32 20 29 20 2f 2f 20 32 3a 3d 4c 4f e & 2 ) // 2:=LO
1c70: 41 44 0d 0a 09 09 09 09 63 62 2e 41 64 64 28 20 AD......cb.Add(
1c80: 63 73 6c 5b 69 5d 2e 6c 6f 6e 67 4e 61 6d 65 20 csl[i].longName
1c90: 29 3b 0d 0a 09 09 63 62 2e 53 65 6c 65 63 74 28 );....cb.Select(
1ca0: 20 63 73 6c 5b 30 5d 2e 6c 6f 6e 67 4e 61 6d 65 csl[0].longName
1cb0: 20 29 3b 0d 0a 09 7d 0d 0a 09 65 6c 73 65 20 69 );...}...else i
1cc0: 66 28 20 6d 73 67 3d 3d 57 4d 5f 4e 4f 54 49 46 f( msg==WM_NOTIF
1cd0: 59 20 29 0d 0a 09 7b 0d 0a 09 09 2f 2f 20 4f 4b Y )...{....// OK
1ce0: 82 aa 89 9f 82 b3 82 ea 82 bd 82 e7 81 41 95 b6 .............A..
1cf0: 8e 9a 83 52 81 5b 83 68 82 cc 91 49 91 f0 8f f3 ...R.[.h...I....
1d00: 8b b5 82 f0 8b 4c 98 5e 0d 0a 09 09 69 66 28 20 .....L.^....if(
1d10: 72 65 69 6e 74 65 72 70 72 65 74 5f 63 61 73 74 reinterpret_cast
1d20: 3c 4e 4d 48 44 52 2a 3e 28 6c 70 29 2d 3e 63 6f <NMHDR*>(lp)->co
1d30: 64 65 3d 3d 43 44 4e 5f 46 49 4c 45 4f 4b 20 29 de==CDN_FILEOK )
1d40: 0d 0a 09 09 7b 0d 0a 09 09 09 75 6c 6f 6e 67 20 ....{.....ulong
1d50: 6a 3d 30 2c 20 69 3d 43 6f 6d 62 6f 42 6f 78 28 j=0, i=ComboBox(
1d60: 64 6c 67 2c 49 44 43 5f 43 4f 44 45 4c 49 53 54 dlg,IDC_CODELIST
1d70: 29 2e 47 65 74 43 75 72 53 65 6c 28 29 3b 0d 0a ).GetCurSel();..
1d80: 09 09 09 66 6f 72 28 3b 3b 2b 2b 6a 2c 2d 2d 69 ...for(;;++j,--i
1d90: 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 77 68 69 ).....{......whi
1da0: 6c 65 28 20 21 28 70 54 68 69 73 2d 3e 63 73 6c le( !(pThis->csl
1db0: 5f 5b 6a 5d 2e 74 79 70 65 20 26 20 32 29 20 29 _[j].type & 2) )
1dc0: 20 2f 2f 20 21 4c 4f 41 44 0d 0a 09 09 09 09 09 // !LOAD.......
1dd0: 2b 2b 6a 3b 0d 0a 09 09 09 09 69 66 28 20 69 3d ++j;......if( i=
1de0: 3d 30 20 29 0d 0a 09 09 09 09 09 62 72 65 61 6b =0 ).......break
1df0: 3b 0d 0a 09 09 09 7d 0d 0a 09 09 09 70 54 68 69 ;.....}.....pThi
1e00: 73 2d 3e 63 73 49 6e 64 65 78 5f 20 3d 20 6a 3b s->csIndex_ = j;
1e10: 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a 09 72 65 74 75 ....}...}...retu
1e20: 72 6e 20 46 41 4c 53 45 3b 0d 0a 7d 0d 0a 0d 0a rn FALSE;..}....
1e30: 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ....//----------
1e40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1e50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1e60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1e70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a --------------..
1e80: 2f 2f 20 81 75 95 db 91 b6 81 76 83 5f 83 43 83 // .u.....v._.C.
1e90: 41 83 8d 83 4f 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d A...O..//-------
1ea0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1eb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1ec0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1ed0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
1ee0: 2d 0d 0a 0d 0a 53 61 76 65 46 69 6c 65 44 6c 67 -....SaveFileDlg
1ef0: 2a 20 53 61 76 65 46 69 6c 65 44 6c 67 3a 3a 70 * SaveFileDlg::p
1f00: 54 68 69 73 3b 0d 0a 0d 0a 62 6f 6f 6c 20 53 61 This;....bool Sa
1f10: 76 65 46 69 6c 65 44 6c 67 3a 3a 44 6f 4d 6f 64 veFileDlg::DoMod
1f20: 61 6c 28 20 48 57 4e 44 20 77 6e 64 2c 20 63 6f al( HWND wnd, co
1f30: 6e 73 74 20 54 43 48 41 52 2a 20 66 6c 74 72 2c nst TCHAR* fltr,
1f40: 20 63 6f 6e 73 74 20 54 43 48 41 52 2a 20 66 6e const TCHAR* fn
1f50: 6d 20 29 0d 0a 7b 0d 0a 09 43 75 72 72 65 6e 74 m )..{...Current
1f60: 44 69 72 52 65 63 6f 76 65 72 79 20 63 64 72 3b DirRecovery cdr;
1f70: 0d 0a 0d 0a 09 69 66 28 20 66 6e 6d 20 3d 3d 20 .....if( fnm ==
1f80: 4e 55 4c 4c 20 29 0d 0a 09 09 66 69 6c 65 6e 61 NULL )....filena
1f90: 6d 65 5f 5b 30 5d 20 3d 20 54 45 58 54 28 27 5c me_[0] = TEXT('\
1fa0: 30 27 29 3b 0d 0a 09 65 6c 73 65 0d 0a 09 09 3a 0');...else....:
1fb0: 3a 6c 73 74 72 63 70 79 28 20 66 69 6c 65 6e 61 :lstrcpy( filena
1fc0: 6d 65 5f 2c 20 66 6e 6d 20 29 3b 0d 0a 0d 0a 09 me_, fnm );.....
1fd0: 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 20 6f 66 6e OPENFILENAME ofn
1fe0: 20 3d 20 7b 73 69 7a 65 6f 66 28 6f 66 6e 29 7d = {sizeof(ofn)}
1ff0: 3b 0d 0a 20 20 20 20 6f 66 6e 2e 68 77 6e 64 4f ;.. ofn.hwndO
2000: 77 6e 65 72 20 20 20 20 20 20 3d 20 77 6e 64 3b wner = wnd;
2010: 0d 0a 20 20 20 20 6f 66 6e 2e 68 49 6e 73 74 61 .. ofn.hInsta
2020: 6e 63 65 20 20 20 20 20 20 3d 20 61 70 70 28 29 nce = app()
2030: 2e 68 69 6e 73 74 28 29 3b 0d 0a 20 20 20 20 6f .hinst();.. o
2040: 66 6e 2e 6c 70 73 74 72 46 69 6c 74 65 72 20 20 fn.lpstrFilter
2050: 20 20 3d 20 66 6c 74 72 3b 0d 0a 20 20 20 20 6f = fltr;.. o
2060: 66 6e 2e 6c 70 73 74 72 46 69 6c 65 20 20 20 20 fn.lpstrFile
2070: 20 20 3d 20 66 69 6c 65 6e 61 6d 65 5f 3b 0d 0a = filename_;..
2080: 20 20 20 20 6f 66 6e 2e 6e 4d 61 78 46 69 6c 65 ofn.nMaxFile
2090: 20 20 20 20 20 20 20 3d 20 63 6f 75 6e 74 6f 66 = countof
20a0: 28 66 69 6c 65 6e 61 6d 65 5f 29 3b 0d 0a 20 20 (filename_);..
20b0: 20 20 6f 66 6e 2e 6c 70 54 65 6d 70 6c 61 74 65 ofn.lpTemplate
20c0: 4e 61 6d 65 20 3d 20 4d 41 4b 45 49 4e 54 52 45 Name = MAKEINTRE
20d0: 53 4f 55 52 43 45 28 49 44 44 5f 53 41 56 45 46 SOURCE(IDD_SAVEF
20e0: 49 4c 45 48 4f 4f 4b 29 3b 0d 0a 20 20 20 20 6f ILEHOOK);.. o
20f0: 66 6e 2e 6c 70 66 6e 48 6f 6f 6b 20 20 20 20 20 fn.lpfnHook
2100: 20 20 3d 20 4f 66 6e 48 6f 6f 6b 3b 0d 0a 20 20 = OfnHook;..
2110: 20 20 6f 66 6e 2e 46 6c 61 67 73 20 3d 20 4f 46 ofn.Flags = OF
2120: 4e 5f 48 49 44 45 52 45 41 44 4f 4e 4c 59 20 20 N_HIDEREADONLY
2130: 20 20 7c 0d 0a 09 09 09 09 4f 46 4e 5f 50 41 54 |......OFN_PAT
2140: 48 4d 55 53 54 45 58 49 53 54 20 20 20 7c 0d 0a HMUSTEXIST |..
2150: 09 09 09 09 4f 46 4e 5f 45 58 50 4c 4f 52 45 52 ....OFN_EXPLORER
2160: 20 20 20 20 20 20 20 20 7c 0d 0a 09 09 09 09 4f |......O
2170: 46 4e 5f 45 4e 41 42 4c 45 53 49 5a 49 4e 47 20 FN_ENABLESIZING
2180: 20 20 20 7c 0d 0a 09 09 09 09 4f 46 4e 5f 45 4e |......OFN_EN
2190: 41 42 4c 45 48 4f 4f 4b 20 20 20 20 20 20 7c 0d ABLEHOOK |.
21a0: 0a 09 09 09 09 4f 46 4e 5f 45 4e 41 42 4c 45 54 .....OFN_ENABLET
21b0: 45 4d 50 4c 41 54 45 20 20 7c 0d 0a 09 09 09 09 EMPLATE |......
21c0: 4f 46 4e 5f 4f 56 45 52 57 52 49 54 45 50 52 4f OFN_OVERWRITEPRO
21d0: 4d 50 54 3b 0d 0a 0d 0a 09 70 54 68 69 73 20 20 MPT;.....pThis
21e0: 20 20 20 20 20 20 3d 20 74 68 69 73 3b 0d 0a 09 = this;...
21f0: 72 65 74 75 72 6e 20 28 20 3a 3a 47 65 74 53 61 return ( ::GetSa
2200: 76 65 46 69 6c 65 4e 61 6d 65 28 26 6f 66 6e 29 veFileName(&ofn)
2210: 20 21 3d 20 30 20 29 3b 0d 0a 7d 0d 0a 0d 0a 55 != 0 );..}....U
2220: 49 4e 54 5f 50 54 52 20 43 41 4c 4c 42 41 43 4b INT_PTR CALLBACK
2230: 20 53 61 76 65 46 69 6c 65 44 6c 67 3a 3a 4f 66 SaveFileDlg::Of
2240: 6e 48 6f 6f 6b 28 20 48 57 4e 44 20 64 6c 67 2c nHook( HWND dlg,
2250: 20 55 49 4e 54 20 6d 73 67 2c 20 57 50 41 52 41 UINT msg, WPARA
2260: 4d 2c 20 4c 50 41 52 41 4d 20 6c 70 20 29 0d 0a M, LPARAM lp )..
2270: 7b 0d 0a 09 69 66 28 20 6d 73 67 3d 3d 57 4d 5f {...if( msg==WM_
2280: 49 4e 49 54 44 49 41 4c 4f 47 20 29 0d 0a 09 7b INITDIALOG )...{
2290: 0d 0a 09 09 2f 2f 20 83 52 83 93 83 7b 83 7b 83 ....// .R...{.{.
22a0: 62 83 4e 83 58 82 f0 96 84 82 df 82 c4 81 41 93 b.N.X.........A.
22b0: 4b 90 d8 82 c8 82 cc 82 f0 91 49 82 d4 0d 0a 09 K.........I.....
22c0: 09 7b 0d 0a 09 09 09 43 6f 6d 62 6f 42 6f 78 20 .{.....ComboBox
22d0: 63 62 28 20 64 6c 67 2c 20 49 44 43 5f 43 4f 44 cb( dlg, IDC_COD
22e0: 45 4c 49 53 54 20 29 3b 0d 0a 09 09 09 63 6f 6e ELIST );.....con
22f0: 73 74 20 43 68 61 72 53 65 74 4c 69 73 74 26 20 st CharSetList&
2300: 63 73 6c 20 3d 20 70 54 68 69 73 2d 3e 63 73 6c csl = pThis->csl
2310: 5f 3b 0d 0a 0d 0a 09 09 09 66 6f 72 28 20 75 6c _;.......for( ul
2320: 6f 6e 67 20 69 3d 30 3b 20 69 3c 63 73 6c 2e 73 ong i=0; i<csl.s
2330: 69 7a 65 28 29 3b 20 2b 2b 69 20 29 0d 0a 09 09 ize(); ++i )....
2340: 09 09 69 66 28 20 63 73 6c 5b 69 5d 2e 74 79 70 ..if( csl[i].typ
2350: 65 20 26 20 31 20 29 20 2f 2f 20 31 3a 3d 53 41 e & 1 ) // 1:=SA
2360: 56 45 0d 0a 09 09 09 09 09 63 62 2e 41 64 64 28 VE.......cb.Add(
2370: 20 63 73 6c 5b 69 5d 2e 6c 6f 6e 67 4e 61 6d 65 csl[i].longName
2380: 20 29 3b 0d 0a 09 09 09 63 62 2e 53 65 6c 65 63 );.....cb.Selec
2390: 74 28 20 63 73 6c 5b 70 54 68 69 73 2d 3e 63 73 t( csl[pThis->cs
23a0: 49 6e 64 65 78 5f 5d 2e 6c 6f 6e 67 4e 61 6d 65 Index_].longName
23b0: 20 29 3b 0d 0a 09 09 7d 0d 0a 09 09 7b 0d 0a 09 );....}....{...
23c0: 09 09 43 6f 6d 62 6f 42 6f 78 20 63 62 28 20 64 ..ComboBox cb( d
23d0: 6c 67 2c 20 49 44 43 5f 43 52 4c 46 4c 49 53 54 lg, IDC_CRLFLIST
23e0: 20 29 3b 0d 0a 09 09 09 73 74 61 74 69 63 20 63 );.....static c
23f0: 6f 6e 73 74 20 54 43 48 41 52 2a 20 63 6f 6e 73 onst TCHAR* cons
2400: 74 20 6c 62 4c 69 73 74 5b 5d 20 3d 20 7b 0d 0a t lbList[] = {..
2410: 09 09 09 09 54 45 58 54 28 22 43 52 22 29 2c 0d ....TEXT("CR"),.
2420: 0a 09 09 09 09 54 45 58 54 28 22 4c 46 22 29 2c .....TEXT("LF"),
2430: 0d 0a 09 09 09 09 54 45 58 54 28 22 43 52 4c 46 ......TEXT("CRLF
2440: 22 29 0d 0a 09 09 09 7d 3b 0d 0a 0d 0a 09 09 09 ").....};.......
2450: 66 6f 72 28 20 75 6c 6f 6e 67 20 69 3d 30 3b 20 for( ulong i=0;
2460: 69 3c 63 6f 75 6e 74 6f 66 28 6c 62 4c 69 73 74 i<countof(lbList
2470: 29 3b 20 2b 2b 69 20 29 0d 0a 09 09 09 09 63 62 ); ++i )......cb
2480: 2e 41 64 64 28 20 6c 62 4c 69 73 74 5b 69 5d 20 .Add( lbList[i]
2490: 29 3b 0d 0a 09 09 09 63 62 2e 53 65 6c 65 63 74 );.....cb.Select
24a0: 28 20 6c 62 4c 69 73 74 5b 70 54 68 69 73 2d 3e ( lbList[pThis->
24b0: 6c 62 5f 5d 20 29 3b 0d 0a 09 09 7d 0d 0a 09 7d lb_] );....}...}
24c0: 0d 0a 09 65 6c 73 65 20 69 66 28 20 6d 73 67 3d ...else if( msg=
24d0: 3d 57 4d 5f 4e 4f 54 49 46 59 20 29 0d 0a 09 7b =WM_NOTIFY )...{
24e0: 0d 0a 09 09 69 66 28 20 72 65 69 6e 74 65 72 70 ....if( reinterp
24f0: 72 65 74 5f 63 61 73 74 3c 4e 4d 48 44 52 2a 3e ret_cast<NMHDR*>
2500: 28 6c 70 29 2d 3e 63 6f 64 65 3d 3d 43 44 4e 5f (lp)->code==CDN_
2510: 46 49 4c 45 4f 4b 20 29 0d 0a 09 09 7b 0d 0a 09 FILEOK )....{...
2520: 09 09 2f 2f 20 4f 4b 82 aa 89 9f 82 b3 82 ea 82 ..// OK.........
2530: bd 82 e7 81 41 95 b6 8e 9a 83 52 81 5b 83 68 82 ....A.....R.[.h.
2540: cc 91 49 91 f0 8f f3 8b b5 82 f0 8b 4c 98 5e 0d ..I.........L.^.
2550: 0a 09 09 09 75 6c 6f 6e 67 20 6a 3d 30 2c 20 69 ....ulong j=0, i
2560: 3d 43 6f 6d 62 6f 42 6f 78 28 64 6c 67 2c 49 44 =ComboBox(dlg,ID
2570: 43 5f 43 4f 44 45 4c 49 53 54 29 2e 47 65 74 43 C_CODELIST).GetC
2580: 75 72 53 65 6c 28 29 3b 0d 0a 09 09 09 66 6f 72 urSel();.....for
2590: 28 3b 3b 2b 2b 6a 2c 2d 2d 69 29 0d 0a 09 09 09 (;;++j,--i).....
25a0: 7b 0d 0a 09 09 09 09 77 68 69 6c 65 28 20 21 28 {......while( !(
25b0: 70 54 68 69 73 2d 3e 63 73 6c 5f 5b 6a 5d 2e 74 pThis->csl_[j].t
25c0: 79 70 65 20 26 20 31 29 20 29 20 2f 2f 20 21 53 ype & 1) ) // !S
25d0: 41 56 45 0d 0a 09 09 09 09 09 2b 2b 6a 3b 0d 0a AVE.......++j;..
25e0: 09 09 09 09 69 66 28 20 69 3d 3d 30 20 29 0d 0a ....if( i==0 )..
25f0: 09 09 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 .....break;.....
2600: 7d 0d 0a 09 09 09 70 54 68 69 73 2d 3e 63 73 49 }.....pThis->csI
2610: 6e 64 65 78 5f 20 3d 20 6a 3b 0d 0a 09 09 09 2f ndex_ = j;...../
2620: 2f 20 89 fc 8d 73 83 52 81 5b 83 68 82 e0 0d 0a / ...s.R.[.h....
2630: 09 09 09 70 54 68 69 73 2d 3e 6c 62 5f 20 3d 20 ...pThis->lb_ =
2640: 43 6f 6d 62 6f 42 6f 78 28 64 6c 67 2c 49 44 43 ComboBox(dlg,IDC
2650: 5f 43 52 4c 46 4c 49 53 54 29 2e 47 65 74 43 75 _CRLFLIST).GetCu
2660: 72 53 65 6c 28 29 3b 0d 0a 09 09 7d 0d 0a 09 7d rSel();....}...}
2670: 0d 0a 09 72 65 74 75 72 6e 20 46 41 4c 53 45 3b ...return FALSE;
2680: 0d 0a 7d 0d 0a 0d 0a 0d 0a 0d 0a 2f 2f 2d 2d 2d ..}........//---
2690: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
26a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
26b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
26c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
26d0: 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 83 86 81 5b 83 65 -----..// ...[.e
26e0: 83 42 83 8a 83 65 83 42 81 5b 0d 0a 2f 2f 2d 2d .B...e.B.[..//--
26f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2700: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2710: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2720: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2730: 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 6b 69 3a 3a 61 61 ------....ki::aa
2740: 72 72 3c 54 43 48 41 52 3e 20 4f 70 65 6e 46 69 rr<TCHAR> OpenFi
2750: 6c 65 44 6c 67 3a 3a 43 6f 6e 6e 65 63 74 57 69 leDlg::ConnectWi
2760: 74 68 4e 75 6c 6c 28 20 53 74 72 69 6e 67 20 6c thNull( String l
2770: 73 74 5b 5d 2c 20 69 6e 74 20 6e 75 6d 20 29 0d st[], int num ).
2780: 0a 7b 0d 0a 09 69 6e 74 20 54 74 6c 4c 65 6e 20 .{...int TtlLen
2790: 3d 20 31 3b 0d 0a 09 66 6f 72 28 20 69 6e 74 20 = 1;...for( int
27a0: 69 3d 30 3b 20 69 3c 6e 75 6d 3b 20 2b 2b 69 20 i=0; i<num; ++i
27b0: 29 0d 0a 09 09 54 74 6c 4c 65 6e 20 2b 3d 20 28 )....TtlLen += (
27c0: 6c 73 74 5b 69 5d 2e 6c 65 6e 28 29 20 2b 20 31 lst[i].len() + 1
27d0: 29 3b 0d 0a 0d 0a 09 61 61 72 72 3c 54 43 48 41 );.....aarr<TCHA
27e0: 52 3e 20 61 28 20 6e 65 77 20 54 43 48 41 52 5b R> a( new TCHAR[
27f0: 54 74 6c 4c 65 6e 5d 20 29 3b 0d 0a 0d 0a 09 54 TtlLen] );.....T
2800: 43 48 41 52 2a 20 70 20 3d 20 61 2e 67 65 74 28 CHAR* p = a.get(
2810: 29 3b 0d 0a 09 66 6f 72 28 20 69 6e 74 20 69 3d );...for( int i=
2820: 30 3b 20 69 3c 6e 75 6d 3b 20 2b 2b 69 20 29 0d 0; i<num; ++i ).
2830: 0a 09 7b 0d 0a 09 09 3a 3a 6c 73 74 72 63 70 79 ..{....::lstrcpy
2840: 28 20 70 2c 20 6c 73 74 5b 69 5d 2e 63 5f 73 74 ( p, lst[i].c_st
2850: 72 28 29 20 29 3b 0d 0a 09 09 70 20 2b 3d 20 28 r() );....p += (
2860: 6c 73 74 5b 69 5d 2e 6c 65 6e 28 29 20 2b 20 31 lst[i].len() + 1
2870: 29 3b 0d 0a 09 7d 0d 0a 09 2a 70 20 3d 20 54 45 );...}...*p = TE
2880: 58 54 28 27 5c 30 27 29 3b 0d 0a 0d 0a 09 72 65 XT('\0');.....re
2890: 74 75 72 6e 20 61 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a turn a;..}......
28a0: 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ....//----------
28b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
28c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
28d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
28e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a --------------..
28f0: 2f 2f 20 81 75 8a 4a 82 ab 92 bc 82 b7 81 76 83 // .u.J.......v.
2900: 5f 83 43 83 41 83 8d 83 4f 0d 0a 2f 2f 2d 2d 2d _.C.A...O..//---
2910: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2920: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2930: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2940: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
2950: 2d 2d 2d 2d 2d 0d 0a 0d 0a 52 65 6f 70 65 6e 44 -----....ReopenD
2960: 6c 67 3a 3a 52 65 6f 70 65 6e 44 6c 67 28 20 63 lg::ReopenDlg( c
2970: 6f 6e 73 74 20 43 68 61 72 53 65 74 4c 69 73 74 onst CharSetList
2980: 26 20 63 73 6c 2c 20 69 6e 74 20 63 73 69 20 29 & csl, int csi )
2990: 0d 0a 09 3a 20 44 6c 67 49 6d 70 6c 28 49 44 44 ...: DlgImpl(IDD
29a0: 5f 52 45 4f 50 45 4e 44 4c 47 29 2c 20 63 73 6c _REOPENDLG), csl
29b0: 5f 28 63 73 6c 29 2c 20 63 73 49 6e 64 65 78 5f _(csl), csIndex_
29c0: 28 63 73 69 29 0d 0a 7b 0d 0a 7d 0d 0a 0d 0a 76 (csi)..{..}....v
29d0: 6f 69 64 20 52 65 6f 70 65 6e 44 6c 67 3a 3a 6f oid ReopenDlg::o
29e0: 6e 5f 69 6e 69 74 28 29 0d 0a 7b 0d 0a 09 2f 2f n_init()..{...//
29f0: 20 83 52 83 93 83 7b 83 7b 83 62 83 4e 83 58 82 .R...{.{.b.N.X.
2a00: f0 96 84 82 df 82 c4 81 41 81 75 8e a9 93 ae 91 ........A.u.....
2a10: 49 91 f0 81 76 82 f0 91 49 82 d4 0d 0a 09 43 6f I...v...I.....Co
2a20: 6d 62 6f 42 6f 78 20 63 62 28 20 68 77 6e 64 28 mboBox cb( hwnd(
2a30: 29 2c 20 49 44 43 5f 43 4f 44 45 4c 49 53 54 20 ), IDC_CODELIST
2a40: 29 3b 0d 0a 09 66 6f 72 28 20 75 6c 6f 6e 67 20 );...for( ulong
2a50: 69 3d 30 3b 20 69 3c 63 73 6c 5f 2e 73 69 7a 65 i=0; i<csl_.size
2a60: 28 29 3b 20 2b 2b 69 20 29 0d 0a 09 09 69 66 28 (); ++i )....if(
2a70: 20 63 73 6c 5f 5b 69 5d 2e 74 79 70 65 20 26 20 csl_[i].type &
2a80: 31 20 29 20 2f 2f 20 32 3a 3d 53 41 56 45 0d 0a 1 ) // 2:=SAVE..
2a90: 09 09 09 63 62 2e 41 64 64 28 20 63 73 6c 5f 5b ...cb.Add( csl_[
2aa0: 69 5d 2e 6c 6f 6e 67 4e 61 6d 65 20 29 3b 0d 0a i].longName );..
2ab0: 09 63 62 2e 53 65 6c 65 63 74 28 20 63 73 6c 5f .cb.Select( csl_
2ac0: 5b 63 73 49 6e 64 65 78 5f 5d 2e 6c 6f 6e 67 4e [csIndex_].longN
2ad0: 61 6d 65 20 29 3b 0d 0a 7d 0d 0a 0d 0a 62 6f 6f ame );..}....boo
2ae0: 6c 20 52 65 6f 70 65 6e 44 6c 67 3a 3a 6f 6e 5f l ReopenDlg::on_
2af0: 6f 6b 28 29 0d 0a 7b 0d 0a 09 2f 2f 20 4f 4b 82 ok()..{...// OK.
2b00: aa 89 9f 82 b3 82 ea 82 bd 82 e7 81 41 95 b6 8e ............A...
2b10: 9a 83 52 81 5b 83 68 82 cc 91 49 91 f0 8f f3 8b ..R.[.h...I.....
2b20: b5 82 f0 8b 4c 98 5e 0d 0a 09 75 6c 6f 6e 67 20 ....L.^...ulong
2b30: 6a 3d 30 2c 20 69 3d 43 6f 6d 62 6f 42 6f 78 28 j=0, i=ComboBox(
2b40: 68 77 6e 64 28 29 2c 49 44 43 5f 43 4f 44 45 4c hwnd(),IDC_CODEL
2b50: 49 53 54 29 2e 47 65 74 43 75 72 53 65 6c 28 29 IST).GetCurSel()
2b60: 3b 0d 0a 09 66 6f 72 28 3b 3b 2b 2b 6a 2c 2d 2d ;...for(;;++j,--
2b70: 69 29 0d 0a 09 7b 0d 0a 09 09 77 68 69 6c 65 28 i)...{....while(
2b80: 20 21 28 63 73 6c 5f 5b 6a 5d 2e 74 79 70 65 20 !(csl_[j].type
2b90: 26 20 31 29 20 29 20 2f 2f 20 21 53 41 56 45 0d & 1) ) // !SAVE.
2ba0: 0a 09 09 09 2b 2b 6a 3b 0d 0a 09 09 69 66 28 20 ....++j;....if(
2bb0: 69 3d 3d 30 20 29 0d 0a 09 09 09 62 72 65 61 6b i==0 ).....break
2bc0: 3b 0d 0a 09 7d 0d 0a 09 63 73 49 6e 64 65 78 5f ;...}...csIndex_
2bd0: 20 3d 20 6a 3b 0d 0a 09 72 65 74 75 72 6e 20 74 = j;...return t
2be0: 72 75 65 3b 0d 0a 7d 0d 0a rue;..}..