12#ifndef __SMENUWNDHOOK__H__
13#define __SMENUWNDHOOK__H__
22class SOUI_EXP SMenuWndHook {
25 SMenuWndHook(HWND hWnd);
27 static void InstallHook(HINSTANCE hInst, LPCWSTR pszSkinName = NULL);
28 static void UnInstallHook();
32 static LRESULT CALLBACK CoolMenuProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
33 static LRESULT CALLBACK WindowHook(
int code, WPARAM wParam, LPARAM lParam);
35 int OnCreate(LPCREATESTRUCT lpCreateStruct);
36 void OnNcCalcsize(BOOL bValidCalc, NCCALCSIZE_PARAMS *lpncsp);
40 void OnWindowPosChanging(WINDOWPOS *pWindowPos);
41 void OnWindowPosChanged();
45 static SMenuWndHook *AddWndHook(HWND hwnd);
46 static SMenuWndHook *GetWndHook(HWND hwnd);
52 static SMap<HWND, SMenuWndHook *> m_WndMenuMap;
53 static HHOOK m_hMenuHook;
54 static SStringW m_strSkinName;