暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

64位Office API声明语句第72讲

VBA语言専攻 2021-12-21
0
【分享成果,随喜正能量】如果你想让某人平静下来。你可以对他们表达同理心,同时用降级的方式进行描述。我明白你为什么那么生气。你有理由抓狂。这个世界也让我很烦。他们会接受他们想要的这种认同,同时也会接受这种递减的情绪,从而变得更加平静。
跟我学VBA,我这里专注VBA, 授人以渔。我98年开始,从源码接触VBA已经20余年了,随着年龄的增长,越来越觉得有必要把这项技能传递给需要这项技术的职场人员。希望和数据打交道的朋友,都来学习VBA,利用VBA,起码可以提高自己的工作效率,可以有时间多陪陪父母,多陪陪家人,何乐而不为呢?
这讲我们继续学习64位Office API声明语句第72讲,这些内容是MS的权威资料,看似枯燥,但对于想学习API函数的朋友是非常有用的。

Const XTYP_DISCONNECT = (&HC0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK)
Const XTYP_UNREGISTER = (&HD0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK)
Const XTYP_WILDCONNECT = (&HE0 Or XCLASS_DATA Or XTYPF_NOBLOCK)

Const XTYP_MASK = &HF0
Const XTYP_SHIFT = 4  '  shift to turn XTYP_ into an index

'  Timeout constants
Const TIMEOUT_ASYNC = &HFFFFFFFF

'  Transaction ID constants
Const QID_SYNC = &HFFFFFFFF

' Public strings used in DDE
Const SZDDESYS_TOPIC = "System"
Const SZDDESYS_ITEM_TOPICS = "Topics"
Const SZDDESYS_ITEM_SYSITEMS = "SysItems"
Const SZDDESYS_ITEM_RTNMSG = "ReturnMessage"
Const SZDDESYS_ITEM_STATUS = "Status"
Const SZDDESYS_ITEM_FORMATS = "Formats"
Const SZDDESYS_ITEM_HELP = "Help"
Const SZDDE_ITEM_ITEMLIST = "TopicItemList"

Const CBR_BLOCK As LongPtr = -1 ' -1 Long (&HFFFFFFFF) on 32-bit VBA; -1 LongLong (&HFFFFFFFFFFFFFFFF^) on 64-bit VBA

' Callback filter flags for use with standard apps.
Const CBF_FAIL_SELFCONNECTIONS = &H1000
Const CBF_FAIL_CONNECTIONS = &H2000
Const CBF_FAIL_ADVISES = &H4000
Const CBF_FAIL_EXECUTES = &H8000&
Const CBF_FAIL_POKES = &H10000
Const CBF_FAIL_REQUESTS = &H20000
Const CBF_FAIL_ALLSVRXACTIONS = &H3F000

Const CBF_SKIP_CONNECT_CONFIRMS = &H40000
Const CBF_SKIP_REGISTRATIONS = &H80000
Const CBF_SKIP_UNREGISTRATIONS = &H100000
Const CBF_SKIP_DISCONNECTS = &H200000
Const CBF_SKIP_ALLNOTIFICATIONS = &H3C0000

' Application command flags
Const APPCMD_CLIENTONLY = &H10&
Const APPCMD_FILTERINITS = &H20&
Const APPCMD_MASK = &HFF0&

' Application classification flags
Const APPCLASS_STANDARD = &H0&
Const APPCLASS_MASK = &HF&

Declare PtrSafe Function DdeUninitialize Lib "user32" Alias "DdeUninitialize" (ByVal idInst As Long) As Long

' conversation enumeration functions
Declare PtrSafe Function DdeConnectList Lib "user32" Alias "DdeConnectList" (ByVal idInst As Long, ByVal hszService As LongPtr, ByVal hszTopic As LongPtr, ByVal hConvList As LongPtr, pCC As CONVCONTEXT) As LongPtr
Declare PtrSafe Function DdeQueryNextServer Lib "user32" Alias "DdeQueryNextServer" (ByVal hConvList As LongPtr, ByVal hConvPrev As LongPtr) As LongPtr
Declare PtrSafe Function DdeDisconnectList Lib "user32" Alias "DdeDisconnectList" (ByVal hConvList As LongPtr) As Long

