Showing results for Code - The Old New Thing

Jul 12, 2004
0
0

Positioned vs. non-positioned listview views

Raymond Chen
Raymond Chen

Occasionally, I'll see a question that betrays a lack of understanding of difference between the positioned and non-positioned listview views. The question usually goes along the lines of "I inserted an item with LVM_INSERTITEM but it went to the end of the list instead of in the location I inserted it." To understand what is going on, you ne...

Code
Jul 7, 2004
0
0

Obtaining a window's size and position while it is minimized

Raymond Chen
Raymond Chen

If you have a minimized window and want to know where it will go when you restore it, the GetWindowPlacement function will tell you. In particular, the tells you where the window would go if it were restored (as opposed to minimized or maximized). One perhaps-non-obvious flag is WPF_RESTORETOMAXIMIZED. This flag indicates that the window...

Code
Jul 7, 2004
0
0

Obtaining a window’s size and position while it is minimized

Raymond Chen
Raymond Chen

If you have a minimized window and want to know where it will go when you restore it, the GetWindowPlacement function will tell you. In particular, the tells you where the window would go if it were restored (as opposed to minimized or maximized). One perhaps-non-obvious flag is WPF_RESTORETOMAXIMIZED. This flag indicates that the window...

Code
Jun 29, 2004
0
0

The difference between thread-safety and re-entrancy

Raymond Chen
Raymond Chen

An operation is "thread-safe" if it can be performed from multiple threads safely, even if the calls happen simultaneously on multiple threads. An operation is re-entrant if it can be performed while the operation is already in progress (perhaps in another context). This is a stronger concept than thread-safety, because the second attempt to per...

Code
Jun 28, 2004
0
0

When does SHLoadInProc unload a DLL?

Raymond Chen
Raymond Chen

The SHLoadInProc function instructs Explorer to create an instance of a particular CLSID. This causes the DLL responsible for that CLSID to be loaded. But when is it unloaded? This is one of those puzzles you should be able to figure out by thinking about it. Consider: The object is created by calling CoCreateInstance and then imme...

Code
Jun 11, 2004
0
0

A hidden performance cost of regional windows

Raymond Chen
Raymond Chen

Regional windows are neat, but they come at a cost. Most of the cost you can see directly. For example, constantly changing the region clearly generates a cost since you have to sit there and generate new regions all the time. One question that came up on an internal performance alias highlights one of the hidden costs of regional windows: The p...

Code
Jun 10, 2004
0
0

Speeding up adding items to a combobox or listbox

Raymond Chen
Raymond Chen

Just a little tip: If you're going to be adding a lot of items to a listbox or combobox, there are a few little things you can do to improve the performance significantly. (Note: The improvements work only if you have a lot of items, like hundreds. Of course, the usability of a listbox with a hundred items is questionable, but I'm assuming you h...

Code
Jun 8, 2004
0
0

When can a thread receive window messages?

Raymond Chen
Raymond Chen

Everybody who has messed with window messaging knows that GetMessage and PeekMessage retrieve queued messages, which are dispatched to windows via DispatchMessage. Most people also know that GetMessage and PeekMessage will also dispatch nonqueued messages. (All pending nonqueued messages are dispatched, then the first queued message is retur...

Code