The Great Flying Tortoise
A hard-boiled look at Win32 C++ programming and the property system
Troubleshooting: Why isn't my property handler getting indexed?
Having trouble getting your property handler working with the indexer? Here are some troubleshooting...
Date: 07/24/2007
Property handlers and .NET
A reader asked: I've been reading up the issues with using .NET for property handlers. I know you...
Date: 05/02/2007
Property Handler Decisions and Preparation
Viewed as a data flow component, a property handler has a single file stream input and outputs a one...
Date: 01/30/2007
Property Handler Terminology
In this series, I will be presenting Windows Vista functionality with a focus on the the file system...
Date: 01/25/2007
What does a property handler accomplish?
A property handler is the piece of code that enables you to see the properties about your files as...
Date: 01/21/2007
Computer Science Exams
Graduate level courses are surreal. Professors assign nearly impossible homework assignments and...
Date: 01/19/2007
Viruwormy
I can't bring myself to click the "compile" button on my property handler project yet... so here's a...
Date: 01/17/2007
Pandora and the Music Genome Project
A coworker recently turned me onto Pandora.com, a new music service backed by the Music Genome...
Date: 01/13/2007
Code for Previous Blog Posts
Someone asked if I had a copy of the code I've been using in my blog so far. Well, I didn't as of...
Date: 01/10/2007
Choosing your property API
It is time that I talk a little about what to do if you want your application to run on XP. There...
Date: 01/05/2007
The split personality critic
The 5 star rating control is misused in most applications today. How can I say that? What's more...
Date: 01/01/2007
Ben on vacation
I will be on vacation until mid-December, so it is unlikely that I will make any more posts until...
Date: 11/21/2006
Writing properties #9 - Summary
Coding to the Windows SDK Reading properties #7 - Summary Writing properties #1 - Simple beginnings...
Date: 11/21/2006
From bad to worse - the bus ride home
Today started out nice. But midday it started raining heavily and the wind trashed around a lot. Our...
Date: 11/15/2006
Writing properties #8 - Canonical Values
There's one last topic I want to touch on before I close this series: Canonical values. So far I've...
Date: 11/15/2006
The deal with IPropertyStoreCapabilities
Have you ever felt this before? It's the day after you send your product to manufacturing. You step...
Date: 11/14/2006
Writing properties #7 - IPropertyStoreCapabilities requires GPS_READWRITE
[Edit: 2006/11/13 - My original post got this topic entirely backwards. I've fixed the title and...
Date: 11/10/2006
Writing properties #6 - GPS_READWRITE omits read-only data sources
You'll recall that there are multiple layers in the property system. In particular, the GPS_DEFAULT...
Date: 11/09/2006
Trivia: Why is System.PropList.PreviewDetails named "PreviewDetails"?
In explorer, the bottom portion of an explorer window changed names late in the development cycle of...
Date: 11/08/2006
Writing properties #5 - Property lists
So if a property handler doesn't enumerate which properties it supports writing, then how does the...
Date: 11/07/2006
Writing properties #4 - Which properties are writeable?
I'm going to make a first stab at printing out a list of properties that are writable for a given...
Date: 11/06/2006
Where's Ben?
I'm really sorry to let this blog go dark. I've been moving apartments and have been remiss in...
Date: 11/02/2006
Writing properties #3 - Which properties are writable?
While we don't have a table of properties and filetypes that are writable, there is a programmatic...
Date: 10/19/2006
Writing properties #2 - Filetype support?
The first question people ask at this point is "What properties can I write to what filetypes?"....
Date: 10/17/2006
Writing properties #1 - Simple beginnings
I'm going to be talking about writable properties over the next few days. I know that some of you...
Date: 10/16/2006
Gotcha: You must release property stores quickly
The general rule is that you should minimize the length of time you have a property store open. It...
Date: 10/13/2006
Properties coding expedition #7 - The final output
This coding expedition has developed a tool that can dump out all the properties on a file. If you...
Date: 10/12/2006
Properties coding expedition #6 - Developer friendly output
Using the tool I developed in this series, I know that my test photo has "Rating: 5 Stars". But how...
Date: 10/11/2006
Properties coding expedition #5 - Stripping characters
In Part 4, I discovered that WideCharToMultiByte converts certain invisible non-spacing Unicode...
Date: 10/10/2006
Save the World... of Warcraft
Yup, I'm one of "those" people. I play World of Warcraft to pass the time if I don't have anything...
Date: 10/09/2006
Properties coding expedition #4 - The output
The program itself is provided in parts 1, 2, and 3. So I compiled my program and ran it from the...
Date: 10/06/2006
Properties coding expedition #3 - Printing a value
In parts one and two, I started writing a program to print out the properties on an item. But I...
Date: 10/05/2006
Properties coding expedition #2 - printing the IPropertyStore
Last time we saw how to bind to a shell item and get its property store. Today, we loop through the...
Date: 10/04/2006
Properties coding expedition #1 - Binding to an item
The goal of this first expedition is to print lists of properties from items. This will give insight...
Date: 10/03/2006
Coding to the Windows SDK
In the near future I'll be posting code examples that compile and run. In case you'd like to follow...
Date: 10/02/2006
How I Learned to Stop Worrying and Love the Vista
Today I'd like to share the fearful tale about a Vista upgrade gone horribly wrong and of my...
Date: 09/28/2006
PROPVARIANT Helpers #7 - Locale sensitivity and the helper APIs
As I went through the property helper posts, I kept using those dense word combinations "locale...
Date: 09/27/2006
Say Cheese!
I'm sorry I haven't posted recently. I've been busy with an apartment search, softball games, and...
Date: 09/27/2006
PROPVARIANT Helpers #6 - PropVariantCompare[Ex]
In general, PropVariantCompare performs a locale-sensitive comparison between two values and returns...
Date: 09/22/2006
PROPVARIANT Helpers #5 - PropVariantChangeType
PropVariantChangeType, aka Mr. Coercion, is the function responsible for all the coercion that goes...
Date: 09/21/2006
PROPVARIANT Helpers #4 - Vector Helpers
One of the more prominent properties is PKEY_Keywords, e.g. "Tags". This is a vector property, and...
Date: 09/20/2006
PROPVARIANT Helpers #3 - Simpler reading functions
You may have noticed that most of the PROPVARIANT helpers return an HRESULT. This makes them easy to...
Date: 09/19/2006
PROPVARIANT Helpers #2 - Reading single values
Reading a PROPVARIANT seems innocuous, but it suffers from many of the same dangers as does...
Date: 09/18/2006
PROPVARIANT helpers #1 - Initialization
PROPVARIANTs are easy to misuse. Because the data members are so cryptic, it is easy to get confused...
Date: 09/15/2006
PROPVARIANTs - Common mistakes
As I mentioned yesterday, PROPVARIANT's hold data that gets piped through the property system. Early...
Date: 09/14/2006
Introducing the PROPVARIANT
Values in the property system are stored in PROPVARIANT structures. Originally constructed for use...
Date: 09/13/2006
Canonical Property Names
Most of the property system uses PROPERTYKEYs to identify properties. But you can also identify a...
Date: 09/11/2006
The source of property types
I mentioned that one of the property system layers coerces values to be of the correct type. But how...
Date: 09/08/2006