VBA 64位API声明语句第011讲

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

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

【分享成果,随喜正能量】192 如果一个人能看破红尘,特别是如果能看破贪欲的本质,他的身心一定会非常自在,外在的气色会很好,内心也会非常安乐。如果一个人总是贪执某人,那他的戒律肯定不会清净,他的相貌、气色也会很差。。

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

Const S_SERDMD = (-10) ' Invalid mode

Const S_SERDSH = (-11) ' Invalid shape

Const S_SERDPT = (-12) ' Invalid pitch

Const S_SERDFQ = (-13) ' Invalid frequency

Const S_SERDDR = (-14) ' Invalid duration

Const S_SERDSR = (-15) ' Invalid source

Const S_SERDST = (-16) ' Invalid state

Const NMPWAIT_WAIT_FOREVER = &HFFFFFFFF

Const NMPWAIT_NOWAIT = &H1

Const NMPWAIT_USE_DEFAULT_WAIT = &H0

Const FS_CASE_IS_PRESERVED = FILE_CASE_PRESERVED_NAMES

Const FS_CASE_SENSITIVE = FILE_CASE_SENSITIVE_SEARCH

Const FS_UNICODE_STORED_ON_DISK = FILE_UNICODE_ON_DISK

Const FS_PERSISTENT_ACLS = FILE_PERSISTENT_ACLS

Const SECTION_QUERY = &H1

Const SECTION_MAP_WRITE = &H2

Const SECTION_MAP_READ = &H4

Const SECTION_MAP_EXECUTE = &H8

Const SECTION_EXTEND_SIZE = &H10

Const SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED Or SECTION_QUERY Or SECTION_MAP_WRITE Or SECTION_MAP_READ Or SECTION_MAP_EXECUTE Or SECTION_EXTEND_SIZE

Const FILE_MAP_COPY = SECTION_QUERY

Const FILE_MAP_WRITE = SECTION_MAP_WRITE

Const FILE_MAP_READ = SECTION_MAP_READ

Const FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS

' OpenFile() Flags

Const OF_READ = &H0

Const OF_WRITE = &H1

Const OF_READWRITE = &H2

Const OF_SHARE_COMPAT = &H0

Const OF_SHARE_EXCLUSIVE = &H10

Const OF_SHARE_DENY_WRITE = &H20

Const OF_SHARE_DENY_READ = &H30

Const OF_SHARE_DENY_NONE = &H40

Const OF_PARSE = &H100

Const OF_DELETE = &H200

Const OF_VERIFY = &H400

Const OF_CANCEL = &H800

Const OF_CREATE = &H1000

Const OF_PROMPT = &H2000

Const OF_EXIST = &H4000

Const OF_REOPEN = &H8000&

Const OFS_MAXPATHNAME = 128

' OpenFile() Structure

Type OFSTRUCT

cBytes As Byte

fFixedDisk As Byte

nErrCode As Integer

Reserved1 As Integer

Reserved2 As Integer

szPathName(0 To OFS_MAXPATHNAME - 1) As Byte

End Type

Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As LongPtr)

Const PROCESSOR_INTEL_386 = 386

Const PROCESSOR_INTEL_486 = 486

Const PROCESSOR_INTEL_PENTIUM = 586

Const PROCESSOR_MIPS_R4000 = 4000

Const PROCESSOR_ALPHA_21064 = 21064

Const PROCESSOR_ARCHITECTURE_INTEL = 0

Const PROCESSOR_ARCHITECTURE_MIPS = 1

Const PROCESSOR_ARCHITECTURE_ALPHA = 2

Const PROCESSOR_ARCHITECTURE_PPC = 3

Const PROCESSOR_ARCHITECTURE_UNKNOWN = &hFFFF

' Flags for DrawFrameControl

Const DFC_CAPTION = 1

Const DFC_MENU = 2

Const DFC_SCROLL = 3

Const DFC_BUTTON = 4

Const DFCS_CAPTIONCLOSE = &H0

Const DFCS_CAPTIONMIN = &H1

Const DFCS_CAPTIONMAX = &H2

Const DFCS_CAPTIONRESTORE = &H3

Const DFCS_CAPTIONHELP = &H4

Const DFCS_MENUARROW = &H0

Const DFCS_MENUCHECK = &H1

Const DFCS_MENUBULLET = &H2

Const DFCS_MENUARROWRIGHT = &H4

Const DFCS_SCROLLUP = &H0

