如果把"网站名"和"网址"添加ie收藏夹里去了?title:='welcome';url:='http://www.csdn.com';我想去现在这两个变量的值添加ie收藏夹里去.请问如何实现呢?

解决方案 »

  1.   

    添加到收藏夹和整理收藏夹     const     CLSID_ShellUIHelper: TGUID = '{64AB4BB7-111E-11D1-8F79-00C04FC2FBE1}';    var     p:procedure(Handle: THandle; Path: PChar); stdcall;    procedure TForm1.OrganizeFavorite(Sender: Tobject);    var     H: HWnd;    begin     H := LoadLibrary(PChar('shdocvw.dll'));     if H <> 0 then     begin    p := GetProcAddress(H, PChar('DoOrganizeFavDlg'));      if Assigned(p) then p(Application.Handle, PChar(FavFolder));     end;     FreeLibrary(h);    end;        procedure TForm1.AddFavorite(Sender: TObject);    var     ShellUIHelper: ISHellUIHelper;     url, title: Olevariant;    begin     Title := Webbrowser1.LocationName;     Url := Webbrowser1.LocationUrl;     if Url <> '' then     begin      ShellUIHelper := CreateComObject(CLSID_SHELLUIHELPER) as IShellUIHelper;      ShellUIHelper.AddFavorite(url, title);     end;    end;  用上面的通过ISHellUIHelper接口来打开“添加到收藏夹”对话框的方法比较简单,但是有个缺陷,就是打开的窗口不是模式窗口,而是独立于应用程序的。可以想象,如果使用与OrganizeFavorite过程同样的方法来打开对话框,由于可以指定父窗口的句柄,自然可以实现模式窗口(效果与在资源管理器和IE中打开“添加到收藏夹”对话框相同)。问题显然是这样的,上面两个过程的作者当时只知道shdocvw.dll中DoOrganizeFavDlg的原型而不知道DoAddToFavDlg的原型,所以只好用ISHellUIHelper接口来实现(或许是他不够严谨,认为是否是模式窗口无所谓?)。
      

  2.   

    首先谢谢,上面的朋友的回答,可说'FavFolder'有错,没有定义.请问如何解决.
    [Error] Unit1.pas(48): Undeclared identifier: 'FavFolder'
      

  3.   

    还有也是最注要的,那就是 ShellUIHelper: ISHellUIHelper;说有错,是不是有什么单元没有引用呢?