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 5pm today, so I went back and collected the code into 3 projects: propreader.exe <file> – Prints a list of all properties we know about the file propwriter.exe <file> <property> <value> – Writes a single…

0

Writing properties #9 - Summary

Coding to the Windows SDK Reading properties #7 – Summary Writing properties #1 – Simple beginnings Writing properties #2 – Filetype support? Writing properties #3 – Which properties are writable? Writing properties #4 – Which properties are writable? Writing properties #5 – Property lists Writing properties #6 – GPS_READWRITE omits read-only data sources The deal with IPropertyStoreCapabilities Writing…

0

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 talked about how to determine when the property itself is writable.  But once you decide to write a property, how do you figure out what type the value should be?  What if you get it wrong?…

0

The deal with IPropertyStoreCapabilities

Have you ever felt this before?  It’s the day after you send your product to manufacturing.  You step back, look at the big picture, and start to see minor flaws.  A dread sinks in when you realize you just blogged about it too!  That was Monday morning.  🙂  The good news is that our analysis…

0

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 property system stack for files in the filesystem namespace looks like this: [ Application using GPS_DEFAULT ][ Coercion Layer ][ Shell Item Layer ]*[ File System Namespace ]*[ Property Handler ]* I’ve starred the layers that provide properties.  The thing…

1

Writing properties #5 - Property lists

So if a property handler doesn’t enumerate which properties it supports writing, then how does the explorer pick which properties to show?  Well, the shell namespace extension containing the item specifies the list of properties it wants to show in a particular piece of UI.  To query this property list, call IPropertyStore::GetValue(PKEY_PropList_XXX) on the read-only…

1

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 file.  I’ll spoil the fun and let you know that my attempt today will not fully succeed.  I’ll explain later.  For now, let’s see some code! You’ll recall I wrote a program to loop through…

0

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 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 code, so this will not work…

2