Debido a los requisitos de seguridad mejorados, para usar el mensaje WM_COPYDATA en las versiones modernas de Windows, primero debe llamar a la función ChangeWindowMessageFilter () para MSGFLT_ADD a la asignación de filtro.

Consulte MSDN ChangeWindowMessageFilter ()

¿Hay alguna forma de consultar si ya está permitido (sin usar SendMessage () o PostMessage () para esperar y ver si llega)?

1
Rick C. Hodgin 11 oct. 2019 a las 20:08

1 respuesta

La mejor respuesta

La respuesta es sí. Lo investigué en MSDN.

Utilice ChangeWindowMessageFilterEx en lugar de ChangeWindowMessageFilter, que de todos modos quedará obsoleto. Pase pChangeFilterStruct para contener el resultado extendido. Consulte https://docs.microsoft.com / es-es / windows / win32 / api / winuser / ns-winuser-changefilterstruct

Vea si ExtStatus contiene el valor MSGFLTINFO_ALREADYALLOWED_FORWND

3
WilliamClements 11 oct. 2019 a las 17:38