64位Office API语句讲座89

【分享成果,随喜正能量】有些时候感觉到自己不很幸福,是因为你不敢放弃的太多。哪有什么港湾留存过往,哪有什么驿站能够寄存伤感?。

跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望职场和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高自己的工作效率,可以有时间多陪陪父母,多陪陪家人,何乐而不为呢?

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

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

Declare PtrSafe Function mixerMessage Lib “winmm.dll” Alias “mixerMessage” (ByVal hmx As LongPtr, ByVal uMsg As Long, ByVal dwParam1 As LongPtr, ByVal dwParam2 As LongPtr) As Long

Type Target ‘ for use in MIXERLINE and others (embedded structure)

dwType As Long ‘ MIXERLINE_TARGETTYPE_xxxx

dwDeviceID As Long ‘ target device ID of device type

wMid As Integer ‘ of target device

wPid As Integer ‘ “

vDriverVersion As Long ‘ “

szPname(0 To MAXPNAMELEN – 1) As Byte

End Type

Type MIXERLINE

cbStruct As Long ‘ size of MIXERLINE structure

dwDestination As Long ‘ zero based destination index

dwSource As Long ‘ zero based source index (if source)

dwLineID As Long ‘ unique line id for mixer device

fdwLine As Long ‘ state/information about line

dwUser As LongPtr ‘ driver specific information

dwComponentType As Long ‘ component type line connects to

cChannels As Long ‘ number of channels line supports

cConnections As Long ‘ number of connections (possible)

cControls As Long ‘ number of controls at this line

szShortName(0 To MIXER_SHORT_NAME_CHARS – 1) As Byte

szName(0 To MIXER_LONG_NAME_CHARS – 1) As Byte

tTarget As Target

End Type

‘ MIXERLINE.fdwLine

Const MIXERLINE_LINEF_ACTIVE = &H1&

Const MIXERLINE_LINEF_DISCONNECTED = &H8000&

Const MIXERLINE_LINEF_SOURCE = &H80000000

‘ MIXERLINE.dwComponentType

‘ component types for destinations and sources

Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0&

Const MIXERLINE_COMPONENTTYPE_DST_UNDEFINED = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 0)

Const MIXERLINE_COMPONENTTYPE_DST_DIGITAL = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 1)

Const MIXERLINE_COMPONENTTYPE_DST_LINE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 2)

Const MIXERLINE_COMPONENTTYPE_DST_MONITOR = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 3)

Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 4)

Const MIXERLINE_COMPONENTTYPE_DST_HEADPHONES = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 5)

Const MIXERLINE_COMPONENTTYPE_DST_TELEPHONE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 6)

Const MIXERLINE_COMPONENTTYPE_DST_WAVEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 7)

Const MIXERLINE_COMPONENTTYPE_DST_VOICEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8)

Const MIXERLINE_COMPONENTTYPE_DST_LAST = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8)

Const MIXERLINE_COMPONENTTYPE_SRC_FIRST = &H1000&

Const MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0)

Const MIXERLINE_COMPONENTTYPE_SRC_DIGITAL = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1)

Const MIXERLINE_COMPONENTTYPE_SRC_LINE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2)

Const MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3)

Const MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4)

Const MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5)

Const MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6)

Const MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7)

Const MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8)

Const MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9)

Const MIXERLINE_COMPONENTTYPE_SRC_ANALOG = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10)

Const MIXERLINE_COMPONENTTYPE_SRC_LAST = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10)

‘ MIXERLINE.Target.dwType

Const MIXERLINE_TARGETTYPE_UNDEFINED = 0

Const MIXERLINE_TARGETTYPE_WAVEOUT = 1

Const MIXERLINE_TARGETTYPE_WAVEIN = 2

Const MIXERLINE_TARGETTYPE_MIDIOUT = 3

Const MIXERLINE_TARGETTYPE_MIDIIN = 4

Const MIXERLINE_TARGETTYPE_AUX = 5

Declare PtrSafe Function mixerGetLineInfo Lib “winmm.dll” Alias “mixerGetLineInfoA” (ByVal hmxobj As LongPtr, pmxl As MIXERLINE, ByVal fdwInfo As Long) As Long

Const MIXER_GETLINEINFOF_DESTINATION = &H0&

Const MIXER_GETLINEINFOF_SOURCE = &H1&

