Sorting it all Out Michael Kaplan's random stuff of dubious value Be sure to read the disclaimer here first!
Yesterday I was with our international MVPs all day as they were meeting with various people all across GIFT and GPTS. It was exciting for me because I had the chance to learn about a lot of things that I do not usually get exposure to, if you know what I mean....
One of the interesting points that came up is the difference between these two technologies (linking vs. fallback), both of which are intended to help with the same problem -- you select a font and then try to use that font to view characters that do not exist within it. But how they work in Windows is very different.
I will limit things in scope at the moment, but soon I will expand it to talk about differences in MLang, Office, and maybe even Avalon....
Font fallback is what Uniscribe uses. With its own internal knowledge of the best fonts to use for the various scripts that it supports, any time it is asked to render a character that is not in the selected font, it borrows the glyph from its preferred font for the script. Note that you can override this choice at any time by simply making sur your initial font contains the characters you want and all of the shaping rules/tables than an OpenType font brings to the mix. If fallback does not do the trick, Uniscribe will fall back to linking.
Font linking, on the other hand, is what GDI uses. It is the value list of fonts under HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink that gives the list of fonts to look in if the character cannot be found, and the order to look at them. Again, you can override the mechanism by making sure the initial font you choose has the glyphs.
In this particular case, FALLBACK gets used pretty much exclusively in the case where you have a complex script, something that needs Uniscribe to do its work. And if you look at LINKING, for the most part it is exclusively used to help the East Asian story by allowing the default system locale to choose an ordering for where to look for the appropriate ideograph glyphs in fonts (though the mechanism can be expanded, and sometimes is by ISVs, to cover other languages and scripts).
Now of course the way that the terms are used by other technologies is actually different in some cases, as are their mechanisms -- I will cover this soon (for now I have to get to a presentation for the Shell MVPs, where I am acting as both the 'Slide Boy' and one of the two 'Demo Boys'. :-)
PingBack from http://www.keyongtech.com/2334294-unicode-strings
I've seen a few places assert that Uniscribe will automatically apply font fallback and/or font linking, yet the documentation says just the opposite.
"Once it has determined that font fallback is required, *the application* must assign a fallback font."
Can you clarify what you meant about Uniscribe doing some of this work?
ScriptShape (the topic you link to) is low-level Uniscribe, where none of the stuff I talk about applies and you have to do it all yourself....