百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

VBA内置函数声明系列之十三(vba函数大全讲解)

toyiye 2024-07-09 22:45 10 浏览 0 评论

大家好,在64版本OFFICE是最新的版本,我们在学习VBA的时候,API函数也是我们经常要用到的,这讲我们继续分享VBA中64位API函数声明方案,在64版本OFFICE学习VBA时如果还沿用之前的代码会有一些bug,为此我推出了各套教程均是适合64位Office版本和32位Office版本的。为了满足大家的需求,我陆续把在一些API函数如何在64位系统中声明的方法介绍给大家。今日是第十 部分。

Declare PtrSafe Function SetPriorityClass Lib "kernel32" Alias "SetPriorityClass" (ByVal hProcess As LongPtr, ByVal dwPriorityClass As Long) As Long

Declare PtrSafe Function GetPriorityClass Lib "kernel32" Alias "GetPriorityClass" (ByVal hProcess As LongPtr) As Long

#If Win64 Then

Type M128A

Low As LongLong

High As LongLong

End Type

Type XMM_SAVE_AREA32

ControlWord As Integer

StatusWord As Integer

TagWord As Byte

Reserved1 As Byte

ErrorOpcode As Integer

ErrorOffset As Long

ErrorSelector As Integer

Reserved2 As Integer

DataOffset As Long

DataSelector As Integer

Reserved3 As Integer

MxCsr As Long

MxCsr_Mask As Long

FloatRegisters(0 To 7) As M128A

XmmRegisters(0 To 15) As M128A

Reserved4(0 To 95) As Byte

End Type


Type CONTEXT

' Register parameter home addresses

P1Home As LongLong

P2Home As LongLong

P3Home As LongLong

P4Home As LongLong

P5Home As LongLong

P6Home As LongLong


' Control flags

ContextFlags As Long

MxCsr As Long


' Segment Registers and processor flags

SegCs As Integer

SegDs As Integer

SegEs As Integer

SegFs As Integer

SegGs As Integer

SegSs As Integer

EFlags As Long


' Debug registers

Dr0 As LongLong

Dr1 As LongLong

Dr2 As LongLong

Dr3 As LongLong

Dr6 As LongLong

Dr7 As LongLong


' Integer registers

Rax As LongLong

Rcx As LongLong

Rdx As LongLong

Rbx As LongLong

Rsp As LongLong

Rbp As LongLong

Rsi As LongLong

Rdi As LongLong

R8 As LongLong

R9 As LongLong

R10 As LongLong

R11 As LongLong

R12 As LongLong

R13 As LongLong

R14 As LongLong

R15 As LongLong


' Program counter

Rip As LongLong


' Floating point state

FltSave As XMM_SAVE_AREA32


' Vector registers

VectorRegister(0 To 25) As M128A

VectorControl As LongLong


' Special debug control registers

DebugControl As LongLong

LastBranchToRip As LongLong

LastBranchFromRip As LongLong

LastExceptionToRip As LongLong

LastExceptionFromRip As LongLong

End Type

#ElseIf Win32 Then

Const SIZE_OF_80387_REGISTERS = 80

Const MAXIMUM_SUPPORTED_EXTENSION = 512


Type FLOATING_SAVE_AREA

ControlWord As Long

StatusWord As Long

TagWord As Long

ErrorOffset As Long

ErrorSelector As Long

DataOffset As Long

DataSelector As Long

RegisterArea(0 To SIZE_OF_80387_REGISTERS - 1) As Byte

Cr0NpxState As Long

End Type


Type CONTEXT

ContextFlags As Long


Dr0 As Long

Dr1 As Long

Dr2 As Long

Dr3 As Long

Dr6 As Long

Dr7 As Long


FloatSave As FLOATING_SAVE_AREA


SegGs As Long

SegFs As Long

SegEs As Long

SegDs As Long


Edi As Long

Esi As Long

Ebx As Long

Edx As Long

Ecx As Long

Eax As Long


Ebp As Long

