BroadcastSystemMessageExA 函式 (winuser.h)
傳送訊息給指定的收件者。 收件者可以是應用程式、可安裝驅動程式、網路驅動程式、系統層級設備驅動器,或這些系統元件的任何組合。
此函式類似於 BroadcastSystemMessage ,不同之處在於此函式可以從收件者傳回更多資訊。
語法
long BroadcastSystemMessageExA(
[in] DWORD flags,
[in, out, optional] LPDWORD lpInfo,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam,
[out, optional] PBSMINFO pbsmInfo
);
參數
[in] flags
類型: DWORD
廣播選項。 此參數可以是下列一或多個值。
值 | 意義 |
---|---|
|
可讓收件者在處理郵件時設定前景視窗。 |
|
在每個收件者處理郵件之後排清磁碟。 |
|
即使逾時期間過了或其中一位收件者未回應,仍會繼續廣播訊息。 |
|
不會將訊息傳送至屬於目前工作的視窗。 這可防止應用程式接收自己的訊息。 |
|
如果已設定BSF_LUID,訊息就會傳送至與 BSMINFO 結構的 luid 成員中所指定的 LUID 相同的視窗。
Windows 2000: 不支援此旗標。 |
|
強制非回應應用程式逾時。如果其中一個收件者逾時,請勿繼續廣播郵件。 |
|
只要收件者沒有回應,就會等候訊息的回應。 不會逾時。 |
|
張貼訊息。 請勿與 BSF_QUERY搭配使用。 |
|
如果拒絕存取,且已設定此和BSF_QUERY,BSMINFO 會同時傳回桌面句柄和視窗句柄。 如果存取遭到拒絕,而且只會設定 BSF_QUERY , 則 BSMINFO 只會傳回視窗句柄。
Windows 2000: 不支援此旗標。 |
|
一次將郵件傳送給一位收件者,只有在目前的收件者傳回 TRUE 時,才會傳送給後續收件者。 |
|
使用 SendNotifyMessage 函式傳送訊息。 請勿與 BSF_QUERY搭配使用。 |
[in, out, optional] lpInfo
類型: LPDWORD
包含和接收郵件收件者相關信息之變數的指標。
當函式傳回時,此變數會收到這些值的組合,識別哪些收件者實際收到郵件。
如果此參數為 NULL,函式會廣播至所有元件。
此參數可以是下列一或多個值。
值 | 意義 |
---|---|
|
廣播至所有系統元件。 |
|
廣播至所有桌面。 需要 SE_TCB_NAME 許可權。 |
|
廣播至應用程式。 |
[in] Msg
類型: UINT
要傳送的訊息。
如需系統提供的訊息清單,請參閱 系統定義的訊息。
[in] wParam
類型: WPARAM
其他特定訊息資訊。
[in] lParam
類型: LPARAM
其他特定訊息資訊。
[out, optional] pbsmInfo
類型: PBSMINFO
如果拒絕要求且 dwFlags 設定為 BSF_QUERY,則為 BSMINFO 結構的指標,其中包含其他資訊。
傳回值
類型: long
如果函式成功,傳回值為正值。
如果函式無法廣播訊息,則傳回值為 –1。
如果 dwFlags 參數 BSF_QUERY ,而且至少有一個收件者 傳回BROADCAST_QUERY_DENY 對應郵件,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
如果未指定 BSF_QUERY ,函式會將指定的訊息傳送給所有要求的收件者,忽略這些收件者傳回的值。
如果呼叫端的線程位於拒絕要求的視窗以外的桌面上,則呼叫端必須呼叫 SetThreadDesktop (hdesk) 來查詢該視窗上的任何專案。 此外,呼叫端必須在傳回的 hdesk 句柄上呼叫 CloseDesktop。
系統只會針對範圍 0 中的系統訊息 (封送處理,以 (WM_USER-1) ) 。 若要傳送其他訊息 (這些 >= WM_USER) 至另一個進程,您必須執行自定義封送處理。
注意
winuser.h 標頭會將 BroadcastSystemMessageEx 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包含 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
另請參閱
概念
參考