发信人: winsy(鹰派)
整理人: winsy(2003-03-16 10:29:13), 站内信件
|
SearchPath
VB声明
Declare Function SearchPath Lib "kernel32" Alias "SearchPathA" (ByVal lpPath As String, ByVal lpFileName As String, ByVal lpExtension As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilePart As String) As Long
说明
查找指定文件
返回值
Long,装载到lpBuffer缓冲区的字符数。如缓冲区长度不足,则返回缓冲区必要的长度。零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpPath String,欲搜索的路径。如果为vbNullString,则采用windows搜索路径。参考OpenFile函数的OFSTRUCT结构中对OF_SEARCH标志搜索顺序的介绍
lpFileName String,要查找的文件名
lpExtension String,文件扩展名。必须用一个句点符号起头。如文件没有扩展名,或者lpFileName包括了扩展名,则设为vbNullString
nBufferLength Long,lpBuffer字串的长度
lpBuffer String,用于装载文件名的一个字串
lpFilePart String,指定一个长整数变量,用于装载缓冲文件名部分的地址。在vb中不是特别有用
注解
参考GetFullPathName函数
SetCurrentDirectory
VB声明
Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
说明
设置当前目录
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpPathName String,新当前目录的路径
SetEndOfFile
VB声明
Declare Function SetEndOfFile Lib "kernel32" Alias "SetEndOfFile" (ByVal hFile As Long) As Long
说明
针对一个打开的文件,将当前文件位置设为文件末尾
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hFile Long,指定一个文件句柄。文件的当前位置设为文件尾,文件会根据需要缩短
注解
如一个文件正作为打开文件映射对象的基准使用,则不要对其应用这个函数
SetFileAttributes
VB声明
Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long
说明
设置文件属性
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpFileName String,要设置其属性的文件名
dwFileAttributes Long,带有FILE_ATTRIBUTE_??前缀的一个或多个常数
SetFilePointer
VB声明
Declare Function SetFilePointer Lib "kernel32" Alias "SetFilePointer" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long
说明
在一个文件中设置当前的读写位置
返回值
Long,返回一个新位置,它采用从文件起始处开始算起的一个字节偏移量。HFILE_ERROR意味着出错。会设置GetLastError
参数表
参数 类型及说明
hFile Long,系统文件句柄
lDistanceToMove Long,字节偏移量
lpDistanceToMoveHigh Long,指定一个长整数变量,其中包含了要使用的一个高双字偏移。可设为零(将声明变为ByVal),表示只使用lDistanceToMove
原文:A long variable containing a high double word offset to use. May be zero (change declaration to ByVal) to use only lDistanceToMove.
dwMoveMethod Long,下述常数之一
FILE_BEGIN lOffset将新位置设为从文件起始处开始算的起的一个偏移
FILE_CURRENT lOffset将新位置设为从当前位置开始计算的一个偏移
FILE_END lOffset将新位置设为从文件尾开始计算的一个偏移
注解
这个函数与vb的seek语句类似。不要将函数用于通过vb的open命令打开的文件。利用这个函数,可以处理那些长度大于2^64字节的大型文件
SetFileTime
VB声明
Declare Function SetFileTime Lib "kernel32" Alias "SetFileTime" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long
说明
设置文件的创建、访问及上次修改时间
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hFile Long,系统文件句柄
lpCreationTime FILETIME,文件的创建时间
lpLastAccessTime FILETIME,文件上一次访问的时间
lpLastWriteTime FILETIME,文件最近一次修改的时间
SetHandleCount
VB声明
Declare Function SetHandleCount Lib "kernel32" Alias "SetHandleCount" (ByVal wNumber As Long) As Long
说明
这个函数不必在win32下使用;即使使用,也不会有任何效果
This function is not necessary under Win32 and has no effect.
SetVolumeLabel
VB声明
Declare Function SetVolumeLabel Lib "kernel32" Alias "SetVolumeLabelA" (ByVal lpRootPathName As String, ByVal lpVolumeName As String) As Long
说明
设置一个磁盘的卷标(Label)
返回值
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError
参数表
参数 类型及说明
lpRootPathName String,磁盘卷的根路径
lpVolumeName String,指定新卷标。用vbNullString指示删除当前卷名
SystemTimeToFileTime
VB声明
Declare Function SystemTimeToFileTime Lib "kernel32" Alias "SystemTimeToFileTime" (lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME) As Long
说明
根据一个FILETIME结构的内容,载入一个SYSTEMTIME结构
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpSystemTime SYSTEMTIME,包含了系统时间信息的一个结构
lpFileTime FILETIME,用于装载文件时间的一个结构
UnlockFile
VB声明
Declare Function UnlockFile Lib "kernel32" Alias "UnlockFile" (ByVal hFile As Long, ByVal dwFileOffsetLow As Long, ByVal dwFileOffsetHigh As Long, ByVal nNumberOfBytesToUnlockLow As Long, ByVal nNumberOfBytesToUnlockHigh As Long) As Long
说明
解除对一个文件的锁定
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hFile Long,要解锁的文件的句柄
dwFileOffsetLow Long,要解锁文件区域起始位置的低32位地址
dwFileOffsetHigh Long,要解锁文件区域起始位置的高32位地址
nNumberOfBytesToUnlockLow Long,锁定区域中字符数量的低32位值
nNumberOfBytesToUnlockHigh Long,锁定区域中字符数量的高32位值
注解
解锁的文件区域必须与以前锁定时设置的区域完全相符。文件关闭前,应用程序应确定已解除了对任何区域的锁定。参考LockFile了解进一步的情况
UnlockFileEx
VB声明
Declare Function UnlockFileEx Lib "kernel32" Alias "UnlockFileEx" (ByVal hFile As Long, ByVal dwReserved As Long, ByVal nNumberOfBytesToUnlockLow As Long, ByVal nNumberOfBytesToUnlockHigh As Long, lpOverlapped As OVERLAPPED) As Long
说明
解除对一个文件的锁定
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hFile Long,要解锁的文件的句柄
dwReserved Long,未用;设为零
nNumberOfBytesToUnlockLow Long,锁定区域中字符数量的低32位值
nNumberOfBytesToUnlockHigh Long,锁定区域中字符数量的高32位值
lpOverlapped OVERLAPPED,包含了文件中相对于解锁区域起始处的偏移量
注解
解锁的文件区域必须与以前锁定时设置的区域完全相符。文件关闭前,应用程序应确定已解除了对任何区域的锁定。参考LockFileEx了解进一步的情况
UnmapViewOfFile
VB声明
Declare Function UnmapViewOfFile& Lib "kernel32" (ByVal lpBaseAddress As Long)
说明
在当前应用程序的内存地址空间解除对一个文件映射对象的映射
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
lpBaseAddress Long,指定要解除映射的一个文件映射的基准地址。这个地址是早先用MapViewOfFile函数获得的
注解
在vb的api文本查看器里复制的声明如下,请注意参数类型不同
Declare Function UnmapViewOfFile Lib "kernel32" Alias "UnmapViewOfFile" (lpBaseAddress As Any) As Long
VerFindFile
VB声明
Declare Function VerFindFile Lib "version.dll" Alias "VerFindFileA" (ByVal uFlags As Long, ByVal szFileName As String, ByVal szWinDir As String, ByVal szAppDir As String, ByVal szCurDir As String, lpuCurDirLen As Long, ByVal szDestDir As String, lpuDestDirLen As Long) As Long
说明
用这个函数决定一个文件应安装到哪里
返回值
Long,下述值之一:
VFF_CURNEDEST 指出文件现有版本不应在由szDestDir参数指定的目录中,那个目录是由函数建议安装新版本的地方
VFF_FILEINUSE 指出现有文件当时正在使用,而且不要在此时删除
VFF_BUFFTOOSMALL 指出szDestDir或szCurDir缓冲区的一个或两个都太小,不足以容下目录名
参数表
参数 类型及说明
uFlags Long,目前只定义了VFFF_ISSHAREDFILE,它指出文件可由多个应用程序共享。如指定了这个标志,该函数会建议将文件安装到windows或系统目录。如这个参数为零,则函数会建议将文件安装到应用程序目录
szFileName String,要安装的文件名。注意这个字串不应包括文件的路径
szWinDir String,设为windows目录。目录名称是用GetWindowsDirectory函数取得的
szAppDir String,应用程序以及所有相关文件的安装目录的完整路径名称
szCurDir String,指定一个字串缓冲区,用于容纳包含了文件现有版本的目录。如文件版本不存在,则在缓冲区中载入源文件的目录。注意必须为这个缓冲区至少分配MAX_PATH个字符的空间
lpuCurDirLen Long,szCurDir缓冲区的长度。这个函数会设为实际装载到缓冲区的字符数量
szDestDir String,指定一个缓冲区,用于装载应在其中安装新文件的一个目录名。注意至少要为这个缓冲区分配MAX_PATH个字符的空间
lpuDestDirLen Long,szDestDir缓冲区的长度。这个变量会设为实际装载到缓冲区的字符数量
VerInstallFile
VB声明
Declare Function VerInstallFile Lib "version.dll" Alias " VerInstallFileA" (ByVal uFlags As Long, ByVal szSrcFileName As String, ByVal szDestFileName As String, ByVal szSrcDir As String, ByVal szDestDir As String, ByVal szCurDir As String, ByVal szTmpFile As String, lpuTmpFileLen As Long) As Long
说明
用这个函数安装一个文件。它利用由VerFindFile函数提供的信息决定将文件安装到哪里。这个函数首先会比较两个文件的版本标记。如源文件是最新和兼容的版本,则将源文件复制成目标目录的一个临时文件——如文件处于压缩状态,则同时将其解压。随后,将文件的现有版本删除掉,再对临时文件进行重名处理,使符合目标文件名
返回值
Long,返回一个整数,其中包含了VerInstallFile结果常数表里列出的一个或多个常数的组合
参数表
参数 类型及说明
uFlags Long,下述常数值的一个组合:
VIFF_FORCEINSTALL 在不进行版本检查的情况下强制安装源文件
VIFF_DONTDELETEOLD 如文件的现有版本不在目标目录,则不将其删除;如果它在目标目录,就用新文件将其改写(覆盖)
szSrcFileName String,指定要安装文件的名字。注意其中不应包含文件的路径名
szDestFileName String,指定文件安装好后应得到的一个正式名称。这个名称与szSrcFileName通常都是相同的
szSrcDir String,指定源目录。新版文件将从这里复制到目标目录
szDestDir String,指定目标目录。新版文件将从源目录复制到这里。通常为这个参数使用由VerFindFile函数返回的szDestDir缓冲区
szCurDir String,包含了文件当前版本的一个目录。通常将由VerFindFile函数返回的szCurDir缓冲区用于这个参数。如字串为空,则表明系统中不存在文件文件的早期版本
szTmpFile String,用于装载源文件一个临时副本名称的缓冲区。注意必须至少为其分配MAX_PATH个字符的空间
lpuTmpFileLen Long,szTmpFile缓冲区的长度。这个变量会设为装载到缓冲区的实际字符数,其中包括中止用的NULL字符。如指定了VIFF_FORCEINSTALL,且szTmpFile不为零,则临时文件会被更名为由szSrcFileName参数指定的名字
VerLanguageName
VB声明
Declare Function VerLanguageName Lib "kernel32" Alias "VerLanguageNameA" (ByVal wLang As Long, ByVal szLang As String, ByVal nSize As Long) As Long
说明
这个函数能根据16位语言代码获取一种语言的名称。利用版本资源中的语言代码,可以判断出一个文件编写时采用的语言格式。表格“win32支持的语言代码”对win32支持的各种语言代码进行了总结
返回值
Long,装载到szLang缓冲区的字符数量。如缓冲区的容量不够,不能容下完整的名称,则函数返回需要的缓冲区大小。零表示出错
参数表
参数 类型及说明
wLang Long,语言ID
szLang String,用于装载指定语言文本名称的一个缓冲区。这个缓冲区至少应预初始化成nSize+1个字节的长度
nSize Long,szLang缓冲区的大小
VerQueryValue
VB声明
Declare Function VerQueryValue& Lib "version.dll" Alias "VerQueryValueA" (pBlock As Byte, ByVal lpSubBlock As String, lplpBuffer As Long, puLen As Long)
说明
这个函数用于从版本资源中获取信息。调用这个函数前,必须先用GetFileVersionInfo函数获取版本资源信息。这个函数会检查资源信息,并将需要的数据复制到一个缓冲区里
返回值
Long,TRUE(非零)表示成功,如请求的信息不存在,或pBlock不属于有效版本信息,那就返回一个零
参数表
参数 类型及说明
pBlock Byte,指定一个内存块第一个字节的地址。这个内存块包含了由GetFileVersionInfo函数取回的版本数据信息
lpSubBlock String,下述值之一:
"\" 获取文件的VS_FIXEDFILEINFO结构
"\VarFileInfo\Translation" 获取文件的翻译表
"\StringFileInfo\...." 获取文件的字串信息。参考注解
lplpBuffer Long,指定一个Long变量的地址,该变量用于装载一个缓冲区的地址。请求的版本信息最终会装载到那个缓冲区里
puLen Long,指定由lplpBuffer参数引用的数据值的长度,以字节为单位
注解
如lplpBuffer参数为"\StringFileInfo\....",缓冲区里就会载入一个整数数组。每一对整数都代表一种语言和代码页,它们描绘了可用的字串信息。通过用下面这三个部分指定一个字串,从而获得StringFileInfo字串数据:"\StringFileInfo\languagecodepage\stringname",其中languagecodepage(语言代码页)是采用字串形式的一个8字符十六进制数字。如翻译表中的语言代码页条目是&H04090000,那么这个字串就应该是"04090000"。stringname(字串名)指定的是一个字串名。这个参数的一个例子如下:
"\StringFileInfo\04090000\CompanyName"
其他
从vb的api文本查看器复制的声明如下:
Declare Function VerQueryValue Lib "version.dll" Alias "VerQueryValue" (pBlock As Any, ByVal lpSubBlock As String, ByVal lplpBuffer As Long, puLen As Long) As Long
|
|