一些有用的Windows Shell对象库(已经封装为用户对象)

原创 2006年06月23日 14:35:00

下载:www.pdriver.com/pb02/11/6shell.zip (size:11kb) (pb 6.x格式)

说明:陶清
本程序是老外所写,有封装好的用户对象及源代码,但没有写调用例程,函数的注解和参数说明还比较详细(英文),自己花点时间写点调用例程吧

1.有move/copy/delete 多个文件(包括目录和子目录)功能
2.因为使用标准Windows Shell方法,所以结果和“资源管理器”效果一样,即有动画提示,有重名文件也同样会提示是否覆盖等
3.可以浏览(目录/打印机/网上邻居) <--这一点本站已经有许多对象可以做到一点,所有的方法都是一致的。
4.可以格式化磁盘。(同样是和Windows出现的效果一样)

程序中用到了下面这些API函数

=== Shell functions
Subroutine SHAddToRecentDocs( ulong uFlags, Ref String pV ) Library "shell32.dll"
Function long SHBrowseForFolder( Ref BROWSEINFO lpBi ) Library "shell32.dll"
Function boolean SHGetPathFromIDList( long pIDL, Ref String pszPath  ) Library "shell32.dll" Alias For "SHGetPathFromIDListA"
Function long SHFileOperation( Ref SHFILEOPSTRUCT lpFileOp ) Library "shell32.dll" Alias For "SHFileOperationA"
Function long SHGetSpecialFolderLocation( long hwndOwner, long nFolder, Ref Long ppidl ) Library "shell32.dll"
Function long SHFormatDrive( ulong hWnd, ulong iDrive, ulong iCapacity, ulong iType ) Library "shell32.dll"

=== Memory functions
Function long RtlMoveMemory(REF Char Destination[], long Source, long Size) library "kernel32"
Function long RtlMoveMemory(long Destination, REF Char Source[], long Size) library "kernel32"
Function long LocalAlloc(long Flags, long Bytes) library "kernel32"
Function long LocalFree(long MemHandle) library "kernel32"

转载:http://www.pdriver.com/display.asp?key_id=1180

 

==========================================================

Instance Variables

// MAX_PATH constant for file operations
Private constant long MAX_PATH = 260

// SHBrowseForFolder constants
Private:
constant ulong BIF_RETURNONLYFSDIRS = 1 // Browse for directory
constant ulong BIF_DONTGOBELOWDOMAIN = 2 // For starting the Find Computer
constant ulong BIF_STATUSTEXT  = 4
constant ulong BIF_RETURNFSANCESTORS = 8
constant ulong BIF_EDITBOX   = 16
constant ulong BIF_BROWSEFORCOMPUTER = 4096 // Browse for computer
constant ulong BIF_BROWSEFORPRINTER = 8192 // Browse for printers
constant ulong BIF_BROWSEINCLUDEFILES = 16384 // Browse for everything

// SHAddToRecentDocs constants
Private:
constant ulong SHARD_PIDL  = 1
constant ulong SHARD_PATH = 2

// File Operation constants
Private:
constant ulong FO_MOVE  = 1
constant ulong FO_COPY  = 2
constant ulong FO_DELETE  = 3
constant ulong FO_RENAME  = 4

// File Operation flags
Private:
constant ulong FOF_MULTIDESTFILES  = 1 // 0x0001
constant ulong FOF_CONFIRMMOUSE  = 2 // 0x0002
constant ulong FOF_SILENT   = 4 // 0x0004
constant ulong FOF_RENAMEONCOLLISION = 8 // 0x0008
constant ulong FOF_NOCONFIRMATION = 16 // 0x0010
constant ulong FOF_WANTMAPPINGHANDLE = 32 // 0x0020
constant ulong FOF_ALLOWUNDO  = 64 // 0x0040
constant ulong FOF_FILESONLY  = 128 // 0x0080
constant ulong FOF_SIMPLEPROGRESS = 256 // 0x0100
constant ulong FOF_NOCONFIRMMKDIR = 512 // 0x0200
constant ulong FOF_NOERRORUI  = 1024 // 0x0400

