Easily Downloading and Installing the Sysinternals Suite

Everyone uses Mark Russinovich’s and Bryce Cogswell’s excellent Sysinternals Tools. Tools like Process Explorer and Process Monitor have helped solve some of the toughest bugs I’ve ever worked on. I’ve been surprised how many people didn’t know that all the tools available in a single download: the Sysinternals Suite. Whenever I see that one of…

Paraffin 1.03 – Couple of Bug Fixes

Last year I released a tool to help make maintaining WiX 2.0-based installations easier called Paraffin. I’ve fixed the following two issues: I was relying on the short name of the file when generating an updated .PARAFFIN file. Sadly, it looks like the short file names are essentially random. I now only rely on the…

Control Interop, Silverlight-Style

A number of people have asked me in recent weeks whether two Silverlight 2 controls hosted in the same page can communicate with each other, and if so, how. I tell them they need to build a JavaScript bridge between the controls and then the controls can talk to each other just fine. Tonight I…

Reading XAML from a Silverlight Application Assembly

I was having dinner with Walt Ritscher tonight when he posed an interesting question: how can a Silverlight app load its own XAML from an application assembly? I thought I knew the answer, because I had just finished doing a lot of research into the various ways to package code and resources in Silverlight 2.0. And…

Silverlight Deep Zoom

Like a lot of folks, I was pretty impressed the first time I saw Silverlight 2.0’s new Deep Zoom feature at work. So I downloaded Deep Zoom Composer and starting building apps to see what makes Deep Zoom tick. Deep Zoom Composer is cool, but what really makes Deep Zoom shine is the MultiScaleImage control.…

Threading and Marshaling in Silverlight 2.0

Quick: can you spot what’s wrong with this code? Thread thread = new Thread(new ThreadStart(RunClock)); thread.Start();   … private void RunClock() {     while (true)     {         Clock.Text = DateTime.Now.ToLongTimeString();     } < p class=”MsoNormal”>}  The intent is to launch a thread and have that thread run an infinite loop updating a XAML TextBlock…

Mousewheel Zooms in Silverlight 2.0

A few weeks ago I posted a short code sample demonstrating how to do mousewheel zooms in Silverlight 1.1. They’re easier to do in Silverlight 2.0 and can be done without calling out of managed code, thanks to the new HtmlWindow class (and the HtmlPage.Window property, which returns a reference to an HtmlWindow). Here’s a…

Installing Windows Server 2003 R2 x64 on a Mac Pro

Recently, the computer I was using as my server started having some overheating problems. The good news is that the machine shut down before harming components, but with that machine running my domain controller I needed it running in order to get work done and to waste time surfing the Internet. The server was in…

Alerting the User in Silverlight 2.0

Silverlight 1.1 lacked a managed equivalent of JavaScript’s window.alert, so when I wanted to pop up a message box (actually, an alert box) in Silverlight 1.1, I used the platform’s DOM integration features to fire a scriptable event from C# and handle the event in JavaScript. Then, in the event handler, I called window.alert. There’s no…

Loading Images from the Local File System in Silverlight 2.0

In Silverlight 1.1, it was impossible to load images from the local file system unless you uploaded them to a server first. In Silverlight 2.0, it’s a piece of cake to load local images as long as you involve the user by displaying an OpenFileDialog: OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = “JPEG Files (*.jpg;*.jpeg)|*.jpg;*.jpeg…

eBooks

Many readers have asked me if an electronic version of my book is available. Unfortunately, the answer is no and there are no plans to make one available. Some older versions of my book were available in electronic form but Microsoft Press and I discovered that many people took the file and posted it on…

Windows via C/C++ Table of Contents

Some (potential) readers have asked me to post the complete table of contents for my new Windows via C/C++ book. Here it is: Part I Required Reading 1 Error Handling 2 Working with Characters and Strings 3 Kernel Objects Part II Getting Work Done 4 Processes 5 Jobs 6 Thread Basics 7 Thread Scheduling, Priorities, and Affinities 8 Thread Synchronization in User Mode 9…