扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
HRESULT ExecShellDocViewCommand(LPDISPATCH lpDocDisp, UINT nCmdID)
...{
HRESULT hr = S_FALSE;
IOleCommandTarget *pct;
if ( lpDocDisp && SUCCEEDED(lpDocDisp->QueryInterface(IID_IOleCommandTarget, (void **)&pct)))
...{
CComVariant vtIn;
vtIn.vt = VT_EMPTY;
CComVariant vtOut;
hr = pct->Exec(&CGID_ShellDocView, nCmdID, OLECMDEXECOPT_DONTPROMPTUSER, &vtIn, &vtOut);
pct->Release();
}
return hr;
}
#define SHDVID_SHOWMIMECSETMENU 1
#define SHDVID_SHOWFONTSIZEMENU 50
HRESULT ShowShellDocViewMenu(LPDISPATCH lpDocDisp, POINT pt, UINT nCmdID)
...{
HRESULT hr = S_FALSE;
IOleCommandTarget *pct;
if ( lpDocDisp && SUCCEEDED(lpDocDisp->QueryInterface(IID_IOleCommandTarget, (void **)&pct)))
...{
try
...{
CComVariant vtIn;
vtIn.vt = VT_I4;
vtIn.lVal = MAKELONG(pt.x, pt.y);
CComVariant vtOut;
hr = pct->Exec(&CGID_ShellDocView, nCmdID, OLECMDEXECOPT_DONTPROMPTUSER, &vtIn, &vtOut);
}
catch (...) ...{
}
pct->Release();
}
return hr;
}
HRESULT ShowMimeSetMenu(LPDISPATCH lpDocDisp, POINT pt)
...{
return ShowShellDocViewMenu(lpDocDisp, pt, SHDVID_SHOWMIMECSETMENU);
}
HRESULT ShowFontSizeMenu(LPDISPATCH lpDocDisp, POINT pt)
...{
return ShowShellDocViewMenu(lpDocDisp, pt, SHDVID_SHOWFONTSIZEMENU);
}
void CMainFrame::OnDropDown( NMHDR* pNotifyStruct, LRESULT* pResult )
...{
NMTOOLBAR* pNMToolBar = ( NMTOOLBAR* )pNotifyStruct;
CMenu menu;
CMenu* pPopup = 0;
CRect rc;
::SendMessage(pNMToolBar->hdr.hwndFrom, TB_GETRECT, pNMToolBar->iItem, (LPARAM)&rc);
rc.top = rc.bottom;
::ClientToScreen( pNMToolBar->hdr.hwndFrom, &rc.TopLeft() );
Cpoint pt(rc.left, rc.top);
LPDISPATCH lpDispatch = GetHtmlDocument();//获得文档指针
switch ( pNMToolBar->iItem )
...{
case ID_VIEW_ENCODE://“编码”按钮
ShowMimeSetMenu(lpDispatch, pt);
break;
case ID_VIEW_FONTSIZE://“文字大小”按钮
ShowFontSizeMenu(lpDispatch, pt);
break;
}
*pResult = TBDDRET_DEFAULT;
}
#define SHDVID_GETLOCATIONURL 20
#define SHDVID_GETCODEPAGE 23
Code Value(Codepage) Alphabet
=============================================================
DIN_66003 20106 IA5(German)
NS_4551-1 20108 IA5(Norwegian)
SEN_850200_B 20107 IA5(Swedish)
_autodetect 50932 Japanese(AutoSelect)
_autodetect_kr 50949 Korean(AutoSelect)
big5 950 ChineseTraditional(Big5)
csISO2022JP 50221 Japanese(JIS-Allow1byteKana)
euc-kr 51949 Korean(EUC)
gb2312 936 ChineseSimplified(GB2312)
hz-gb-2312 52936 ChineseSimplified(HZ)
ibm852 852 CentralEuropean(DOS)
ibm866 866 CyrillicAlphabet(DOS)
irv 20105 IA5(IRV)
iso-2022-jp 50220 Japanese(JIS)
iso-2022-jp 50222 Japanese(JIS-Allow1byteKana)
iso-2022-kr 50225 Korean(ISO)
iso-8859-1 1252 WesternAlphabet
iso-8859-1 28591 WesternAlphabet(ISO)
iso-8859-2 28592 CentralEuropeanAlphabet(ISO)
iso-8859-3 28593 Latin3Alphabet(ISO)
iso-8859-4 28594 BalticAlphabet(ISO)
iso-8859-5 28595 CyrillicAlphabet(ISO)
iso-8859-6 28596 ArabicAlphabet(ISO)
iso-8859-7 28597 GreekAlphabet(ISO)
iso-8859-8 28598 HebrewAlphabet(ISO)
koi8-r 20866 CyrillicAlphabet(KOI8-R)
ks_c_5601 949 Korean
shift-jis 932 Japanese(Shift-JIS)
unicode 1200 UniversalAlphabet
unicodeFEFF 1201 UniversalAlphabet(Big-Endian)
utf-7 65000 UniversalAlphabet(UTF-7)
utf-8 65001 UniversalAlphabet(UTF-8)
windows-1250 1250 CentralEuropeanAlphabet(Windows)
windows-1251 1251 CyrillicAlphabet(Windows)
windows-1252 1252 WesternAlphabet(Windows)
windows-1253 1253 GreekAlphabet(Windows)
windows-1254 1254 TurkishAlphabet
windows-1255 1255 HebrewAlphabet(Windows)
windows-1256 1256 ArabicAlphabet(Windows)
windows-1257 1257 BalticAlphabet(Windows)
windows-1258 1258 VietnameseAlphabet(Windows)
windows-874 874 Thai(Windows)
x-euc 51932 Japanese(EUC)
x-user-defined 50000 UserDefined
#define SHDVID_SSLSTATUS 33
#define SHDVID_ZONESTATUS 35
#define SHDVID_MANAGEADDONS 78
#define SHDVID_INFOBAND_DOWNLOADFILE 81
#define SHDVID_INFOBAND_PROTECTEDMODE 108
#define SHDVID_ZOOM 113如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。