Unter c:\programme hast du normalerweise keine Schreibrechte. Du musst dir dann mit
GetTempPath das Verzeichnis für temporäre Dateien holen, dort am besten einen Unterordner erstellen, und dann kannst du dorthin ungestört entpacken.
Das musst du danach natürlich alles wieder löschen.
Dein Quelltext funktioniert bei mir jedenfalls 1:1 kopiert tadellos...