BroadcastSystemMessage()函数

函数功能:该函数发送消息给指定的接受者。接受者可以是一个应用程序、安装驱动器、网络驱动器、系统级设备驱动器或这些系统组件的组合。

参数:

dwFlags:选项标志。可取下列值的组合:

BSF_FLUSHDISK:接受者处理消息之后清洗磁盘。

BSF_FORCEIFHUNG:继续广播消息,即使超时周期结束或一个接受者已挂起。

BSF_IGNORECURRENTTASK:不发送消息给属于当前任务的窗口。这样,应用程序就不会接收自己的消息。

BSF_NOHANG:强制挂起的应用程序超时。如果一个接受者超时,不再继续广播消息。

BSF_NOTIMEOUTIFNOTHUNG:只要接受者没挂起,一直等待对消息的响应。不会出现超时。

BSF_POSTMESSAGE:寄送消息。不能和BSF_QUERY组合使用。

BSF_QUERY:每次发送消息给一个接受者,只有当前接受者返回TRUE后,才能发送给下一个接受者。

lpdwRecipients:指向变量的指针,该变量含有和接收消息接受者的信息。此变量可为下列值的组合:

BSM_ALLCOMPONENTS:广播到所有的系统组件。

BSM_ALLDESKTOPS:Windows NT下,广播到所有的桌面。要求SE_TCB_NAME特权。

BSM_APPLICATIONS:广播到应用程序。

BSM_INSTALLABLEDRIVERS:Windows 95下,广播到安装驱动器。

BSM_INTDRIVER:Windows 95下,广播到网络驱动器。

BSM_VXDS:Windows 95下,广播到所有系统级设备驱动器。

当函数返回时,此变量接受上述值的组合,以确定真正接受消息的接受者。如果此参数为NULL,则将消息广播到所有的组件。

uiMessage:系统消息标识符。

WParam:32位消息特定值。

IParam:32位消息特定值。

返回值:如果函数调用成功,返回值是正数。如果函数不能广播消息,返回值是C1。如果参数dwFlags为BSF_QUERY且至少一个接受者返回BROADCAST_QUERY_DENY给相应的消息,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。

备注:如果BSF_QUERY没指定,函数发送指定的消息给所有请求的接受者,并忽略这些接受者返回的值。

速查:Windows NT:4.0及以上版本:Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows NT环境下以Unicode和ANSI方式实现。