Updated SysTray Library
Posted: Wed Nov 19, 2008 6:04 pm
Please add balloon support and all the new features since Win2k to the SysTray library:
Structure can also be seen here:
http://purebasic.fr/english/viewtopic.p ... 129#267129
Code: Select all
Structure NOTIFYICONDATA_
cbSize.l
hwnd.i
uId.l
uFlags.l
uCallbackMessage.l
hIcon.i
StructureUnion
szTip.c[64]
szTipEx.c[128]
EndStructureUnion
dwState.l
dwStateMask.l
szInfo.c[256]
StructureUnion
uTimeout.l
uVersion.l
EndStructureUnion
szInfoTitle.c[64]
dwInfoFlags.l
guidItem.GUID
hBalloonIcon.i
EndStructure
Enumeration
#NOTIFYICONDATA_V1_SIZE = 88
#NOTIFYICONDATA_V2_SIZE = 488
#NOTIFYICONDATA_V3_SIZE = 504
#NOTIFYICONDATA_V4_SIZE = 508
EndEnumeration
Procedure SysTrayIconBalloon_(uId, hWindow, Title$, Message$, timeOut, flags)
Protected nId.NOTIFYICONDATA_
If OSVersion() >= #PB_OS_Windows_Vista
nId\cbSize = #NOTIFYICONDATA_V4_SIZE
ElseIf OSVersion() >= #PB_OS_Windows_XP
nId\cbSize = #NOTIFYICONDATA_V3_SIZE
ElseIf OSVersion() >= #PB_OS_Windows_2000
nId\cbSize = #NOTIFYICONDATA_V2_SIZE
Else
nId\cbSize = #NOTIFYICONDATA_V1_SIZE
EndIf
If nId\cbSize
nId\uVersion = 4
Shell_NotifyIcon_(#NIM_SETVERSION, @nId)
nId\uId = uId
nId\hwnd = hWindow
nId\dwInfoFlags = flags
nId\uFlags = #NIF_INFO
nId\uTimeout = timeOut
PokeS(@nId\szInfo, Message$, SizeOf(nId\szInfo))
PokeS(@nId\szInfoTitle, Title$, SizeOf(nId\szInfoTitle))
ProcedureReturn Shell_NotifyIcon_(#NIM_MODIFY, @nId)
EndIf
ProcedureReturn #False
EndProcedure
Procedure SysTrayIconToolTip_(uId, hWindow, Tip$)
Protected nId.NOTIFYICONDATA_
If OSVersion() >= #PB_OS_Windows_Vista
nId\cbSize = #NOTIFYICONDATA_V4_SIZE
ElseIf OSVersion() >= #PB_OS_Windows_XP
nId\cbSize = #NOTIFYICONDATA_V3_SIZE
ElseIf OSVersion() >= #PB_OS_Windows_2000
nId\cbSize = #NOTIFYICONDATA_V2_SIZE
Else
nId\cbSize = #NOTIFYICONDATA_V1_SIZE
EndIf
If nId\cbSize
nId\uVersion = 4
Shell_NotifyIcon_(#NIM_SETVERSION, @nId)
nId\uId = uId
nId\hwnd = hWindow
nId\uFlags = #NIF_TIP
PokeS(@nId\szTip, Tip$, SizeOf(nId\szTip)+SizeOf(nId\szTipEx))
EndIf
ProcedureReturn Shell_NotifyIcon_(#NIM_MODIFY, @nId)
EndProcedure
http://purebasic.fr/english/viewtopic.p ... 129#267129