Const MIXER_GETLINEINFOF_LINEID = &H2&

Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H3&

Const MIXER_GETLINEINFOF_TARGETTYPE = &H4&

Const MIXER_GETLINEINFOF_QUERYMASK = &HF&

Declare PtrSafe Function mixerGetID Lib “winmm.dll” Alias “mixerGetID” (ByVal hmxobj As LongPtr, pumxID As Long, ByVal fdwId As Long) As Long

‘ MIXERCONTROL

Type MIXERCONTROL

cbStruct As Long ‘ size in Byte of MIXERCONTROL

dwControlID As Long ‘ unique control id for mixer device

dwControlType As Long ‘ MIXERCONTROL_CONTROLTYPE_xxx

fdwControl As Long ‘ MIXERCONTROL_CONTROLF_xxx

cMultipleItems As Long ‘ if MIXERCONTROL_CONTROLF_MULTIPLE set

szShortName(0 To MIXER_SHORT_NAME_CHARS – 1) As Byte

szName(0 To MIXER_LONG_NAME_CHARS – 1) As Byte

Bounds(1 To 6) As Long ‘ Longest member of the Bounds union

Metrics(1 To 6) As Long ‘ Longest member of the Metrics union

End Type

‘ MIXERCONTROL.fdwControl

Const MIXERCONTROL_CONTROLF_UNIFORM = &H1&

Const MIXERCONTROL_CONTROLF_MULTIPLE = &H2&

Const MIXERCONTROL_CONTROLF_DISABLED = &H80000000

‘ MIXERCONTROL_CONTROLTYPE_xxx building block defines

Const MIXERCONTROL_CT_CLASS_MASK = &HF0000000

Const MIXERCONTROL_CT_CLASS_CUSTOM = &H0&

Const MIXERCONTROL_CT_CLASS_METER = &H10000000

Const MIXERCONTROL_CT_CLASS_SWITCH = &H20000000

Const MIXERCONTROL_CT_CLASS_NUMBER = &H30000000

Const MIXERCONTROL_CT_CLASS_SLIDER = &H40000000

Const MIXERCONTROL_CT_CLASS_FADER = &H50000000

Const MIXERCONTROL_CT_CLASS_TIME = &H60000000

Const MIXERCONTROL_CT_CLASS_LIST = &H70000000

Const MIXERCONTROL_CT_SUBCLASS_MASK = &HF000000

Const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = &H0&

Const MIXERCONTROL_CT_SC_SWITCH_BUTTON = &H1000000

Const MIXERCONTROL_CT_SC_METER_POLLED = &H0&

Const MIXERCONTROL_CT_SC_TIME_MICROSECS = &H0&

Const MIXERCONTROL_CT_SC_TIME_MILLISECS = &H1000000

Const MIXERCONTROL_CT_SC_LIST_SINGLE = &H0&

Const MIXERCONTROL_CT_SC_LIST_MULTIPLE = &H1000000

Const MIXERCONTROL_CT_UNITS_MASK = &HFF0000

Const MIXERCONTROL_CT_UNITS_CUSTOM = &H0&

Const MIXERCONTROL_CT_UNITS_BOOLEAN = &H10000

Const MIXERCONTROL_CT_UNITS_SIGNED = &H20000

Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000

Const MIXERCONTROL_CT_UNITS_DECIBELS = &H40000 ‘ in 10ths

Const MIXERCONTROL_CT_UNITS_PERCENT = &H50000 ‘ in 10ths

‘ Commonly used control types for specifying MIXERCONTROL.dwControlType

Const MIXERCONTROL_CONTROLTYPE_CUSTOM = (MIXERCONTROL_CT_CLASS_CUSTOM Or MIXERCONTROL_CT_UNITS_CUSTOM)

Const MIXERCONTROL_CONTROLTYPE_BOOLEANMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_BOOLEAN)

Const MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_SIGNED)

Const MIXERCONTROL_CONTROLTYPE_PEAKMETER = (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1)

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

【分享成果,随喜正能量】人生如茶,是自己对生活感知的一种味道,自己给自己一个更好的表达,自己给自己一个更好的角度,自己给自己一份幸福的适合。。

剪辑交流

一种导入平台xls文件并添加进度条方法

2022-10-2 20:04:30

剪辑交流

cass中的快捷键,cass中快捷键如何设置

2022-10-2 20:06:33

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索