inSendMessageEx 函式 (winuser.h)

判斷目前的視窗程式正在處理從同一個進程中的另一個執行緒 (傳送的訊息,還是處理不同的進程) 。

語法

DWORD InSendMessageEx(
  LPVOID lpReserved
);

參數

lpReserved

類型: LPVOID

保留;必須是 Null

傳回值

類型: DWORD

如果未傳送訊息,傳回值 會ISMEX_NOSEND (0x00000000) 。 否則,傳回值是下列一或多個值。

傳回碼/值 描述
ISMEX_CALLBACK
0x00000004
訊息是使用 SendMessageCallback 函式傳送。 傳送訊息的執行緒不會遭到封鎖。
ISMEX_NOTIFY
0x00000002
訊息是使用 SendNotifyMessage 函式傳送。 傳送訊息的執行緒不會遭到封鎖。
ISMEX_REPLIED
0x00000008
視窗程式已處理訊息。 已不再封鎖傳送訊息的執行緒。
ISMEX_SEND
0x00000001
訊息是使用 SendMessageSendMessageTimeout 函式傳送。 如果未設定 ISMEX_REPLIED ,則會封鎖傳送訊息的執行緒。

備註

若要判斷傳送者是否遭到封鎖,請使用下列測試:

fBlocked = ( InSendMessageEx(NULL) & (ISMEX_REPLIED|ISMEX_SEND) ) == ISMEX_SEND;

規格需求

   
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 winuser.h (包括 Windows.h)
程式庫 User32.lib
Dll User32.dll
API 集合 ext-ms-win-ntuser-message-l1-1-0 (在 Windows 8)

另請參閱

概念

訊息和訊息佇列

參考

SendMessage

SendMessageCallback

SendMessageTimeout

SendNotifyMessage