Hex Artifact Content

Not logged in

Artifact d48f24b36f48652ad9b38a7a7e23f64cc318ecb2:


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;..}..