调用IE的收藏夹[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 40star 的 blog

调用ie的收藏夹(系统需要ie4以上版本)

 

internet explorer 库--shdocvw.dll包含了许多可以操纵ie收藏夹的api。其中的两个api是调用ie的“添加到收藏夹”和“整理收藏夹”对话框。下面的示例程序就是如何使用这两个对话框

“添加到收藏夹”的dialog很像windows的通用对话框中的saveas dialog,它自身没有任何机能(不能创建或保存一个文件)。然而他却提供了一种机制,当用户创建并保存一个

internet的快捷方式时,可以让开发人员能够得到需要的“收藏夹”中的信息。因为它会接受到一个pidl参数,当调用shgetspecialfolderlocation函数时指定了csidl_favorites,

就会返回用户“收藏夹”的pidl描述。再把它用作api中的一个成员,我们想要的“添加到收藏夹”对话框就会出现了。

“整理收藏夹”对话框可以提供我们创建创建文件夹、重命名文件夹和删除文件夹等功能。

代码:
新建标准exe工程,加入3个button(command1-command3),3个text文本框(text1-text3)............

option explicit
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'40star收藏并翻译
'联系地址:40star@163.com
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
private const max_path as long = 260
private const error_success as long = 0
private const s_ok as long = 0
private const s_false as long = 1
private const shgfp_type_current as long = &h0
private const shgfp_type_default as long = &h1
const csidl_favorites as long = &h6

private declare function doaddtofavdlg lib "shdocvw" _
  (byval hwnd as long, _
   byval szpath as string, _
   byval nsizeofpath as long, _
   byval sztitle as string, _
   byval nsizeoftitle as long, _
   byval pidl as long) as long
  
private declare function doorganizefavdlg lib "shdocvw" _
  (byval hwnd as long, _
   byval lpszrootfolder as string) as long

private declare function shgetfolderpath lib "shfolder" _
   alias "shgetfolderpatha" _
  (byval hwndowner as long, _
   byval nfolder as long, _
   byval htoken as long, _
   byval dwreserved as long, _
   byval lpszpath as string) as long

private declare function shgetspecialfolderlocation lib "shell32" _
  (byval hwndowner as long, _
   byval nfolder as long, _
   pidl as long) as long
  
private declare function writeprivateprofilestring lib "kernel32" _
   alias "writeprivateprofilestringa" _
  (byval lpsectionname as string, _
   byval lpkeyname as any, _
   byval lpstring as any, _
   byval lpfilename as string) as long
  
private declare sub cotaskmemfree lib "ole32" _
   (byval pv as long)

 

private sub form_load()

   text1.text = "csdn.net--中国最大的开发者网络,为开发人员和相关企业提供全面的信息服务和技术服务"
   text2.text = "http://www.csdn.net/"
   text3.text = ""
  
end sub

private sub command1_click()
'调用“整理收藏夹”对话框
  dim lpszrootfolder as string
  dim success as long
 
   lpszrootfolder = getfolderpath(csidl_favorites)
   success = doorganizefavdlg(hwnd, lpszrootfolder)
  
end sub


private sub command2_click()
'调用“添加到收藏夹”对话框
   dim sztitle as string
   dim surl as string
   dim sresult as string

  '指定添加到收藏夹后的快捷方式的名称
   sztitle = text1.text
  
  '指定添加到收藏夹后的快捷方式的url
   surl = text2.text
  
  '调用makefavouriteentry函数,打开对话框
   sresult = makefavouriteentry(sztitle, surl)
  
   text1.text = sztitle
   text2.text = surl
   text3.text = sresult

end sub


private sub command3_click()

   unload me
  
end sub


private function makefavouriteentry(sztitle as string,surl as string) as string

  '变量定义
   dim success as long
   dim pos as long
   dim nsizeofpath as long
   dim nsizeoftitle as long
   dim pidl as long
   dim szpath as string
 
  '追加chr$(0)字符
   sztitle = sztitle & chr$(0)
   nsizeoftitle = len(sztitle)
  
  '返回路径的字符串
   szpath = space$(max_path) & chr$(0)
   nsizeofpath = len(szpath)
  
  '得到用户“收藏夹”路径的pidl (pointer to item identifier list)
  '成功后返回值为error_success
   if shgetspecialfolderlocation(hwnd, _
                                 csidl_favorites, _

本文关键:VB IE 收藏夹 Favorites
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top