The Old New Thing

Dragging a shell object, part 1: Getting the IDataObject

The shell gives you the IDataObject; all you have to do is drag it around. (This is the first of a five-part series.) Start with the scratch program, and add the function GetUIObjectOfFile from an earlier article. Also, change the calls to CoInitialize and CoUninitialize to OleInitialize and OleUninitialize, respectively, since we're...
Comments are closed.0Code

Why did Windows 95 run the timer at 55ms?

The story behind the 55ms timer tick rate goes all the way back to the original IBM PC BIOS. The original IBM PC used a 1.19MHz crystal, and 65536 cycles at 1.19MHz equals approximately 55ms. (More accurately, it was more like 1.19318MHz and 54.92ms.) But that just pushes the question to another level. Why 1.19...MHz, then? With that ...

What is the purpose of the bmPlanes member of the BITMAP structure?

Many bitmap-related structures in Windows have a field called "planes". For example the BITMAPINFOHEADER structure has a biPlanes member (which must be set to 1). The BITMAP structure has a field called bmPlanes. What's the deal with that field? The EGA video adapter supported 16 simultaneous colors. This was an enormous improvement over ...