www.pudn.com > HEX2BIN_VB.zip > Module2.bas


Attribute VB_Name = "Module2" 
Option Explicit 
'// Æ®·¹ÀÌ Å뺸 Á¤ÀÇ 
Type NOTIFYICONDATA 
    cbSize As Long 
    hwnd As Long 
    uID As Long 
    uFlags As Long 
    uCallbackMessage As Long 
    hIcon As Long 
    szTip As String * 64 
End Type 
 
Public Const WM_USER = &H400 
Public Const cbNotify& = WM_USER + 42 
Public Const uID& = 61860 
Public g_myNID As NOTIFYICONDATA 
 
Public Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean 
 
Public Const NIM_ADD = &H0 
 
Public Const NIM_DELETE = &H2 
 
Public Const NIM_MODIFY = &H1 
 
Public Const NIF_MESSAGE = &H1 
 
Public Const NIF_ICON = &H2 
 
Public Const NIF_TIP = &H4 
 
Public Const WM_MOUSEMOVE = &H200 
 
Public Const WM_LBUTTONDOWN = &H201 
 
Public Const WM_LBUTTONUP = &H202 
 
Public Const WM_LBUTTONDBLCLK = &H203 
 
Public Const WM_RBUTTONDOWN = &H204 
 
Public Const WM_RBUTTONUP = &H205 
 
Public Const WM_RBUTTONDBLCLK = &H206 
 
Public Const WM_MBUTTONDOWN = &H207 
 
Public Const WM_MBUTTONUP = &H208 
 
Public Const WM_MBUTTONDBLCLK = &H209 
 
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long 
 
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long 
 
Public Const GWL_WNDPROC = (-4) 
 
Public g_lpPrevWndProc As Long 
Public g_HW As Long 
 
 
Public Sub Hook() 
    g_lpPrevWndProc = SetWindowLong(g_HW, GWL_WNDPROC, AddressOf WindowProc) 
End Sub 
 
Public Sub UnHook() 
    Dim tmp As Long 
    tmp = SetWindowLong(g_HW, GWL_WNDPROC, g_lpPrevWndProc) 
End Sub 
 
Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long 
    If wParam = uID Then 
        Select Case lParam 
            Case &H204 'WM_RBUTTONDOWN 
                If Not frmMain.Visible Then frmMain.PopupMenu frmMain.mnuPopup 
            Case WM_LBUTTONDBLCLK 
             
            Case WM_LBUTTONUP 
             
        End Select 
    End If 
     
    WindowProc = CallWindowProc(g_lpPrevWndProc, hw, uMsg, wParam, lParam) 
End Function