Tag Archive for Windows 7

The New MFC Animation API


Microsoft Visual Studio 2010 Service Pack 1 includes a number of enhancements and new features for MFC developers. One of those changes is an animation API to make it easy for you to create animations in MFC applications. This article will briefly introduce this animation API.
This articles was also posted on Codeguru.com.
Read the rest of this entry »


Visual Studio 2010 SP 1 Beta

Microsoft has released Visual Studio 2010 SP1 Beta. It’s available right now for MSDN subscribers and will be available to everyone on Thursday.

It includes a new help viewer that I mentioned in my previous blog entry and “Win7-specific MFC APIs to support use of Direct2D, DirectWrite, and Windows Animation Technologies”. I can’t wait to try those out 🙂

Get more details here.


Free eBooks Related to Microsoft Technologies

Here is a list of free eBooks related to Microsoft technologies.

Enjoy 🙂


Querying Bing Using the New Windows 7 Web Services C++ API (WWSAPI)

According to MSDN, WWSAPI is a native-code implementation of SOAP which provides core network communication functionality by supporting a set of the WS-* and .NET-* family of protocols. WWSAPI is designed to be used by components/applications which fall into one of the following categories:

  • Native code mandate
  • Require minimal dependencies
  • Require minimal startup time
  • Memory constrained environments

Using this brand new API, it is possible to make native-code SOAP based web services and clients for SOAP based web services. I wrote an article that explains how to build client applications that use SOAP based web services. The web service that I used in the examples is the Microsoft Bing SOAP API which allows you to search for text, images and so on. The article just went live on CodeGuru. Read the full article.


Windows 7 breaks all pre-order records at Amazon

Apparently the pre-order of Windows 7 went extremely well. According to Amazon UK, they sold more Windows 7 pre-orders in the first 8 hours of its release than Vista did during it’s entire pre-order period.

According to Brian McBride, Amazon UK MD:

“The launch of Windows 7 has superseded everyone’s expectations, storming ahead of Harry Potter and the Deathly Hallows as the biggest grossing pre-order product of all-time at Amazon.co.uk, and demand is still going strong. Over the past three months, only Dan Brown’s The Lost Symbol has sold more copies than Windows 7, which is an incredible achievement for a software product.”.

Tomorrow is the official launch date of Windows 7 🙂


Access Hidden Regional Themes in Windows 7

I just came across an interesting blog post.

Apparently, Windows 7 comes with several regional themes which include wallpapers from Canada, Australia, South Africa, and Great Britain. You can easily activate those themes following the procedure in the following blog post.

Access Hidden Regional Themes in Windows 7


Windows 7 E Cancelled

It seems Microsoft will not release a Windows 7 E for the European Union after all. Windows 7 E was planned for the EU to be a Windows 7 version without Internet Explorer. Now, Microsoft will implement a ballot screen that will be shown the first time a user starts Internet Explorer. That ballot screen gives the user the option to select a different browser like Firefox, Safari, Chrome, Opera and so on.


Windows API Code Pack for Microsoft .NET Framework

I just stumbled upon the Windows API Code Pack for the Microsoft .NET Framework. It’s a code pack that allows .NET developers to take advantage of some of the new Windows 7 features.

Features supported by version 0.9 of the code pack are:

  • Windows 7 Taskbar Jump Lists, Icon Overlay, Progress Bar, Tabbed Thumbnails, and Thumbnail Toolbars.
  • Known Folders, Windows 7 Libraries, non-file system containers, and a hierarchy of Shell Namespace entities.
  • Windows 7 Explorer Browser Control.
  • Shell property system.
  • Windows Vista and Windows 7 Common File Dialogs, including custom controls.
  • Windows Vista and Windows 7 Task Dialogs.
  • Direct3D 11.0, Direct3D 10.1/10.0, DXGI 1.0/1.1, Direct2D 1.0, DirectWrite, Windows Imaging Component (WIC) APIs. (DirectWrite and WIC have partial support)
  • Sensor Platform APIs
  • Extended Linguistic Services APIs
  • Power Management APIs
  • Application Restart and Recovery APIs
  • Network List Manager APIs
  • Command Link control and System defined Shell icons.


  • .NET Framework 3.5 or later.
  • This library targets the Windows 7 RC version, though some of the features will work on the older versions of Windows operating system.
  • DirectX features have dependency on Windows SDK for Windows 7 RC and March 2009 release of DirectX SDK.

