WNDPROC 回呼函式 (winuser.h)
您在應用程式中定義的回呼函式,可處理傳送至視窗的訊息。 WNDPROC 類型會定義這個回呼函式的指標。 WndProc 名稱是您在應用程式中定義之函式名稱的佔位元。
語法
WNDPROC Wndproc;
LRESULT Wndproc(
HWND unnamedParam1,
UINT unnamedParam2,
WPARAM unnamedParam3,
LPARAM unnamedParam4
)
{...}
參數
unnamedParam1
類型: HWND
視窗的句柄。 此參數通常命名為 hWnd。
unnamedParam2
類型: UINT
訊息。 此參數通常命名為 uMsg。
如需系統提供的訊息清單,請參閱 系統定義的訊息。
unnamedParam3
類型: WPARAM
其他訊息資訊。 此參數通常名為 wParam。
wParam 參數的內容取決於 uMsg 參數的值。
unnamedParam4
類型: LPARAM
其他訊息資訊。 此參數通常名為 lParam。
lParam 參數的內容取決於 uMsg 參數的值。
傳回值
類型: LRESULT
傳回值是訊息處理的結果,取決於傳送的訊息。
備註
如果您的應用程式是在 32 位版本的 Windows 作業系統上執行,當可用時,回呼中的未攔截例外狀況將會傳遞至應用程式的較高層級例外狀況處理程式。 系統接著會呼叫未處理的例外狀況篩選條件,以在終止進程之前處理例外狀況。 如果已啟用 PCA,它會在您下次執行應用程式時提供修正問題。
不過,如果您的應用程式在 64 位版本的 Windows 作業系統或 WOW64 上執行,您應該注意 64 位操作系統會根據其 64 位處理器架構、例外狀況架構和呼叫慣例,以不同的方式處理未攔截的例外狀況。 下表摘要說明 64 位 Windows 作業系統或 WOW64 處理未攔截例外狀況的所有可能方式。
行為類型 | 系統如何處理未攔截到的例外狀況 |
---|---|
1 | 系統會隱藏任何未攔截的例外狀況。 |
2 | 系統會先終止程式,然後程式相容性小幫手 (PCA) 供應專案,以在下一次執行應用程式時加以修正。 您可以將相容性區段新增至 應用程式指令清單,以停用 PCA 風險降低功能。 |
3 | 系統會呼叫例外狀況篩選條件,但在離開回呼範圍時隱藏任何未攔截的例外狀況,而不叫用相關聯的處理程式。 |
下表顯示 Windows 操作系統和 WOW64 的 64 位版本如何處理未攔截的例外狀況。 請注意,行為類型 2 僅適用於 Windows 7 操作系統和更新版本的 64 位版本。
作業系統 | WOW64 | 64 位元 Windows |
---|---|---|
Windows XP | 3 | 1 |
Windows Server 2003 | 3 | 1 |
Windows Vista | 3 | 1 |
Windows Vista SP1 | 1 | 1 |
Windows 7 和更新版本 | 1 | 2 |
注意
在SP1 (32位、64位或W64) 的 Windows 7 上,系統會呼叫未處理的例外狀況篩選,以在終止進程之前處理例外狀況。 如果已啟用 PROGRAM Compatibility Assistant (PCA) ,它將會在您下次執行應用程式時提供修正問題。
如果您需要處理應用程式中的例外狀況,您可以使用結構化例外狀況處理來執行此動作。 如需如何使用結構化例外狀況處理的詳細資訊,請參閱 結構化例外狀況處理。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
標頭 | winuser.h (包含 windows.h) |