|
Prev: dvi dvi kabel hdmi kabel 20 meter 8800gts hdmi d hdmi kabel hdmi auf dvi d
Next: WTSGetActiveConsoleSessionId() on W2K
From: jsp_clarke on 17 Jul 2008 15:28 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 18 Jul 2008 01:59
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. |