📄 csdn技术中心 浏览器集成教学 自定义浏览器(updated for windows xp sp2).mht
字号:
>=A3=A9=A1=A3</SPAN></P>
<P>=C0=FD=D7=D3</P>
<P>HRESULT GetHostInfo( <FONT =
color=3D#0000ff>DOCHOSTUIINFO</FONT>*=20
pInfo)</P>
<P>{</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>WCHAR</FONT>* szCSS =3D L"BODY =
{background-color:#ffcccc}";</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>WCHAR</FONT>* szNS =3D=20
L"IE;MyTags;MyTags2=3D'www.microsoft.com'";</P>
<P><SPAN lang=3Dzh-cn> </SPAN>#define =
CCHMAX 256</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>size_t</FONT> cchLengthCSS,cchLengthszNS;</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>HRESULT</FONT> hr=3D<FONT=20
color=3D#0000ff>StringCchLengthW</FONT>(szCSS,=20
CCHMAX,&cchLengthCSS)</P>
<P><FONT color=3D#008000><SPAN =
lang=3Dzh-cn> =20
</SPAN>//TODO: =
=D4=DA=D5=E2=C0=EF=B4=A6=C0=ED=B4=ED=CE=F3=A1=A3</FONT></P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>OLECHAR</FONT>* pCSSBuffer=3D(<FONT=20
color=3D#0000ff>OLECHAR</FONT>*) <FONT=20
color=3D#0000ff>CoTaskMemAlloc</FONT>((cchLengthCSS+1)*<FONT =
color=3D#0000ff>sizeof</FONT>(<FONT=20
color=3D#0000ff>OLECHAR</FONT>));</P>
<P><FONT color=3D#008000><SPAN =
lang=3Dzh-cn> =20
</SPAN>//TODO: =
=D4=DA=D5=E2=C0=EF=B4=A6=C0=ED=B4=ED=CE=F3<SPAN =
lang=3Dzh-cn>=A3=AC</SPAN>=C8=B7=B6=A8<SPAN=20
=
lang=3Dzh-cn>=C4=DA=B4=E6</SPAN>=B3=C9=B9=A6=B5=D8=B1=BB<SPAN =
lang=3Dzh-cn>=B7=D6=C5=E4</SPAN>=A1=A3</FONT></P>
<P><SPAN lang=3Dzh-cn> </SPAN>hr=3D<FONT=20
color=3D#0000ff>StringCchLengthW</FONT>(szNS,=20
CCHMAX,&cchLengthszNS)</P>
<P><FONT color=3D#008000><SPAN =
lang=3Dzh-cn> =20
</SPAN>//TODO: =
=D4=DA=D5=E2=C0=EF=B4=A6=C0=ED=B4=ED=CE=F3=A1=A3</FONT></P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>OLECHAR</FONT>* pNSBuffer=3D(<FONT=20
color=3D#0000ff>OLECHAR</FONT>*) <FONT=20
=
color=3D#0000ff>CoTaskMemAlloc</FONT>((cchLengthszNS+1)*<FONT=20
color=3D#0000ff>sizeof</FONT>(<FONT=20
color=3D#0000ff>OLECHAR</FONT>));</P>
<P><FONT color=3D#008000><SPAN =
lang=3Dzh-cn> =20
</SPAN>//TODO: =
=D4=DA=D5=E2=C0=EF=B4=A6=C0=ED=B4=ED=CE=F3<SPAN =
lang=3Dzh-cn>=A3=AC</SPAN>=C8=B7=B6=A8<SPAN=20
=
lang=3Dzh-cn>=C4=DA=B4=E6</SPAN>=B3=C9=B9=A6=B5=D8=B1=BB<SPAN =
lang=3Dzh-cn>=B7=D6=C5=E4</SPAN>=A1=A3</FONT></P>
<P><SPAN lang=3Dzh-cn> </SPAN>hr=3D<FONT=20
color=3D#0000ff>StringCchCopyW</FONT>(pCSSBuffer =A3=AC=20
cchLengthCSS+1,szCSS)</P>
<P><FONT color=3D#008000><SPAN =
lang=3Dzh-cn> =20
</SPAN>//TODO: =
=D4=DA=D5=E2=C0=EF=B4=A6=C0=ED=B4=ED=CE=F3=A1=A3</FONT></P>
<P><SPAN lang=3Dzh-cn> </SPAN>hr=3D<FONT=20
color=3D#0000ff>StringCchCopyW</FONT>(pNSBuffer =A3=AC=20
cchLengthszNS+1,szNS)</P>
<P><FONT color=3D#008000><SPAN =
lang=3Dzh-cn> =20
</SPAN>//TODO: =
=D4=DA=D5=E2=C0=EF=B4=A6=C0=ED=B4=ED=CE=F3=A1=A3</FONT></P>
<P><SPAN lang=3Dzh-cn> </SPAN>pInfo-> =
cbSize=3D=20
<FONT color=3D#0000ff>sizeof</FONT>(<FONT=20
color=3D#0000ff>DOCHOSTUIINFO</FONT>)</P>
<P><SPAN lang=3Dzh-cn> </SPAN>pInfo-> =
dwFlags=3D=20
<FONT color=3D#0000ff>DOCHOSTUIFLAG_NO3DBORDER</FONT>|<FONT=20
=
color=3D#0000ff>DOCHOSTUIFLAG_SCROLL_NO|DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCO=
MPLETE</FONT>;</P>
<P><SPAN lang=3Dzh-cn> </SPAN>pInfo->=20
dwDoubleClick=3D <FONT=20
color=3D#0000ff>DOCHOSTUIDBLCLK_DEFAULT</FONT>;</P>
<P><SPAN lang=3Dzh-cn> </SPAN>pInfo-> =
pchHostCss=3D=20
pCSSBuffer;</P>
<P><SPAN lang=3Dzh-cn> </SPAN>pInfo-> =
pchHostNS=3D=20
pNSBuffer;</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>return</FONT> <FONT color=3D#0000ff>S_OK</FONT>;</P>
<P>}</P>
<P>=C8=E7=B9=FB=C4=E3<SPAN =
lang=3Dzh-cn>=C3=BB=D3=D0=CA=B2=C3=B4=D0=E8=D2=AA=B8=E6=CB=DF</SPAN>MSHTM=
L<SPAN=20
lang=3Dzh-cn>=B5=C4</SPAN>,=C4=E3<SPAN =
lang=3Dzh-cn>=BF=C9=D2=D4=D4=DA=D5=E2</SPAN>=B8=F6=B7=BD=B7=A8<SPAN=20
lang=3Dzh-cn>=D6=D0=B7=B5=BB=D8</SPAN>E_NOTIMPL =A1=A3</P>
<H2>IDocHostUIHandler::ShowContextMenu</H2>
<P>=CD=A8=B9=FD=CA=B5=CF=D6=D5=E2=D2=BB=B8=F6=B7=BD=B7=A8, =
=C4=E3<SPAN lang=3Dzh-cn>=BB=F1=B5=C3</SPAN>=D4=DA<SPAN=20
lang=3Dzh-cn>=B5=B1</SPAN>=D2=BB=B8=F6<SPAN =
lang=3Dzh-cn>=D3=C3=BB=A7</SPAN>=D3=D2=BB=F7<SPAN=20
=
lang=3Dzh-cn>=CA=B1</SPAN>=B1=BB=E4=AF=C0=C0=C6=F7=BF=D8=BC=FE=CF=D4=CA=BE=
=B5=C4=BF=EC=BD=DD=B2=CB=B5=A5=B5=C4=BF=D8=D6=C6=A1=A3=C4=E3=C4=DC=CD=A8=B9=
=FD<SPAN=20
lang=3Dzh-cn>=D4=DA</SPAN>=D5=E2=B8=F6=B7=BD=B7=A8<SPAN =
lang=3Dzh-cn>=D6=D0</SPAN>=B7=B5=BB=D8S_OK=20
=
=D7=E8=D6=B9IE=CF=D4=CA=BE=CB=FC=B5=C4=C4=AC=C8=CF=BF=EC=BD=DD=B2=CB=B5=A5=
=A1=A3=B7=B5=BB=D8=D2=BB=D0=A9=C6=E4=CB=FB=B5=C4=CA=FD=D6=B5 , =
=CF=F1S_FALSE=BB=F2E_NOTIMPL,=D4=CA=D0=EDIE<SPAN=20
=
lang=3Dzh-cn>=BC=CC=D0=F8=D6=B4=D0=D0</SPAN>=CB=FC=B5=C4=C4=AC=C8=CF=BF=EC=
=BD=DD=B2=CB=B5=A5=D0=D0=CE=AA=A1=A3</P>
<P>=C8=E7=B9=FB=C4=E3<SPAN =
lang=3Dzh-cn>=BD=F6=BD=F6</SPAN>=D4=DA=D5=E2=B8=F6=B7=BD=B7=A8=D6=D0<SPAN=
=20
lang=3Dzh-cn>=B7=B5=BB=D8</SPAN>S_OK, =
=C4=E3=C4=DC=B1=DC=C3=E2=C8=CE=BA=CE=E4=AF=C0=C0=C6=F7=BF=D8=BC=FE=B5=C4=D3=
=D2=BB=F7=D0=D0=CE=AA=A1=A3 =
=D5=E2=BF=C9=C4=DC=CA=C7=C4=E3=D4=DA=D0=ED=B6=E0<SPAN=20
=
lang=3Dzh-cn>=B3=A1=BA=CF</SPAN>=D6=D0=B5=C4=C8=AB=B2=BF<SPAN =
lang=3Dzh-cn>=D0=E8=C7=F3</SPAN>=A3=AC=B5=AB=CA=C7=C4=E3=C4=DC=D7=F6<SPAN=
=20
lang=3Dzh-cn>=B5=BD</SPAN>=B8=FC=B6=E0=A1=A3<SPAN =
lang=3Dzh-cn>=CD=A8=B3=A3</SPAN>,=C4=E3=CA=B9=D3=C3=D5=E2=D2=BB=B8=F6=B7=BD=
=B7=A8=D4=DA=B7=B5=BB=D8 S_OK=20
=
=D6=AE=C7=B0=B2=FA=C9=FA=B2=A2=C7=D2=CF=D4=CA=BE=C4=E3=D7=D4=BC=BA=B5=C4=BF=
=EC=BD=DD=B2=CB=B5=A5=A1=A3=C8=E7=B9=FB=C4=E3<SPAN =
lang=3Dzh-cn>=D6=AA=B5=C0</SPAN>=E4=AF=C0=C0=C6=F7=BF=D8=BC=FE=CF=D4=CA=BE=
<SPAN=20
=
lang=3Dzh-cn>=B5=C4=B2=CB=B5=A5=B5=C4</SPAN>=D7=CA=D4=B4=A3=AC=B6=F8=C7=D2=
=CB=FC=C8=E7=BA=CE=D1=A1=D4=F1=CB=FB=C3=C7,=C4=E3=C4=DC=D2=B2=D3=D0=D0=A7=
=B5=D8<SPAN=20
=
lang=3Dzh-cn>=D7=D4=B6=A8=D2=E5</SPAN>=C4=AC=C8=CF=B5=C4=E4=AF=C0=C0=C6=F7=
=BF=D8=BC=FE=BF=EC=BD=DD=B2=CB=B5=A5=A1=A3=C8=C3=CE=D2=C3=C7<SPAN=20
=
lang=3Dzh-cn>=BF=B4=BF=B4=CB=FC=C8=E7=BA=CE=B9=A4=D7=F7</SPAN>=A1=A3</P>
<P>=E4=AF=C0=C0=C6=F7=BF=D8=BC=FE=D3=C9Shdoclc.dll<SPAN =
lang=3Dzh-cn>=BB=F1=B5=C3</SPAN>=CB=FC=B5=C4=BF=EC=BD=DD=B2=CB=B5=A5=D7=CA=
=D4=B4=A1=A3<SPAN=20
=
lang=3Dzh-cn>=D5=E2=B8=F6</SPAN>=D6=AA=CA=B6=BA=CD=D2=BB=D0=A9 #<SPAN=20
=
lang=3Dzh-cn>define</SPAN>=B8=F8=D3=E8=C4=E3=D2=BB=B8=F6=BB=FA=BB=E1=B2=D9=
=D7=DD=E4=AF=C0=C0=C6=F7=B5=C4<SPAN=20
=
lang=3Dzh-cn>=B2=CB=B5=A5</SPAN>=A1=A3=C8=C3=CE=D2=C3=C7=BE=D9=C0=FD=C0=B4=
=CB=B5<SPAN=20
=
lang=3Dzh-cn>=A3=AC=BC=D9=B6=A8</SPAN>=C4=E3=B6=D4=C4=AC=C8=CF=B2=CB=B5=A5=
=B8=D0=B5=BD=C2=FA=D2=E2,=B3=FD=C1=CB=C4=E3=CF=EB=D2=AA=B3=FD=C8=A5<SPAN =
lang=3Dzh-cn>=B2=E9=BF=B4</SPAN>=D4=B4<SPAN =
lang=3Dzh-cn>=B4=FA=C2=EB</SPAN>=CF=EE<SPAN=20
lang=3Dzh-cn>=D6=AE=CD=E2</SPAN>=A1=A3=CF=C2=C1=D0<SPAN=20
=
lang=3Dzh-cn>=B4=FA=C2=EB</SPAN>=D4=D8=C8=EB=C0=B4=D7=D4Shdoclc.dll=B5=C4=
=E4=AF=C0=C0=C6=F7=BF=D8=BC=FE=BF=EC=BD=DD=B2=CB=B5=A5=D7=CA=D4=B4,=B8=F9=
=BE=DD=BB=B7=BE=B3=D1=A1=D4=F1=D5=FD=C8=B7=B5=C4=B2=CB=B5=A5,=D2=C6=B3=FD=
IDM_VIEWSOURCE<SPAN=20
lang=3Dzh-cn>=C3=FC=C1=EE</SPAN>=B6=D4<SPAN =
lang=3Dzh-cn>=D3=A6=B5=C4=B2=CB=B5=A5=CF=EE</SPAN>,=C8=BB=BA=F3=CF=D4=CA=BE=
<SPAN=20
lang=3Dzh-cn>=B2=CB=B5=A5</SPAN>=A1=A3</P>
<P>=C0=FD=D7=D3</P>
<P><FONT color=3D#0000ff>HRESULT</FONT> CBrowserHost::<FONT=20
color=3D#0000ff>ShowContextMenu</FONT>(<FONT=20
color=3D#0000ff>DWORD</FONT> dwID,</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>POINT</FONT> *ppt,</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>IUnknown</FONT> *pcmdTarget,</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>IDispatch</FONT> *pdispObject) </P>
<P>{</P>
<P><SPAN lang=3Dzh-cn> </SPAN>#define=20
IDR_BROWSE_CONTEXT_MENU 24641</P>
<P><SPAN lang=3Dzh-cn> </SPAN>#define=20
IDR_FORM_CONTEXT_MENU 24640</P>
<P><SPAN lang=3Dzh-cn> </SPAN>#define=20
SHDVID_GETMIMECSETMENU 27</P>
<P><SPAN lang=3Dzh-cn> </SPAN>#define=20
SHDVID_ADDMENUEXTENSIONS 53</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>HRESULT</FONT> hr;</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>HINSTANCE</FONT> hinstSHDOCLC;</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>HWND</FONT> hwnd;</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>HMENU</FONT> hMenu;</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>CComPtr</FONT><<FONT=20
color=3D#0000ff>IOleCommandTarget</FONT>> spCT;</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>CComPtr</FONT><<FONT =
color=3D#0000ff>IOleWindow</FONT>>=20
spWnd;</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN>MENUITEMINFO</FONT> mii=3D{0};</P>
<P><SPAN lang=3Dzh-cn> </SPAN><FONT=20
color=3D#0000ff>CComVariant</FONT> var, var1, var2;</P>
<P><SPAN lang=3Dzh-cn> </SPAN>hr =3D=20
pcmdTarget-><FONT =
color=3D#0000ff>QueryInterface</FONT>(<FONT=20
color=3D#0000ff>IID_IOleCommandTarget</FONT>, (<FONT=20
color=3D#0000ff>void</FONT>**)&spCT);</P>
<P><SPAN lang=3Dzh-cn> </SPAN>hr =3D=20
pcmdTarget-><FONT =
color=3D#0000ff>QueryInterface</FONT>(<FONT=20
color=3D#0000ff>IID_IOleWindow</FONT>, (<FONT=20
color=3D#0000ff>void</FONT>**)&spWnd);</P>
<P><SPAN lang=3Dzh-cn> </SPAN>hr =3D =
spWnd-><FONT=20
color=3D#0000ff>GetWindow</FONT>(&hwnd);</P>
<P><SPAN lang=3Dzh-cn> </SPAN>hinstSHDOCLC =
=3D <FONT=20
color=3D#0000ff>LoadLibrary</FONT>(<FONT=20
color=3D#0000ff>TEXT</FONT>("SHDOCLC.DLL"));</P>
<P> </P>
<P><SPAN lang=3Dzh-cn> </SPAN><FONT=20
color=3D#0000ff>if</FONT> (hinstSHDOCLC =3D=3D <FONT=20
color=3D#0000ff>NULL</FONT>)</P>
<P><SPAN lang=3Dzh-cn> </SPAN>{</P>
<P><FONT color=3D#008000><SPAN=20
lang=3Dzh-cn> =
</SPAN>//=20
=D4=D8=C8=EB=C4=A3=BF=E9=B4=ED=CE=F3 -- =
=BE=A1=BF=C9=C4=DC=B0=B2=C8=AB=B5=D8=CA=A7=B0=DC</FONT></P>
<P><FONT color=3D#0000ff><SPAN=20
lang=3Dzh-cn> =20
</SPAN>return</FONT>;</P>
<P><SPAN lang=3Dzh-cn> </SPAN>}</P>
<P><SPAN lang=3Dzh-cn> =
</SPAN>hMenu=3D<FONT=20
color=3D#0000ff>LoadMenu</FONT>(hinstSHDOCLC,</P>
<P><FONT color=3D#0000ff><SPAN =
lang=3Dzh-cn> =20
</SPAN> =20
MAKEINTRESOURCE</FONT>(IDR_BROWSE_CONTEXT_MENU));</P>
<P><SPAN lang=3Dzh-cn> =
</SPAN>hMenu=3D<FONT=20
color=3D#0000ff>GetSubMenu</FONT>(hMenu,dwID)<SPAN=20
lang=3Dzh-cn>;</SPAN></P>
<P><FONT color=3D#008000><SPAN =
lang=3Dzh-cn> =20
</SPAN>//<SPAN =
lang=3Dzh-cn>=BB=F1=B5=C3</SPAN>=D3=EF=D1=D4=D7=D3=B2=CB=B5=A5</FONT></P>=
<P><SPAN lang=3Dzh-cn> </SPAN>hr =3D =
spCT-><FONT=20
color=3D#0000ff>E
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -