Not exactly reverse engineering....

by Michael S. Kaplan, published on 2007/06/12 20:23 -04:00, original URI:

I had somebody ask me after they read Launching the keyboard layouts dialog directly? how I knew about this. I mean, since it did not seem to be available in the documentation they could find.

It actually dates back a few years. Like to XP during the beta, some work I was doing for someone else (this is before I started working for Microsoft full-time).

They had just read that KB article (289125) and they wanted to know what else could be launched automatically.

I showed them how the intl.cpl thing worked by showing them the magic export from intl.cpl:

And I just explained that any DLL that implemented CPlApplet according to the docs could be called this way.

So I just ran

link.exe -dump -exports c:\windows\system32\*.dll > dlls.txt
link.exe -dump -exports c:\windows\system32\*.cpl > cpls.txt

and then looked at those two files for everyone who had a CPlApplet. This has turned out to be a helpful list on more than one occasion. :-)

In particular, looking at input.dll showed:

Those [NONAME} entries are always tantalizing, but I wad not too curious about that. I just tried launching the control panel applet and left it at that. :-)

(In my younger days I spent a bunch of time reverse engineering things like those nameless entries, because of the implied challenge that [NONAME} seemed to imply to me. But I have grown up a bit since then, thankfully!)

Anyway, that piece of info is just something I had tucked away, and then a few years later (when I was for a very brief time the owner of intl.cpl) I got to notice that Regional and Language Options launched the dialog in that very same way.

So when Maryam asked me how one would launch, I could be all casual and slick and point out the way to do it (kind of less impressive story than this one but since Drew was shocked whereas Maryam was just grateful, one could say that I am now aiming a bit higher when it comes to the reactions I am trying to inspire in others....

I thought this might make a nice story. How did I do? :-)


This post brought to you by « (U+00ab, a.k.a. LEFT-POINTING DOUBLE ANGLE QUOTATION MARK)

no comments

referenced by

2008/05/23 When the LANGID in the LOWORD of the KLID doesn't match the LANGID you want keyboard under?

go to newer or older post, or back to index or month or day