' Look for main menu close.
Public Function NewWindowProc(ByVal hwnd As Long, ByVal msg _
As Long, ByVal wParam As Long, ByVal lParam As Long) As _
Long
Const WM_NCDESTROY = &H82
Const WM_MENUSELECT As Long = &H11F
Const WM_EXITMENULOOP As Long = &H212
' Load the message names.
LoadMsgNames
If msg = WM_EXITMENULOOP Then Debug.Print Hex$(msg) & _
": " & MsgName(msg)
' If we're being destroyed,
' restore the original WindowProc.
If msg = WM_NCDESTROY Then
SetWindowLong _
hwnd, GWL_WNDPROC, _
OldWindowProc
End If
NewWindowProc = CallWindowProc( _
OldWindowProc, hwnd, msg, wParam, _
lParam)
End Function
|