
WMC stores the resume location within a "Bookmark" object, directly linked to the "Recording" object (within mcepg.dll). There are two methods exposed to the user, those being GetBookmark and SetBookmark. The bookmark methods only require a name string to retrieve the bookmart, with the exception of SetBookmark which requires a TimeSpan object representing the point-in-time to resume.
My struggle was trying to figure out the 'name' of the resume bookmark. I tried heaps of variations, from 'resume' to 'lastplayed' and nothing worked. Eventually with the discovery of .Net Reflector I was able to use the debug tool and discover the proper name! While it seems that there is a 'RESUME' bookmark name, it's not populated and gives back an empty time. The correct name is actually "MCE_shell", and when the GetBookmark method is provided with this name it returns the actual resume time.
Just throwing this on here for anyone else who may in the future need a nudge in the right direction
