Welcome to MSDN Blogs Sign in | Join | Help

March 2006 - Posts

Previous posts in this series: Parts 0 , 1 , 2 , 3 , 4 and 5 . It is funny when I do posts like these and find that although they get a lot of comments, they do get a lot of hits. Of course that could mean that people don't find them helpful so they move Read More...
Back near the beginning of the month, when I posted about how Everybody's doing the wraparound.... , I talked about how the particular implementation of multiple combining diacritic weights led to an interesting situation on Windows where the secondary, Read More...
A few days ago, Mohammed asked: I am using System.Windows.Forms.SendKeys to send some keystrokes to the active application. When the CAPS lock on the hosting keyboard is turned on, all my keystrokes get sent with the opposite case, which is an acceptable Read More...
Previous posts in this series: Parts 0 , 1 , 2 , 3 , and 4 . I have been slowly building up a sample that is (so far) actually of limited use. I mean, who the hell cares about running through one shift state of a keyboard, even if it is definitive? But Read More...
Regular reader Ivan Petrov asked the following in the Suggestion Box: Hi Michael I've the following problem: In MSKLC in the 'Control state' of the keyboard (when the Control key is pressed) I'm trying to make VK_OEM_3 a Dead Key. So, I assign to it 'U+0060 Read More...
Over at Language Log Plaza, Geoffrey K. Pullum was talking about Lexical Drift . I tend to think of the specific issue he raises there: Psychologist Alex Delaware and his best friend the gay detective Milo Sturgis are always having long and complex discussions Read More...
Previous posts in this series: Parts 0 , 1 , 2 , and 3 . We're going to do a bit of preparatory adjustment in this post. Just so we can be ready for what comes later, you see. If you look at information like the Scan Code and the Virtual Key, they really Read More...
Regular readers you can think of this as a part of the Sorting It All Out mid-term. Basically we are looking at two calls to CompareString. The first is: CompareStringW(0x0409, 0, L"Hello-Bob", -1, L"Hello Bob", -1) which returns CSTR_GREATER_THAN , and Read More...
The VkKeyScanW and VkKeyScanExW functions have a simple, documented functionality: ...translates a character to the corresponding virtual-key code and shift state... Not the sort of thing you would need all the time, but it can come in handy. They both Read More...
Leandro Becker wrote to me via the contact link: Hi When building the CRT 7.1 following your blog instructions, after some minutes compiling I´ve got the following error: # *** These are the compiler switches for the XDLL model (MSVCPRTD.LIB): # # CL Read More...
Marc Brooks asked in the Suggestion Box: In an ASP.Net 2.0 application, I want to fill a combobox (and my own internal lists) with the list of CultureInfo. That's easy. But how can I only include the ones whose localized resources (e.g. the correct version Read More...
Andrew West has started a very interesting series entitled Unicode Character Names . Check out Part 1 ( the Good the Bad and the Ugly ) and Part 2 ( a Name is for Life ). And if you are like me you'll be waiting and hoping for additional parts in the Read More...
(No, this is not a post about anyone breaking up with me and telling me that they need their space) In Microsoft's implementation of collation, we have several different categories of characters, and rules for dealing with each category. One of the interesting Read More...
Previous posts in this series: Part 0 , Part 1 , and Part 2 . Ok, we are making some progress here, and we are at the very least no longer stomping on the user's own keyboard list. But we are ignoring dead keys and ligatures. Which, once again, is quite Read More...
Previous posts in this series: Part 0 and Part 1 . The most immediate and nagging problem for me is the fact that the UnloadKeyboardLayout call will unload the keyboard even if you had it loaded already as one of your many "installed" keyboard layouts. Read More...
So, it was yesterday, just before 12pm, and I scooted by Cathy's office and asked her if she wanted to do lunch. She did, but she was IM'ing with someone, so I suggested she just ask her if she wanted to come along. As luck would have it (and contrary Read More...
Over at Language Log Plaza , Eric Bakovic was gushing a bit about Apple stuff, and he did note a few sentences in interviews that he found to be ambiguous. The one that struck my eye: Except that one day in the near recent past everybody woke up and found Read More...
(Be sure to grab the KeysEx enumeration from Part #1 of this series; I'll tell you where it needs to go!) We will start in the most elemental place, with the Scan Codes. These are the numbers that the keyboard hardware sends to the computer, the ones Read More...
Ok, as was previously suggested , I am going to develop a small application that will interrogate a keyboard layout. The idea is to get all of the information that you can out of it, such that if someone was trying to build a tool like the On Screen Keyboard Read More...
There are a lot of times that I am talking about conceptual topics that do not really require heavy code samples. I'll write code for specific cases to show certain kinds of output, but won't really bother with using them for the conceptual issues. But Read More...
Leandro Becker posted the following suggestion to the MSDN Product Feedback Center: FDBK47566: Unicows (MSLU) version of MFC 8.0 and CRT 8.0 and then posted about it here in this blog in the Suggestion Box. He may or may not have seen that this is a duplicate Read More...
The other day, Suzanne was talking about Hebrew searches (it was good that she finally posted, or else people might have started talking about Suzanne searches?). So let us look at the issue a bit. The problem is that the two strings: ארץ־ישראל and אֶרֶץ־יִשְׂרָאֵל Read More...
In the past, I have talked a lot about genitive month names . And I have talked a few times about custom cultures . And as Shawn mentioned last month, he and I were talking about replacement cultures and situations where they could come in handy. Now, Read More...
Well, the answer to that question is too freaking many if you are talking about the CultureInfo class in the .NET Framework and referring not to the actual names of CultureInfo like DisplayName , EnglishName , and NativeName but to actual [nominally descriptive] Read More...
As Eric Bogosian once said in Talk Radio, " Sticks and stones may break your bones but words cause permanent damage." I talked about this once before in the post Looking out for those words of curse , and pointed out how the South Park episode in question Read More...
I went to see Kristin Connell at The Flying Lion Cafe in West Seattle last night. It was an 'In the Round' show feauring Kristin, Sean Bendickson (who I had seen a couple of months ago at St. Clouds), Julia Dumas (who I had not seen before, and who did Read More...
Making sure that you use consistent casing behavior is really important. A good example is a bug that is fixed in the CTP release of SQL Server 2005 SP1. As mentioned by Bob Myers : The most critical issue is related to report processing and database Read More...
I have talked in this blog about a lot of different kind of font mapping features in various Microsoft technologies. Like Windows Font Substitution . And GDI's Font Linking . And MLang's Font Linking . And Uniscribe's Font Fallback . And GDI/GDI+ Private Read More...
Suzanne was asking about the left-to-right marker, and if there was an easy way to type it. Same for the right-to-left-marker. I no longer even try to use the OSK (on-screen keyboard) to try to see what a keyboard supports. It is much easier to use MSKLC Read More...
Riffing on Raymond here, and his post On the fuzzy definition of a "Unicode application" .... The points that his post raises are real ones. And they kind of came up in reverse a few years ago for me when I was explaining how the Microsoft Layer for Unicode Read More...
Eric Gunnerson reminded me in a recent post that Bidi issues can be quite unintuitive at times. And I think stuff like that ought to be easier to figure out.... Read More...
So I was talking to Cathy yesterday just before leaving work. And I mentioned how it was probably not true that people could really detect an infinite number of emotional, psychological, and moral shadings, as I could not the tell the difference between Read More...
I was looking at Larry's anniversary blog post , and that Bedlam DL3 link brought back some memories. Not about Bedlam DL3 itself (I was on one of the other experimental DLs and apparently the one I was on had none of those people who would send "me too" Read More...
This one may not be funnier than We're drowning in LIPs! , Microsoft, you giving us some LIP? , Let there be LIPs , Oops, we did it again , or Oh Kannada... ( ಕನ್ನಡ ) , but I think it might be able to inspire the largest groan factor. And of course, the Read More...
Not since We're drowning in LIPs! , Microsoft, you giving us some LIP? , Let there be LIPs , and Oops, we did it again has there been such a powerful pun in title of a post about Language Interface Packs.... But I could not resist now that the Kannada Read More...
I was talking with someone the other day who is working on/with the new Finnish keyboard standard . He was testing out an implementation of the standard and happened to notice that it was working well in Notepad and some other applications, but not working Read More...
Rob commented in the Suggestion Box: It might be worthwhile to address this article: http://www.codeproject.com/buglist/comparenocase.asp The author doesn't quite "get it" in that he thinks that you could, say, uppercase a string without caring about Read More...
(no, this post is not about a rap or hip hop song, or its lyrics, though I admit the title may have been inspired by one!) Internationalization guru Bill Hall asked of some folks here: I have a small question to ask. Some time ago when you were helping Read More...
The other day bg asked in the Suggestion Box: When I launch a .Net winforms app on a jpn version of Windows XP, I've noticed that the font for the Form is changed from the "normal" MS Sans Serif to MS Gothic UI. I understand that this font is used because Read More...
George asked me the other day via email: When I make the following call in Visual C++ (Visual Studio 2003), it succeeds: char * plocale = setlocale( LC_ALL, ".65001" ); But when I try this in 8.0 (Visual Studio 2005), plocale is NULL. Who broke the UTF-8 Read More...
A few days ago, a guy named Ken asked in the Suggestion Box: Hi Michael, I been following the codepage articles and i notice that using the method you describe does not produce characters point for certain codepages. For example, codepage 708, 709, 710, Read More...
The whole situation about the handicapped parking is one that I sometimes find to be rather annoying . But it looks like some places are becoming a bit more original about their solutions to the problem. It is definitely a more positive step than the Read More...
The following is excerpted from PM Tip #21 by Brad Abrams. The full post is in my opinion a must read that does not only apply to program managers, despite the title. :-) Option one (the sulking) is toxic to the team... it not only under-minds [sic] the Read More...
Although the model for collation would be simpler if it never changed, the fact is that changes do happen, so it is important to capture that change. I won't talk about the Spanish case today, though that one is interesting for other reasons -- stay tuned Read More...
Late last month, Kranthi asked in the microsoft.public.win32.programmer.international newsgroup: Is there anyway Code Page can be related to LCID? I mean, if I get Code Page, can i get LCID from it? Well, the problem here is of course that this mapping Read More...
As I mentioned before, I'm not a big fan of blog stats . I really do seem to break a lot of the obvious, common sense 'best practices' to help drive traffic to the blog (for example, any time I hit a topic that gets a lot of traffic I stay away from that Read More...
The other day, I got an email from James Todd: Hello Michael, My name is James Todd and I’m a new employee SDE in the SQL Server org in building ##. I’ve been reading your blog externally for a while now, and on rare occasion I posted on it as ‘James Read More...
It was not all that long ago that I talked about The Lack of Uniscribe samples . In the meantime, James Brown hass put together some very interesting docs with samples -- definitely worth a look! Excerpted from his announcement in the microsoft.public.win32.programmer.international Read More...
(No, this is not a post about relationship advice!) The other day, Karthik asked: Hi Michael, The issue is: GetWindowTextLength returns 0 for any edit control that has Chinese Pinyin IME or Japanese IME characters in it.... GetWindowText also returns Read More...
Alistair asked me via email: V.quick question (I am contacting you as I can see you are an expert in this area from your excellent blog entries ;-) Do you happen to know how I can automate changing the location listed in the "Location" field in the "Regional Read More...
I embarrassed myself a little bit at one of my presentations, yesterday. I was doing my Tales of Incorrect String Comparisons talk, and I did the following: On a machine with Windows Server 2003 and an early 2005 CTP build of SQL Server 2005 that supports Read More...
(via the awesome Kate Gregory ) I sometimes wonder what all this blogging crap is worth. I guess I know now.... My blog is worth $76,212.90 . How much is your blog worth? That is the worth if I use http://blogs.msdn.com/michkap/ but if I tack on the default.aspx Read More...
The other day, I was talking with a developer about a problem -- how to deal with a font linking choice and displaying some localized text based on it w ithout requiring a reboot. We talked through a bunch of options, realizing that all of them would Read More...
Yesterday when I posted about The real problems with keyboard switching , I listed what were the three most common complaints I had heard previously about working with other language keyboards: The movement of some letters within a script; The movement Read More...
(computerized apologies to Ray Charles for the title of the post!) Will anyone forget when I asked the question What do you get when you combine a base character with a buttload of diacritics? I was of course talking about fonts there. This time I am Read More...
I was at the birds-of-a-feather entitled " Design Principles for A Regional, Multilingual Keyboard " last night. (More on some of the issues there another day....) In any case, there was an interesting side conversation that brought into specific relief Read More...