Consultor Eletrônico



Kbase P122893: How to Call WIN32 API Function: GetShortPathName
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   19/03/2007
Status: Unverified

GOAL:

How to Call WIN32 API Function: GetShortPathName

GOAL:

How to Call WIN32 API Function: GetShortPathNameA

GOAL:

How to convert a 32-bit Windows file path to 16-bit format

FACT(s) (Environment):

Windows XP
Windows 2003

FIX:

PROCEDURE GetShortPathNameA EXTERNAL "KERNEL32.DLL":
DEFINE INPUT PARAMETER longPath AS CHARACTER.
DEFINE INPUT-OUTPUT PARAMETER shortPath AS MEMPTR.
DEFINE INPUT PARAMETER iBuffer AS LONG.
END PROCEDURE.

DEFINE VARIABLE cLongPath AS CHARACTER NO-UNDO FORMAT "X(256)".
DEFINE VARIABLE cShortPath AS CHARACTER NO-UNDO FORMAT "X(256)".
DEFINE VARIABLE ptrToString AS MEMPTR NO-UNDO.

cLongPath = "C:\Program Files\".

SET-SIZE(ptrToString) = 256.

RUN GetShortPathNameA (INPUT cLongPath,
INPUT-OUTPUT ptrToString,
INPUT LENGTH(cLongPath)).

ASSIGN cShortPath = GET-STRING(ptrToString,1).

SET-SIZE(ptrToString) = 0.

MESSAGE cShortPath
VIEW-AS ALERT-BOX INFO BUTTONS OK.