VBA 64位API声明语句第012讲

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

这讲我们继续学习VBA 64位API声明语句第012讲,这些内容是MS的权威资料,看似枯燥,但对于想学习API函数的朋友是非常有用的。

【分享成果,随喜正能量】222苦非苦,乐非乐,只是一时的执念而已。执于一念,将受困于一念;一念放下,会自在于心间。物随心转,境由心造,烦恼皆由心生。有些人,有些事,是可遇不可求的,强求只有痛苦。既然这样,就放宽心态,顺其自然。无论何时何地,都要拥有一颗安闲自在的心,保持豁达的心态。

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

Declare PtrSafe Function ContinueDebugEvent Lib "kernel32" Alias "ContinueDebugEvent" (ByVal dwProcessId As Long, ByVal dwThreadId As Long, ByVal dwContinueStatus As Long) As Long

Declare PtrSafe Function DebugActiveProcess Lib "kernel32" Alias "DebugActiveProcess" (ByVal dwProcessId As Long) As Long

Type CRITICAL_SECTION

DebugInfo As LongPtr

LockCount As Long

RecursionCount As Long

OwningThread As LongPtr

LockSemaphore As LongPtr

SpinCount As LongPtr

End Type

Declare PtrSafe Sub InitializeCriticalSection Lib "kernel32" Alias "InitializeCriticalSection" (lpCriticalSection As CRITICAL_SECTION)

Declare PtrSafe Sub EnterCriticalSection Lib "kernel32" Alias "EnterCriticalSection" (lpCriticalSection As CRITICAL_SECTION)

Declare PtrSafe Sub LeaveCriticalSection Lib "kernel32" Alias "LeaveCriticalSection" (lpCriticalSection As CRITICAL_SECTION)

Declare PtrSafe Sub DeleteCriticalSection Lib "kernel32" Alias "DeleteCriticalSection" (lpCriticalSection As CRITICAL_SECTION)

Declare PtrSafe Function SetEvent Lib "kernel32" Alias "SetEvent" (ByVal hEvent As LongPtr) As Long

Declare PtrSafe Function ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As LongPtr) As Long

Declare PtrSafe Function PulseEvent Lib "kernel32" Alias "PulseEvent" (ByVal hEvent As LongPtr) As Long

Declare PtrSafe Function ReleaseSemaphore Lib "kernel32" Alias "ReleaseSemaphore" (ByVal hSemaphore As LongPtr, ByVal lReleaseCount As Long, lpPreviousCount As Long) As Long

Declare PtrSafe Function ReleaseMutex Lib "kernel32" Alias "ReleaseMutex" (ByVal hMutex As LongPtr) As Long

Declare PtrSafe Function WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As LongPtr, ByVal dwMilliseconds As Long) As Long

Declare PtrSafe Function WaitForMultipleObjects Lib "kernel32" Alias "WaitForMultipleObjects" (ByVal nCount As Long, lpHandles As LongPtr, ByVal bWaitAll As Long, ByVal dwMilliseconds As Long) As Long

Declare PtrSafe Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

Declare PtrSafe Sub OutputDebugString Lib "kernel32" Alias "OutputDebugStringA" (ByVal lpOutputString As String)

Declare PtrSafe Function GetVersion Lib "kernel32" Alias "GetVersion" () As Long

Declare PtrSafe Function OpenFile Lib "kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long

' GetTempFileName() Flags

'

Const TF_FORCEDRIVE = &H80

Declare PtrSafe Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long

Declare PtrSafe Function SetHandleCount Lib "kernel32" Alias "SetHandleCount" (ByVal wNumber As Long) As Long

Declare PtrSafe Function GetLogicalDrives Lib "kernel32" Alias "GetLogicalDrives" () As Long

Declare PtrSafe Function LockFile Lib "kernel32" Alias "LockFile" (ByVal hFile As LongPtr, ByVal dwFileOffsetLow As Long, ByVal dwFileOffsetHigh As Long, ByVal nNumberOfBytesToLockLow As Long, ByVal nNumberOfBytesToLockHigh As Long) As Long

Declare PtrSafe Function UnlockFile Lib "kernel32" Alias "UnlockFile" (ByVal hFile As LongPtr, ByVal dwFileOffsetLow As Long, ByVal dwFileOffsetHigh As Long, ByVal nNumberOfBytesToUnlockLow As Long, ByVal nNumberOfBytesToUnlockHigh As Long) As Long

Declare PtrSafe Function LockFileEx Lib "kernel32" Alias "LockFileEx" (ByVal hFile As LongPtr, ByVal dwFlags As Long, ByVal dwReserved As Long, ByVal nNumberOfBytesToLockLow As Long, ByVal nNumberOfBytesToLockHigh As Long, lpOverlapped As OVERLAPPED) As Long

Const LOCKFILE_FAIL_IMMEDIATELY = &H1

Const LOCKFILE_EXCLUSIVE_LOCK = &H2

Declare PtrSafe Function UnlockFileEx Lib "kernel32" Alias "UnlockFileEx" (ByVal hFile As LongPtr, ByVal dwReserved As Long, ByVal nNumberOfBytesToUnlockLow As Long, ByVal nNumberOfBytesToUnlockHigh As Long, lpOverlapped As OVERLAPPED) As Long

Type BY_HANDLE_FILE_INFORMATION

dwFileAttributes As Long

ftCreationTime As FILETIME

ftLastAccessTime As FILETIME

ftLastWriteTime As FILETIME

dwVolumeSerialNumber As Long

nFileSizeHigh As Long

nFileSizeLow As Long

nNumberOfLinks As Long

