Skip to main content.

Less Virtual, More Machine - Windows 7 and the magic of Boot to VHD

Nice article on hardware virtualization for Windows without loosing any hardware performance.


Interesting blog (en fran├žais)

Silverlight Adaptive Streaming

About Silverlight and WPF media development


Software Analyst

Interesting link about programming the Windows Shell and other goodies


AutoComplete for multiline edit control

By default the standard AutoComplete component provided with win32 does not support multiline edit control (i.e. edit control with the ES_MULTILINE style.)

After spending some time searching the web for an existing implementation, I didn't find anything as complete as the original implementation by Microsoft. So I decided to roll my own and here is the result:


The implementation is based on observation of the behavior of the original implementation. In particular, the suggest drop down list disapears automatically when the user click anywhere on the screen. I've realized this trick by adding a hook and tracking mouse messages. The hook is only active when the suggestion list is displayed.

Another trick was to implement support for scrolling the suggestion list. Here Spy++ was really usefull to learn from the original win32 implementation. It also helped for the resize box. Eventually, I decided to not hide the vertical scrollbar to not have to customize the drawing of the resize box (as in the original implementation.)

One important trick when using Spy++ is to subclass the base classes, this allow Spy++ to display more complete information when logging messages from the window class's name.

Active Scripting FAQ

The Source for Information on Developing a Scripting Host:
Active Scripting FAQ

A serie of article on Active Scripting by Eric Lippert:
Simple Script Engine


Cropper is a screen capture utility written in C# on the Microsoft .Net platform. It makes it fast and easy to grab parts of your screen.

Download Cropper

Ecommerce Providers

I found an interesting article about Ecommerce Providers here:
Ecommerce Providers

You may want to check the providers directly:

GetMessagePos vs. GetCursorPos

It is sometimes necessary to retrieve the position of the cursor within a child control (i.e. TreeView, ListView, etc.)

GetMessagePos will return the position of the cursor when the message was added to the message queue. GetCursorPos will return the current position of the cursor (that can have changed since the message was handled by the application.)

It is better to use GetMessagePos as it will improve how the application reacts to the user action (particularly handling the right-click button.)

Position Is Everything

Modern browser bugs explained in detail!

"We're Big John and Holly Bergevin, and together we built this site to explain some obtuse CSS bugs in modern browsers, provide demo examples of interesting CSS behaviors, and show how to 'make it work' without using tables for layout purposes."

Position Is Everything

How to Register an ActiveX Object as the Player for a Media Type

"This topic describes how to register a Microsoft ActiveX object as the viewer or player for a particular media type (Multipurpose Internet Mail Extensions (MIME)). This registration is essential for Microsoft Internet Explorer to launch the correct player when interpreting the standard HTML A HREF tag or the Netscape-introduced EMBED tag. Without this registration, it is impossible for Internet Explorer to guess what application to use to display or play an unknown media file. The registration process associates an ActiveX object with a given MIME type or file-name extension so that Internet Explorer or any other ActiveX control container can launch the correct player for files of that type. Internet Explorer first tries to find a match for the correct media type; if that is not possible, it uses the file-name extension."

How to Register an ActiveX Object as the Player for a Media Type

Smart Client Developer Center: Using the WiX Toolset to Integrate Setup into Your Development Process

Summary: The Windows Installer XML (WiX) toolset enables developers to integrate setup development into their daily development process. This article describes why setup should be integrated and how to do so using the WiX toolset both in Visual Studio 2003 and from a custom build environment.

Thanks to Rob Mensching for publishing a great article about WiX on MSDN. The article goes onto the details of integrating the install setup into the build process. Read the whole article here: Using the WiX Toolset to Integrate Setup into Your Development Process