SendMessageTimeout

函式功能:該函式將指定的訊息傳送到一個或多個視窗。此函式為指定的視窗調用視窗程式,並且,如果指定的視窗屬於不同的執行緒,直到視窗程式處理完訊息或指定的逾時周期結束函式才返回。如果接收訊息的視窗和當前執行緒屬於同一個佇列,視窗程式立即調用,逾時值無用。

定義

函式功能:該函式將指定的訊息傳送到一個或多個視窗。此函式為指定的視窗調用視窗程式,並且,如果指定的視窗屬於不同的執行緒,直到視窗程式處理完訊息或指定的逾時周期結束函式才返回。如果接收訊息的視窗和當前執行緒屬於同一個佇列,視窗程式立即調用,逾時值無用。

函式原型:LRESULT SendMessageTimeout(HWND hwnd,UINT Msg,WPARAM wParam,LPARAM IParam,UINT fuFlags,UINT uTimeout,LPDWORD lpdwResultult);

參數說明

hWnd:其視窗程式將接收訊息的視窗的句柄。如果此參數為HWND_BROADCAST,則訊息將被傳送到系統中所有頂層視窗,包括無效或不可見的非自身擁有的視窗。

Msg:指定被傳送的訊息。

wParam:指定附加的訊息指定信息。

IParam:指定附加的訊息指定信息。

fuFlags;指定如何傳送訊息。此參數可為下列值的組合:

SMTO_ABORTIFHUNG:如果接收進程處於“hung”狀態,不等待逾時周期結束就返回。

SMTO_BLOCK:阻止調用執行緒處理其他任何請求,直到函式返回。

SMTO_NORMAL:調用執行緒等待函式返回時,不被阻止處理其他請求。

SMTO_NOTIMEOUTIFNOTHUNG:Windows 95及更高版本:如果接收執行緒沒被掛起,當逾時周期結束時不返回。

uTimeout:為逾時周期指定以毫秒為單位的持續時間。如果該訊息是一個廣播訊息,每個視窗可使用全逾時周期。例如,如果指定5秒的逾時周期,有3個頂層窗回未能處理訊息,可以有最多15秒的延遲。

IpdwResult:指定訊息處理的結果,依賴於所傳送的訊息。

返回值:如果函式調用成功,返回非零值。如果函式調用失敗,或逾時,返回值是零。若想獲得更多的錯誤信息,請調用GetLastError函式。如果GetLastError返回零,表明函式逾時。如果使用HWND_BROADCAST,SenddMessaggTimeout不提供單個視窗逾時信息。

速查: Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;頭檔案:winuser.h;輸入庫:user32.lib;Unicode:在Windows NT環境下以Unicode和ANSI方式實現。

相關詞條

相關搜尋

熱門詞條

聯絡我們