' conversation control functions
Declare PtrSafe Function DdeConnect Lib "user32" Alias "DdeConnect" (ByVal idInst As Long, ByVal hszService As LongPtr, ByVal hszTopic As LongPtr, pCC As CONVCONTEXT) As LongPtr
Declare PtrSafe Function DdeDisconnect Lib "user32" Alias "DdeDisconnect" (ByVal hConv As LongPtr) As Long
Declare PtrSafe Function DdeReconnect Lib "user32" Alias "DdeReconnect" (ByVal hConv As LongPtr) As LongPtr
Declare PtrSafe Function DdeQueryConvInfo Lib "user32" Alias "DdeQueryConvInfo" (ByVal hConv As LongPtr, ByVal idTransaction As Long, pConvInfo As CONVINFO) As Long
Declare PtrSafe Function DdeSetUserHandle Lib "user32" Alias "DdeSetUserHandle" (ByVal hConv As LongPtr, ByVal id As Long, ByVal hUser As LongPtr) As Long
Declare PtrSafe Function DdeAbandonTransaction Lib "user32" Alias "DdeAbandonTransaction" (ByVal idInst As Long, ByVal hConv As LongPtr, ByVal idTransaction As Long) As Long

' app server interface functions
Declare PtrSafe Function DdePostAdvise Lib "user32" Alias "DdePostAdvise" (ByVal idInst As Long, ByVal hszTopic As LongPtr, ByVal hszItem As LongPtr) As Long
Declare PtrSafe Function DdeEnableCallback Lib "user32" Alias "DdeEnableCallback" (ByVal idInst As Long, ByVal hConv As LongPtr, ByVal wCmd As Long) As Long
Declare PtrSafe Function DdeImpersonateClient Lib "user32" Alias "DdeImpersonateClient" (ByVal hConv As LongPtr) As Long

Const EC_ENABLEALL = 0
Const EC_ENABLEONE = ST_BLOCKNEXT
Const EC_DISABLE = ST_BLOCKED
Const EC_QUERYWAITING = 2

Declare PtrSafe Function DdeNameService Lib "user32" Alias "DdeNameService" (ByVal idInst As Long, ByVal hsz1 As Long, ByVal hsz2 As Long, ByVal afCmd As Long) As LongPtr

Const DNS_REGISTER = &H1
Const DNS_UNREGISTER = &H2
Const DNS_FILTERON = &H4
Const DNS_FILTEROFF = &H8

' app client interface functions
Declare PtrSafe Function DdeClientTransaction Lib "user32" (pData As Byte, ByVal cbData As Long, ByVal hConv As LongPtr, ByVal hszItem As LongPtr, ByVal wFmt As Long, ByVal wType As Long, ByVal dwTimeout As Long, pdwResult As Long) As LongPtr

' data transfer functions
Declare PtrSafe Function DdeCreateDataHandle Lib "user32" (ByVal idInst As Long, pSrc As Byte, ByVal cb As Long, ByVal cbOff As Long, ByVal hszItem As LongPtr, ByVal wFmt As Long, ByVal afCmd As Long) As LongPtr
Declare PtrSafe Function DdeAddData Lib "user32" (ByVal hData As LongPtr, pSrc As Byte, ByVal cb As Long, ByVal cbOff As Long) As LongPtr
Declare PtrSafe Function DdeGetData Lib "user32" (ByVal hData As LongPtr, pDst As Byte, ByVal cbMax As Long, ByVal cbOff As Long) As Long
Declare PtrSafe Function DdeAccessData Lib "user32" (ByVal hData As LongPtr, pcbDataSize As Long) As LongPtr
Declare PtrSafe Function DdeUnaccessData Lib "user32" (ByVal hData As LongPtr) As Long
Declare PtrSafe Function DdeFreeDataHandle Lib "user32" Alias "DdeFreeDataHandle" (ByVal hData As LongPtr) As Long

Const HDATA_APPOWNED = &H1

Declare PtrSafe Function DdeGetLastError Lib "user32" Alias "DdeGetLastError" (ByVal idInst As Long) As Long

Const DMLERR_NO_ERROR = 0                           '  must be 0

Const DMLERR_FIRST = &H4000

Const DMLERR_ADVACKTIMEOUT = &H4000
Const DMLERR_BUSY = &H4001
Const DMLERR_DATAACKTIMEOUT = &H4002
Const DMLERR_DLL_NOT_INITIALIZED = &H4003



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

【分享成果,随喜正能量】梵高说过:如果你的大脑中有个声音告诉你:你不能画画。尽一切办法去画,然后你脑中的声音就会渐渐安静下来。你的想法很大程度上会影响你的行为。但如果你意识到脑中的想法,却仍然去行动,结果会开始改变。”
文章转载自VBA语言専攻,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论