That did not work. Both CreateScalableFontResource and AddFontResource work. The application then goes on to enumerate the fonts, and X11Drv.EnumDeviceFonts fails to detect any "Amir" fonts. Output of +all of relevant part is at the end.
Any idea why?
I will just mention that I am using fonts installed in the windows/Fonts directory.
Also, when investigating the font in pfaedit, it seems all text is defined in the user defined area. I'm not sure what it means. I tried converting the font to a "standard" one, but that did not solve the problem either.
Shachar
Huw D M Davies wrote:
You could try hacking CreateScalableFontResource to return TRUE. The next thing the app will do is to call AddFontResource using the .FOT filename, this will also fail so you might have to fix the return value for that function too. However if you have the TTF files in c:\windows\fonts then hopefully the app will be happy.
CreateScalableFontResource is on my todo list.
Not the problem so far.
Note that the app is also failing to load some 16bit user functions, so even with the fonts fixed you may have more problems later on...
Huw.
080b6888:trace:global:GlobalHandle16 01af 080b6888:Call GDI.330: ENUMFONTFAMILIES(0860,030f40da "Amir",0aaf0008,06b7d86c) ret=030f:070e ds=06b7 080b6888:Call kernel32.lstrcpynA(41472b92,403dba6a "Amir",00000020) ret=409ee486 080b6888:trace:string:lstrcpynA (0x41472b92, "Amir", 32) 080b6888:Ret kernel32.lstrcpynA() retval=41472b92 ret=409ee486 080b6888:Call kernel32._EnterSysLevel(40a1b9a4) ret=409f2e47 080b6888:trace:win32:_EnterSysLevel (0x40a1b9a4, level 3): thread 80b6888 (fs 0287, pid 1061) count before 0 080b6888:trace:win32:_EnterSysLevel (0x40a1b9a4, level 3): thread 80b6888 (fs 0287, pid 1061) count after 1 080b6888:Ret kernel32._EnterSysLevel() retval=0000006d ret=409f2e47 080b6888:trace:gdi:GDI_GetObjPtr (0x860): enter 1 080b6888:Call kernel32.MultiByteToWideChar(00000000,00000000,41472b92 "Amir",ffffffff,414729fc,00000020) ret=409ed821 080b6888:Ret kernel32.MultiByteToWideChar() retval=00000005 ret=409ed821 080b6888:Call kernel32.MapLS(41472af0) ret=409ee256 080b6888:Ret kernel32.MapLS() retval=09d72af0 ret=409ee256 080b6888:Call kernel32.MapLS(41472a3c) ret=409ee25f 080b6888:Ret kernel32.MapLS() retval=09d72a3c ret=409ee25f 080b6888:Call x11drv.EnumDeviceFonts(4149f1b0,414729e0,409ee02c,41472b34) ret=409ee27f 080b6888:Ret x11drv.EnumDeviceFonts() retval=00000000 ret=409ee27f 080b6888:Call kernel32.UnMapLS(09d72af0) ret=409ee28e 080b6888:Ret kernel32.UnMapLS() retval=00000001 ret=409ee28e 080b6888:Call kernel32.UnMapLS(09d72a3c) ret=409ee296 080b6888:Ret kernel32.UnMapLS() retval=00000001 ret=409ee296 080b6888:trace:gdi:GDI_ReleaseObj (0x860): leave 1 080b6888:Call kernel32._LeaveSysLevel(40a1b9a4) ret=409f2fe3 080b6888:trace:win32:_LeaveSysLevel (0x40a1b9a4, level 3): thread 80b6888 (fs 0287, pid 1061) count before 1 080b6888:trace:win32:_LeaveSysLevel (0x40a1b9a4, level 3): thread 80b6888 (fs 0287, pid 1061) count after 0 080b6888:Ret kernel32._LeaveSysLevel() retval=0000006d ret=409f2fe3 080b6888:trace:global:GlobalHandle16 01af 080b6888:Ret GDI.330: ENUMFONTFAMILIES() retval=0000 ret=030f:070e ds=06b7 080b6888:trace:global:GlobalHandle16 0137