Code: Select all
If OSVersion() > #PB_OS_Windows_Vista
ChangeWindowMessageFilter_(#WM_DROPFILES, #MSGFLT_ADD)
ChangeWindowMessageFilter_(#WM_COPYDATA, #MSGFLT_ADD)
ChangeWindowMessageFilter_(73, #MSGFLT_ADD)
EndIf
Code: Select all
If OSVersion() > #PB_OS_Windows_Vista
ChangeWindowMessageFilter_(#WM_DROPFILES, #MSGFLT_ADD)
ChangeWindowMessageFilter_(#WM_COPYDATA, #MSGFLT_ADD)
ChangeWindowMessageFilter_(73, #MSGFLT_ADD)
EndIf
Code: Select all
Procedure ChangeWindowMessageFilter(param1,param2)
lib=OpenLibrary(#PB_Any,"user32.dll")
If lib
CallFunction(lib,"ChangeWindowMessageFilter",param1,param2)
CloseLibrary(lib)
EndIf
EndProcedure
ChangeWindowMessageFilter(#WM_DROPFILES,#MSGFLT_ADD)
Thanks It works
This information is known to me.
[Using the ChangeWindowMessageFilter function is not recommended, as it has process-wide scope. Instead, use the ChangeWindowMessageFilterEx function to control access to specific windows as needed. ChangeWindowMessageFilter may not be supported in future versions of Windows.]
I think the better way is to use prototypes:BarryG wrote: Fri Jun 30, 2023 4:40 amCode: Select all
Procedure ChangeWindowMessageFilter(param1,param2) lib=OpenLibrary(#PB_Any,"user32.dll") If lib CallFunction(lib,"ChangeWindowMessageFilter",param1,param2) CloseLibrary(lib) EndIf EndProcedure ChangeWindowMessageFilter(#WM_DROPFILES,#MSGFLT_ADD)
Code: Select all
Prototype ChangeWindowMessageFilter.i(message.i, dwFlag.i)
Global ChangeWindowMessageFilter.ChangeWindowMessageFilter = 0
Define lib_user32.i = OpenLibrary(#PB_Any, "user32.dll")
If lib_user32
ChangeWindowMessageFilter = GetFunction(lib_user32, "ChangeWindowMessageFilter")
EndIf