by Michael S. Kaplan, published on 2007/06/09 03:01 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2007/06/09/3174676.aspx
(Previous posts in this series can be read here and here)
There are a lot of different distribution lists at Microsoft covering various technical topics. People can ask questions and then other people who know the answer can explain it (and people who want to learn can watch the questions and answers go by).
Of course sometimes it takes several messages to get to the answer.
And sometimes it was the wrong distribution list and the question is forwarded to a more appropriate list.
Other times the person asking the question will cross-post (one message, many lists) or multi-post (many identical messages to those many lists) their question.
And still other times, there will be different branches of the conversation going on within the same list, talking about different aspects of the problem or drifting the thread or whatever.
And then occasionally the conversation will be continue off a list (you know, people who are guilty of this problem!).
There are even a few instances where someone will follow up directly with me just because I was on some part of the tangled web of responses....
After all of this huge geeky social networking craziness is done, the original person asking the question probably got their answer. But unless someone tries to report back to lists that did not see the answer, it is quite possible that not everyone who saw the question got the answer.
That question I talked about in the second post in this series falls under several of these categories.
Before it had been established that there was an easy workaround to the problem (just use a different font!), a private email conversation that led to a bit of debugging and an answer to what precisely had changed between B.V. (Before Vista) and A.P. (Anno Producti) was never directly reported to the many distribution lists that got both the question and the initial workaround answer.
Of course not all fonts are the same, so it easy to prefer one set of Latins over another set:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz (Segoe UI)
and so on. Plus the behavior is technically a regression, even though the idea of GDI running in a service that does not itself show UI is a little weird.
Luckily, two of the people he were on the final thread that had the answer mentioned it to me (the second one from the one who did the debugging, in response to the blog post!). :-)
I figured I'd cover the final explanation here. In the words of Michael Warning (a developer I have mentioned previously):
As several people expected this is caused by session 0 isolation in Vista and is related to font association.
The problem is that in session 0 nobody calls EnableEUDC. This is necessary to turn on font association. This is normally called by userinit.exe when somebody logs on - but nobody logs on to session 0 anymore.
I expect you should be able to work around the problem by explicitly calling EnableEUDC(TRUE) in the fax service. I’ve cc’d a horde of relevant pm’s that can debate about whether or not this should be done by the system by default given that we don’t really like people using GDI in session 0 in the first place.
Please let me know if the workaround does the job for you.
A whole new thing, that.
It is not logical fonts. Not Windows Font Substitution. Not GDI Font Linking. Not Uniscribe Font Fallback. Or any technology that I have ever mentioned before here (though I did mention EnableEUDC once before, here!).
But it is yet another way to get the font to automatically work when the one you select does not have the glyphs you ask of it.
Font association has just a handful of entries in MSDN via Live Search, and a few more in Google's Microsoft portal (which can be ignored for comparative count purposes since it has resources outside of Microsoft's pages) -- though interestingly enough the latter links to a few pages that have inaccurate info in them. And few of them might have the right info though most just use the term and assume you know what it means (which is scary since no one wants to define it correctly!).
The issues Michael raised about whether that call should happen automatically there are interesting ones, where best practices versus backward compatibility versus the social engineering that subtle breaks like this can accomplish in the developer ecosystem can be fascinating to contemplate....
I'll have to write something up about the exact definition of font association in a post soon. But for now a few more pieces to the puzzle of what happens when you pick the wrong font in situations without all of this interesting support to find the characters anyway. :-)
This post brought to you by 倕 (U+5015, a.k.a. another CJK ideograph)
go to newer or older post, or back to index or month or day