Chương 6: Plug-in chống vượt firewall cho trình
6.3.2 Một số hàm xử lí quan trọng:
- HRESULT SetSite(IUnknown* pUnkSite)
• Đây chínhlàhàmkhởitạođốitượngBHO.Nhiệmvụchínhcủa hàmnày
lànhậncontrỏđốitượngIUnkownvà1sốđốitượngquantrọn gkhác
(IWebBrowser2, IConnectionPointContainer)từtrìnhduyệtvà lưulạiđể
xửlí.
- HRESULT Connect(void)
• BáochotrìnhduyệtbiếtrằngBHOcó ýđịnhmuốnbắtcácsự kiệnvàxử
lítrướckhigửitrảlạichotrìnhduyệt.
- HRESULT Invoke()
• Bắtcácsựkiệndotrìnhduyệtphátravàchuyểnđếnhàmxửlí sựkiện
tươngứng.
- HRESULT Disconnect(void)
• Khiđốitượngbịhủyhaychủđộngkếtthúc,cầngọisựkiệnnày đểthông
báochấmdứtviệcxửlícácsựkiệnchotrìnhduyệt
- Các hàm xử lí sự kiện: TùytheoloạisựkiệnmàBHOsẽcócác
xửlí
tươngứng,cácsựkiệnđượcxửlítrongModulenàylầnlượtlà:
• DISPID_BEFORENAVIGATE2:Sựkiệnchuẩnbịduyệtđến1
trang
webkháctranghiệnhành.
• DISPID_ONQUIT :Sự kiệnđóngtrìnhduyệt
- NóithêmvềviệcđăngkíBHOvàoregistrychotrìnhduyệt
• Mặcdùkhitạo1ứngdụngdạngCOMPluginchoInternet Explorer,
VisualC++6.0sẽtựtạocácdònglệnh khởitạocácthôngsố choứng
dụngtrongregsitrytrong tập tin có đuôi là rgs.Tuynhiêncácd ònglệnh
đăngkíứngdụngvàoRegistrythìngườidùngphảitựthêmvào .Nội
dungcầnthêmvàonhưsau:
PhanTrungHiếu -Trang78- Trần
LêQuân
Mssv:0112463 Mssv:0112319
LuậnvăntốtnghiệpMạngmáytính GVHD: ThS Đỗ Hoàng Cường
HKLM{SOFTWARE{Microsoft{Windows{CurrentVersion {Explorer{'Browser HelperObjects'{ForceRemove{Số ID đã đ ược VC
tạo sẵn}=s'Tên đối tượng BHO muốn thể hiện'}}}}}}}