Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-09-2008
Fistandantilus Fistandantilus is offline
Miembro
 
Registrado: ago 2008
Posts: 10
Poder: 0
Fistandantilus Va por buen camino
Como obtener multiples instancias de un objeto Ole

Wenas a todos.
Desde hace ya unos dias q me estoy rompiendo la cabeza con este tema y no encuentro nada...

Lo que nesecito es obtener un listado de todas instancias iniciadas de un objeto Ole. Yo por el momento para adjuntarme a una instacia uso CoCreateInstance, pero esta funcion solo sirve para la 1er instacia iniciada, pero kiero adjuntarme a todas!

Por ejemplo si uno kiere adjuntarse al IE uno posee el objeto TShellWindows por el cual uno puede objeter la cantidad de instancias y obtener cada una de ellas para hacer un "Invoke" y poder usarlas a todas(en caso de q sea necesario). Pero las Funciones TShellWindows.Count y TShellWindows.Item() son funciones propias de la interfase "IShellWindows" y hay interfaces que no proveen esas 2 funciones o no tienen verdadera funcionalidad( sino todo seria mas facil ).

Desde ya muchas gracias
Responder Con Cita
  #2  
Antiguo 01-10-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Estoy un poco confundido; CoCreateInstance sirve para crear una nueva instancia de una clase asociada a su CLSID, y no como tu dices “adjuntarte” a una instancia, por ello mi comentario pues en realidad me pierdo en los conceptos y por ende en lo que quieres hacer.

Ahora es bien sabido que la interfaz base de cualquier OLE-COM es IUnknown, talvez por el lado de la interfaz IEnumUnknown.

Talvez si nos cuentas a mayor detalle el escenario y el motivo y clase que quieres “enumerar”

Saludos
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #3  
Antiguo 02-10-2008
Fistandantilus Fistandantilus is offline
Miembro
 
Registrado: ago 2008
Posts: 10
Poder: 0
Fistandantilus Va por buen camino
Yo me refiero en adjuntarme a una instancia ya que los datos que puedo accerder por medio de la interface devuelta por CoCreateInstance son enrealidad de otra instancia y no de la mia.
mmm como explicarme de otra manera... lo que nesecito es algo lo mas generico posible en que dada una interfase determinada uno pueda obtener todas las instancias creada de esa interface.
Por ej: Tengo 3 IE abiertos y 1 ventana explorando alguna carpeta.
entonces por medio del CLSID/GUID(no se la dif) del IE ( creo q es {EAB22AC1-30C1-11CF-A7EB-0000C05BAE0B} IWebBrowser ) me retorne el accesso a las 4 instancias creadas del IE. O asi como le doy el CLSID/GUID del IE le pueda dar de cualquier otra interface.
Responder Con Cita
  #4  
Antiguo 03-10-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
No quiero alarmarte pero no entiendo

A ver... tomemos algun otro ejemplo; digamos que tenemos 3 instancias de un MSXML.DOMDocument que contienen las contraseñas de usuario de unas cuentas de usuario manejadas por un Servicio X... lo que tu quisieras (para dar un ejemplo vago), es poder obtener dichas instancias y (por ejemplo) leer las contraseñas de dichas cuentas..... esta bien mi ejemplo?

Saludos
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #5  
Antiguo 10-10-2008
Fistandantilus Fistandantilus is offline
Miembro
 
Registrado: ago 2008
Posts: 10
Poder: 0
Fistandantilus Va por buen camino
Disculpa de ante mano la tardanza de la respuesta, estaba con mucho laburo.
Depende... Depende de la interface. Hay interfaces por cuales se puede sacar información de la interface ya instanciada y otras q no...
Yo di el ejemplo del IE ya que con esta si se puede, por ende con el objeto TShellWindows uno tiene accesso a todas las instancias del IE y tambien a toda información que provee la interface IWebbrowser2( el cual se puede usar para obtener los eventos ). TShellWIndows es un objeto creado en base de la interface IShellWindows( no heredada de esta ), esta interface ya provee 2 funciones interesantes Get_Count( devuelve la cantidad de IE abiertos ) e Item(OleVariant):IDispatch( q se usa para obtener una instancia de la interface IWebbrowser2 dada). Para mas info http://delphi.about.com/od/interneti...rowserenum.htm, TShellWindows esta en el archivo "SHDocVw.pas" en "\Source\Internet" por si alguien le kiere pegar una ojeada.
El tema es como hacer lo mismo pero sin tener una interface que te provea de todas instancias ya creadas.
La posta es q estube mirando un par de paginas q dan ejemplos de como crear un Add-on para el MSN, para el cual se usa la interface IMessenger( y muchas otras mas q provee Microsoft). Hasta este punto todo bien ya que enrealidad el MSN tiene un mutex para evitar las multiples instancias, pero son bien conocidos los metodos para evitar el mutex(ademas del Msn Plus!). Entonces en el caso de tener multiples instancias del msn la funcion CoCreateInstance no me sirve ya solo me devuelve la interface del 1er msn iniciado y no del resto, pero kiero tener accesso a todas las instancias del IMessenger creadas, pero no se como hacerlo. Poder se puede, ya q Msn Plus! lo hace... como no se
Info sobre Add-on para el msn http://forum.mess.be/index.php?showt...CreateInstance

No se si pude explicar correctamente mi situación... espero q si

Puede q tenga varios errores con respecto al tema interfaces ya q es un tema muy nuevo para mi y recien estoy empezando a aprender sobre todo esto, en tal caso disculpa mi ignorancia

Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
multiples instancias de aplicación nfrfabian Varios 3 09-12-2006 14:55:17
Problema con RaveReports (multiples instancias) az_jazo Varios 2 24-05-2006 17:55:03
multiples instancias de un Form dark_c OOP 3 31-01-2006 09:42:14
Evitar Instancias Multiples De Mi Aplicacion edgusano .NET 8 28-04-2005 19:21:02
Multiples instancias Phacko Varios 1 07-09-2004 15:40:25


La franja horaria es GMT +2. Ahora son las 17:34:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi