12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- //go:build windows
- package wintray
- import (
- "unsafe"
- "golang.org/x/sys/windows"
- )
- // Contains information that the system needs to display notifications in the notification area.
- // Used by Shell_NotifyIcon.
- // https://msdn.microsoft.com/en-us/library/windows/desktop/bb773352(v=vs.85).aspx
- // https://msdn.microsoft.com/en-us/library/windows/desktop/bb762159
- type notifyIconData struct {
- Size uint32
- Wnd windows.Handle
- ID, Flags, CallbackMessage uint32
- Icon windows.Handle
- Tip [128]uint16
- State, StateMask uint32
- Info [256]uint16
- // Timeout, Version uint32
- Timeout uint32
- InfoTitle [64]uint16
- InfoFlags uint32
- GuidItem windows.GUID
- BalloonIcon windows.Handle
- }
- func (nid *notifyIconData) add() error {
- const NIM_ADD = 0x00000000
- res, _, err := pShellNotifyIcon.Call(
- uintptr(NIM_ADD),
- uintptr(unsafe.Pointer(nid)),
- )
- if res == 0 {
- return err
- }
- return nil
- }
- func (nid *notifyIconData) modify() error {
- const NIM_MODIFY = 0x00000001
- res, _, err := pShellNotifyIcon.Call(
- uintptr(NIM_MODIFY),
- uintptr(unsafe.Pointer(nid)),
- )
- if res == 0 {
- return err
- }
- return nil
- }
- func (nid *notifyIconData) delete() error {
- const NIM_DELETE = 0x00000002
- res, _, err := pShellNotifyIcon.Call(
- uintptr(NIM_DELETE),
- uintptr(unsafe.Pointer(nid)),
- )
- if res == 0 {
- return err
- }
- return nil
- }
|