Eip As Long

SegCs As Long ' MUST BE SANITIZED

EFlags As Long ' MUST BE SANITIZED

Esp As Long

SegSs As Long


ExtendedRegisters(0 To MAXIMUM_SUPPORTED_EXTENSION - 1) As Byte

End Type

#End If


Type EXCEPTION_POINTERS

pExceptionRecord As EXCEPTION_RECORD

ContextRecord As CONTEXT

End Type


Type LDT_BYTES ' Defined for use in LDT_ENTRY Type

BaseMid As Byte

Flags1 As Byte

Flags2 As Byte

BaseHi As Byte

End Type


Type LDT_ENTRY

LimitLow As Integer

BaseLow As Integer

HighWord As Long ' Can use LDT_BYTES Type

End Type


Declare PtrSafe Sub FatalExit Lib "kernel32" Alias "FatalExit" (ByVal code As Long)

Declare PtrSafe Function GetEnvironmentStrings Lib "kernel32" Alias "GetEnvironmentStringsA" () As String

Declare PtrSafe Sub RaiseException Lib "kernel32" Alias "RaiseException" (ByVal dwExceptionCode As Long, ByVal dwExceptionFlags As Long, ByVal nNumberOfArguments As Long, lpArguments As LongPtr)

Declare PtrSafe Function UnhandledExceptionFilter Lib "kernel32" Alias "UnhandledExceptionFilter" (ExceptionInfo As EXCEPTION_POINTERS) As Long


Declare PtrSafe Function CreateThread Lib "kernel32" Alias "CreateThread" (lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal dwStackSize As LongPtr, lpStartAddress As LongPtr, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As LongPtr

Declare PtrSafe Function CreateRemoteThread Lib "kernel32" Alias "CreateRemoteThread" (ByVal hProcess As LongPtr, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal dwStackSize As LongPtr, lpStartAddress As LongPtr, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As LongPtr

Declare PtrSafe Function GetCurrentThread Lib "kernel32" Alias "GetCurrentThread" () As LongPtr

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

Declare PtrSafe Function SetThreadPriority Lib "kernel32" Alias "SetThreadPriority" (ByVal hThread As LongPtr, ByVal nPriority As Long) As Long

Declare PtrSafe Function GetThreadPriority Lib "kernel32" Alias "GetThreadPriority" (ByVal hThread As LongPtr) As Long

Declare PtrSafe Function GetThreadTimes Lib "kernel32" Alias "GetThreadTimes" (ByVal hThread As LongPtr, lpCreationTime As FILETIME, lpExitTime As FILETIME, lpKernelTime As FILETIME, lpUserTime As FILETIME) As Long

Declare PtrSafe Sub ExitThread Lib "kernel32" Alias "ExitThread" (ByVal dwExitCode As Long)

Declare PtrSafe Function TerminateThread Lib "kernel32" Alias "TerminateThread" (ByVal hThread As LongPtr, ByVal dwExitCode As Long) As Long

Declare PtrSafe Function GetExitCodeThread Lib "kernel32" Alias "GetExitCodeThread" (ByVal hThread As LongPtr, lpExitCode As Long) As Long

Declare PtrSafe Function GetThreadSelectorEntry Lib "kernel32" Alias "GetThreadSelectorEntry" (ByVal hThread As LongPtr, ByVal dwSelector As Long, lpSelectorEntry As LDT_ENTRY) As Long


' COMM declarations

Declare PtrSafe Function SetCommState Lib "kernel32" Alias "SetCommState" (ByVal hCommDev As LongPtr, lpDCB As DCB) As Long

Declare PtrSafe Function SetCommTimeouts Lib "kernel32" Alias "SetCommTimeouts" (ByVal hFile As LongPtr, lpCommTimeouts As COMMTIMEOUTS) As Long

Declare PtrSafe Function GetCommState Lib "kernel32" Alias "GetCommState" (ByVal nCid As LongPtr, lpDCB As DCB) As Long


分享成果,随喜正能量

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码