Hello again folks - first, in hindsight, perhaps this post could have
been better placed (someplace other than the Interop group?) Having
said that, I am posting the observations that Microsoft Support made
regarding the above problem, so that if anyone else has this happen
they might find their answer here.
Seems the exception being thrown is very likely to be one of those
misleading errors - the issue is not with lack of storage, but rather
with the way Windows prohibits interaction with the Shell from Windows
Services. To do what I wished to do (using ShellWindows to enumerate
running browser instances, apparently the best bet is to create an
agent as a desktop app, hidden if desired, that creates an instance of
ShellWindows, does the desired work, and communicates with the service.
A little kludgy, but according to the "powers that be", the best one
can do. PS - the reason I'm not using a more "Windowsy" approach of
enumeration, such as looking for top-level windows and picking out the
ones that are of the class used by IE (which I'm sure WILL work in a
Service if one checks off the "Allow service to interact with desktop"
box in the service properties) is that I subsequently need to do stuff
that requires using the IWebBrowser2 interface.
Hope this helps someone; cheers!
SkylineBlvd