ISO3166-1 Alpha-2, Alpha-3 und numerisch

In der ISO3166 Codetabelle sind geographische Einheiten durch Kürzel aufgeführt. Auf Wikipedia findet sich hierzu ein sehr guter Artikel.
Diese Codierung wird unter anderem in den von Windows bekannten Länderpulldowns verwendet.
Will man z.B. die AD Attribute eines Benutzers per LDAP füllen oder ändern reicht es nicht nur den Namen des Landes anzugeben. Vielmehr ist hier eine Änderung von drei Attributen notwendig: co
c
countryCode co enthält den englischen Namen des Landes in Grossbuchstaben
c enthält das ISO3166-1 alpha-2 Kürzel
countryCode enthält den numerischen ISO3166-1 numeric Code Für Deutschland würde das so aussehen:
co=GERMANY
c=DE
countryCode=276

Um diese Werte einfach einbinden zu können habe ich eine .dll geschrieben, die hier kostenlos heruntergeladen werden kann.
Die Quelle der Daten ist oben genannter Wikipedia- Artikel, der unter http://en.wikipedia.org/wiki/ISO_3166-1 zu finden ist.

Die Eckdaten sind:
Namespace: rsCodelist
Class: ISO3166
Funktionen: GetALPHA2, GetALPHA3, GetNUMERIC

Das Einbinden in VB.NET könnte nachdem die .dll referenziert wurde z.B. so aussehen:  
...
Dim ALPHA2 As String = nothing
Dim CList As New rsCodelist.ISO3166()
ALPHA2 = CList.GetALPHA2(Form1.Länderpulldownname.SelectedItem)
...

  Dies würde den Alpha-2 Code, d.h. in obigem Beispiel das Kürzel DE zurückliefern. Analog dazu würden GetALPHA3 den Alpha-3 Code und GetNUMERIC den numerischen Wert zurückliefern.

Will man ein Pulldown mit den englischen Ländernamen erzeugen, so kann man z.B. folgendes Codeschnipsel verwenden:  
...
Dim CList As New rsCodelist.ISO3166()
For Each country In CList.Fetch   
pCountry.Items.Add(country.Key)
Next
...
 
Für die Richtigkeit der Daten und des Codes übernehm ich selbstverständlich keine Haftung.
Eine kleine Warnung noch: Ich bin VB Einsteiger! ;-) Soll heissen: Wenn jemand Verbesserungsvorschläge hat- her damit! Ich lerne gern dazu.