Holy cow, I wrote a book!
(Geek talk resumes on Monday.)
The longstanding tradition of Norwegians telling Swedish jokes and
vice versa, was recently refueled by a border story. A Norwegian
man called Sweden on his mobile phone to tell them they had a forest fire.
Not only did the firefighters not know about the blaze,
they didn't recognize the name of the place on fire.
(It's a holiday in the States today and tomorrow, so I'm not going to
talk about geek stuff. That'll resume on Monday.)
If you pay a visit to
the German international broadcasting service,
you will find a wide array of online German learning materials,
the daily news in slowly- and clearly-enunciated German
dozens of half-hour mini-documentaries designed for students of German
(including transcripts and exercise worksheets).
These are great for improving my woefully
deficient listening comprehension skills.
On the other hand,
all I could find for students of Swedish is
the weekly news in simple Swedish.
No transcripts, no lessons.
Sure, I can listen to all of the Swedish national radio stations
anytime I want, but they sort of assume you're fluent in Swedish.
The WM_GETDLCODE message lets you influence the behavior of the
A previous entry on using WM_GETDLGCODE
described the DLGC_HASSETSEL flag which controls
whether edit control content is auto-selected when focus changes.
I was going to write a bit about the other flags, but it turns out
Knowledge Base Article 83302 already covers this, so I'll just
call out some highlights.
The DLGC_WANTMESSAGE flag is the most powerful one.
It lets your control prevent the dialog manager from handling
a message. So for example if you don't want ESC to dismiss the
dialog box when focus is on a particular control but rather be
delivered to the control itself, handle the
WM_GETDLGCODE message and peek at the lParam.
If it is a press of the ESC key, then return DLGC_WANTMESSAGE
so the message will not be handled by the dialog manager.
The DLGC_WANTCHARS, DLGC_WANTTAB and
DLGC_WANTARROWS flags are just conveniences that
save you the trouble of checking certain categories of messages.
Once upon a time, Windows was 16-bit.
Each message could carry with it two pieces of data, called
WPARAM and LPARAM.
The first one was a 16-bit value ("word"), so it was called W.
The second one was a 32-bit value ("long"), so it was called L.
You used the W parameter to pass things like handles and integers.
You used the L parameter to pass pointers.
When Windows was converted to 32-bit, the WPARAM
parameter grew to a 32-bit value as well. So even though the "W"
stands for "word", it isn't a word any more.
(And in 64-bit Windows, both parameters are 64-bit values!)
It is helpful to understand the origin of the terms.
If you look at the design of window messages, you will see that
if the message takes a pointer, the pointer is usually passed
in the LPARAM, whereas if the message takes a handle
or an integer, then it is passed in the WPARAM.
(And if a message takes both, the integer goes in the
WPARAM and the pointer goes in the LPARAM.)
Here's a little script that opens the Run dialog.
You can save it as "Run.js" and double-click it.
The advantage of this approach over various others people have come
up with is that this one is actually
(And therefore is less likely to break in the next version of the
Windows XP added a new feature called Fast User Switching which lets
you switch between users without having to log off.
But this feature is disabled if your computer is joined to a domain.
There were several reasons,
none of them individually insurmountable,
but they added up to quite a lot of work for something
IT administrators weren't even sure they wanted.
a previous entry on retraining costs.)
Those of you who have gotten Longhorn can see that Fast User Switching
is now enabled on domains. New infrastructure needed to be developed
to enable the feature on domains without ruining the domain administrators'
In the root of every drive is a folder called "System Volume
Information". If your drive is NTFS, the permissions on the folder
are set so not even administrators can get in there. What's the big
The folder contains information that casual interference could cause
problems with proper system functioning. Here are some of the
things kept in that folder. (This list is not comprehensive.)
Answer: Your wallet is empty.
Seriously, there is no way you bought an Itanium by mistake.
They are expensive machines: The entry-level workstation available
from HP (who co-developed the Itanium with Intel) goes for over $3000
and the entry-level server is over $13,000.
And in addition to paying for the computer itself, you probably had to
install a custom air conditioning system for
your building to keep it cool.
If you still aren't sure whether you have one,
go to Help.About in Explorer. At the top of the About box,
it will say "Windows XP 64-Bit Edition" if you have it.