2014-05-20 4 views
2

윈도우 드로잉 메시지를 처리하는 후크 dll을 작성하고 있습니다.
Vista 이상에서 발견 된 일부 알 수없는 메시지 ID는 0x90 ~ 0x95의 후크 dll에서 수신됩니다.
내가 어떤 인터넷 검색을했고, 그들이있어 어떤 메시지 나에게 말했다 msdn linkthis을 발견윈도우 메시지의 정의를 찾을 수있는 곳 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를 사용하고 있습니다.
제 질문은 : 하드 코딩 된 0x92를 Windows 정의 매크로로 잘 대체하는 방법은 무엇입니까?

+2

일반적으로 Windows 메시지에 대한 설명서를 찾을 수없는 경우 외부 용으로 의도되지 않은 내부 Windows 메시지입니다. 즉. 자신의 책임하에 사용하십시오. – user1793036

답변

1

하드 코딩 된 0x92를 Windows 정의 매크로로 대체하는 방법은 무엇입니까?

분명히 설치된 Win32 SDK 버전에는 매크로가 없으므로 사용할 수 없습니다. 하지만 #define 값이 있으므로 코드를 직접 복사하여 자신의 코드에 붙여 넣으십시오. 원한다면 #ifdef으로 래핑 할 수 있습니다. 따라서 기본적으로 기본 SDK 버전으로 업그레이드하면 기본 매크로가 사용됩니다. 그렇지 않으면 컴파일러가 수동으로 매크로를 계속 사용합니다.

#ifndef WM_UAHDRAWMENUITEM 
#define WM_UAHDRAWMENUITEM 0x0092 
#endif 
+0

정수 0x92를 사용하고 주석을 남겨 두겠습니다. – imafish