From: jsp_clarke on
Does anyone know, is there a way to enumerate all the instances of a
particular COM class held in memory across all processes on a machine?

I know that if an object registers itself in the ROT you can get it
from there via the moniker.

But if it doesn't?

Specifically my issue here is a COM object that is created as a global
variable in an Excel vba application. I have no control over the Excel
app, can't ask the writers to add a macro to expose the object I'm
after. So I'm left with looking for some way to enumerate all
instances of that objects' class that are currently residing in memory
on the machine. Is that possible or am I tilting at windmills?
From: Tim Roberts on
jsp_clarke(a)hotmail.com wrote:
>
>Does anyone know, is there a way to enumerate all the instances of a
>particular COM class held in memory across all processes on a machine?
>
>I know that if an object registers itself in the ROT you can get it
>from there via the moniker.
>
>But if it doesn't?

No -- that should be obvious. Objects are just random chunks of memory.
There is no list. And you can't do ANYTHING inside another process.

>Specifically my issue here is a COM object that is created as a global
>variable in an Excel vba application. I have no control over the Excel
>app, can't ask the writers to add a macro to expose the object I'm
>after. So I'm left with looking for some way to enumerate all
>instances of that objects' class that are currently residing in memory
>on the machine. Is that possible or am I tilting at windmills?

Completely impossible. What were you hoping to do once you got there?
--
Tim Roberts, timr(a)probo.com
Providenza & Boekelheide, Inc.