Showing tag results for Code

Apr 12, 2010
Post comments count0
Post likes count2

How do I switch a window between normal and fullscreen?

Raymond Chen
Raymond Chen

Frederic Delhoume wants to know if there is a simple example of code that switches an application from windowed to fullscreen. He then included a code fragment that did some crazy things with parent windows and hiding and showing. You're making it way, way harder than it needs to be. Let's start with our scratch program and make these changes:...

Code
Apr 9, 2010
Post comments count0
Post likes count1

Why can't you use WM_CTLCOLORSTATIC to change the color of a SS_BLACKRECT?

Raymond Chen
Raymond Chen

If you specify one of the static control styles which draw a frame or rectangle the control will be drawn with the corresponding color (which, as we saw last time, isn't actually black, gray, or white). If you try to customize the color by handling the message, you'll find that it has no effect. Well, yeah, because you said you wanted a black ...

Code
Apr 2, 2010
Post comments count0
Post likes count1

Why do non-folders in my shell namespace extension show up in the folder tree view?

Raymond Chen
Raymond Chen

A customer was having trouble with their shell namespace extension: When we click the [+] button next to our shell namespace extension in the folder tree view, the tree view shows both files and folders, even though it's supposed to show only folders. Our does return the correct values for (including it for the folders and omitting it for the n...

Code
Mar 29, 2010
Post comments count0
Post likes count1

What happens to the control names in the IDE when my program is running?

Raymond Chen
Raymond Chen

nick_journals demonstrates some confusion about names in source code and their relationship to runtime behavior. A topic I am particularly interested in is the naming of controls, how it works... Every control gets a name from a developer...via the IDE (e.g btnOK) When using this function: GetWindowLong(handle,GWL_ID) it doesn't return the n...

Code
Mar 26, 2010
Post comments count0
Post likes count1

WaitForInputIdle waits for any thread, which might not be the thread you care about

Raymond Chen
Raymond Chen

We saw last time that the function waits only once for a process to go input idle. Even if the process later stops processing messages, will return immediately and say, "Yeah, he's idle." The way a process is determined to be input idle is that it is waiting for user input when there is none. This translates into the process sitting in a functi...

Code
Mar 25, 2010
Post comments count0
Post likes count1

WaitForInputIdle should really be called WaitForProcessStartupComplete

Raymond Chen
Raymond Chen

The function waits for a process to finish its initialization, which is determined when it reaches a state where it is just sitting around waiting for messages. The documentation for doesn't even get around to the initialization part until the Remarks section. If all you read is the one-sentence summary, Waits until the specified process is wait...

Code
Mar 19, 2010
Post comments count0
Post likes count1

How does delay-loading use binding information?

Raymond Chen
Raymond Chen

In the documentation for delay-loading, there's a remark that says that the call to can be avoided if there is binding information. A customer who received the explanation of why you can't delay-load pointed out that paragraph and asked whether this means that you can delay-load if you bind to it. (Getting around to answering this question wa...

Code
Mar 18, 2010
Post comments count0
Post likes count1

What is DLL import binding?

Raymond Chen
Raymond Chen

Last time, we saw how hinting is used to speed up the resolving of imported functions. Today, we'll look at binding. Recall that the module loader resolves imports by locating the function in the export table of the linked-to DLL and recording the results in the loaded module's table of imported function addresses so that code from the module ...

Code
Mar 17, 2010
Post comments count0
Post likes count1

What is DLL import hinting?

Raymond Chen
Raymond Chen

Binding and hinting are two types of optimizations to improve the load-time performance of a module (executable or DLL). We'll start with hinting, then look at binding, and then look at how it affects delay-loading. The import table for a module contains a list of DLLs and a list of functions from that DLL which the module wishes to link to. The b...

Code