当前位置: 首页 > news >正文

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实践经验,全部浓缩在下面的各个教程中:

http://www.jsqmd.com/news/584890/

相关文章:

  • 1元能买多少AI Token?主流大模型API价格全对比
  • CPU fallback方案:Qwen3-4B-Instruct-2507低算力环境适配
  • 2026年口碑好的北京防盗门窗/北京密封门窗/北京工装门窗精选推荐公司 - 行业平台推荐
  • Matlab科学计算与AI结合:调用Z-Image-Turbo模型进行数据可视化增强
  • 2026年口碑好的全自动年糕机/青岛全自动年糕机/韩式年糕机/芝士年糕机高口碑品牌推荐 - 行业平台推荐
  • 身份治理技术:从手动到AI的变革,实现Linux的ssh免密登录实操保姆级教程。
  • Chandra效果实测:100轮连续中文对话稳定性与上下文保持能力验证
  • Ostrakon-VL-8B跨平台应用:基于Qt开发桌面端智能餐饮管理软件
  • OpenClaw+AutoHotkey联动:Qwen3.5-9B增强传统自动化
  • OpenClaw智能巡检:Qwen3.5-9B监控农业大棚摄像截图
  • 小白也能玩转多模态AI!Qwen3-VL-4B Pro快速部署与上手体验
  • 2026年评价高的印字年糕机/水磨年糕机/全自动年糕机/空心年糕机主流厂家对比评测 - 行业平台推荐
  • MTK新工程创建与调试全攻略,人形机器人的发展历程、技术演进与未来图景。
  • CLIP ViT-H-14图像编码服务实战:构建可解释AI系统中的视觉注意力模块
  • 收藏 | 程序员小白轻松入门:企业级大模型掌握私有知识的RAG实战指南
  • Windows物理机,Ubuntu虚拟机和麒麟系统开发板之间配置共享文件夹
  • 李慕婉-仙逆-造相Z-Turbo模型安装包制作教程
  • 大学生沉迷网络游戏的危害
  • 2026年评价高的短视频获客/企业短视频运营/无锡短视频代运营/短视频代运营本地公司推荐 - 品牌宣传支持者
  • 5分钟搞定!cv_unet_image-matting图像抠图WebUI快速抠图技巧
  • PP-DocLayoutV3在UI/UX设计中的应用:自动生成设计规范文档
  • 2026年靠谱的无锡短视频/短视频拍摄剪辑/工厂短视频运营/企业短视频运营专业公司推荐 - 品牌宣传支持者
  • AcousticSense AI多场景:智能耳机中实时流派识别+自适应EQ参数动态调节
  • YOLOFuse实战:复杂环境下目标检测精度提升实测
  • sourcetree 或 vsCode提交代码报错:/usr/bin/env: ‘node’: No such file or directory
  • 像素剧本圣殿步骤详解:如何导出带角色关系图谱的交互式剧本HTML文档
  • LFM2.5-1.2B-Thinking-GGUF在软件测试中的应用:自动化生成测试用例与代码审查
  • HUNYUAN-MT模型部署常见错误403 Forbidden排查与解决
  • JWT与Session比较
  • Llama Factory实战:手把手教你用Web UI微调自己的AI助手