Share this page 

Convert Win API calls to PB10Tag(s): WinAPI/Registry


Function declaration needs to be modifed to specify ANSI:
FUNCTION long ShellExecuteA (ulong hWnd, &
   string Operation, string lpFile, string lpParameters, &
   string lpDirectory, long nShowCmd) LIBRARY "shell32.dll" &
ALIAS FOR "ShellExecuteA;Ansi"

From the PowerBuilder 10 Help:
If your application makes calls to external functions, and there is a Unicode version of the external function, convert the calls to the Unicode versions of the functions. For example, a call to SQLGetInfo should be changed to SQLGetInfoW.

If the function passes a string, char, or structure as an argument or returns a string, char, or structure, you can use the same syntax in PowerBuilder 10 as in previous releases if the string uses Unicode encoding. For example:

FUNCTION int MyMessageBoxW(int handle, string content, string title, int 
showtype) LIBRARY "user32.dll" ALIAS FOR "MessageBoxW"

As for structure with PB10, char is now 16 bit :
// before PB10
global type mystruct from structure
    long l1
    char pad1
    char pad2
    long l2
    char pad3
    char pad4
end type

// PB10
global type mystruct from structure
    long l1
    char pad1
    long l2
    char pad2
end type