通过查阅win2k source code, 得知所有ie全局变量全部保存在CShellBrowser2类里面,而且可以通过GetWindowLongPrt(hFrameWnd, 0) 得到,然后通过对该指针添加偏移量,得到hMenuCur值和IMenuBand*接口指针,之后调用如下:
IMenuBand * band;
HEMNU hMenuCur;
hTmp = LoadMenu(...);
AppendMenu(hMenuCur, hTmp, ...);
FreeMenu(hTmp);
IShellMenu * menuItf;
band->QueryInterface(IShellMenu, &menuItf);
menuItf->SetMenu(hMenuCur);
事件处理,对shell object window子类化,在里面处理WM_COMMAND就OK了.
IMenuBand * band;
HEMNU hMenuCur;
hTmp = LoadMenu(...);
AppendMenu(hMenuCur, hTmp, ...);
FreeMenu(hTmp);
IShellMenu * menuItf;
band->QueryInterface(IShellMenu, &menuItf);
menuItf->SetMenu(hMenuCur);
事件处理,对shell object window子类化,在里面处理WM_COMMAND就OK了.