|
|
1.实现Ctrl+C:
. A9 o7 R3 R+ K5 i: R8 F. g" o2 `) e
ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); 2 ~0 s% U0 G& ]1 ^& H6 z3 {
8 ]* H1 V6 X5 o& C H2 m2.实现Ctrl+V:
$ h2 T M* E' I0 ?6 T+ D0 ~8 t. r- |, c$ z
ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
6 p: G h: l9 v! K5 I0 a
, r$ Z! e$ u4 v7 x# t4 ^" v7 ^3.实现查找:' c! h9 h4 y- s( Y
+ P: A4 W- {+ N3 c$ T
MSHTML::IHTMLDocument2Ptr pdoc;
1 ^$ o2 d4 w0 L& j4 A_variant_t varinput,varoutput;) v. q" w& g* g0 m/ T% w1 ?
IOleCommandTarget *pCmd;7 I% p* c8 P0 @* _3 v! {; z* X+ N" e/ I: y. f
HRESULT hr;' n w! h1 M* x5 d4 M( ]- A
pdoc=GetHtmlDocument();
+ S' X: r: N- h0 phr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
( K" J9 ?: z; b1 v3 O' y* Tif(SUCCEEDED(hr)); r. g* L* S" t! e7 X
{
+ T9 f( U0 Q3 @" m: u J! l" \varinput=_T("");% d. p- X& Z! f) T% H1 X- h
hr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);; T2 t1 S8 r# I
}
; |2 }. j b; k; y4 v: a! P' A Y0 p1 ]/ x* J
4.实现显示源程序:. z1 q" u n& Q% e9 V* b9 V
% N4 Q4 a# y+ x/ o5 e j# UMSHTML::IHTMLDocument2Ptr pdoc;7 b$ \( \/ G& \& e6 i1 l# g
_variant_t varinput,varoutput;
$ t( ^, @: y" B! s& k' VIOleCommandTarget *pCmd;" v) P7 t# N4 `$ k9 @
HRESULT hr;
$ a# v# @" l2 c: _1 X2 jpdoc=GetHtmlDocument();- v" {8 `' q, Y* f \ L
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
% _0 B4 Q1 N- c5 Nif(SUCCEEDED(hr))' U# N @0 x3 G) N \
{
4 _7 {/ X& j# A2 Qvarinput=_T("");9 n8 j, [( r8 q/ `* b2 z
hr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
: e6 l) K# d# S5 |3 H! ]}
3 K! Z/ ~% b; x7 Z3 l7 K3 a' x! I: ]$ `) S1 {
5.实现显示Internet选项:
' {. L" r" N( C0 z& C
5 M5 ]; ^4 }0 a$ L) TMSHTML::IHTMLDocument2Ptr pdoc;
" G7 S5 [6 X6 s1 {& P# [' L/ |0 w_variant_t varinput,varoutput;
4 ^6 e: Q0 K" ~4 kIOleCommandTarget *pCmd;7 s( H0 m2 n7 |, [8 @
HRESULT hr;
+ N0 x/ S. w5 ~& V7 m$ n ipdoc=GetHtmlDocument();) s1 g7 K1 s# p+ k) t& V
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);5 J7 Q ?6 o$ C2 ^
if(SUCCEEDED(hr)), L' h6 B" w7 d6 E* B
{
% n9 |2 V7 E" K; P; [" Evarinput=_T("");8 {& f. Y. r+ P) F. Y9 B n
hr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);2 {) y i$ |4 }# X" V
}3 i* f* C9 y" {
3 O L- _% g, L$ Q2 o
6.下载事件说明:8 ?; g# R* V! [3 k9 C0 @8 q+ S. R, T& j
) @& m5 e7 C9 U, j( fOnDownloadBegin <--开始下载
, a" Z c% u7 d; oOnDownloadComplete <--下载结束9 ^& f, D6 P/ X
OnDocumentComplete <--页面下载完毕
; w# V- f( r" o R; s1 [8 X1 r% p- i& x3 w3 v: F0 d
对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.1 l9 W5 g6 c, [' b) x- Z
g& O& d" t, D$ A) M" l/ H
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.
0 |1 I1 K2 V. G' X$ E* l l; J8 S" i e
那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?
0 d* Z1 H+ b# `: p- I. U. T& R. [& _, z
7.点击链接产生的事件:6 A2 y) {& L: _( ^* s0 `
$ i7 D' p( n+ i4 F7 m3 OOnBeforeNavigate2 <--开始链接时会触发此事件. M, X0 C+ }: V+ M' Q6 ]( E
OnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)
6 Z# ~/ X' ^9 }- A0 f8 h$ q
/ j7 P5 }% Y7 T$ l+ v/ q2 s. l- p9 g6 J; q9 b W
8.包括相关文件:' ~6 v* |! Z8 ~" W3 h4 |5 n
?# O' B) S8 D/ K#include <mshtmhst.h>
. n/ L# `' r8 h' a# {5 B#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!
, a, x% n. T3 D8 p# y0 w* _. x#import <mshtml.tlb>" E; \$ q) d. E! _% Y: ~$ {
% ^! r( \; G8 \
请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!
/ I7 n$ U* s i3 m/ i# a
; \' e3 \ ?1 L1 |先告一个段落,下次再来。
. {5 J- \; K( u2 I
+ n) `+ M" I7 r! W' y黄森堂著 |
|