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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras Date: 01/30/2007

Understanding the Role of Property Handlers

Knowing what you are trying to accomplish is the first step to using the property system. Property...

Author: benkaras Date: 01/28/2007

Property Handler Terminology

In this series, I will be presenting Windows Vista functionality with a focus on the the file system...

Author: benkaras 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...

Author: benkaras Date: 01/21/2007

Computer Science Exams

Graduate level courses are surreal. Professors assign nearly impossible homework assignments and...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras Date: 01/05/2007

The fickle critic

Personally, I have trouble using the "I liked it" scale ala Netflix. A movie that garners 5 stars...

Author: benkaras Date: 01/03/2007

The split personality critic

The 5 star rating control is misused in most applications today. How can I say that? What's more...

Author: benkaras 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...

Author: benkaras Date: 11/21/2006

Writing properties #9 - Summary

Coding to the Windows SDK Reading properties #7 - Summary Writing properties #1 - Simple beginnings...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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?"....

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras Date: 10/11/2006

Properties coding expedition #5 - Stripping characters

In Part 4, I discovered that WideCharToMultiByte converts certain invisible non-spacing Unicode...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras Date: 09/27/2006

PROPVARIANT Helpers #6 - PropVariantCompare[Ex]

In general, PropVariantCompare performs a locale-sensitive comparison between two values and returns...

Author: benkaras Date: 09/22/2006

PROPVARIANT Helpers #5 - PropVariantChangeType

PropVariantChangeType, aka Mr. Coercion, is the function responsible for all the coercion that goes...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras 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...

Author: benkaras Date: 09/15/2006

PROPVARIANTs - Common mistakes

As I mentioned yesterday, PROPVARIANT's hold data that gets piped through the property system. Early...

Author: benkaras Date: 09/14/2006

Introducing the PROPVARIANT

Values in the property system are stored in PROPVARIANT structures. Originally constructed for use...

Author: benkaras Date: 09/13/2006

Canonical Property Names

Most of the property system uses PROPERTYKEYs to identify properties. But you can also identify a...

Author: benkaras 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...

Author: benkaras Date: 09/08/2006

Next>