Showing tag results for Code

Jan 24, 2013
Post comments count0
Post likes count1

STRICT_TYPED_ITEMIDS is the shell namespace version of the STRICT macro used by USER and GDI

Raymond Chen
Raymond Chen

Starting with the Windows Vista PlatformSDK, defining the symbol before including shell header files changes declarations that previously had simply used now use one of various types which are more clear about what type of ID list is being used. Think of it as the macro for the shell. The more precise names emphasize the form of the ID lis...

Code
Jan 18, 2013
Post comments count0
Post likes count1

What is this rogue version 1.0 of the HTML clipboard format?

Raymond Chen
Raymond Chen

At least as of the time this article was originally written, the HTML clipboard format is officially at version 0.9. A customer observed that sometimes they received HTML clipboard data that marked itself as version 1.0 and wanted to know where they could find documentation on that version. As far as I can tell, there is no official version 1.0...

Code
Jan 16, 2013
Post comments count0
Post likes count1

How do I create a TaskDialog with a progress bar but no cancel button?

Raymond Chen
Raymond Chen

A developer from another group within Microsoft wanted to create a with a progress bar, but they couldn't figure out how to get rid of the Cancel button. "Is there a way to remove all the buttons from a Task Dialog?" Um, users hate it when you give them a window that cannot be closed or cancelled. What should the user do if the reticulatio...

Code
Jan 14, 2013
Post comments count0
Post likes count1

How can I write a script that finds my top-rated photos?

Raymond Chen
Raymond Chen

I'm not sure if I'll be able to keep it up, but I'm going to see if I can make Monday "Little Programs" day, where I solve simple problems with little programs. Today's little program is a script that goes through your Pictures folder and picks out your top-rated photos. The key step here is extracting the rating, which goes by the name Syste...

Code
Jan 11, 2013
Post comments count0
Post likes count1

Understanding errors in classical linking: The delay-load catch-22

Raymond Chen
Raymond Chen

Wrapping up our week of understanding the classical model for linking, we'll put together all the little pieces we've learned this week to puzzle out a linker problem: The delay-load catch-22. You do some code cleanup, then rebuild your project, and you get LNK4199: /DELAYLOAD:SHLWAPI ignored; no imports found from SHLWAPI What does this er...

CodeLinker
Jan 10, 2013
Post comments count0
Post likes count1

Understanding the classical model for linking: Sometimes you don’t want a symbol to come along for a ride

Raymond Chen
Raymond Chen

Continuing our study of the classical model for linking, let's take another look at the trick of taking symbols along for the ride. The technique of taking symbols along for the ride is quite handy if that's what you want, but sometimes you don't actually want it. For example, a symbol taken along for the ride may create conflicts or create unw...

CodeLinker
Jan 9, 2013
Post comments count0
Post likes count1

Understanding the classical model for linking: You can override an LIB with another LIB, and a LIB with an OBJ, but you can’t override an OBJ

Raymond Chen
Raymond Chen

If you study the classical model for linking, you'll see that OBJ files provided directly to the linker have a special property: They are added to the module even if nobody requests a symbol from them. OBJs bundled into a library are pulled into the module only if they are needed to resolve a needed symbol request. If nobody needs a symbol in the...

CodeLinker
Jan 8, 2013
Post comments count0
Post likes count1

Understanding the classical model for linking: Taking symbols along for the ride

Raymond Chen
Raymond Chen

Last time, we learned the basics of the classical model for linking. Today, we'll look at the historical background for that model, and how the model is exploited by libraries. In the classical model, compilers and assemblers consume source code and spit out an OBJ file. They do as much as they can, but eventually they get stuck because they do...

CodeLinker
Jan 7, 2013
Post comments count0
Post likes count2

Understanding the classical model for linking, groundwork: The algorithm

Raymond Chen
Raymond Chen

The classical model for linking goes like this: Each OBJ file contains two lists of symbols. Provided symbols: These are symbols the OBJ contains definitions for. Needed symbols: These are symbols the OBJ would like the definitions for. (The official terms for these are exported and imported, but I will use provided and needed to avo...

CodeLinker
Jan 4, 2013
Post comments count0
Post likes count1

What’s the guidance on when to use rundll32? Easy: Don’t use it

Raymond Chen
Raymond Chen

Occasionally, a customer will ask, "What is Rundll32.exe and when should I use it instead of just writing a standalone exe?" The guidance is very simple: Don't use rundll32. Just write your standalone exe. Rundll32 is a leftover from Windows 95, and it has been deprecated since at least Windows Vista because it violates a lot of modern en...

Code