I'm trying to build a module in which I would need to list actually recorded shows and then do an action on it. I looked a bit at TVToolbox but its solution (which isn't elegant BTW) only returns the actual recording location but what the user see in the "Recorded TV" app may be generated from multiple locations.
I found that I could look at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Media Center\Service\Recording\WatchedFolders which is a Multi_SZ value listing all folders but since this is a registry value, I think that it is a bit crappy and may break with any MC update.
So my question is: is there any documented managed or unmanaged method of retrieving this information? The only managed ways I found are in a private classes:
In fact, now that I think about it, what I think could be even better would be the possibility of adding a menu item in the "More info" menu of a video in "Recorded TV". Is this possible?
I was still looking at reflected stuff when I requested where the Recycler class got instanciated and the discovery was quite interesting! It is instanciated by [ehRecObj.dll] RecordingObjects.RecordingML which then store it in a public member: Recycler.
This member in fact doesn't directly expose the object but an interface called IRecycler which is located in [ehiProxy.dll]ehiProxy.IRecycler and this interface exposes the GetWatchedFolders method.
I haven't tried it yet but it is promising.
But still, my second question is still up and active so if anyone has an idea on how to connect in the Recorded TV more info menu, it would be appreciated.
I am pretty sure much of that code is deprecated in Windows 7 and we would be using Find and Organize. Unfortunately, in Vista, some of the experiences are based off media player but I believe Recorded TV wasn't.
For Windows 7, look at ehuihlp.dll, EhGetLocationsForLibrary. Guid for the recorded tv library is Guid(0x1a6fdba2, 0xf42d, 0x4358, 0xa7, 0x98, 0xb7, 0x4d, 0x74, 0x59, 0x26, 0xc5)