Option
Explicit
Option
Private
Module
Private
Declare
Function
GetCurrentThreadId
Lib
"kernel32.dll"
()
As
Long
Private
Declare
Function
SetDlgItemText
Lib
"user32.dll"
Alias
"SetDlgItemTextA"
( _
ByVal
hDlg
As
Long
, _
ByVal
nIDDlgItem
As
Long
, _
ByVal
lpString
As
String
)
As
Long
Private
Declare
Function
SetWindowsHookEx
Lib
"user32.dll"
Alias
"SetWindowsHookExA"
( _
ByVal
idHook
As
Long
, _
ByVal
lpfn
As
Long
, _
ByVal
hmod
As
Long
, _
ByVal
dwThreadId
As
Long
)
As
Long
Private
Declare
Function
UnhookWindowsHookEx
Lib
"user32.dll"
( _
ByVal
hHook
As
Long
)
As
Long
Private
Const
WH_CBT
As
Long
= 5
Private
Const
HCBT_ACTIVATE
As
Long
= 5
Private
Const
IDCANCEL
As
Long
= 2
Private
llngHhook
As
Long
Public
Function
fncMsgBoxCustom(
ByVal
pvstrMsgText
As
String
, _
ByVal
pvenmButtons
As
VbMsgBoxStyle,
ByVal
pvstrBoxTitle
As
String
)
As
VbMsgBoxResult
llngHhook = SetWindowsHookEx(WH_CBT, _
AddressOf
WndHookProc, 0&, GetCurrentThreadId)
fncMsgBoxCustom = MsgBox(pvstrMsgText, pvenmButtons, pvstrBoxTitle)
End
Function
Private
Function
WndHookProc(
ByVal
pvlnguMsg
As
Long
, _
ByVal
pvlngwParam
As
Long
,
ByVal
pvlnglParam
As
Long
)
As
Long
If
pvlnguMsg = HCBT_ACTIVATE
Then
Call
SetDlgItemText(pvlngwParam, IDCANCEL,
"Gerät bearbeiten"
)
Call
UnhookWindowsHookEx(llngHhook)
End
If
WndHookProc =
False
End
Function