February 24th, 2010

We May See Murder Yet

We started working with property sets in compound document files long before the IPropertySetStorage interface was written by Microsoft. Before they'd come up with the "User-defined Property Set", for that matter. So when we needed to store a property set of our own information in the compound document, we picked a GUID and used the sample code that Microsoft had provided in order to boost our own property set into the file. And life was good.

A couple of years ago, I decided that it was high time to junk the old sample code and switch over to using the now well-defined and codified interface that Microsoft had written for property sets. I converted the property set code in our application, I converted the data read in under the old GUID that we'd grabbed so that we would in the future write it out using the defined GUID for the "User-defined Property Set", I read in old files, and they converted up just fine. And life was good.

One of our testers just tried out the app on Windows Vista. For reasons unknown to anyone, the IPropertySetStorage code that worked fine on Windows XP, that works just fine on Windows Server 2003 and 2008, fails on Vista, giving a 0x8007000d error return. That translates to "The data is invalid".

There's no documentation that suggests that Vista is doing something different in this area from all the other versions of Windows. After several hours of beating a dead Google horse, I finally found someone else who was having a different but similar problem with IPropertySetStorage and Vista.

I've now reinstated the old sample code to see if it will read our property set on Vista. If it does, then I can convert out of this mess successfully.

If it doesn't, I'm pretty much out of ideas.

And I'm really annoyed.

Update: And it works.

I'm still annoyed.

Heroes Season 4

Or Volume 5, if you prefer.

daisy_knotwise and I watched the last two episodes of Heroes last night. We'd intended to watch one, but decided that we didn't want to wait to see what happened and since everything was on the DVR, we had the option. :) (We got started watching this season late, because we were out of town for the premiere. samwinolj was good enough to record the two-hour episode for us, but it took a while to get the DVD from him, so Heroes languished until we did.)

I'll avoid spoilers. What I will say is this: if you'd given up on the show, this was the season that you've been waiting for. It was probably the strongest season/volume to date. The character work was strong, nothing happened that caused me to roll my eyes and go "Oh, God, what now?", and I actually wanted to tune in from week to week -- if at a somewhat late date.

I'm sure it will be out on DVD fairly soon. Rent it. Buy it. Watch it. If you ever liked the show, you'll like this.

I hope we get another season (despite the lousy ratings), because the show actually deserves one now.