Moin Sharky,
für den angegebenen Fall müsste aber die Shell32.dll-Version ausschlaggebend sein

Wenn Du mal den Rückgabewert der Funktion auswertest (nicht nur auf Succeeded prüfen) kommt als Ergebnis: Falscher Parameter.
BTW:
Im Erfolgsfalle müsstest Du auch noch den durch pidl belegten Speicher wieder freigeben.
@Himitsu:
Sieht bei mir genauso aus.