I am currently modifying a windows/Fortran application to use Unicode text in all the menu's and dialogs and after a few technical issues this seems to be progressing OK.
The SDK has two versions of all routines that take text, for example WriteConsole is the generic but we have WriteConsoleA (ansi text version) and WriteConsoleW (Unicode text version). It seems that in all the IFWIN sub-sets the generic routine always interfaces to the A version and the W interface is always absent, As such I am having to provide my own interfaces, is there any plan to add these missing interfaces? It seems strange in this day and age to have a Windows Fortran that does not support the method of choice for language support of windows!
My second question relates to the code snippet below from USER32.f90. The AppendMenu interface has AppendMenu_G1 and AppendMenu_G2 functions, does the compiler select which function to use based on the types of the arguments in the call?
INTERFACE AppendMenu FUNCTION AppendMenu_G1( & hMenu, & uFlags, & uIDNewItem, & lpNewItem) use ifwinty integer(BOOL) :: AppendMenu_G1 ! BOOL !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'AppendMenuA' :: AppendMenu_G1 integer(HANDLE) hMenu ! HMENU hMenu integer(UINT) uFlags ! UINT uFlags integer(UINT_PTR) uIDNewItem ! UINT_PTR uIDNewItem !DEC$ ATTRIBUTES REFERENCE, ALLOW_NULL :: lpNewItem character*(*) lpNewItem ! LPCSTR lpNewItem END FUNCTION FUNCTION AppendMenu_G2( & hMenu, & uFlags, & uIDNewItem, & lpNewItem) use ifwinty integer(BOOL) :: AppendMenu_G2 ! BOOL !DEC$ ATTRIBUTES DEFAULT, STDCALL, DECORATE, ALIAS:'AppendMenuA' :: AppendMenu_G2 integer(HANDLE) hMenu ! HMENU hMenu integer(UINT) uFlags ! UINT uFlags integer(UINT_PTR) uIDNewItem ! UINT_PTR uIDNewItem integer(LPVOID) lpNewItem ! LPCSTR lpNewItem END FUNCTION END INTERFACE