VBA 64位API声明语句第019讲

跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高自己的工作效率,可以有时间多陪陪父母,多陪陪家人,何乐而不为呢?我的教程一共九套,从入门开始一直讲到程序的分发,是学习利用VBA的实用教程。这份API资料是随高级教程赠送的。这些内容是MS的权威资料,看似枯燥,但对于想学习API函数的朋友是非常有用的。

这讲我们继续学习VBA 64位API声明语句第019讲

【分享成果,随喜正能量】喝自己的茶,读自己的书是一场漫长的修行。读书,更是安顿心灵的重要途径。读书不仅能提高人的气质和修养,而且能滋养人的精神。​​​

VBA 64位API声明语句第019讲

Declare PtrSafe Function BackupRead Lib "kernel32" Alias "BackupRead" (ByVal hFile As LongPtr, lpBuffer As Byte, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal bAbort As Long, ByVal bProcessSecurity As Long, lpContext As Any) As Long

Declare PtrSafe Function BackupSeek Lib "kernel32" Alias "BackupSeek" (ByVal hFile As LongPtr, ByVal dwLowBytesToSeek As Long, ByVal dwHighBytesToSeek As Long, lpdwLowByteSeeked As Long, lpdwHighByteSeeked As Long, lpContext As LongPtr) As Long

Declare PtrSafe Function BackupWrite Lib "kernel32" Alias "BackupWrite" (ByVal hFile As LongPtr, lpBuffer As Byte, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal bAbort As Long, ByVal bProcessSecurity As Long, lpContext As LongPtr) As Long

Type LARGE_INTEGER

LowPart As Long

HighPart As Long

End Type

' Stream ID type

Type WIN32_STREAM_ID

dwStreamID As Long

dwStreamAttributes As Long

dwStreamSizeLow As Long

dwStreamSizeHigh As Long

dwStreamNameSize As Long

cStreamName As Byte

End Type

' Stream IDs

Const BACKUP_DATA = &H1

Const BACKUP_EA_DATA = &H2

Const BACKUP_SECURITY_DATA = &H3

Const BACKUP_ALTERNATE_DATA = &H4

Const BACKUP_LINK = &H5

' Stream Attributes

Const STREAM_MODIFIED_WHEN_READ = &H1

Const STREAM_CONTAINS_SECURITY = &H2

' Dual Mode API below this line. Dual Mode Types also included.

Const STARTF_USESHOWWINDOW = &H1

Const STARTF_USESIZE = &H2

Const STARTF_USEPOSITION = &H4

Const STARTF_USECOUNTCHARS = &H8

Const STARTF_USEFILLATTRIBUTE = &H10

Const STARTF_RUNFULLSCREEN = &H20 ' ignored for non-x86 platforms

Const STARTF_FORCEONFEEDBACK = &H40

Const STARTF_FORCEOFFFEEDBACK = &H80

Const STARTF_USESTDHANDLES = &H100

Type STARTUPINFO

cb As Long

lpReserved As String

lpDesktop As String

lpTitle As String

dwX As Long

dwY As Long

dwXSize As Long

dwYSize As Long

dwXCountChars As Long

dwYCountChars As Long

dwFillAttribute As Long

dwFlags As Long

wShowWindow As Integer

cbReserved2 As Integer

lpReserved2 As LongPtr

hStdInput As LongPtr

hStdOutput As LongPtr

hStdError As LongPtr

End Type

Const SHUTDOWN_NORETRY = &H1

Type WIN32_FIND_DATA

dwFileAttributes As Long

ftCreationTime As FILETIME

ftLastAccessTime As FILETIME

ftLastWriteTime As FILETIME

nFileSizeHigh As Long

nFileSizeLow As Long

dwReserved0 As Long

dwReserved1 As Long

cFileName(0 To MAX_PATH - 1) As Byte

cAlternate(0 To 13) As Byte

End Type

Declare PtrSafe Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (lpMutexAttributes As SECURITY_ATTRIBUTES, ByVal bInitialOwner As Long, ByVal lpName As String) As LongPtr

