Option
Explicit
Private
Declare
PtrSafe
Function
MessageBoxTimeoutA
Lib
"user32.dll"
( _
ByVal
hWnd
As
LongPtr, _
ByVal
lpText
As
String
, _
ByVal
lpCation
As
String
, _
ByVal
uType
As
VbMsgBoxStyle, _
ByVal
wLanguageId
As
Integer
, _
ByVal
dwMiliseconds
As
Long
)
As
Long
Private
Declare
PtrSafe
Function
FindWindowA
Lib
"user32.dll"
( _
ByVal
lpClassName
As
String
, _
ByVal
lpWindowName
As
String
)
As
LongPtr
Private
Const
MB_TIMEOUT
As
Long
= &H7D00
Private
Const
GC_CLASSNAMEMSOUTLOOK
As
String
=
"rctrl_renwnd32"
Public
Sub
test()
Dim
lngReturn
As
Long
Dim
lngptrHwnd
As
Long
lngptrHwnd = FindWindowA(GC_CLASSNAMEMSOUTLOOK, Application.ActiveExplorer.Caption)
lngReturn = MessageBoxTimeoutA(lngptrHwnd,
"Hallo"
, _
"TimeoutTest"
, vbYesNo
Or
vbInformation, 0, 5000)
Select
Case
lngReturn
Case
MB_TIMEOUT
Debug.Print
"TimeOut"
Case
vbOK, vbYes
Debug.Print
"Ok, Ja"
Case
vbAbort, vbCancel
Debug.Print
"Abrechen"
Case
vbNo
Debug.Print
"Nein"
Case
vbRetry
Debug.Print
"Wiederholen"
Case
Else
Debug.Print lngReturn
End
Select
End
Sub