我正在寫一個鉤子DLL,它處理窗口繪製消息。
我發現Vista及以上版本,hook dll接收到一些未知的消息id,具體是0x90〜0x95。
我做了一些谷歌上搜索,發現了一個msdn link和this,它告訴我,他們是什麼樣的信息:哪裏可以找到窗口消息的定義WM_UAHDRAWMENUITEM(0x92)
#define WM_UAHDESTROYWINDOW 0x0090
#define WM_UAHDRAWMENU 0x0091
#define WM_UAHDRAWMENUITEM 0x0092
#define WM_UAHINITMENU 0x0093
#define WM_UAHMEASUREMENUITEM 0x0094
#define WM_UAHNCPAINTMENUPOPUP 0x0095
但我找不到任何頭文件中的宏定義WM_UAHDRAWMENUITEM
,編譯器抱怨「未定義符號」。我對「WM_UAHDRAWMENUITEM」進行了全局搜索,但什麼也沒找到。
目前我使用0x92來處理此消息。
我的問題是:如何用Windows定義的宏很好地替換硬編碼的0x92?
通常,如果您無法找到Windows消息的文檔,那麼它們是不適合外部使用的內部Windows消息。即。使用需要您自擔風險。 – user1793036