'thanks to Rick Ratayczak of Future Works Media (rickr@execpc.com)
'save file and rename them to [name].BAS
Attribute VB_Name = "MsgHook32_Bas"
Option Explicit
Type NOTIFYICONDATA
lStructureSize As Long
hwnd As Long
lid
As Long
lFlags As Long
lCallBackMessage As Long
hIcon As Long
stip
As String * 64
End Type
Type lRect
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Type APPBARDATA
lStructureSize As Long
hwnd As Long
lCallBackMessage As Long
lEdge As Long
rc As lRect
lParam As Long
End Type
Declare Function Shell_NotifyIcon& Lib "shell32.dll" (ByVal lMessage&, NID As NOTIFYICONDATA)
Declare Function SHAppBarMessage& Lib "shell32.dll" (ByVal dwMessage&, pData As APPBARDATA)
Global idShell_NotifyIcon&
Global idSHAppBarMessage&
Global Const NIM_ADD = 0&
Global Const NIM_DELETE = 2&
Global Const NIM_MODIFY = 1&
Global Const NIF_ICON = 2&
Global Const NIF_MESSAGE = 1&
Global Const NIF_TIP = 4&
Global Const ABM_GETTASKBARPOS = &H5&
Global structNotify As NOTIFYICONDATA
Global structBarData As APPBARDATA
'Message blaster callback stuff
Const WM_USER = &H400
Global Const UM_TASKBARMESSAGE = WM_USER + &H201
Global Const POSTPROCESS = 1
Sub modIcon(Form1 As Form, IconID As Long, Icon As Object, ToolTip As String)
dim
ltemplong As Long
structNotify.lStructureSize = 88&
structNotify.hwnd = Form1.hwnd
structNotify.lID = IconID
structNotify.lFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
structNotify.lCallBackMessage = UM_TASKBARMESSAGE
structNotify.hIcon = Icon
structNotify.sTip = ToolTip & Chr$(0)
ltemplong = Shell_NotifyIcon(NIM_MODIFY, structNotify)
End Sub
Sub AddIcon(Form1 As Form, IconID As Long, Icon As Object, ToolTip As String)
structBarData.lStructureSize = 36&
dim
ltemplong As Long
ltemplong = SHAppBarMessage(ABM_GETTASKBARPOS, structBarData)
If ltemplong <> 1 Then
MsgBox "Explorer Not Running! Exiting...", 16, App.Title
End
exit
Sub
end
If
structNotify.lStructureSize = 88&
structNotify.hwnd = Form1.hwnd
structNotify.lID = IconID
structNotify.lFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
structNotify.lCallBackMessage = UM_TASKBARMESSAGE
structNotify.hIcon = Icon
structNotify.sTip = ToolTip & Chr$(0)
ltemplong = Shell_NotifyIcon(NIM_ADD, structNotify)
Form1.Msghook1.HwndHook = Form1.hwnd
Form1.Msghook1.Message(UM_TASKBARMESSAGE) = True
End Sub
Sub delIcon(IconID As Long)
dim
ltemplong As Long
structNotify.lID = IconID
ltemplong = Shell_NotifyIcon(NIM_DELETE, structNotify)
End Sub
Return