Obter caminho completo com o nome do arquivo Unicode

Eu tenho um caminho na versão curta ou no formato DOS ("C: / DOCUME ~ 1" por exemplo) e deseja obter o caminho completo / caminho longo dele ("C: / Documents and Settings" por exemplo).

Eu tentei a API GetLongPathName. Funcionou. Mas quando lidamos com o nome do arquivo unicode, ocorre uma falha.

Private Declare Function GetLongPathName Lib "kernel32" Alias _
    "GetLongPathNameA" (ByVal lpszShortPath As String, _
    ByVal lpszLongPath As String, ByVal cchBuffer As Long) As Long

Eu tentei alias GetLongPathNameW em vez disso, mas parece não fazer nada, para ambos os nomes de arquivo Unicode e não-Unicode, sempre retornam 0. No MSDN há apenas artigo sobre GetLongPathNameW para C / C ++, não qualquer para VB / VBA. Posso fazer algo errado?

Existe alguma solução para este caso? Passo horas no Google e no StackOverflow, mas não consigo descobrir.

Saudações,

questionAnswers(2)

yourAnswerToTheQuestion