There are also a few short 2-minute videos available to show you how easy it is to use some of the above features.


Introduction to DirectWrite

Microsoft has added two interesting new API’s to Windows 7: Direct2D and DirectWrite. Direct2D replaces GDI and GDI+. It can render more accurate results and has support for hardware acceleration on your graphics hardware. DirectWrite is a new API to render text. It makes it easy to render paragraphs of text that can contain different formatting, coloring, fonts etc. It supports horizontal and vertical alignments, even vertical centering of a paragraph with multiple lines which was not possible with the old text API, etc. This article will give an introduction to the new DirectWrite API. Read the rest of this entry »


Visual C++ 2010 Beta 1 and the Windows 7 RC SDK

The Visual C++ 2010 Beta 1 release contains the Windows 7 Beta SDK. For Direct2D and DirectWrite there were some breaking changes between the beta version of the SDK and the RC version of the SDK. So if you want to use those new Direct2D and DirectWrite APIs, you definitely need the latest Windows 7 RC SDK. There are some manual steps involved in getting that to work with Visual C++ 2010. For detailed explanation please check out Using the Windows 7 RC SDK in Visual C++ 2010 Beta 1 on the Visual C++ Team Blog.


Preview of Upcoming Direct2D/DirectWrite Article

I’m working on a new article to be published on Codeguru. The new article will be about using Direct2D and DirectWrite on Windows 7 from C++. 

I was really impressed while playing with those new APIs. The two APIs combined are pretty powerful and allow you to easily render complicated formatted text. The screenshot below shows what the demo application that will be included with the article is capable of rendering. The code behind everything you see in the screenshot is pretty simple.

The demo will show rendering paragraphs of text with different fonts, font sizes, styles (bold, italic, underlined…), font colors, text alignment and so on. It also shows that mixing left-to-right and right-to-left text is not a problem and how to render fancy text using special typgraphic features that are present in certain fonts. Hit testing will also be included which can for example be used to embed interactive hyperlinks into DirectWrite rendered text. Click on the screenshot to see a full sized version 🙂


NOTE: I have no idea what the Arabic piece of text is saying, so do not blame me if it says something wrong. It’s just for demonstration purposes.


Windows 7 on Track for Holiday Season

It seems that Microsoft Windows 7 is on track to be released in time for the holiday season of 2009. At the TechEd North America 2009 in Los Angeles, Bill Veghte said:

Microsoft is committed to ensuring that IT professionals and developers continue to have the platform and technologies to drive maximum value and business results. Getting the most out of IT investments is even more important in today’s economy.


With early RC testing and extensive partner feedback we’ve received, Windows 7 is tracking well for holiday availability.

Read the full press release.


EasyBCD: Easily Manage The Vista Bootloader

A friend of mine pointed me to EasyBCD to easily make changes to the Windows Vista Bootloader. This is expecially useful if you have installed Windows 7 in a VHD for example. If you want to remove your VHD installation, simply delete the VHD file and then use EasyBCD to remove the Windows 7 boot entry from the Bootloader.


Windows 7 RC Installed in VHD

I downloaded the freshly released Windows 7 Release Candidate from MSDN and was thinking on how to test it. First I thought to install it in a virtual machine, however, that means I would not be able to test with Aero enabled. A friend of mine suggested to use a new feature in the Windows 7 bootloader that allows you to boot an operating system installed inside a VHD (Virtual Hard Disk Image). On his blog he explains the steps involved in getting this to work. I followed his steps and everything went without a hitch and Windows 7 was up and running in no time, including Aero 🙂

The benefit of using a VHD is that you don’t need to repartition your drives. The VHD is just 1 big file but when booting from the VHD, everything looks and feels as if the operating system was installed on its own physical drive/partition.

I did encounter one anomaly while using Windows 7 booting from VHD. The Windows Experience Index cannot be computed. When asking Windows 7 RC to compute the WEI score, it gives an error saying that it cannot properly assess hard drive speed, but other than that, everything seems to be working smoothly. 🙂

Over the coming days I will keep testing Windows 7 RC. One thing I stumbled upon today is that Windows 7 RC seems to have built-in support for playing XVID movies. It even shows thumbnails for XVID movies in the Windows Explorer.


