### 函数功能

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

### 函数原型

long BroadcastSystemMessage（DWORD dwFIags，LPDWORD IpdwRecipients,UINT UiMessage，WPARAMwParam,LPARAM IParam）；

### 参数

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方式实现。