Const DFCS_SCROLLDOWN = &H1

Const DFCS_SCROLLLEFT = &H2

Const DFCS_SCROLLRIGHT = &H3

Const DFCS_SCROLLCOMBOBOX = &H5

Const DFCS_SCROLLSIZEGRIP = &H8

Const DFCS_SCROLLSIZEGRIPRIGHT = &H10

Const DFCS_BUTTONCHECK = &H0

Const DFCS_BUTTONRADIOIMAGE = &H1

Const DFCS_BUTTONRADIOMASK = &H2

Const DFCS_BUTTONRADIO = &H4

Const DFCS_BUTTON3STATE = &H8

Const DFCS_BUTTONPUSH = &H10

Const DFCS_INACTIVE = &H100

Const DFCS_PUSHED = &H200

Const DFCS_CHECKED = &H400

Const DFCS_ADJUSTRECT = &H2000

Const DFCS_FLAT = &H4000

Const DFCS_MONO = &H8000&

#If Win64 Then

Declare PtrSafe Function InterlockedIncrement64 Lib "kernel32" Alias "InterlockedIncrement64" (lpAddend As LongLong) As LongLong

Declare PtrSafe Function InterlockedDecrement64 Lib "kernel32" Alias "InterlockedDecrement64" (lpAddend As LongLong) As LongLong

Declare PtrSafe Function InterlockedExchange64 Lib "kernel32" Alias "InterlockedExchange64" (Target As LongLong, ByVal Value As LongLong) As LongLong

#End If

Declare PtrSafe Function InterlockedIncrement Lib "kernel32" Alias "InterlockedIncrement" (lpAddend As Long) As Long

Declare PtrSafe Function InterlockedDecrement Lib "kernel32" Alias "InterlockedDecrement" (lpAddend As Long) As Long

Declare PtrSafe Function InterlockedExchange Lib "kernel32" Alias "InterlockedExchange" (Target As Long, ByVal Value As Long) As Long

' Loader Routines

Declare PtrSafe Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As LongPtr, ByVal lpFileName As String, ByVal nSize As Long) As Long

Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As LongPtr

Declare PtrSafe Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As SECURITY_ATTRIBUTES, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long

Declare PtrSafe Function SetProcessShutdownParameters Lib "kernel32" Alias "SetProcessShutdownParameters" (ByVal dwLevel As Long, ByVal dwFlags As Long) As Long

Declare PtrSafe Function GetProcessShutdownParameters Lib "kernel32" Alias "GetProcessShutdownParameters" (lpdwLevel As Long, lpdwFlags As Long) As Long

Declare PtrSafe Sub FatalAppExit Lib "kernel32" Alias "FatalAppExitA" (ByVal uAction As Long, ByVal lpMessageText As String)

Declare PtrSafe Sub GetStartupInfo Lib "kernel32" Alias "GetStartupInfoA" (lpStartupInfo As STARTUPINFO)

Declare PtrSafe Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As String

Declare PtrSafe Function GetEnvironmentVariable Lib "kernel32" Alias "GetEnvironmentVariableA" (ByVal lpName As String, ByVal lpBuffer As String, ByVal nSize As Long) As Long

Declare PtrSafe Function SetEnvironmentVariable Lib "kernel32" Alias "SetEnvironmentVariableA" (ByVal lpName As String, ByVal lpValue As String) As Long

Declare PtrSafe Function ExpandEnvironmentStrings Lib "kernel32" Alias "ExpandEnvironmentStringsA" (ByVal lpSrc As String, ByVal lpDst As String, ByVal nSize As Long) As Long

Declare PtrSafe Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As LongPtr

Declare PtrSafe Function LoadLibraryEx Lib "kernel32" Alias "LoadLibraryExA" (ByVal lpLibFileName As String, ByVal hFile As LongPtr, ByVal dwFlags As Long) As LongPtr

Const DONT_RESOLVE_DLL_REFERENCES = &H1

Declare PtrSafe Function LoadModule Lib "kernel32" Alias "LoadModule" (ByVal lpModuleName As String, lpParameterBlock As Any) As Long

Declare PtrSafe Function FreeLibrary Lib "kernel32" Alias "FreeLibrary" (ByVal hLibModule As LongPtr) As Long

Declare PtrSafe Function WinExec Lib "kernel32" Alias "WinExec" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long

Declare PtrSafe Sub DebugBreak Lib "kernel32" Alias "DebugBreak" ()

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值