IActiveDesktop is not a namespace, it's an interface name. Try searching MSDN for 'IActiveDesktop'.
If you want to use this, you need to get a pointer to the shell's IActiveDesktop:
Now you can use the methods of IActiveDesktop:
//Create an instance of the Active Desktop
hr = CoCreateInstance(CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER,
Be sure to release the object when you're done with it:
You may need a later version of the Platform SDK to do this.
I confess I would still used the registry option, particularly since the shell functions make this so easy...