Declare PtrSafe Function OpenMutex Lib "kernel32" Alias "OpenMutexA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As LongPtr

Declare PtrSafe Function CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As SECURITY_ATTRIBUTES, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As LongPtr

Declare PtrSafe Function OpenEvent Lib "kernel32" Alias "OpenEventA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As LongPtr

Declare PtrSafe Function CreateSemaphore Lib "kernel32" Alias "CreateSemaphoreA" (lpSemaphoreAttributes As SECURITY_ATTRIBUTES, ByVal lInitialCount As Long, ByVal lMaximumCount As Long, ByVal lpName As String) As LongPtr

Declare PtrSafe Function OpenSemaphore Lib "kernel32" Alias "OpenSemaphoreA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As LongPtr

Declare PtrSafe Function CreateFileMapping Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile As LongPtr, lpFileMappigAttributes As SECURITY_ATTRIBUTES, ByVal flProtect As Long, ByVal dwMaximumSizeHigh As Long, ByVal dwMaximumSizeLow As Long, ByVal lpName As String) As LongPtr

Declare PtrSafe Function OpenFileMapping Lib "kernel32" Alias "OpenFileMappingA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As LongPtr

Declare PtrSafe Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

Declare PtrSafe Function IsBadReadPtr Lib "kernel32" Alias "IsBadReadPtr" (lp As Any, ByVal ucb As LongPtr) As Long

Declare PtrSafe Function IsBadWritePtr Lib "kernel32" Alias "IsBadWritePtr" (lp As Any, ByVal ucb As LongPtr) As Long

Declare PtrSafe Function IsBadStringPtr Lib "kernel32" Alias "IsBadStringPtrA" (ByVal lpsz As String, ByVal ucchMax As LongPtr) As Long

Declare PtrSafe Function IsBadHugeReadPtr Lib "kernel32" Alias "IsBadHugeReadPtr" (lp As Any, ByVal ucb As LongPtr) As Long

Declare PtrSafe Function IsBadHugeWritePtr Lib "kernel32" Alias "IsBadHugeWritePtr" (lp As Any, ByVal ucb As LongPtr) As Long

Declare PtrSafe Function LookupAccountSid Lib "advapi32.dll" Alias "LookupAccountSidA" (ByVal lpSystemName As String, Sid As Any, ByVal name As String, cbName As Long, ByVal ReferencedDomainName As String, cbReferencedDomainName As Long, peUse As Integer) As Long

Declare PtrSafe Function LookupAccountName Lib "advapi32.dll" Alias "LookupAccountNameA" (ByVal lpSystemName As String, ByVal lpAccountName As String, ByVal Sid As LongPtr, cbSid As Long, ByVal ReferencedDomainName As String,

当学员学习到高级阶段,如果引用API,这个资料可以直接查到64位写法。大多数情况下我们是将低版本的程序文件升级到高版本,这时您就不必为如下的错误提示所困扰了:

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

相关推荐
VBA63372 天前
VBA数据库解决方案第二十九讲 如何批量修改数据库中的数据
vba
fengyehongWorld4 天前
VBA 操作PowerQuery表格和带名字的表格
excel·vba
Access开发易登软件18 天前
在 Access 实现标签输入控件:VBA + HTML 混合开发实战
前端·数据库·信息可视化·html·excel·vba·access
VBA633720 天前
如何学习VBA之3.4 初级阶段自测题
vba
yivifu21 天前
使用VBA区分简体中文段落和繁体中文段落的方法
word·excel·vba
VBA633724 天前
VBA之Word应用:在Word中,什么是Range对象
vba
LAM LAB1 个月前
【VBA】Excel指定单元格范围内字体设置样式,处理导出课表单元格
excel·vba
LAM LAB1 个月前
【VBA】Excel实现批量对单元格替换、加粗文字
excel·vba
VBA63372 个月前
VBA技术资料MF432:数组排序
vba