Pregunta

en DISPID_DOCUMENTCOMPLETE si os adjunto un controlador onclick de un elemento particular en el DOM de un subproceso de trabajo, entonces el evento no es ser despedido mientras hace clic en él, lo que podría ser la razón? esto está funcionando bien si os adjunto controlador de eventos desde el hilo principal, pero quiero hacer las cosas de forma asíncrona.

Estoy utilizando CoMarshalInterThreadInterfaceInStream y CoGetInterfaceAndReleaseStream pasar IID_IWebBrowser2 puntero entre las roscas.

¿Fue útil?

Solución

¿Cuál es su subproceso de trabajo haciendo, y lo que es el modelo de subprocesos del controlador de eventos? Si el modelo de subprocesos es STA, a continuación, el subproceso de trabajo tiene que bombear ya sea periódicamente mensajes, o si se está a la espera para la sincronización, entonces debe utilizar las funciones CoWaitFor..., para asegurarse de que se procesan los mensajes COM. O bien, puede agregar los contador de referencias de subprocesamiento libre, pero asegúrese de que su objeto es hilo de seguridad, y no llama a cabo cualesquiera otras interfaces COM que podrían dar un error de modelo de subprocesos si usted hace esto.

Probablemente, el control de explorador web no es compatible con el MTA, por lo que no será capaz de colocarlo en eso. En cualquier caso, el MTA no es compatible con un hilo de interfaz de usuario de modo que las reglas que fuera.

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