delphi怎么读出ie的历史纪录
解决方案 »
- 各位大侠请帮帮忙
- 遠程教育,發言有分!!!
- 关于复选框问题
- 我想做兼职,要求在上海
- 高手来帮忙啊,SYBASE和BDE配合的 汉字显示的问题。。。。。。。。。。
- 一个小的问题,在线等待
- 各位进来看看,关于DBExpress组件的问题?????????????????
- active 中如何调用一个form?
- 关于文件reset,writeln的,不好意思没分了(求救)!!!
- 对于Delphi 4.0开发大全源代码集不能下载的解
- 用TStringGrid显示数据动态显示下划线打到浏览网页的效果如何实现?
- 求助:我的windowsxp系统出现了问题,我写的delphi程序stringgrid控件和button控件上的文字全部无法显示,但是stringgrid的数字能显示。
就是像delphi怎么运行代码一样.
我也不懂
不好意思哦!
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Activex, Comobj, StdCtrls;
const
// GUID 定义:
IID_IEnumStatUrl : TGUID='{3C374A42-BAE4-11CF-BF7D-00AA006946EE}';
IID_IUrlHistoryStg: TGUID='{3C374A41-BAE4-11CF-BF7D-00AA006946EE}';
IID_IUrlHistoryStg2: TGUID='{AFA0DC11-C313-11d0-831A-00C04FD5AE38}';
IID_IURLHistoryNotify:TGUID='{BC40BEC1-C493-11d0-831B-00C04FD5AE38}';
CLSID_CUrlHistory: TGUID = '{3C374A40-BAE4-11CF-BF7D-00AA006946EE}';
type
// TSTATURL 数据结构:
PSTATURL=^TSTATURL;
STATURL = record
cbSize: DWORD; // 结构的大小
pwcsUrl: Pointer; // URL 是 PWideChar ,原贴定义为 DWord
pwcsTitle: Pointer; // History 标题,原贴定义为 DWord
ftLastVisited: FILETIME;
ftLastUpdated: FILETIME;
ftExpires: FILETIME;
dwFlags: DWORD;
end;
TSTATURL=STATURL;
IEnumSTATURL = interface(IUnknown)
['{3C374A42-BAE4-11CF-BF7D-00AA006946EE}']
function Next(celt: Integer; out elt; pceltFetched: PLongint): HRESULT; stdcall;
function Skip(celt: Longint): HRESULT; stdcall;
function Reset: HResult; stdcall;
function Clone(out ppenum: IEnumSTATURL): HResult; stdcall;
function SetFilter(poszFilter: PWideChar; dwFlags: DWORD): HResult; stdcall;
end;
IUrlHistoryStg = interface(IUnknown)
['{3C374A41-BAE4-11CF-BF7D-00AA006946EE}']
function AddUrl(pocsUrl: PWideChar; pocsTitle: PWideChar; dwFlags: Integer):
HResult; stdcall;
function DeleteUrl(pocsUrl: PWideChar; dwFlags: Integer): HResult; stdcall;
function QueryUrl(pocsUrl: PWideChar; dwFlags: Integer; var lpSTATURL:
STATURL): HResult; stdcall;
function BindToObject(pocsUrl: PWideChar; var riid: TIID; out ppvOut:
Pointer): HResult; stdcall;
function EnumUrls(out ppenum: IEnumSTATURL): HResult; stdcall;
end;
IUrlHistoryStg2 = interface(IUrlHistoryStg)
['{AFA0DC11-C313-11d0-831A-00C04FD5AE38}']
function AddUrlAndNotify(pocsUrl: PWideChar; pocsTitle: PWideChar;
dwFlags: Integer;
fWriteHistory: Integer; var poctNotify: Pointer;
const punkISFolder: IUnknown): HResult; stdcall;
function ClearHistory: HResult; stdcall;
end;
IUrlHistoryNotify = interface(IOleCommandTarget)
['{BC40BEC1-C493-11d0-831B-00C04FD5AE38}']
end;
type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox; // Caption:='清除历史记录'
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject); // 清除历史记录
var
UrlHistory: IUrlHistoryStg2;
Enum:IEnumSTATURL;
urlSTATURL:TSTATURL;
fetched:Longint;
P:PWideChar;
begin
// 初始化 STATURL 数据结构
ZeroMemory(@urlSTATURL,SizeOf(TSTATURL));
// 创建 IUrlHistoryStg2 实例
if CoCreateInstance(CLSID_CUrlHistory,nil,
CLSCTX_INPROC_SERVER,
IID_IUrlHistoryStg2,
UrlHistory)=1 then
begin
MessageBox(0,'IUrlHistoryStg2 没有创建','',MB_OK);
exit;
end;
// 获得枚举接口 -> IEnumSTATURL
if UrlHistory.EnumUrls(Enum)=1 then
MessageBox(0,'IEnumSTATURL 接口没有找到','',MB_OK);
// 找到一个,删除一个
while Enum.Next(1,urlSTATURL,@fetched)<>1 do
begin
P:=urlSTATURL.pwcsUrl;
listbox1.Items.Add(p);
{
if UrlHistory.DeleteUrl(P,0)=1 then
begin
MessageBox(0,'删除出错','',MB_OK);
Break;
end;
}
end;
end;
end.