Nach dem begin:
1. Die Größe des Buffers (= Zwischenspeichers) in Size ablegen.
2. GetUserName mit dem Buffer und dessen Größe aufrufen. Der Buffer erhält in der Funktion dann die Daten in den innerhalb unserer Funktion belegten Arbeitsspeicher. Wir übergeben also den vorbereiteten Behälter und die Größe des Behälters und die Funktion legt die Daten rein.
3. Wenn die Funktion NICHT erfolgreich war, dann den zuletzt aufgetretenen Fehler als Exception auslösen, d.h. der wird dann auch angezeigt.
4. In Result soll der Inhalt von Buffer rein bis auf das abschließende Nullzeichen, dass du bei PChars (bzw. array of Char) dann hast. (Size wurde innerhalb von GetUserName auf den korrekten Wert gesetzt, so dass darin jetzt die tatsächliche Größe der Daten steht.)
Mehr zu dieses API-Funktionen findest du auch direkt bei Microsoft im MSDN:
msdn2.microsoft.com/...ms724432(VS.85).aspx
(Links gehen mit solchen URLs nicht^^)