Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1285 lines
43 KiB

  1. //----------------------------------------------------------------------------
  2. //
  3. // Copyright (c) 1997-1999 Microsoft Corporation
  4. // All rights reserved.
  5. //
  6. // File Name:
  7. // tapi.c
  8. //
  9. // Description:
  10. // This file contains the dialog procedure for the telephone settings
  11. // (IDD_TAPI).
  12. //
  13. //----------------------------------------------------------------------------
  14. #include "pch.h"
  15. #include "resource.h"
  16. #define LengthOf(x) ( sizeof(x) / sizeof(COUNTRYCODE_STRUCT) )
  17. typedef struct _COUNTRYCODE_STRUCT {
  18. DWORD dwCountryCode;
  19. TCHAR *szCountryName;
  20. } COUNTRYCODE_STRUCT;
  21. COUNTRYCODE_STRUCT rgCountryCodeArray[243];
  22. static TCHAR *StrDontSpecifySetting;
  23. static VOID LoadCountryStrings( VOID );
  24. //----------------------------------------------------------------------------
  25. //
  26. // Function: IsValidAreaCode
  27. //
  28. // Purpose: Analyzes the area code the user entered to see if it is a valid
  29. // area code.
  30. //
  31. // Arguments: VOID
  32. //
  33. // Returns: VOID
  34. //
  35. //----------------------------------------------------------------------------
  36. static BOOL
  37. IsValidAreaCode( VOID )
  38. {
  39. INT i;
  40. //
  41. // Leaving it blank is valid
  42. //
  43. if( GenSettings.szAreaCode[0] == _T('\0') )
  44. {
  45. return( TRUE );
  46. }
  47. // ISSUE-2002/02/28-stelo- make sure these are the only valid chars on localized builds of NT as well
  48. //
  49. // Only valid chars for area code are 0 through 9
  50. //
  51. for( i = 0; GenSettings.szAreaCode[i] != _T('\0'); i++ )
  52. {
  53. if( GenSettings.szAreaCode[i] < _T('0') ||
  54. GenSettings.szAreaCode[i] > _T('9') )
  55. {
  56. return( FALSE );
  57. }
  58. }
  59. return( TRUE );
  60. }
  61. //----------------------------------------------------------------------------
  62. //
  63. // Function: IsValidOutsideLine
  64. //
  65. // Purpose: Analyzes the outside line the user entered to see if it is a valid
  66. // outside line.
  67. //
  68. // Arguments: VOID
  69. //
  70. // Returns: VOID
  71. //
  72. //----------------------------------------------------------------------------
  73. static BOOL
  74. IsValidOutsideLine( VOID )
  75. {
  76. INT i;
  77. //
  78. // Leaving it blank is valid
  79. //
  80. if( GenSettings.szOutsideLine[0] == _T('\0') )
  81. {
  82. return( TRUE );
  83. }
  84. // ISSUE-2002/02/28-stelo- make sure these are the only valid chars on localized builds of NT as well
  85. //
  86. // Only valid chars for outside line are 0 through 9 and * # ,
  87. //
  88. for( i = 0; GenSettings.szOutsideLine[i] != _T('\0'); i++ )
  89. {
  90. if( GenSettings.szOutsideLine[i] < _T('0') ||
  91. GenSettings.szOutsideLine[i] > _T('9') )
  92. {
  93. //
  94. // Only acceptable chars outside the 0-9 range are are * # ,
  95. //
  96. if( GenSettings.szOutsideLine[i] != _T('*') &&
  97. GenSettings.szOutsideLine[i] != _T('#') &&
  98. GenSettings.szOutsideLine[i] != _T(',') )
  99. {
  100. return( FALSE );
  101. }
  102. }
  103. }
  104. return( TRUE );
  105. }
  106. //----------------------------------------------------------------------------
  107. //
  108. // Function: OnTapiInitDialog
  109. //
  110. // Purpose:
  111. //
  112. // Arguments: IN HWND hwnd - handle to the dialog box
  113. //
  114. // Returns: VOID
  115. //
  116. //----------------------------------------------------------------------------
  117. VOID
  118. OnTapiInitDialog( IN HWND hwnd ) {
  119. INT i;
  120. INT_PTR iIndex = 0;
  121. //
  122. // Load strings from resources
  123. //
  124. StrDontSpecifySetting = MyLoadString( IDS_DONTSPECIFYSETTING );
  125. LoadCountryStrings();
  126. // Disable IME so DBCS characters can not be entered in fields
  127. //
  128. ImmAssociateContext(GetDlgItem(hwnd, IDC_AREACODE), NULL);
  129. ImmAssociateContext(GetDlgItem(hwnd, IDC_OUTSIDELINE), NULL);
  130. //
  131. // Set the text limit on the edit boxes to MAX_PHONE_LENGTH
  132. //
  133. SendDlgItemMessage( hwnd,
  134. IDC_AREACODE,
  135. EM_LIMITTEXT,
  136. (WPARAM) MAX_PHONE_LENGTH,
  137. (LPARAM) 0 );
  138. SendDlgItemMessage( hwnd,
  139. IDC_OUTSIDELINE,
  140. EM_LIMITTEXT,
  141. (WPARAM) MAX_PHONE_LENGTH,
  142. (LPARAM) 0 );
  143. //
  144. // Load the combo box with all the possible countries
  145. // (it also loads the box with the "Don't specify setting")
  146. //
  147. for( i = 0; i < LengthOf(rgCountryCodeArray); i++ )
  148. {
  149. SendDlgItemMessage( hwnd,
  150. IDC_COUNTRYCODE,
  151. CB_ADDSTRING,
  152. (WPARAM) 0,
  153. (LPARAM) rgCountryCodeArray[i].szCountryName );
  154. }
  155. //
  156. // Load the Tone/Pulse dialog with the strings Tone, Pulse and Don't specify
  157. // and associate a unique number to them
  158. //
  159. iIndex = SendDlgItemMessage( hwnd,
  160. IDC_CB_TONEPULSE,
  161. CB_ADDSTRING,
  162. (WPARAM) 0,
  163. (LPARAM) MyLoadString( IDS_TONE ) );
  164. SendDlgItemMessage( hwnd,
  165. IDC_CB_TONEPULSE,
  166. CB_SETITEMDATA,
  167. (WPARAM) iIndex,
  168. (LPARAM) TONE );
  169. iIndex = SendDlgItemMessage( hwnd,
  170. IDC_CB_TONEPULSE,
  171. CB_ADDSTRING,
  172. (WPARAM) 0,
  173. (LPARAM) MyLoadString( IDS_PULSE ) );
  174. SendDlgItemMessage( hwnd,
  175. IDC_CB_TONEPULSE,
  176. CB_SETITEMDATA,
  177. (WPARAM) iIndex,
  178. (LPARAM) PULSE );
  179. iIndex = SendDlgItemMessage( hwnd,
  180. IDC_CB_TONEPULSE,
  181. CB_ADDSTRING,
  182. (WPARAM) 0,
  183. (LPARAM) StrDontSpecifySetting );
  184. SendDlgItemMessage( hwnd,
  185. IDC_CB_TONEPULSE,
  186. CB_SETITEMDATA,
  187. (WPARAM) iIndex,
  188. (LPARAM) DONTSPECIFYSETTING );
  189. }
  190. //----------------------------------------------------------------------------
  191. //
  192. // Function: OnTapiSetActive
  193. //
  194. // Purpose:
  195. //
  196. // Arguments: IN HWND hwnd - handle to the dialog box
  197. //
  198. // Returns: VOID
  199. //
  200. //----------------------------------------------------------------------------
  201. VOID
  202. OnTapiSetActive( IN HWND hwnd ) {
  203. INT i;
  204. INT_PTR iReturnValue = 0;
  205. //
  206. // Find the string corresponding to the country code
  207. //
  208. for( i = 0; i < LengthOf(rgCountryCodeArray); i++ )
  209. {
  210. if( rgCountryCodeArray[i].dwCountryCode ==
  211. GenSettings.dwCountryCode )
  212. {
  213. iReturnValue = SendDlgItemMessage( hwnd,
  214. IDC_COUNTRYCODE,
  215. CB_SELECTSTRING,
  216. (WPARAM) -1,
  217. (LPARAM) rgCountryCodeArray[i].szCountryName );
  218. break; // found the item so break out of the for loop
  219. }
  220. }
  221. //
  222. // if the country code was not found just select the 1st item
  223. //
  224. if( i >= LengthOf(rgCountryCodeArray) || iReturnValue == CB_ERR )
  225. {
  226. SendDlgItemMessage( hwnd,
  227. IDC_COUNTRYCODE,
  228. CB_SETCURSEL,
  229. (WPARAM) 0,
  230. (LPARAM) 0 );
  231. }
  232. SetWindowText( GetDlgItem( hwnd, IDC_AREACODE ),
  233. GenSettings.szAreaCode );
  234. SetWindowText( GetDlgItem( hwnd, IDC_OUTSIDELINE ),
  235. GenSettings.szOutsideLine );
  236. //
  237. // Set the dialing method to Tone, Pulse or Don't specify
  238. //
  239. if( GenSettings.iDialingMethod == TONE ) {
  240. SendDlgItemMessage( hwnd,
  241. IDC_CB_TONEPULSE,
  242. CB_SETCURSEL,
  243. (WPARAM) 0,
  244. (LPARAM) 0 );
  245. }
  246. else if( GenSettings.iDialingMethod == PULSE ) {
  247. SendDlgItemMessage( hwnd,
  248. IDC_CB_TONEPULSE,
  249. CB_SETCURSEL,
  250. (WPARAM) 1,
  251. (LPARAM) 0 );
  252. }
  253. else {
  254. SendDlgItemMessage( hwnd,
  255. IDC_CB_TONEPULSE,
  256. CB_SETCURSEL,
  257. (WPARAM) 2,
  258. (LPARAM) 0 );
  259. }
  260. WIZ_BUTTONS(hwnd, PSWIZB_BACK | PSWIZB_NEXT);
  261. }
  262. //----------------------------------------------------------------------------
  263. //
  264. // Function: OnWizNextTapi
  265. //
  266. // Purpose: Store the setting from the TAPI page into the appropriate
  267. // global variables
  268. //
  269. // Arguments: IN HWND hwnd - handle to the dialog box
  270. //
  271. // Returns: BOOL
  272. //
  273. //----------------------------------------------------------------------------
  274. BOOL
  275. OnWizNextTapi( IN HWND hwnd ) {
  276. INT i;
  277. INT_PTR iIndex;
  278. INT iData;
  279. TCHAR szBuffer[MAX_STRING_LEN];
  280. BOOL bStayOnThisPage = FALSE;
  281. BOOL bResult = TRUE;
  282. //
  283. // Grab the country code
  284. //
  285. iIndex = SendDlgItemMessage( hwnd,
  286. IDC_COUNTRYCODE,
  287. CB_GETCURSEL,
  288. (WPARAM) 0,
  289. (LPARAM) 0 );
  290. SendDlgItemMessage( hwnd,
  291. IDC_COUNTRYCODE,
  292. CB_GETLBTEXT,
  293. (WPARAM) iIndex,
  294. (LPARAM) szBuffer );
  295. for(i = 0; i < LengthOf(rgCountryCodeArray); i++)
  296. {
  297. if( lstrcmp( szBuffer,
  298. rgCountryCodeArray[i].szCountryName ) == 0 )
  299. {
  300. GenSettings.dwCountryCode = rgCountryCodeArray[i].dwCountryCode;
  301. break; // found it, so break
  302. }
  303. }
  304. //
  305. // if, for some reason, the country doesn't match, just set it to US
  306. //
  307. if( i >= LengthOf(rgCountryCodeArray) )
  308. {
  309. //
  310. // Somehow a country that was not known about was specified
  311. //
  312. AssertMsg(FALSE,
  313. "Programming error: Unknown TAPI country code");
  314. GenSettings.dwCountryCode = 1;
  315. }
  316. //
  317. // Grab the Area code
  318. //
  319. GetWindowText( GetDlgItem( hwnd, IDC_AREACODE ),
  320. GenSettings.szAreaCode,
  321. MAX_PHONE_LENGTH + 1 );
  322. //
  323. // Grab the outside line number
  324. //
  325. GetWindowText( GetDlgItem( hwnd, IDC_OUTSIDELINE ),
  326. GenSettings.szOutsideLine,
  327. MAX_PHONE_LENGTH + 1 );
  328. //
  329. // Grab if it is Tone or Pulse dialing (or Don't Specify)
  330. //
  331. iIndex = SendDlgItemMessage( hwnd,
  332. IDC_CB_TONEPULSE,
  333. CB_GETCURSEL,
  334. (WPARAM) 0,
  335. (LPARAM) 0 );
  336. GenSettings.iDialingMethod = (int)SendDlgItemMessage( hwnd,
  337. IDC_CB_TONEPULSE,
  338. CB_GETITEMDATA,
  339. (WPARAM) iIndex,
  340. (LPARAM) szBuffer );
  341. if( GenSettings.iDialingMethod == CB_ERR ) {
  342. AssertMsg( FALSE,
  343. "Programming error: Bad item data for Tone/Pulse dialing" );
  344. GenSettings.iDialingMethod = TONE;
  345. }
  346. if( ! IsValidAreaCode() )
  347. {
  348. bResult = FALSE;
  349. ReportErrorId( hwnd,
  350. MSGTYPE_ERR,
  351. IDS_ERR_BAD_AREA_CODE );
  352. }
  353. if( ! IsValidOutsideLine() )
  354. {
  355. bResult = FALSE;
  356. ReportErrorId( hwnd,
  357. MSGTYPE_ERR,
  358. IDS_ERR_BAD_OUTSIDE_LINE );
  359. }
  360. return ( bResult );
  361. }
  362. //----------------------------------------------------------------------------
  363. //
  364. // Function: DlgTapiPage
  365. //
  366. // Purpose:
  367. //
  368. // Arguments: standard Win32 dialog proc arguments
  369. //
  370. // Returns: standard Win32 dialog proc return value -- whether the message
  371. // was handled or not
  372. //
  373. //----------------------------------------------------------------------------
  374. INT_PTR CALLBACK
  375. DlgTapiPage( IN HWND hwnd,
  376. IN UINT uMsg,
  377. IN WPARAM wParam,
  378. IN LPARAM lParam) {
  379. BOOL bStatus = TRUE;
  380. switch( uMsg ) {
  381. case WM_INITDIALOG: {
  382. OnTapiInitDialog( hwnd );
  383. break;
  384. }
  385. case WM_NOTIFY: {
  386. LPNMHDR pnmh = (LPNMHDR)lParam;
  387. switch( pnmh->code ) {
  388. case PSN_QUERYCANCEL:
  389. WIZ_CANCEL(hwnd);
  390. break;
  391. case PSN_SETACTIVE: {
  392. g_App.dwCurrentHelp = IDH_TELE_PHNY;
  393. OnTapiSetActive( hwnd );
  394. break;
  395. }
  396. case PSN_WIZBACK:
  397. bStatus = FALSE;
  398. break;
  399. case PSN_WIZNEXT:
  400. if ( !OnWizNextTapi( hwnd ) )
  401. WIZ_FAIL(hwnd);
  402. else
  403. bStatus = FALSE;
  404. break;
  405. case PSN_HELP:
  406. WIZ_HELP();
  407. break;
  408. default:
  409. break;
  410. }
  411. break;
  412. }
  413. default:
  414. bStatus = FALSE;
  415. break;
  416. }
  417. return bStatus;
  418. }
  419. static VOID
  420. LoadCountryStrings( VOID ) {
  421. rgCountryCodeArray[0].dwCountryCode = 1;
  422. rgCountryCodeArray[0].szCountryName = MyLoadString( IDS_United_States_of_America );
  423. rgCountryCodeArray[1].dwCountryCode = 101;
  424. rgCountryCodeArray[1].szCountryName = MyLoadString( IDS_Anguilla );
  425. rgCountryCodeArray[2].dwCountryCode = 102;
  426. rgCountryCodeArray[2].szCountryName = MyLoadString( IDS_Antigua );
  427. rgCountryCodeArray[3].dwCountryCode = 103;
  428. rgCountryCodeArray[3].szCountryName = MyLoadString( IDS_Bahamas );
  429. rgCountryCodeArray[4].dwCountryCode = 104;
  430. rgCountryCodeArray[4].szCountryName = MyLoadString( IDS_Barbados );
  431. rgCountryCodeArray[5].dwCountryCode = 105;
  432. rgCountryCodeArray[5].szCountryName = MyLoadString( IDS_Bermuda );
  433. rgCountryCodeArray[6].dwCountryCode = 106;
  434. rgCountryCodeArray[6].szCountryName = MyLoadString( IDS_British_Virgin_Islands );
  435. rgCountryCodeArray[7].dwCountryCode = 107;
  436. rgCountryCodeArray[7].szCountryName = MyLoadString( IDS_Canada );
  437. rgCountryCodeArray[8].dwCountryCode = 108;
  438. rgCountryCodeArray[8].szCountryName = MyLoadString( IDS_Cayman_Islands );
  439. rgCountryCodeArray[9].dwCountryCode = 109;
  440. rgCountryCodeArray[9].szCountryName = MyLoadString( IDS_Dominica );
  441. rgCountryCodeArray[10].dwCountryCode = 110;
  442. rgCountryCodeArray[10].szCountryName = MyLoadString( IDS_Dominican_Republic );
  443. rgCountryCodeArray[11].dwCountryCode = 111;
  444. rgCountryCodeArray[11].szCountryName = MyLoadString( IDS_Grenada );
  445. rgCountryCodeArray[12].dwCountryCode = 112;
  446. rgCountryCodeArray[12].szCountryName = MyLoadString( IDS_Jamaica );
  447. rgCountryCodeArray[13].dwCountryCode = 113;
  448. rgCountryCodeArray[13].szCountryName = MyLoadString( IDS_Montserrat );
  449. rgCountryCodeArray[14].dwCountryCode = 114;
  450. rgCountryCodeArray[14].szCountryName = MyLoadString( IDS_Nevis );
  451. rgCountryCodeArray[15].dwCountryCode = 115;
  452. rgCountryCodeArray[15].szCountryName = MyLoadString( IDS_St__Kitts );
  453. rgCountryCodeArray[16].dwCountryCode = 116;
  454. rgCountryCodeArray[16].szCountryName = MyLoadString( IDS_St__Vincent_Grenadines );
  455. rgCountryCodeArray[17].dwCountryCode = 117;
  456. rgCountryCodeArray[17].szCountryName = MyLoadString( IDS_Trinidad_and_Tobago );
  457. rgCountryCodeArray[18].dwCountryCode = 118;
  458. rgCountryCodeArray[18].szCountryName = MyLoadString( IDS_Turks_and_Caicos_Islands );
  459. rgCountryCodeArray[19].dwCountryCode = 120;
  460. rgCountryCodeArray[19].szCountryName = MyLoadString( IDS_Barbuda );
  461. rgCountryCodeArray[20].dwCountryCode = 121;
  462. rgCountryCodeArray[20].szCountryName = MyLoadString( IDS_Puerto_Rico );
  463. rgCountryCodeArray[21].dwCountryCode = 122;
  464. rgCountryCodeArray[21].szCountryName = MyLoadString( IDS_Saint_Lucia );
  465. rgCountryCodeArray[22].dwCountryCode = 123;
  466. rgCountryCodeArray[22].szCountryName = MyLoadString( IDS_United_States_Virgin_Is );
  467. rgCountryCodeArray[23].dwCountryCode = 20;
  468. rgCountryCodeArray[23].szCountryName = MyLoadString( IDS_Egypt );
  469. rgCountryCodeArray[24].dwCountryCode = 212;
  470. rgCountryCodeArray[24].szCountryName = MyLoadString( IDS_Morocco );
  471. rgCountryCodeArray[25].dwCountryCode = 213;
  472. rgCountryCodeArray[25].szCountryName = MyLoadString( IDS_Algeria );
  473. rgCountryCodeArray[26].dwCountryCode = 216;
  474. rgCountryCodeArray[26].szCountryName = MyLoadString( IDS_Tunisia );
  475. rgCountryCodeArray[27].dwCountryCode = 218;
  476. rgCountryCodeArray[27].szCountryName = MyLoadString( IDS_Libya );
  477. rgCountryCodeArray[28].dwCountryCode = 220;
  478. rgCountryCodeArray[28].szCountryName = MyLoadString( IDS_Gambia );
  479. rgCountryCodeArray[29].dwCountryCode = 221;
  480. rgCountryCodeArray[29].szCountryName = MyLoadString( IDS_Senegal );
  481. rgCountryCodeArray[30].dwCountryCode = 222;
  482. rgCountryCodeArray[30].szCountryName = MyLoadString( IDS_Mauritania );
  483. rgCountryCodeArray[31].dwCountryCode = 223;
  484. rgCountryCodeArray[31].szCountryName = MyLoadString( IDS_Mali );
  485. rgCountryCodeArray[32].dwCountryCode = 224;
  486. rgCountryCodeArray[32].szCountryName = MyLoadString( IDS_Guinea );
  487. rgCountryCodeArray[33].dwCountryCode = 225;
  488. rgCountryCodeArray[33].szCountryName = MyLoadString( IDS_Cote_d_Ivoire );
  489. rgCountryCodeArray[34].dwCountryCode = 226;
  490. rgCountryCodeArray[34].szCountryName = MyLoadString( IDS_Burkina_Faso );
  491. rgCountryCodeArray[35].dwCountryCode = 227;
  492. rgCountryCodeArray[35].szCountryName = MyLoadString( IDS_Niger );
  493. rgCountryCodeArray[36].dwCountryCode = 228;
  494. rgCountryCodeArray[36].szCountryName = MyLoadString( IDS_Togo );
  495. rgCountryCodeArray[37].dwCountryCode = 229;
  496. rgCountryCodeArray[37].szCountryName = MyLoadString( IDS_Benin );
  497. rgCountryCodeArray[38].dwCountryCode = 230;
  498. rgCountryCodeArray[38].szCountryName = MyLoadString( IDS_Mauritius );
  499. rgCountryCodeArray[39].dwCountryCode = 231;
  500. rgCountryCodeArray[39].szCountryName = MyLoadString( IDS_Liberia );
  501. rgCountryCodeArray[40].dwCountryCode = 232;
  502. rgCountryCodeArray[40].szCountryName = MyLoadString( IDS_Sierra_Leone );
  503. rgCountryCodeArray[41].dwCountryCode = 233;
  504. rgCountryCodeArray[41].szCountryName = MyLoadString( IDS_Ghana );
  505. rgCountryCodeArray[42].dwCountryCode = 234;
  506. rgCountryCodeArray[42].szCountryName = MyLoadString( IDS_Nigeria );
  507. rgCountryCodeArray[43].dwCountryCode = 235;
  508. rgCountryCodeArray[43].szCountryName = MyLoadString( IDS_Chad );
  509. rgCountryCodeArray[44].dwCountryCode = 236;
  510. rgCountryCodeArray[44].szCountryName = MyLoadString( IDS_Central_African_Rep );
  511. rgCountryCodeArray[45].dwCountryCode = 237;
  512. rgCountryCodeArray[45].szCountryName = MyLoadString( IDS_Cameroon );
  513. rgCountryCodeArray[46].dwCountryCode = 238;
  514. rgCountryCodeArray[46].szCountryName = MyLoadString( IDS_Cape_Verde );
  515. rgCountryCodeArray[47].dwCountryCode = 239;
  516. rgCountryCodeArray[47].szCountryName = MyLoadString( IDS_Sao_Tome_and_Principe );
  517. rgCountryCodeArray[48].dwCountryCode = 240;
  518. rgCountryCodeArray[48].szCountryName = MyLoadString( IDS_Equatorial_Guinea );
  519. rgCountryCodeArray[49].dwCountryCode = 241;
  520. rgCountryCodeArray[49].szCountryName = MyLoadString( IDS_Gabon );
  521. rgCountryCodeArray[50].dwCountryCode = 242;
  522. rgCountryCodeArray[50].szCountryName = MyLoadString( IDS_Congo );
  523. rgCountryCodeArray[51].dwCountryCode = 243;
  524. rgCountryCodeArray[51].szCountryName = MyLoadString( IDS_Dem_Rep_of_the_Congo );
  525. rgCountryCodeArray[52].dwCountryCode = 244;
  526. rgCountryCodeArray[52].szCountryName = MyLoadString( IDS_Angola );
  527. rgCountryCodeArray[53].dwCountryCode = 245;
  528. rgCountryCodeArray[53].szCountryName = MyLoadString( IDS_Guinea_Bissau );
  529. rgCountryCodeArray[54].dwCountryCode = 246;
  530. rgCountryCodeArray[54].szCountryName = MyLoadString( IDS_Diego_Garcia );
  531. rgCountryCodeArray[55].dwCountryCode = 247;
  532. rgCountryCodeArray[55].szCountryName = MyLoadString( IDS_Ascension_Island );
  533. rgCountryCodeArray[56].dwCountryCode = 248;
  534. rgCountryCodeArray[56].szCountryName = MyLoadString( IDS_Seychelles );
  535. rgCountryCodeArray[57].dwCountryCode = 249;
  536. rgCountryCodeArray[57].szCountryName = MyLoadString( IDS_Sudan );
  537. rgCountryCodeArray[58].dwCountryCode = 250;
  538. rgCountryCodeArray[58].szCountryName = MyLoadString( IDS_Rwanda );
  539. rgCountryCodeArray[59].dwCountryCode = 251;
  540. rgCountryCodeArray[59].szCountryName = MyLoadString( IDS_Ethiopia );
  541. rgCountryCodeArray[60].dwCountryCode = 252;
  542. rgCountryCodeArray[60].szCountryName = MyLoadString( IDS_Somalia );
  543. rgCountryCodeArray[61].dwCountryCode = 253;
  544. rgCountryCodeArray[61].szCountryName = MyLoadString( IDS_Djibouti );
  545. rgCountryCodeArray[62].dwCountryCode = 254;
  546. rgCountryCodeArray[62].szCountryName = MyLoadString( IDS_Kenya );
  547. rgCountryCodeArray[63].dwCountryCode = 255;
  548. rgCountryCodeArray[63].szCountryName = MyLoadString( IDS_Tanzania );
  549. rgCountryCodeArray[64].dwCountryCode = 256;
  550. rgCountryCodeArray[64].szCountryName = MyLoadString( IDS_Uganda );
  551. rgCountryCodeArray[65].dwCountryCode = 257;
  552. rgCountryCodeArray[65].szCountryName = MyLoadString( IDS_Burundi );
  553. rgCountryCodeArray[66].dwCountryCode = 258;
  554. rgCountryCodeArray[66].szCountryName = MyLoadString( IDS_Mozambique );
  555. rgCountryCodeArray[67].dwCountryCode = 260;
  556. rgCountryCodeArray[67].szCountryName = MyLoadString( IDS_Zambia );
  557. rgCountryCodeArray[68].dwCountryCode = 261;
  558. rgCountryCodeArray[68].szCountryName = MyLoadString( IDS_Madagascar );
  559. rgCountryCodeArray[69].dwCountryCode = 262;
  560. rgCountryCodeArray[69].szCountryName = MyLoadString( IDS_Reunion_Island );
  561. rgCountryCodeArray[70].dwCountryCode = 263;
  562. rgCountryCodeArray[70].szCountryName = MyLoadString( IDS_Zimbabwe );
  563. rgCountryCodeArray[71].dwCountryCode = 264;
  564. rgCountryCodeArray[71].szCountryName = MyLoadString( IDS_Namibia );
  565. rgCountryCodeArray[72].dwCountryCode = 265;
  566. rgCountryCodeArray[72].szCountryName = MyLoadString( IDS_Malawi );
  567. rgCountryCodeArray[73].dwCountryCode = 266;
  568. rgCountryCodeArray[73].szCountryName = MyLoadString( IDS_Lesotho );
  569. rgCountryCodeArray[74].dwCountryCode = 267;
  570. rgCountryCodeArray[74].szCountryName = MyLoadString( IDS_Botswana );
  571. rgCountryCodeArray[75].dwCountryCode = 268;
  572. rgCountryCodeArray[75].szCountryName = MyLoadString( IDS_Swaziland );
  573. rgCountryCodeArray[76].dwCountryCode = 269;
  574. rgCountryCodeArray[76].szCountryName = MyLoadString( IDS_Mayotte_Island );
  575. rgCountryCodeArray[77].dwCountryCode = 2691;
  576. rgCountryCodeArray[77].szCountryName = MyLoadString( IDS_Comoros );
  577. rgCountryCodeArray[78].dwCountryCode = 27;
  578. rgCountryCodeArray[78].szCountryName = MyLoadString( IDS_South_Africa );
  579. rgCountryCodeArray[79].dwCountryCode = 290;
  580. rgCountryCodeArray[79].szCountryName = MyLoadString( IDS_St__Helena );
  581. rgCountryCodeArray[80].dwCountryCode = 291;
  582. rgCountryCodeArray[80].szCountryName = MyLoadString( IDS_Eritrea );
  583. rgCountryCodeArray[81].dwCountryCode = 297;
  584. rgCountryCodeArray[81].szCountryName = MyLoadString( IDS_Aruba );
  585. rgCountryCodeArray[82].dwCountryCode = 298;
  586. rgCountryCodeArray[82].szCountryName = MyLoadString( IDS_Faeroe_Islands );
  587. rgCountryCodeArray[83].dwCountryCode = 299;
  588. rgCountryCodeArray[83].szCountryName = MyLoadString( IDS_Greenland );
  589. rgCountryCodeArray[84].dwCountryCode = 30;
  590. rgCountryCodeArray[84].szCountryName = MyLoadString( IDS_Greece );
  591. rgCountryCodeArray[85].dwCountryCode = 31;
  592. rgCountryCodeArray[85].szCountryName = MyLoadString( IDS_Netherlands );
  593. rgCountryCodeArray[86].dwCountryCode = 32;
  594. rgCountryCodeArray[86].szCountryName = MyLoadString( IDS_Belgium );
  595. rgCountryCodeArray[87].dwCountryCode = 33;
  596. rgCountryCodeArray[87].szCountryName = MyLoadString( IDS_France );
  597. rgCountryCodeArray[88].dwCountryCode = 377;
  598. rgCountryCodeArray[88].szCountryName = MyLoadString( IDS_Monaco );
  599. rgCountryCodeArray[89].dwCountryCode = 34;
  600. rgCountryCodeArray[89].szCountryName = MyLoadString( IDS_Spain );
  601. rgCountryCodeArray[90].dwCountryCode = 350;
  602. rgCountryCodeArray[90].szCountryName = MyLoadString( IDS_Gibraltar );
  603. rgCountryCodeArray[91].dwCountryCode = 351;
  604. rgCountryCodeArray[91].szCountryName = MyLoadString( IDS_Portugal );
  605. rgCountryCodeArray[92].dwCountryCode = 352;
  606. rgCountryCodeArray[92].szCountryName = MyLoadString( IDS_Luxembourg );
  607. rgCountryCodeArray[93].dwCountryCode = 353;
  608. rgCountryCodeArray[93].szCountryName = MyLoadString( IDS_Ireland );
  609. rgCountryCodeArray[94].dwCountryCode = 354;
  610. rgCountryCodeArray[94].szCountryName = MyLoadString( IDS_Iceland );
  611. rgCountryCodeArray[95].dwCountryCode = 355;
  612. rgCountryCodeArray[95].szCountryName = MyLoadString( IDS_Albania );
  613. rgCountryCodeArray[96].dwCountryCode = 356;
  614. rgCountryCodeArray[96].szCountryName = MyLoadString( IDS_Malta );
  615. rgCountryCodeArray[97].dwCountryCode = 357;
  616. rgCountryCodeArray[97].szCountryName = MyLoadString( IDS_Cyprus );
  617. rgCountryCodeArray[98].dwCountryCode = 358;
  618. rgCountryCodeArray[98].szCountryName = MyLoadString( IDS_Finland );
  619. rgCountryCodeArray[99].dwCountryCode = 359;
  620. rgCountryCodeArray[99].szCountryName = MyLoadString( IDS_Bulgaria );
  621. rgCountryCodeArray[100].dwCountryCode = 36;
  622. rgCountryCodeArray[100].szCountryName = MyLoadString( IDS_Hungary );
  623. rgCountryCodeArray[101].dwCountryCode = 370;
  624. rgCountryCodeArray[101].szCountryName = MyLoadString( IDS_Lithuania );
  625. rgCountryCodeArray[102].dwCountryCode = 371;
  626. rgCountryCodeArray[102].szCountryName = MyLoadString( IDS_Latvia );
  627. rgCountryCodeArray[103].dwCountryCode = 372;
  628. rgCountryCodeArray[103].szCountryName = MyLoadString( IDS_Estonia );
  629. rgCountryCodeArray[104].dwCountryCode = 373;
  630. rgCountryCodeArray[104].szCountryName = MyLoadString( IDS_Moldova );
  631. rgCountryCodeArray[105].dwCountryCode = 374;
  632. rgCountryCodeArray[105].szCountryName = MyLoadString( IDS_Armenia );
  633. rgCountryCodeArray[106].dwCountryCode = 375;
  634. rgCountryCodeArray[106].szCountryName = MyLoadString( IDS_Belarus );
  635. rgCountryCodeArray[107].dwCountryCode = 376;
  636. rgCountryCodeArray[107].szCountryName = MyLoadString( IDS_Andorra );
  637. rgCountryCodeArray[108].dwCountryCode = 378;
  638. rgCountryCodeArray[108].szCountryName = MyLoadString( IDS_San_Marino );
  639. rgCountryCodeArray[109].dwCountryCode = 379;
  640. rgCountryCodeArray[109].szCountryName = MyLoadString( IDS_Vatican_City );
  641. rgCountryCodeArray[110].dwCountryCode = 380;
  642. rgCountryCodeArray[110].szCountryName = MyLoadString( IDS_Ukraine );
  643. rgCountryCodeArray[111].dwCountryCode = 381;
  644. rgCountryCodeArray[111].szCountryName = MyLoadString( IDS_Yugoslavia );
  645. rgCountryCodeArray[112].dwCountryCode = 385;
  646. rgCountryCodeArray[112].szCountryName = MyLoadString( IDS_Croatia );
  647. rgCountryCodeArray[113].dwCountryCode = 386;
  648. rgCountryCodeArray[113].szCountryName = MyLoadString( IDS_Slovenia );
  649. rgCountryCodeArray[114].dwCountryCode = 387;
  650. rgCountryCodeArray[114].szCountryName = MyLoadString( IDS_Bosnia_and_Herzegovina );
  651. rgCountryCodeArray[115].dwCountryCode = 389;
  652. rgCountryCodeArray[115].szCountryName = MyLoadString( IDS_Former_Yugo_Rep_of_Macedonia );
  653. rgCountryCodeArray[116].dwCountryCode = 39;
  654. rgCountryCodeArray[116].szCountryName = MyLoadString( IDS_Italy );
  655. rgCountryCodeArray[117].dwCountryCode = 40;
  656. rgCountryCodeArray[117].szCountryName = MyLoadString( IDS_Romania );
  657. rgCountryCodeArray[118].dwCountryCode = 41;
  658. rgCountryCodeArray[118].szCountryName = MyLoadString( IDS_Switzerland );
  659. rgCountryCodeArray[119].dwCountryCode = 4101;
  660. rgCountryCodeArray[119].szCountryName = MyLoadString( IDS_Liechtenstein );
  661. rgCountryCodeArray[120].dwCountryCode = 42;
  662. rgCountryCodeArray[120].szCountryName = MyLoadString( IDS_Czech_Republic );
  663. rgCountryCodeArray[121].dwCountryCode = 4201;
  664. rgCountryCodeArray[121].szCountryName = MyLoadString( IDS_Slovakia );
  665. rgCountryCodeArray[122].dwCountryCode = 43;
  666. rgCountryCodeArray[122].szCountryName = MyLoadString( IDS_Austria );
  667. rgCountryCodeArray[123].dwCountryCode = 44;
  668. rgCountryCodeArray[123].szCountryName = MyLoadString( IDS_United_Kingdom );
  669. rgCountryCodeArray[124].dwCountryCode = 45;
  670. rgCountryCodeArray[124].szCountryName = MyLoadString( IDS_Denmark );
  671. rgCountryCodeArray[125].dwCountryCode = 46;
  672. rgCountryCodeArray[125].szCountryName = MyLoadString( IDS_Sweden );
  673. rgCountryCodeArray[126].dwCountryCode = 47;
  674. rgCountryCodeArray[126].szCountryName = MyLoadString( IDS_Norway );
  675. rgCountryCodeArray[127].dwCountryCode = 48;
  676. rgCountryCodeArray[127].szCountryName = MyLoadString( IDS_Poland );
  677. rgCountryCodeArray[128].dwCountryCode = 49;
  678. rgCountryCodeArray[128].szCountryName = MyLoadString( IDS_Germany );
  679. rgCountryCodeArray[129].dwCountryCode = 500;
  680. rgCountryCodeArray[129].szCountryName = MyLoadString( IDS_Falkland_Islands );
  681. rgCountryCodeArray[130].dwCountryCode = 501;
  682. rgCountryCodeArray[130].szCountryName = MyLoadString( IDS_Belize );
  683. rgCountryCodeArray[131].dwCountryCode = 502;
  684. rgCountryCodeArray[131].szCountryName = MyLoadString( IDS_Guatemala );
  685. rgCountryCodeArray[132].dwCountryCode = 503;
  686. rgCountryCodeArray[132].szCountryName = MyLoadString( IDS_El_Salvador );
  687. rgCountryCodeArray[133].dwCountryCode = 504;
  688. rgCountryCodeArray[133].szCountryName = MyLoadString( IDS_Honduras );
  689. rgCountryCodeArray[134].dwCountryCode = 505;
  690. rgCountryCodeArray[134].szCountryName = MyLoadString( IDS_Nicaragua );
  691. rgCountryCodeArray[135].dwCountryCode = 506;
  692. rgCountryCodeArray[135].szCountryName = MyLoadString( IDS_Costa_Rica );
  693. rgCountryCodeArray[136].dwCountryCode = 507;
  694. rgCountryCodeArray[136].szCountryName = MyLoadString( IDS_Panama );
  695. rgCountryCodeArray[137].dwCountryCode = 508;
  696. rgCountryCodeArray[137].szCountryName = MyLoadString( IDS_St__Pierre_and_Miquelon );
  697. rgCountryCodeArray[138].dwCountryCode = 509;
  698. rgCountryCodeArray[138].szCountryName = MyLoadString( IDS_Haiti );
  699. rgCountryCodeArray[139].dwCountryCode = 51;
  700. rgCountryCodeArray[139].szCountryName = MyLoadString( IDS_Peru );
  701. rgCountryCodeArray[140].dwCountryCode = 52;
  702. rgCountryCodeArray[140].szCountryName = MyLoadString( IDS_Mexico );
  703. rgCountryCodeArray[141].dwCountryCode = 53;
  704. rgCountryCodeArray[141].szCountryName = MyLoadString( IDS_Cuba );
  705. rgCountryCodeArray[142].dwCountryCode = 5399;
  706. rgCountryCodeArray[142].szCountryName = MyLoadString( IDS_Guantanamo_Bay );
  707. rgCountryCodeArray[143].dwCountryCode = 54;
  708. rgCountryCodeArray[143].szCountryName = MyLoadString( IDS_Argentina );
  709. rgCountryCodeArray[144].dwCountryCode = 55;
  710. rgCountryCodeArray[144].szCountryName = MyLoadString( IDS_Brazil );
  711. rgCountryCodeArray[145].dwCountryCode = 56;
  712. rgCountryCodeArray[145].szCountryName = MyLoadString( IDS_Chile );
  713. rgCountryCodeArray[146].dwCountryCode = 57;
  714. rgCountryCodeArray[146].szCountryName = MyLoadString( IDS_Colombia );
  715. rgCountryCodeArray[147].dwCountryCode = 58;
  716. rgCountryCodeArray[147].szCountryName = MyLoadString( IDS_Venezuela );
  717. rgCountryCodeArray[148].dwCountryCode = 590;
  718. rgCountryCodeArray[148].szCountryName = MyLoadString( IDS_Guadeloupe );
  719. rgCountryCodeArray[149].dwCountryCode = 5901;
  720. rgCountryCodeArray[149].szCountryName = MyLoadString( IDS_French_Antilles );
  721. rgCountryCodeArray[150].dwCountryCode = 591;
  722. rgCountryCodeArray[150].szCountryName = MyLoadString( IDS_Bolivia );
  723. rgCountryCodeArray[151].dwCountryCode = 592;
  724. rgCountryCodeArray[151].szCountryName = MyLoadString( IDS_Guyana );
  725. rgCountryCodeArray[152].dwCountryCode = 593;
  726. rgCountryCodeArray[152].szCountryName = MyLoadString( IDS_Ecuador );
  727. rgCountryCodeArray[153].dwCountryCode = 594;
  728. rgCountryCodeArray[153].szCountryName = MyLoadString( IDS_French_Guiana );
  729. rgCountryCodeArray[154].dwCountryCode = 595;
  730. rgCountryCodeArray[154].szCountryName = MyLoadString( IDS_Paraguay );
  731. rgCountryCodeArray[155].dwCountryCode = 596;
  732. rgCountryCodeArray[155].szCountryName = MyLoadString( IDS_Martinique );
  733. rgCountryCodeArray[156].dwCountryCode = 597;
  734. rgCountryCodeArray[156].szCountryName = MyLoadString( IDS_Suriname );
  735. rgCountryCodeArray[157].dwCountryCode = 598;
  736. rgCountryCodeArray[157].szCountryName = MyLoadString( IDS_Uruguay );
  737. rgCountryCodeArray[158].dwCountryCode = 599;
  738. rgCountryCodeArray[158].szCountryName = MyLoadString( IDS_Netherlands_Antilles );
  739. rgCountryCodeArray[159].dwCountryCode = 60;
  740. rgCountryCodeArray[159].szCountryName = MyLoadString( IDS_Malaysia );
  741. rgCountryCodeArray[160].dwCountryCode = 61;
  742. rgCountryCodeArray[160].szCountryName = MyLoadString( IDS_Australia );
  743. rgCountryCodeArray[161].dwCountryCode = 6101;
  744. rgCountryCodeArray[161].szCountryName = MyLoadString( IDS_Cocos_Keeling_Islands );
  745. rgCountryCodeArray[162].dwCountryCode = 62;
  746. rgCountryCodeArray[162].szCountryName = MyLoadString( IDS_Indonesia );
  747. rgCountryCodeArray[163].dwCountryCode = 63;
  748. rgCountryCodeArray[163].szCountryName = MyLoadString( IDS_Philippines );
  749. rgCountryCodeArray[164].dwCountryCode = 64;
  750. rgCountryCodeArray[164].szCountryName = MyLoadString( IDS_New_Zealand );
  751. rgCountryCodeArray[165].dwCountryCode = 65;
  752. rgCountryCodeArray[165].szCountryName = MyLoadString( IDS_Singapore );
  753. rgCountryCodeArray[166].dwCountryCode = 66;
  754. rgCountryCodeArray[166].szCountryName = MyLoadString( IDS_Thailand );
  755. rgCountryCodeArray[167].dwCountryCode = 670;
  756. rgCountryCodeArray[167].szCountryName = MyLoadString( IDS_Saipan_Island );
  757. rgCountryCodeArray[168].dwCountryCode = 6701;
  758. rgCountryCodeArray[168].szCountryName = MyLoadString( IDS_Rota_Island );
  759. rgCountryCodeArray[169].dwCountryCode = 6702;
  760. rgCountryCodeArray[169].szCountryName = MyLoadString( IDS_Tinian_Island );
  761. rgCountryCodeArray[170].dwCountryCode = 671;
  762. rgCountryCodeArray[170].szCountryName = MyLoadString( IDS_Guam );
  763. rgCountryCodeArray[171].dwCountryCode = 672;
  764. rgCountryCodeArray[171].szCountryName = MyLoadString( IDS_Christmas_Island );
  765. rgCountryCodeArray[172].dwCountryCode = 6721;
  766. rgCountryCodeArray[172].szCountryName = MyLoadString( IDS_Australian_Antarctic_Territory );
  767. rgCountryCodeArray[173].dwCountryCode = 6722;
  768. rgCountryCodeArray[173].szCountryName = MyLoadString( IDS_Norfolk_Island );
  769. rgCountryCodeArray[174].dwCountryCode = 673;
  770. rgCountryCodeArray[174].szCountryName = MyLoadString( IDS_Brunei );
  771. rgCountryCodeArray[175].dwCountryCode = 674;
  772. rgCountryCodeArray[175].szCountryName = MyLoadString( IDS_Nauru );
  773. rgCountryCodeArray[176].dwCountryCode = 675;
  774. rgCountryCodeArray[176].szCountryName = MyLoadString( IDS_Papua_New_Guinea );
  775. rgCountryCodeArray[177].dwCountryCode = 676;
  776. rgCountryCodeArray[177].szCountryName = MyLoadString( IDS_Tonga );
  777. rgCountryCodeArray[178].dwCountryCode = 677;
  778. rgCountryCodeArray[178].szCountryName = MyLoadString( IDS_Solomon_Islands );
  779. rgCountryCodeArray[179].dwCountryCode = 678;
  780. rgCountryCodeArray[179].szCountryName = MyLoadString( IDS_Vanuatu );
  781. rgCountryCodeArray[180].dwCountryCode = 679;
  782. rgCountryCodeArray[180].szCountryName = MyLoadString( IDS_Fiji );
  783. rgCountryCodeArray[181].dwCountryCode = 680;
  784. rgCountryCodeArray[181].szCountryName = MyLoadString( IDS_Palau );
  785. rgCountryCodeArray[182].dwCountryCode = 681;
  786. rgCountryCodeArray[182].szCountryName = MyLoadString( IDS_Wallis_and_Futuna_Islands );
  787. rgCountryCodeArray[183].dwCountryCode = 682;
  788. rgCountryCodeArray[183].szCountryName = MyLoadString( IDS_Cook_Islands );
  789. rgCountryCodeArray[184].dwCountryCode = 683;
  790. rgCountryCodeArray[184].szCountryName = MyLoadString( IDS_Niue );
  791. rgCountryCodeArray[185].dwCountryCode = 684;
  792. rgCountryCodeArray[185].szCountryName = MyLoadString( IDS_American_Samoa );
  793. rgCountryCodeArray[186].dwCountryCode = 685;
  794. rgCountryCodeArray[186].szCountryName = MyLoadString( IDS_Samoa );
  795. rgCountryCodeArray[187].dwCountryCode = 686;
  796. rgCountryCodeArray[187].szCountryName = MyLoadString( IDS_Kiribati );
  797. rgCountryCodeArray[188].dwCountryCode = 687;
  798. rgCountryCodeArray[188].szCountryName = MyLoadString( IDS_New_Caledonia );
  799. rgCountryCodeArray[189].dwCountryCode = 688;
  800. rgCountryCodeArray[189].szCountryName = MyLoadString( IDS_Tuvalu );
  801. rgCountryCodeArray[190].dwCountryCode = 689;
  802. rgCountryCodeArray[190].szCountryName = MyLoadString( IDS_French_Polynesia );
  803. rgCountryCodeArray[191].dwCountryCode = 690;
  804. rgCountryCodeArray[191].szCountryName = MyLoadString( IDS_Tokelau );
  805. rgCountryCodeArray[192].dwCountryCode = 691;
  806. rgCountryCodeArray[192].szCountryName = MyLoadString( IDS_Micronesia__Fed_States_of );
  807. rgCountryCodeArray[193].dwCountryCode = 692;
  808. rgCountryCodeArray[193].szCountryName = MyLoadString( IDS_Marshall_Islands );
  809. rgCountryCodeArray[194].dwCountryCode = 7;
  810. rgCountryCodeArray[194].szCountryName = MyLoadString( IDS_Russia );
  811. rgCountryCodeArray[195].dwCountryCode = 705;
  812. rgCountryCodeArray[195].szCountryName = MyLoadString( IDS_Kazakhstan );
  813. rgCountryCodeArray[196].dwCountryCode = 706;
  814. rgCountryCodeArray[196].szCountryName = MyLoadString( IDS_Kyrgyzstan );
  815. rgCountryCodeArray[197].dwCountryCode = 708;
  816. rgCountryCodeArray[197].szCountryName = MyLoadString( IDS_Tajikistan );
  817. rgCountryCodeArray[198].dwCountryCode = 709;
  818. rgCountryCodeArray[198].szCountryName = MyLoadString( IDS_Turkmenistan );
  819. rgCountryCodeArray[199].dwCountryCode = 711;
  820. rgCountryCodeArray[199].szCountryName = MyLoadString( IDS_Uzbekistan );
  821. rgCountryCodeArray[200].dwCountryCode = 81;
  822. rgCountryCodeArray[200].szCountryName = MyLoadString( IDS_Japan );
  823. rgCountryCodeArray[201].dwCountryCode = 82;
  824. rgCountryCodeArray[201].szCountryName = MyLoadString( IDS_Korea__Republic_of );
  825. rgCountryCodeArray[202].dwCountryCode = 84;
  826. rgCountryCodeArray[202].szCountryName = MyLoadString( IDS_Vietnam );
  827. rgCountryCodeArray[203].dwCountryCode = 850;
  828. rgCountryCodeArray[203].szCountryName = MyLoadString( IDS_Korea__North_ );
  829. rgCountryCodeArray[204].dwCountryCode = 852;
  830. rgCountryCodeArray[204].szCountryName = MyLoadString( IDS_Hong_Kong );
  831. rgCountryCodeArray[205].dwCountryCode = 853;
  832. rgCountryCodeArray[205].szCountryName = MyLoadString( IDS_Macau );
  833. rgCountryCodeArray[206].dwCountryCode = 855;
  834. rgCountryCodeArray[206].szCountryName = MyLoadString( IDS_Cambodia );
  835. rgCountryCodeArray[207].dwCountryCode = 856;
  836. rgCountryCodeArray[207].szCountryName = MyLoadString( IDS_Laos );
  837. rgCountryCodeArray[208].dwCountryCode = 86;
  838. rgCountryCodeArray[208].szCountryName = MyLoadString( IDS_China );
  839. rgCountryCodeArray[209].dwCountryCode = 871;
  840. rgCountryCodeArray[209].szCountryName = MyLoadString( IDS_INMARSAT__Atlantic_East_ );
  841. rgCountryCodeArray[210].dwCountryCode = 872;
  842. rgCountryCodeArray[210].szCountryName = MyLoadString( IDS_INMARSAT__Pacific_ );
  843. rgCountryCodeArray[211].dwCountryCode = 873;
  844. rgCountryCodeArray[211].szCountryName = MyLoadString( IDS_INMARSAT__Indian_ );
  845. rgCountryCodeArray[212].dwCountryCode = 874;
  846. rgCountryCodeArray[212].szCountryName = MyLoadString( IDS_INMARSAT__Atlantic_West_ );
  847. rgCountryCodeArray[213].dwCountryCode = 880;
  848. rgCountryCodeArray[213].szCountryName = MyLoadString( IDS_Bangladesh );
  849. rgCountryCodeArray[214].dwCountryCode = 886;
  850. rgCountryCodeArray[214].szCountryName = MyLoadString( IDS_Taiwan );
  851. rgCountryCodeArray[215].dwCountryCode = 90;
  852. rgCountryCodeArray[215].szCountryName = MyLoadString( IDS_Turkey );
  853. rgCountryCodeArray[216].dwCountryCode = 91;
  854. rgCountryCodeArray[216].szCountryName = MyLoadString( IDS_India );
  855. rgCountryCodeArray[217].dwCountryCode = 92;
  856. rgCountryCodeArray[217].szCountryName = MyLoadString( IDS_Pakistan );
  857. rgCountryCodeArray[218].dwCountryCode = 93;
  858. rgCountryCodeArray[218].szCountryName = MyLoadString( IDS_Afghanistan );
  859. rgCountryCodeArray[219].dwCountryCode = 94;
  860. rgCountryCodeArray[219].szCountryName = MyLoadString( IDS_Sri_Lanka );
  861. rgCountryCodeArray[220].dwCountryCode = 95;
  862. rgCountryCodeArray[220].szCountryName = MyLoadString( IDS_Myanmar );
  863. rgCountryCodeArray[221].dwCountryCode = 960;
  864. rgCountryCodeArray[221].szCountryName = MyLoadString( IDS_Maldives );
  865. rgCountryCodeArray[222].dwCountryCode = 961;
  866. rgCountryCodeArray[222].szCountryName = MyLoadString( IDS_Lebanon );
  867. rgCountryCodeArray[223].dwCountryCode = 962;
  868. rgCountryCodeArray[223].szCountryName = MyLoadString( IDS_Jordan );
  869. rgCountryCodeArray[224].dwCountryCode = 963;
  870. rgCountryCodeArray[224].szCountryName = MyLoadString( IDS_Syria );
  871. rgCountryCodeArray[225].dwCountryCode = 964;
  872. rgCountryCodeArray[225].szCountryName = MyLoadString( IDS_Iraq );
  873. rgCountryCodeArray[226].dwCountryCode = 965;
  874. rgCountryCodeArray[226].szCountryName = MyLoadString( IDS_Kuwait );
  875. rgCountryCodeArray[227].dwCountryCode = 966;
  876. rgCountryCodeArray[227].szCountryName = MyLoadString( IDS_Saudi_Arabia );
  877. rgCountryCodeArray[228].dwCountryCode = 967;
  878. rgCountryCodeArray[228].szCountryName = MyLoadString( IDS_Yemen );
  879. rgCountryCodeArray[229].dwCountryCode = 968;
  880. rgCountryCodeArray[229].szCountryName = MyLoadString( IDS_Oman );
  881. rgCountryCodeArray[230].dwCountryCode = 971;
  882. rgCountryCodeArray[230].szCountryName = MyLoadString( IDS_United_Arab_Emirates );
  883. rgCountryCodeArray[231].dwCountryCode = 972;
  884. rgCountryCodeArray[231].szCountryName = MyLoadString( IDS_Israel );
  885. rgCountryCodeArray[232].dwCountryCode = 973;
  886. rgCountryCodeArray[232].szCountryName = MyLoadString( IDS_Bahrain );
  887. rgCountryCodeArray[233].dwCountryCode = 974;
  888. rgCountryCodeArray[233].szCountryName = MyLoadString( IDS_Qatar );
  889. rgCountryCodeArray[234].dwCountryCode = 975;
  890. rgCountryCodeArray[234].szCountryName = MyLoadString( IDS_Bhutan );
  891. rgCountryCodeArray[235].dwCountryCode = 976;
  892. rgCountryCodeArray[235].szCountryName = MyLoadString( IDS_Mongolia );
  893. rgCountryCodeArray[236].dwCountryCode = 977;
  894. rgCountryCodeArray[236].szCountryName = MyLoadString( IDS_Nepal );
  895. rgCountryCodeArray[237].dwCountryCode = 98;
  896. rgCountryCodeArray[237].szCountryName = MyLoadString( IDS_Iran );
  897. rgCountryCodeArray[238].dwCountryCode = 994;
  898. rgCountryCodeArray[238].szCountryName = MyLoadString( IDS_Azerbaijan );
  899. rgCountryCodeArray[239].dwCountryCode = 995;
  900. rgCountryCodeArray[239].szCountryName = MyLoadString( IDS_Georgia );
  901. rgCountryCodeArray[240].dwCountryCode = 800;
  902. rgCountryCodeArray[240].szCountryName = MyLoadString( IDS_Intl_Freephone_Service );
  903. rgCountryCodeArray[241].dwCountryCode = 870;
  904. rgCountryCodeArray[241].szCountryName = MyLoadString( IDS_INMARSAT );
  905. //
  906. // Add the don't specify setting
  907. //
  908. rgCountryCodeArray[242].dwCountryCode = DONTSPECIFYSETTING;
  909. rgCountryCodeArray[242].szCountryName = StrDontSpecifySetting;
  910. }