Windows 7 Release Candidate

The Windows 7 Release Candidate has been made available to MSDN and Technet subscribers. It will be available to the general public on May 5th. This RC will expire on June 1 2010. There is also a dedicated forum for Windows 7 at http://social.technet.microsoft.com/Forums/en/category/w7itpro


Developing High DPI Aware Applications

I’m currently in the process of implementing high DPI support in one of my applications. High DPI support is getting more and more important, especially with the resolution of todays laptop screens. Most people will switch to 120 DPI or even 144 DPI instead of the default 96 DPI to make text easier to read. However, when your application is not High DPI aware, Windows Vista and Windows 7 will in certain situations scale everything for you but this will result in a blurry user interface.

Microsoft has released an interesting document describing the steps involved in developing High DPI aware applications. You can find them at the following links:


Using the Windows Vista/Windows 7 Built-In Buffered Animation API

Windows Vista comes with a built-in buffered animation API. This API makes it easy to make animations without flickering(*). I wrote a new article on CodeGuru that explains how to use this Buffered Animation API with C++.

The article comes with an example application to illustrate the Windows Vista buffered animation technique. The example will draw a new colored random rectangle in the window each time you press the spacebar. The new rectangle will smoothly fade onto the window. The buffered animation is used for this fading effect.

Read the full article.

(*) Note: While writing the article, I found an issue with the DWM in Windows Vista. After discussing with someone from Microsoft, it seems the buffered animation API is relying on some buffering from the DWM; however, on Windows Vista this is causing some flickering. They also told me that the buffered animation was not designed for big or full-screen animations but rather for small animations like fading buttons. To reduce the flickering as much as possible, only use the buffered animation on small rectangles and use a short animation interval, for example 500 milliseconds, which is more than enough for GUI related animations anyway.

The good news is that I tested the application on Windows 7 Beta and it works without any flickering. So, it seems that the DWM issue has been fixed on Windows 7.


Using Windows Vista Built-In Double Buffering

The solution to fixing flickering issues when drawing graphics is to use double buffering. Double buffering basically means that an off-screen buffer is created. Everything is rendered to this off-screen buffer and, when drawing is completed, this off-screen buffer is copied to the screen. The end result is that you do not see any flickering and you do not see the drawing being created part by part. A little unknown fact is that Windows Vista has built-in support for double buffering, so managing off-screen buffers, copying data, and so forth are all managed by Windows for you. I wrote an article including an example on how to use this built-in support for double buffering with C++. This article has been published on CodeGuru.

Read the full article.


Wallpaper Cycler and Windows 7

When the beta of Windows 7 was released, I obviously had to install it to test Wallpaper Cycler on it. Wallpaper Cycler started fine, so that was a good start 🙂 However, when I wanted to cycle the wallpaper on the desktop, it changed the tiling setting on the desktop properly, but the wallpaper itself was not changed, bummer 🙁

Since Windows 7 comes by default with a very basic wallpaper cycler built-in, I thought that Microsoft had maybe changed the programming interface to change the wallpaper. I started to search on the internet for information regarding this, but didn’t find anything. So, I started debugging… Read the rest of this entry »


Windows 7: New Maximizing Feature

With the release of the first beta of Windows 7, obviously I had to download it and try it out. I tested it on an older P4 2GHz with only 512MB of memory. I normally run Vista on that machine and 512MB of memory is a little bit on the low side for Vista. When Windows 7 first started I immediately noticed how much smoother and how much more responsive everything feels compared to Vista on the same box. I was really impressed.

In this post I want to explain a new maximizing feature that is currently in the Windows 7 beta. Suppose you start with a Wordpad window in the middle of your screen. On a side note, you can also see that Wordpad finally received a GUI update and now includes a ribbon.

Windows 7 Maximizing Feature (before)

Now, grab the Wordpad window and move it to the far left of your screen. Windows 7 will draw a translucent rectangle with the size of half your screen.

Windows 7 Maximizing Feature (middle)

When you now release your mouse button, Windows 7 will maximize the window to half your screen as in the following screenshot.

Windows 7 Maximizing Feature (after)

This feature is a pretty useful one in my opinion, especially on widescreen monitors that are getting more and more common.