Showing archive results for 2012

Jun 1, 2012
Post comments count0
Post likes count1

How do I prefetch data into my memory-mapped file?

Raymond Chen

A customer created a memory mapping on a large file and found that when the memory manager wanted to page in data from that file, it did so in 32KB chunks. The customer wanted to know if there was a way to increase the chunk size for efficiency. The memory manager decides the chunk size for memory-mapped files, and the chunk size is currently set ...

Code
May 31, 2012
Post comments count0
Post likes count1

What happens if I call KillTimer with a NULL hwnd?

Raymond Chen

A customer discovered a bug in their code and wanted some information on how serious it was, so they could assess how urgently they need to issue a fix. We have code that calls with a valid window handle, but then we destroy the window before we get around to calling . When we finally do call , we do so with a window handle. The calls are proba...

Code
May 29, 2012
Post comments count0
Post likes count1

Hazards of spelling autocorrection: defiance

Raymond Chen

On an internal mailing list, a colleague asked for some recommendations on a webcam. I was wondering if there are any models I should avoid or defiantly get. I got this mental image of my colleague giving the salesperson the finger as he handed over his credit card. My colleague explained, "That's an error I frequently make because Outlook by d...

Non-Computer
May 28, 2012
Post comments count0
Post likes count0

If my window hosts multiple windowless ActiveX controls, which one do I call IOleInPlaceActiveObject::TranslateAccelerator and IOleInPlaceObjectWindowless::OnWindowMessage on?

Raymond Chen

Commenter Farproc asks how one goes about hosting two windowless ActiveX controls in a single window. In particular, "none of the documentation explains how to choose which control to send and on?" Actually, the documentation does say. The documentation for says, "Active in-place objects must always be given the first chance at translating ac...

Code
May 25, 2012
Post comments count0
Post likes count1

The extern “C” specifier disables C++ mangling, but that doesn’t mean it disables mangling

Raymond Chen

The MSDN documentation on dllexport contains the following enigmatic paragraph, or at least did at the time I wrote this article: dllexport of a C++ function will expose the function with C++ name mangling. If C++ name mangling is not desired, either use a .def file (EXPORTS keyword) or declare the function as extern "C". I've seen this sente...

Code
May 24, 2012
Post comments count0
Post likes count1

How do I prevent unchecked checkboxes in my listview control from disappearing?

Raymond Chen

A customer asked, "I have a listview control in report view with the extended style. I noticed that unchecked checkboxes are not visible until I hover over the corresponding item. Is it possible to get the checkboxes to be visible all the time?" I was kind of puzzled by this question because the default behavior of the list view control is to sho...

Code
May 23, 2012
Post comments count0
Post likes count1

GUIDs are designed to be unique, not random

Raymond Chen

A customer liaison asked, "My customer is looking for information on the GUID generation algorithm. They need to select N items randomly from a pool of M (jury selection), and their proposed algorithm is to assign each item a GUID, then sort the items by GUID and take the first N." (I've seen similar questions regarding using GUIDs f...

Code
May 22, 2012
Post comments count0
Post likes count1

Why is the Close button in the upper right corner?

Raymond Chen

Chris wants to know how the close button ended up to the right of the minimize and maximize/restore buttons. "In OS/2, it is on the left, which left the two other buttons in place." I don't know why the Close button went to the upper right instead of going to the left of the other buttons, but I'm going to guess. (That's what I do around here mos...

History
May 21, 2012
Post comments count0
Post likes count1

What was the registry like in 16-bit Windows?

Raymond Chen

Commenter Niels wonders when and how the registry was introduced to 16-bit Windows and how much of it carried over to Windows 95. The 16-bit registry was extremely simple. There were just keys, no values. The only hive was . All it was used for was COM objects and file associations. The registry was stored in the file, and its maximum siz...

History