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 LongDeclare 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 LongDeclare 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 LongType LARGE_INTEGERLowPart As LongHighPart As LongEnd Type Stream ID typeType WIN32_STREAM_IDdwStreamID As LongdwStreamAttributes As LongdwStreamSizeLow As LongdwStreamSizeHigh As LongdwStreamNameSize As LongcStreamName As ByteEnd Type Stream IDsConst BACKUP_DATA H1Const BACKUP_EA_DATA H2Const BACKUP_SECURITY_DATA H3Const BACKUP_ALTERNATE_DATA H4Const BACKUP_LINK H5 Stream AttributesConst STREAM_MODIFIED_WHEN_READ H1Const STREAM_CONTAINS_SECURITY H2 Dual Mode API below this line. Dual Mode Types also included.Const STARTF_USESHOWWINDOW H1Const STARTF_USESIZE H2Const STARTF_USEPOSITION H4Const STARTF_USECOUNTCHARS H8Const STARTF_USEFILLATTRIBUTE H10Const STARTF_RUNFULLSCREEN H20 ignored for non-x86 platformsConst STARTF_FORCEONFEEDBACK H40Const STARTF_FORCEOFFFEEDBACK H80Const STARTF_USESTDHANDLES H100Type STARTUPINFOcb As LonglpReserved As StringlpDesktop As StringlpTitle As StringdwX As LongdwY As LongdwXSize As LongdwYSize As LongdwXCountChars As LongdwYCountChars As LongdwFillAttribute As LongdwFlags As LongwShowWindow As IntegercbReserved2 As IntegerlpReserved2 As LongPtrhStdInput As LongPtrhStdOutput As LongPtrhStdError As LongPtrEnd TypeConst SHUTDOWN_NORETRY H1Type WIN32_FIND_DATAdwFileAttributes As LongftCreationTime As FILETIMEftLastAccessTime As FILETIMEftLastWriteTime As FILETIMEnFileSizeHigh As LongnFileSizeLow As LongdwReserved0 As LongdwReserved1 As LongcFileName(0 To MAX_PATH - 1) As BytecAlternate(0 To 13) As ByteEnd TypeDeclare PtrSafe Function CreateMutex Lib kernel32 Alias CreateMutexA (lpMutexAttributes As SECURITY_ATTRIBUTES, ByVal bInitialOwner As Long, ByVal lpName As String) As LongPtrDeclare PtrSafe Function OpenMutex Lib kernel32 Alias OpenMutexA (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As LongPtrDeclare PtrSafe Function CreateEvent Lib kernel32 Alias CreateEventA (lpEventAttributes As SECURITY_ATTRIBUTES, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As LongPtrDeclare PtrSafe Function OpenEvent Lib kernel32 Alias OpenEventA (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As LongPtrDeclare PtrSafe Function CreateSemaphore Lib kernel32 Alias CreateSemaphoreA (lpSemaphoreAttributes As SECURITY_ATTRIBUTES, ByVal lInitialCount As Long, ByVal lMaximumCount As Long, ByVal lpName As String) As LongPtrDeclare PtrSafe Function OpenSemaphore Lib kernel32 Alias OpenSemaphoreA (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As LongPtrDeclare 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 LongPtrDeclare PtrSafe Function OpenFileMapping Lib kernel32 Alias OpenFileMappingA (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As LongPtrDeclare PtrSafe Function GetLogicalDriveStrings Lib kernel32 Alias GetLogicalDriveStringsA (ByVal nBufferLength As Long, ByVal lpBuffer As String) As LongDeclare PtrSafe Function IsBadReadPtr Lib kernel32 Alias IsBadReadPtr (lp As Any, ByVal ucb As LongPtr) As LongDeclare PtrSafe Function IsBadWritePtr Lib kernel32 Alias IsBadWritePtr (lp As Any, ByVal ucb As LongPtr) As LongDeclare PtrSafe Function IsBadStringPtr Lib kernel32 Alias IsBadStringPtrA (ByVal lpsz As String, ByVal ucchMax As LongPtr) As LongDeclare PtrSafe Function IsBadHugeReadPtr Lib kernel32 Alias IsBadHugeReadPtr (lp As Any, ByVal ucb As LongPtr) As LongDeclare PtrSafe Function IsBadHugeWritePtr Lib kernel32 Alias IsBadHugeWritePtr (lp As Any, ByVal ucb As LongPtr) As LongDeclare 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 LongDeclare 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实践经验全部浓缩在下面的各个教程中