What is the property system?

The property system is a new set of APIs for Microsoft Windows Vista that provides a general way to access metadata about files and items accessible through the shell namespace. This means you can ask for the dimensions of an image, or the size of a file, without worrying about how that data is retrieved. You can see how this is useful for folder browsers that need exactly this type of functionality.

In future posts, I'll expand on the details of the property system APIs and how they can be used. For now, here's an overview:

  1. The property system operates over shell items.
    This means any shell namespace item, not just files, are able to participate in the property system.
  2. The property system uses key-value pairs.
    The keys stored as PROPERTYKEYs, and the values are PROPVARIANTs.
  3. Applications can register property handlers to provide support for specific filetypes.
    Alone, the property system is not very powerful. But when you plug in an image handler, a video handler, an mp3 handler, etc, it can handle lots more data.
  4. The property system does not replace codecs.
    Any app that wants to read or write specific file types is still better off using the appropriate codec. The property system is designed for general purpose use.