RegisterWindowMessage

RegisterWindowMessage是Windows作業系統提供的API函式,用於註冊系統範圍內唯一的視窗訊息標識符。該函式通過將特定字元串映射為唯一數值,確保不同進程間通過視窗訊息通信時避免標識衝突,主要套用於跨進程通信場景。

該函式接受字元串參數,返回0xC000至0xFFFF範圍內的訊息編號,失敗時返回零。其註冊的訊息在用戶會話結束前有效,且相同字元串在不同進程中會獲得相同標識值,適用於多套用協作處理同一訊息的需求。與WM_USER範圍的私有訊息不同,註冊的訊息具有全局唯一性,需配合SendMessage或PostMessage函式實現通信。

該函式最早出現於Windows 95和Windows NT作業系統,通過user32.dll動態程式庫提供調用接口。在後續Windows版本及.NET框架中,支持通過DllImport特性聲明函式原型,並適配Unicode與ANSI字元集。

基本介紹

  • 外文名:RegisterWindowMessage
  • 函式名:RegisterWindowMessage
  • 別名(alias):RegisterWindowMessageA
  • 庫名:user32
作業系統,內容說明,

作業系統

作業系統(os):win95 winnt

內容說明

UINT RegisterWindowMessage( lpString);
參數表(parameter):
lpString ------- String,(被註冊)訊息的名字
返回值(return):
Long,& C000 到 & FFFF之間的一個訊息編號。零意味著出錯(註冊訊息失敗)
說明(description):
獲取分配給一個字串標識符的訊息編號
聲明(declare):
Declare Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMessageA" (ByVal lpString As String) As Long
例程(example):
// RegisterWindowMessage用於進程之間的通訊
// 用戶必須通過調用RegisterWindowMessage 函式來註冊一個訊息句柄。
// 這樣就可以保證訊息號在整個系統中是唯一的,從而避免了不同的進程使用相同的訊息號,造成衝突
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern uint RegisterWindowMessage(string lpString);

相關詞條

熱門詞條

聯絡我們