nFileIndexHigh As Long

nFileIndexLow As Long

End Type

Declare PtrSafe Function GetFileInformationByHandle Lib "kernel32" Alias "GetFileInformationByHandle" (ByVal hFile As LongPtr, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long

Declare PtrSafe Function GetFileType Lib "kernel32" Alias "GetFileType" (ByVal hFile As LongPtr) As Long

Declare PtrSafe Function GetFileSize Lib "kernel32" Alias "GetFileSize" (ByVal hFile As LongPtr, lpFileSizeHigh As Long) As Long

Declare PtrSafe Function GetStdHandle Lib "kernel32" Alias "GetStdHandle" (ByVal nStdHandle As Long) As LongPtr

Declare PtrSafe Function SetStdHandle Lib "kernel32" Alias "SetStdHandle" (ByVal nStdHandle As Long, ByVal nHandle As LongPtr) As Long

Declare PtrSafe Function WriteFile Lib "kernel32" Alias "WriteFile" (ByVal hFile As LongPtr, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As OVERLAPPED) As Long

Declare PtrSafe Function ReadFile Lib "kernel32" Alias "ReadFile" (ByVal hFile As LongPtr, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long

Declare PtrSafe Function FlushFileBuffers Lib "kernel32" Alias "FlushFileBuffers" (ByVal hFile As LongPtr) As Long

Declare PtrSafe Function DeviceIoControl Lib "kernel32" Alias "DeviceIoControl" (ByVal hDevice As LongPtr, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, lpOverlapped As OVERLAPPED) As Long

Declare PtrSafe Function SetEndOfFile Lib "kernel32" Alias "SetEndOfFile" (ByVal hFile As LongPtr) As Long

Declare PtrSafe Function SetFilePointer Lib "kernel32" Alias "SetFilePointer" (ByVal hFile As LongPtr, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long

Declare PtrSafe Function FindClose Lib "kernel32" Alias "FindClose" (ByVal hFindFile As LongPtr) As Long

Declare PtrSafe Function GetFileTime Lib "kernel32" Alias "GetFileTime" (ByVal hFile As LongPtr, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long

Declare PtrSafe Function SetFileTime Lib "kernel32" Alias "SetFileTime" (ByVal hFile As LongPtr, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long

Declare PtrSafe Function CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As LongPtr) As Long

Declare PtrSafe Function DuplicateHandle Lib "kernel32" Alias "DuplicateHandle" (ByVal hSourceProcessHandle As LongPtr, ByVal hSourceHandle As LongPtr, ByVal hTargetProcessHandle As LongPtr, lpTargetHandle As LongPtr, ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwOptions As Long) As Long

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

特别声明:[VBA 64位API声明语句第012讲] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

澳网综合:张帅晋级女双四强 焦科维奇、辛纳会师半决赛(张帅晋级澳网32强)

今日霍州墨尔本1月28日电(记者 岳晨星、徐海静)2026年澳大利亚网球公开赛28日结束多场四分之一决赛争夺,中国老将张帅搭档比利时选手梅尔滕斯晋级女双四强,10届赛会冠军焦科维奇在对手穆塞蒂伤退后涉险过关,将与卫冕冠军辛纳争夺一张决赛门票。

澳网综合:张帅晋级女双四强 焦科维奇、辛纳会师半决赛(张帅晋级澳网32强)

OpenAI揭秘基于GPT - 5.2的内部数据分析工具,可解析超600PB数据(open gate技术)

1 月 31 日消息,OpenAI 官方前天发布博文,揭秘公司内部的 AI 数据分析工具。 在此援引官方新闻稿,这套工具完全是内部使用的定制产品,围绕 OpenAI 数据体系、权限模型以及工…

OpenAI揭秘基于GPT - 5.2的内部数据分析工具,可解析超600PB数据(open gate技术)

『谢娜』静音悼念魏文彬!网友:原来我们的童年快乐,都有这大佬撑腰(『谢娜』主持的唱歌节目音痴)

今天『娱乐圈』️最大的一次破防,不是流量塌房,也不是哪档综艺上新,而是咱们的快乐显眼包天花板『谢娜』,居然罕见地静音营业——她默默转发了魏文彬先生的讣告,用最朴素的方式悼念这位藏在我们童年笑声背后的快乐批发商。网友们的…

『谢娜』静音悼念魏文彬!网友:原来我们的童年快乐,都有这大佬撑腰(『谢娜』主持的唱歌节目音痴)

『张天爱』的身材简直“好到爆”!穿豆绿色无袖长礼服大秀美背美翻天(『张天爱』的身材多少斤)

选择的这款礼服不仅从色彩上显得她娇俏减龄,比实际年龄看起来要年轻10岁! 首先是裙子👗的挂脖设计,凸显了优越的肩颈线!在发型设计上,『张天爱』也紧跟时代潮流,这次的半扎发造型格外的特别,头顶的蓬松设计和毛绒绒的发际…

『张天爱』的身材简直“好到爆”!穿豆绿色无袖长礼服大秀美背美翻天(『张天爱』的身材多少斤)

交警回应许广高速随岳段货车起火:无人员伤亡,路段已恢复通行(许广高速交警大队在哪里)

2月5日,多位网友在『社交平台』发布视频称,河南许昌至广州高速公路(简称许广高速)随岳段(随州至岳阳段)K546处附近,疑似有大货车发生自燃,造成现场交通拥堵,道路通行一度中断。多段网传视频画面显示,事发高速路段上,一辆大货车被大火包围,现场浓

交警回应许广高速随岳段货车起火:无人员伤亡,路段已恢复通行(许广高速交警大队在哪里)