Obtener ruta completa con nombre de archivo Unicode

Tengo una ruta en versión corta o en formato DOS ("C: / DOCUME ~ 1" por ejemplo, y desea obtener la ruta completa / ruta larga de la misma ("C: / Documentos Y Configuraciones" p.ej).

Intenté GetLongPathName api. Funcionó. Pero cuando se trata de un nombre de archivo Unicode resulta un fracaso.

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

Intenté alias GetLongPathNameW en su lugar, pero parece que no hace nada, para AMBOS nombres de archivo Unicode y no Unicode, siempre devuelve 0. En MSDN solo hay un artículo sobre GetLongPathNameW para C / C ++, no para VB / VBA. ¿Puedo hacer algo mal?

¿Hay alguna solución para este caso? Paso horas en Google y StackOverflow pero no puedo averiguarlo.

Saludos,

Respuestas a la pregunta(2)

Su respuesta a la pregunta