// Copyright (c) 1998 - 1999 Microsoft Corporation. All Rights Reserved. #ifndef __ISO3166_H #define __ISO3166_H char DVDToUpper(char x) { if('a' <= x && x <= 'z') { return x - ('a' - 'A'); } else { return x; } } struct ISO3166 { const char *Code; // access the table as ISO3166::GetCountry() static const ISO3166& GetCountry( unsigned i ); static unsigned GetNumCountries(); // creates an ISO code from a two letter string static WORD PackCode( const char string[2] ) { return DVDToUpper(string[0])<<8 | DVDToUpper(string[1]); } }; // ISO3166 country code table static const ISO3166 g_Table[] = { // current as of Dec 22, 2000 {/* "Afghanistan", */ "AF"}, {/* "Albania", */ "AL"}, {/* "Algeria", */ "DZ"}, {/* "American Samoa", */ "AS"}, {/* "Andorra", */ "AD"}, {/* "Angola", */ "AO"}, {/* "Anguilla", */ "AI"}, {/* "Antarctica", */ "AQ"}, {/* "Antigua and Barbuda", */ "AG"}, {/* "Argentina", */ "AR"}, {/* "Armenia", */ "AM"}, {/* "Aruba", */ "AW"}, {/* "Australia", */ "AU"}, {/* "Austria", */ "AT"}, {/* "Azerbaijan", */ "AZ"}, {/* "Bahamas", */ "BS"}, {/* "Bahrain", */ "BH"}, {/* "Bangladesh", */ "BD"}, {/* "Barbados", */ "BB"}, {/* "Belarus", */ "BY"}, {/* "Belgium", */ "BE"}, {/* "Belize", */ "BZ"}, {/* "Benin", */ "BJ"}, {/* "Bermuda", */ "BM"}, {/* "Bhutan", */ "BT"}, {/* "Bolivia", */ "BO"}, {/* "Bosnia and Herzegovina", */ "BA"}, {/* "Botswana", */ "BW"}, {/* "Bouvet Island", */ "BV"}, {/* "Brazil", */ "BR"}, {/* "British Indian Ocean Territory", */ "IO"}, {/* "Brunei Darussalam", */ "BN"}, {/* "Bulgaria", */ "BG"}, {/* "Burkina Faso", */ "BF"}, {/* "Burundi", */ "BI"}, {/* "Cambodia", */ "KH"}, {/* "Cameroon", */ "CM"}, {/* "Canada", */ "CA"}, {/* "Cape Verde", */ "CV"}, {/* "Cayman Islands", */ "KY"}, {/* "Central African Republic", */ "CF"}, {/* "Chad", */ "TD"}, {/* "Channel Islands", */ "GB"}, {/* "Chile", */ "CL"}, {/* "China", */ "CN"}, {/* "Christmas Island", */ "CX"}, {/* "Cocos (Keeling) Islands", */ "CC"}, {/* "Colombia", */ "CO"}, {/* "Comoros", */ "KM"}, {/* "Congo", */ "CG"}, {/* "Cook Islands", */ "CK"}, {/* "Costa Rica", */ "CR"}, {/* "Côte d'Ivoire", */ "CI"}, {/* "Croatia (local name: Hrvatska)", */ "HR"}, {/* "Cuba", */ "CU"}, {/* "Cyprus", */ "CY"}, {/* "Czech Republic", */ "CZ"}, {/* "Denmark", */ "DK"}, {/* "Djibouti", */ "DJ"}, {/* "Dominica", */ "DM"}, {/* "Dominican Republic", */ "DO"}, {/* "East Timor", */ "TP"}, {/* "Ecuador", */ "EC"}, {/* "Egypt", */ "EG"}, {/* "El Salvador", */ "SV"}, {/* "Equatorial Guinea", */ "GQ"}, {/* "Eritrea", */ "ER"}, {/* "Estonia", */ "EE"}, {/* "Ethiopia", */ "ET"}, {/* "Falkland Islands (Malvinas)", */ "FK"}, {/* "Faroe Islands", */ "FO"}, {/* "Fiji", */ "FJ"}, {/* "Finland", */ "FI"}, {/* "France", */ "FR"}, {/* "France, Metropolitan", */ "FX"}, {/* "French Guiana", */ "GF"}, {/* "French Polynesia", */ "PF"}, {/* "French Southern and Antarctic Lands", */ "TF"}, {/* "Gabon", */ "GA"}, {/* "Gambia", */ "GM"}, {/* "Georgia", */ "GE"}, {/* "Germany", */ "DE"}, {/* "Ghana", */ "GH"}, {/* "Gibraltar", */ "GI"}, {/* "Greece", */ "GR"}, {/* "Greenland", */ "GL"}, {/* "Grenada", */ "GD"}, {/* "Guadeloupe", */ "GP"}, {/* "Guam", */ "GU"}, {/* "Guatemala", */ "GT"}, {/* "Guinea", */ "GN"}, {/* "Guinea-Bissau", */ "GW"}, {/* "Guyana", */ "GY"}, {/* "Haiti", */ "HT"}, {/* "Heard and Mc Donald Islands", */ "HM"}, {/* "Holy See (Vatican City State)", */ "VA"}, {/* "Honduras", */ "HN"}, {/* "Hong Kong SAR", */ "HK"}, {/* "Hungary", */ "HU"}, {/* "Iceland", */ "IS"}, {/* "India", */ "IN"}, {/* "Indonesia", */ "ID"}, {/* "Iran (Islamic Republic Of)", */ "IR"}, {/* "Iraq", */ "IQ"}, {/* "Ireland", */ "IE"}, {/* "Israel", */ "IL"}, {/* "Italy", */ "IT"}, {/* "Jamaica", */ "JM"}, {/* "Japan", */ "JP"}, {/* "Jordan", */ "JO"}, {/* "Kazakhstan", */ "KZ"}, {/* "Kenya", */ "KE"}, {/* "Kiribati", */ "KI"}, {/* "Korea, Democratic People's Republic Of", */ "KP"}, {/* "Korea, Republic Of", */ "KR"}, {/* "Kuwait", */ "KW"}, {/* "Kyrgyzstan", */ "KG"}, {/* "Lao People's Democratic Republic", */ "LA"}, {/* "Latvia", */ "LV"}, {/* "Lebanon", */ "LB"}, {/* "Lesotho", */ "LS"}, {/* "Liberia", */ "LR"}, {/* "Libyan Arab Jamahiriya", */ "LY"}, {/* "Liechtenstein", */ "LI"}, {/* "Lithuania", */ "LT"}, {/* "Luxembourg", */ "LU"}, {/* "Macau SAR", */ "MO"}, {/* "Macedonia, The Former Yugoslav Republic Of", */ "MK"}, {/* "Madagascar", */ "MG"}, {/* "Malawi", */ "MW"}, {/* "Malaysia", */ "MY"}, {/* "Maldives", */ "MV"}, {/* "Mali", */ "ML"}, {/* "Malta", */ "MT"}, {/* "Man, Isle of",*/ "GB"}, {/* "Marshall Islands", */ "MH"}, {/* "Martinique", */ "MQ"}, {/* "Mauritania", */ "MR"}, {/* "Mauritius", */ "MU"}, {/* "Mayotte", */ "YT"}, {/* "Mexico", */ "MX"}, {/* "Micronesia, Federated States Of", */ "FM"}, {/* "Moldova, Republic Of", */ "MD"}, {/* "Monaco", */ "MC"}, {/* "Mongolia", */ "MN"}, {/* "Montserrat", */ "MS"}, {/* "Morocco", */ "MA"}, {/* "Mozambique", */ "MZ"}, {/* "Myanmar", */ "MM"}, {/* "Namibia", */ "NA"}, {/* "Nauru", */ "NR"}, {/* "Nepal", */ "NP"}, {/* "Netherlands", */ "NL"}, {/* "Netherlands ANTILLES", */ "AN"}, {/* "New Caledonia", */ "NC"}, {/* "New Zealand", */ "NZ"}, {/* "Nicaragua", */ "NI"}, {/* "Niger", */ "NE"}, {/* "Nigeria", */ "NG"}, {/* "Niue", */ "NU"}, {/* "Norfolk Island", */ "NF"}, {/* "Northern Mariana Islands", */ "MP"}, {/* "Norway", */ "NO"}, {/* "Oman", */ "OM"}, {/* "Pakistan", */ "PK"}, {/* "Palau", */ "PW"}, {/* "Panama", */ "PA"}, {/* "Papua New Guinea", */ "PG"}, {/* "Paraguay", */ "PY"}, {/* "Peru", */ "PE"}, {/* "Philippines", */ "PH"}, {/* "Pitcairn Islands", */ "PN"}, {/* "Poland", */ "PL"}, {/* "Portugal", */ "PT"}, {/* "Puerto Rico", */ "PR"}, {/* "Qatar", */ "QA"}, {/* "Reunion", */ "RE"}, {/* "Romania", */ "RO"}, {/* "Russian Federation", */ "RU"}, {/* "Rwanda", */ "RW"}, {/* "Saint Kitts and Nevis", */ "KN"}, {/* "Saint Lucia", */ "LC"}, {/* "Saint Vincent and The Grenadines", */ "VC"}, {/* "Samoa", */ "WS"}, {/* "San Marino", */ "SM"}, {/* "São Tomé and Príncipe ", */ "ST"}, {/* "Saudi Arabia", */ "SA"}, {/* "Senegal", */ "SN"}, {/* "Seychelles", */ "SC"}, {/* "Sierra Leone", */ "SL"}, {/* "Singapore", */ "SG"}, {/* "Slovakia (Slovak Republic)", */ "SK"}, {/* "Slovenia", */ "SI"}, {/* "Solomon Islands", */ "SB"}, {/* "Somalia", */ "SO"}, {/* "South Africa", */ "ZA"}, {/* "South Georgia and The South Sandwich Islands", */ "GS"}, {/* "Spain", */ "ES"}, {/* "Sri Lanka", */ "LK"}, {/* "St. Helena", */ "SH"}, {/* "St. Pierre and Miquelon", */ "PM"}, {/* "Sudan", */ "SD"}, {/* "Suriname", */ "SR"}, {/* "Svalbard and Jan Mayen Islands", */ "SJ"}, {/* "Swaziland", */ "SZ"}, {/* "Sweden", */ "SE"}, {/* "Switzerland", */ "CH"}, {/* "Syrian Arab Republic", */ "SY"}, {/* "Taiwan", */ "TW"}, {/* "Tajikistan", */ "TJ"}, {/* "Tanzania, United Republic Of", */ "TZ"}, {/* "Thailand", */ "TH"}, {/* "Togo", */ "TG"}, {/* "Tokelau", */ "TK"}, {/* "Tonga", */ "TO"}, {/* "Trinidad and Tobago", */ "TT"}, {/* "Tunisia", */ "TN"}, {/* "Turkey", */ "TR"}, {/* "Turkmenistan", */ "TM"}, {/* "Turks and Caicos Islands", */ "TC"}, {/* "Tuvalu", */ "TV"}, {/* "Uganda", */ "UG"}, {/* "Ukraine", */ "UA"}, {/* "United Arab Emirates", */ "AE"}, {/* "United Kingdom", */ "GB"}, {/* "United States", */ "US"}, {/* "U.S. Minor Outlying Islands", */ "UM"}, {/* "Uruguay", */ "UY"}, {/* "Uzbekistan", */ "UZ"}, {/* "Vanuatu", */ "VU"}, {/* "Venezuela", */ "VE"}, {/* "Viet Nam", */ "VN"}, {/* "Virgin Islands (British)", */ "VG"}, {/* "Virgin Islands (U.S.)", */ "VI"}, {/* "Wallis and Futuna Islands", */ "WF"}, {/* "Yemen", */ "YE"}, {/* "Yugoslavia", */ "YU"}, {/* "Congo (DRC)", */ "ZR"}, {/* "Zambia", */ "ZM"}, {/* "Zimbabwe", */ "ZW"} }; static const unsigned g_uTableSize = sizeof( g_Table )/ sizeof( g_Table[0] ); const ISO3166& ISO3166::GetCountry( unsigned i ) { return g_Table[i]; } unsigned ISO3166::GetNumCountries() { return g_uTableSize; } #endif