The Great Flying Tortoise

A hard-boiled look at Win32 C++ programming and the property system

Blog - About

About The Great Flying Tortoise

Ben Karas has been a developer working at Microsoft since 2003.  He hopes to write useful tidbits concerning the property system, Win32 C++ programming, and living in the Seattle area. 

I'll keep the rules simple:
 1. Use good judgement.
 2. See rule #1

All postings are provided "AS IS" with no warranties and confer no rights. Opinions expressed are those of the respective authors. More legal stuff here.

  • The Great Flying Tortoise

    What does a property handler accomplish?

    • 8 Comments
    A property handler is the piece of code that enables you to see the properties about your files as in the picture below. Don't worry about the ambiguity in this sentence; I will be much more specific concerning what component does what in later posts...
  • The Great Flying Tortoise

    Understanding the Role of Property Handlers

    • 4 Comments
    Knowing what you are trying to accomplish is the first step to using the property system. Property handlers provide a specific set of services which support specific behaviors in the Windows shell. So let's delve into the role of a property handler and...
  • The Great Flying Tortoise

    Property System Layers and Extensibility Points

    • 4 Comments
    It's easy to get confused about what points of extensibility exist and what layer provide what services. This isn't helped by the fact that we've lumped a bunch of things into the property system, but I'll try to diagram this out here and in future posts...
  • The Great Flying Tortoise

    Coding to the Windows SDK

    • 3 Comments
    In the near future I'll be posting code examples that compile and run. In case you'd like to follow along, here's my personal setup. My code should compile on RC1 also, so go ahead and use RC1 if that's what you can get a hold of. Windows Vista...
  • The Great Flying Tortoise

    Properties coding expedition #1 - Binding to an item

    • 3 Comments
    The goal of this first expedition is to print lists of properties from items. This will give insight into the origins and capabilities of these different properties. Feel free to follow along and try out different things. There's a lot to explore. ...
  • The Great Flying Tortoise

    Writing properties #3 - Which properties are writable?

    • 3 Comments
    While we don't have a table of properties and filetypes that are writable, there is a programmatic method to determine if a given property can be written to a given property handler. Here's how it works: First, properties can be designated innate ...
  • The Great Flying Tortoise

    Property Handler Decisions and Preparation

    • 3 Comments
    Viewed as a data flow component , a property handler has a single file stream input and outputs a one or more properties. Unfortunately, writing one requires making many decisions before you even set eyes on the code. Let's look at a few of these preparations...
  • The Great Flying Tortoise

    Pandora and the Music Genome Project

    • 3 Comments
    A coworker recently turned me onto Pandora.com , a new music service backed by the Music Genome Project. The concept is to create a radio station tailored to your exact likes and dislikes. You tell it an artist you enjoy and it decodes what makes you...
  • The Great Flying Tortoise

    The split personality critic

    • 3 Comments
    The 5 star rating control is misused in most applications today. How can I say that? What's more natural than selecting 5 stars for a movie or song? Actually, the intuitive nature of the rating star control is the cause of this subtle usability issue...
  • The Great Flying Tortoise

    The fickle critic

    • 3 Comments
    Personally, I have trouble using the "I liked it" scale ala Netflix. A movie that garners 5 stars one week only finds 4 another week. In a way, this arises from ambiguity present even within the "I liked it" scale. Did I like it because I was in the mood...
  • The Great Flying Tortoise

    Computer Science Exams

    • 2 Comments
    Graduate level courses are surreal. Professors assign nearly impossible homework assignments and projects. The exams make you break out in sweat just thinking about them. At the same time, you are often able to just sketch out solutions since it is assumed...
  • The Great Flying Tortoise

    Writing properties #1 - Simple beginnings

    • 2 Comments
    I'm going to be talking about writable properties over the next few days. I know that some of you are itching to try this out yourselves, so here is an overly simplistic program that will write a single property to a file. I have omitted a lot of diagnostic...
  • The Great Flying Tortoise

    Save the World... of Warcraft

    • 2 Comments
    Yup, I'm one of "those" people. I play World of Warcraft to pass the time if I don't have anything else scheduled to do. It's the only game I play right now, so it weighed heavily in my decision to upgrade to Vista . At the time, I was very happy to find...
  • The Great Flying Tortoise

    Properties coding expedition #7 - The final output

    • 2 Comments
    This coding expedition has developed a tool that can dump out all the properties on a file. If you are curious about the property system, I highly recommend you build this tool and run it on various file types. Coding to the Windows SDK Part 1 ...
  • The Great Flying Tortoise

    PROPVARIANT helpers #1 - Initialization

    • 2 Comments
    PROPVARIANTs are easy to misuse . Because the data members are so cryptic, it is easy to get confused or to overlook errors. To help alleviate these and other problems (including readability), we provide a series of PROPVARIANT helpers for common uses...
  • The Great Flying Tortoise

    How I Learned to Stop Worrying and Love the Vista

    • 2 Comments
    Today I'd like to share the fearful tale about a Vista upgrade gone horribly wrong and of my fantastic recovery. Based on a true story... It is a still moonless night when I decide to take the plunge and upgrade my home machine to Windows Vista Ultimate...
  • The Great Flying Tortoise

    What is the Property System? - in normal language

    • 2 Comments
    In my first post , I described what the property system provides from an API perspective. But I used all these techno-wiggle-waggle-jibber-jabber that my friends couldn't follow. Ich. What feedback for a first post! So here it is minus the 133t-speak...
  • The Great Flying Tortoise

    Property consumerism

    • 2 Comments
    Reading properties is rather simple. First, bind to the item. SHCreateItemFromIDList and SHCreateItemFromParsingName are appropriate for this. Then read your properties. Be sure to clean up after yourself. IShellItem2 *psi; if (SUCCEEDED(SHCreateItemFromParsingName...
  • The Great Flying Tortoise

    PROPVARIANT Helpers #6 - PropVariantCompare[Ex]

    • 2 Comments
    In general, PropVariantCompare performs a locale-sensitive comparison between two values and returns <0, 0, or >0 as appropriate. PropVariantCompare always tries to convert the values to the type of the first value. Thus if code tries to compare...
  • The Great Flying Tortoise

    PROPVARIANT Helpers #5 - PropVariantChangeType

    • 2 Comments
    PropVariantChangeType, aka Mr. Coercion , is the function responsible for all the coercion that goes on in the property system. It takes a value and attempts to output the same value, but as a different type. Thus it will convert L"10" to the number 10...
  • The Great Flying Tortoise

    Say Cheese!

    • 1 Comments
    I'm sorry I haven't posted recently. I've been busy with an apartment search, softball games, and numerous other things that eat up the free time I need to write detailed posts about the property system. For filler, I suppose I'll have to talk about...
  • The Great Flying Tortoise

    PROPVARIANT Helpers #7 - Locale sensitivity and the helper APIs

    • 1 Comments
    As I went through the property helper posts, I kept using those dense word combinations " locale sensitive " and " locale insensitive ". Why? Because locale tells your computer whether to display a number as "5.3" or "5,3". Should "5,305" be a big...
  • The Great Flying Tortoise

    The source of property types

    • 1 Comments
    I mentioned that one of the property system layers coerces values to be of the correct type. But how does the system know the expected type? The property system maintains a data structure describing each property on the machine. Each property description...
  • The Great Flying Tortoise

    Trying out the property system

    • 1 Comments
    You can, of course, wait for Windows Vista to ship before checking out the property system. But if you are curious or bored, here are a few other things you might do: Download the Windows Vista Platform SDK: The most recent Platform SDK . The SDK...
  • The Great Flying Tortoise

    What is the property system?

    • 1 Comments
    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...
Page 1 of 3 (58 items) 123