// SHGetSpecialFolderLocation constants
Public:
constant ulong CSIDL_DESKTOP  = 0 // 0x0000
constant ulong CSIDL_PROGRAMS  = 2 // 0x0002
constant ulong CSIDL_CONTROLS  = 3 // 0x0003
constant ulong CSIDL_PRINTERS  = 4 // 0x0004
constant ulong CSIDL_PERSONAL  = 5 // 0x0005
constant ulong CSIDL_FAVORITES  = 6 // 0x0006
constant ulong CSIDL_STARTUP  = 7 // 0x0007
constant ulong CSIDL_RECENT  = 8 // 0x0008
constant ulong CSIDL_SENDTO  = 9 // 0x0009
constant ulong CSIDL_BITBUCKET  = 10 // 0x000a
constant ulong CSIDL_STARTMENU  = 11 // 0x000b
constant ulong CSIDL_DESKTOPDIRECTORY = 16 // 0x0010
constant ulong CSIDL_DRIVES  = 17 // 0x0011
constant ulong CSIDL_NETWORK  = 18 // 0x0012
constant ulong CSIDL_NETHOOD  = 19 // 0x0013
constant ulong CSIDL_FONTS  = 20 // 0x0014
constant ulong CSIDL_TEMPLATES  = 21 // 0x0015
constant ulong CSIDL_COMMON_STARTMENU = 22 // 0x0016
constant ulong CSIDL_COMMON_PROGRAMS = 23 // 0X0017
constant ulong CSIDL_COMMON_STARTUP = 24 // 0x0018
constant ulong CSIDL_COMMON_DESKTOPDIRECTORY = 25 // 0x0019
constant ulong CSIDL_APPDATA  = 26 // 0x001a
constant ulong CSIDL_PRINTHOOD  = 27 // 0x001b

 

Local External Functions

// Shell functions
Subroutine SHAddToRecentDocs( ulong uFlags, Ref String pV ) Library "shell32.dll"
Function long SHBrowseForFolder( Ref BROWSEINFO lpBi ) Library "shell32.dll"
Function boolean SHGetPathFromIDList( long pIDL, Ref String pszPath  ) Library "shell32.dll" Alias For "SHGetPathFromIDListA"
Function long SHFileOperation( Ref SHFILEOPSTRUCT lpFileOp ) Library "shell32.dll" Alias For "SHFileOperationA"
Function long SHGetSpecialFolderLocation( long hwndOwner, long nFolder, Ref Long ppidl ) Library "shell32.dll"
Function long SHFormatDrive( ulong hWnd, ulong iDrive, ulong iCapacity, ulong iType ) Library "shell32.dll"

// Memory functions
Function long RtlMoveMemory(REF Char Destination[], long Source, long Size) library "kernel32"
Function long RtlMoveMemory(long Destination, REF Char Source[], long Size) library "kernel32"
Function long LocalAlloc(long Flags, long Bytes) library "kernel32"
Function long LocalFree(long MemHandle) library "kernel32"

搜索Windows用户对象.rar

  • 2010年07月01日 13:14
  • 39KB
  • 下载

Windows API 用户、认证和对象安全

本文转自:http://www.cnblogs.com/mydomain/archive/2011/02/23/1962655.html   Windows系统具有很完善的安全和认证机制,称作访问...

Windows 用户、认证和对象安全

一、概述  Windows系统具有很完善的安全和认证机制,称做访问控制机制。程序的执行主体(线程)在访问对象(文件,事件)时,系统会根据线程的“权限”和线程需要访问的对象所具有的“安全描述符”中的访问...

Windows_oracle10g_2013_10_31_管理用户的对象

1.约束条件状态的解释 disable novalidate 等同于disable,表示禁用约束,并且对新旧数据不再进行check enable validate,等同于enable。表示启用约束,并...

不占用windows用户对象的定时器

QEventDispatcherWin32::registerTimer: Failed to create a timer (当前程序已使用了 Window 管理器对象的系统允许的所有句柄。 并不是...

Windows Shell编程-第十二章.脚本Shell对象

第十二章 脚本Shell对象          新的Windows Shell 包含了丰富的新对象,这些新对象通过自动化体系提供了对Shell主要特征的完全访问能力。IE4.0在新版的shdocvw...
  • ljmwork
  • ljmwork
  • 2012年08月02日 19:23
  • 1348

如何在html中嵌入多媒体对象(pdf,word,flash等,)很有用的,记下

原文地址 : http://www.a5.net/thread-4569034-1-1.html 1 嵌入pdf ...
  • dlshbn
  • dlshbn
  • 2016年10月27日 16:44
  • 1115

Wscript.shell对象手册

  • 2010年02月04日 13:23
  • 21KB
  • 下载

java--封装一类Java对象,用户从输入对话框输入两个日期,程序将判断两个日期的大小关系(比如输出:您输入的第二个日期大于第一个日期)以及两个日期之间的间隔天数(比如输出:2006年6月6日和

import java.util.*; public class Date { int year; int month; int day; public Da...

对象更有用的玻璃罩——常引用

原创案例讲解——”玻璃罩const”系列的三篇文章: 1. 使用常对象——为共用数据加装一个名为const的玻璃罩 2. 常(const)+ 对象 + 指针:玻璃罩到底保护哪一个 3. 对象更...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一些有用的Windows Shell对象库(已经封装为用户对象)
举报原因:
原因补充:

(最多只允许输入30个字)