Hi André,

>+    full_name = heap_alloc(size * sizeof(WCHAR));
>+    if (!full_name)
>+        return GetLastError();
Returning GetLastError() doesn't make much sense here since heap_alloc doesn't set it.
E_OUTOFMEMORY would be a better value.

Regards
Alistair.