Pregunta

Sé que esto puede ser una posibilidad remota así que perdónenme ya que no se sabe muy bien que mucho acerca de COM.

Básicamente lo que estoy tratando de hacer es obtener el puntero a la interfaz IUnknown para una aplicación en ejecución, el problema es la única cosa que sé acerca de la aplicación es el asa de la ventana principal.

¿Sería esto posible?

¿Fue útil?

Solución

La forma "estándar" de hacer esto es con el AccessibleObjectFromWindow Win32. Dicho esto, no hay muchas cosas que realmente apoyan esto, por lo que su experiencia puede variar. Más le PInvoke a AccessibleObjectFromWindow, pase el HWND, a continuación, utilizar Marshal.GetObjectForIUnknown en el IntPtr vuelvas.

Otros consejos

A veces sí, si la ventana está en su proceso (por lo demás un puntero en otro proceso no tiene sentido para usted) y escritor de la ventana le diga explícitamente que está esperando un mensaje y devolver una interfaz. En su mayoría no, la gente por lo general no escriben los cortes cuando no hay necesidad de enviar mensajes y desconocidos para el escritor tendría un comportamiento impredecible.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top