加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

SHFILEOPSTRUCT详解

(2010-11-20 16:26:41)
标签:

shfileopstruct

it

分类: C
 与所有仅使用数据结构作为输入参数的函数一样,SHFileOperation()函数是一个相当灵活的例程。通过以适当的方式组合各种标志,和使用(或不使用)各个SHFILEOPSTRUCT结构的成员,它可以执行许多操作。下面就让我们来看一看这个结构中每一个成员所起的的作用:

Hwnd
 由这个函数生成的所有对话框的父窗口Handle。
 
wFunc
 表示要执行的操作
 
pFrom
 含有源文件名的缓冲
 
pTo
 含有目标文件名的缓冲(不考虑删除的情况)
 
fFlags
 能够影响操作的标志
 
fAnyOperationsAborted
 包含TRUE或FALSE的返回值。它依赖于是否在操作完成之前用户取消了操作。通过检测这个成员,你就可以确定操作是正常完成了还是被手动中断了。
 
hNameMappings
 资料描述它为包含SHNAMEMAPPING结构数组的文件名映射对象的Handle。
 
lpszProgressTitle
 一个在一定情况下用于显示对话框标题的字符串。
 

 抑制的对话框
 相关性与优先级
 
FOF_MULTIDESTFILES
 None
 None
 
FOF_FILESONLY
 None
 None
 
FOF_SILENT 
 如果设置,进度对话框不显示。
 优先于FOF_SIMPLEPROGRESS标志。
 
FOF_SIMPLEPROGRESS
 None
 为FOF_SILENT标志所抑制。
 
FOF_RENAMEONCOLLISION
 如果设置了这个标志,当被移动或拷贝的文件与已存在文件同名时置换对话框不会出现。
 名字冲突时,如果FOF_NOCONFIRMATION标志设置,则操作继续。

如果二者都设置了,则它优先于FOF_NOCONFIRMATION。即,文件以给定的新名字复制,而不是覆盖。
 
FOF_NOCONFIRMATION
 如果设置,确认对话框在任何情况下都不出现。
 名字冲突时,引起文件覆盖,除非设置了FOF_RENAMEONCOLLISION标志。
 

FOF_NOCONFIRMMKDIR 
 抑制请求建立新文件夹的对话框
 缺省目录作为严重错误产生一个错误消息框。

建立目录的确认对话框作为错误消息框是否显示依赖于FOF_NOERRORUI的设置。
 
FOF_NOERRORUI 
 抑制所有错误消息框。
 优先于前一个标志。如果设置,则,缺省目录引起不被处理的异常,并且返回错误码。
 

FOF_SILENT
 
0x0004
 这个操作不回馈给用户,就是说,不显示进度对话框。相关的消息框仍然显示。
 
FOF_NOCONFIRMATION
 
0x0010
 这个标志使函数对任何遇到的消息框都自动回答Yes。
 
FOF_ALLOWUNDO

 0x0040
 如果设置,这个标志强迫函数移动被删除的文件到‘回收站’中。否则,文件将被物理地从磁盘上删除。
 
FOF_FILESONLY
 
0x0080
 设置这个标志导致函数仅仅删除文件,跳过目录项。它仅仅应用于指定通配符的情况。
 
FOF_SIMPLEPROGRESS
 
0x0100
 这导致简化用户界面。使之只有动画而不报告被删除的文件名。代之的是显示lpszProgressTitle成员中指定的文字。
 
FOF_NOERRORUI
 
0x0400
 如果设置了这个标志,任何发生的错误都不能使消息框显示,而是程序中返回错误码。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有