SDN翻译如下:<br>ShFileOperation只有一个参数是LPSHFILEOPSTRUCT型的相当于delphi中的TSHFileOpStruct;<br>c语言定义为:<br>typedef struct _SHFILEOPSTRUCT{ <br> HWND hwnd; <br> UINT wFunc; <br> LPCSTR pFrom; <br> LPCSTR pTo; <br> FILEOP_FLAGS fFlags; <br> BOOL fAnyOperationsAborted; <br> LPVOID hNameMappings; <br> LPCSTR lpszProgressTitle; <br>} SHFILEOPSTRUCT, FAR *LPSHFILEOPSTRUCT; <br><br>相应的pascal就是:<br>type <br> _SHFILEOPSTRUCTA = packed record<br> Wnd: HWND;<br> wFunc: UINT;<br> pFrom: PAnsiChar;<br> pTo: PAnsiChar;<br> fFlags: FILEOP_FLAGS;<br> fAnyOperationsAborted: BOOL;<br> hNameMappings: Pointer;<br> lpszProgressTitle: PAnsiChar; { only used if FOF_SIMPLEPROGRESS }<br> end; <br>hwnd:用来显示操作状态的对话框句柄。 例中是form1的句柄<br>wFunc:执行的操作。可以是以下各值:(例中是FO_COPY)<br> FO_COPY:拷贝pfrom域中指定的(目录,例中是'c:/a')到pto中指定的位置(例中为'c:/b') <br> FO_DELET:删除pfrom中指定的文件. (pTo不用) <br> FO_MOVE:移动PFrom中指定的文件到pto中指定的位置。 <br> FO_RENAME:给PFrom中指定的文件改名。<br>pFrom:指定一个或多个源文件名的缓冲区地址。多个名字必须用NULL分隔。名字列表必须用两个NULL(nil,'/0')来结束。<br>pTo:目标文件或目录名缓冲区地址。 如果fFlags域指定FOF_MULTIDESTFILES,缓冲区可以包含多个目标文件名。多个名字必须用NULL分隔。名字列表必须用两个NULL(nil,'/0')<br>fFlags :控制操作的标志,可以是以下各值组合:<br> FOF_ALLOWUNDO:保留Undo信息, 如果pFrom没有包含全的绝对的路径或文件名此值忽略。<br> FOF_CONFIRMMOUSE:没有实现.<br> FOF_FILESONLY:只有文件名使用通配符时(*.*)才对文件操作。<br> FOF_MULTIDESTFILES: pTo域指一定了多个目标文件.(一个对就一个源文件) 而不是指定一个目录来存放所有源文件 <br> FOF_NOCONFIRMATION:所有显示的对话框全部选择yes to all<br> FOF_NOCONFIRMMKDIR: 如果需要创建一个新目录不确认。<br> FOF_NOCOPYSECURITYATTRIB