IActiveDesktop::SetWallpaperOptions(&WPO,0);
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:
PHP Code:
HRESULT hr;
IActiveDesktop *pActiveDesktop;
//Create an instance of the Active Desktop
hr = CoCreateInstance(CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER,
IID_IActiveDesktop, (void**)&pActiveDesktop);
Now you can use the methods of IActiveDesktop:
PHP Code:
pActiveDesktop->SetWallpaperOptions(&WPO,0);
Be sure to release the object when you're done with it:
PHP Code:
pActiveDesktop->Release();
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...