Technically, when you SendMessage, you are pumping the message stream of the control referenced by the handle. The WM_SETREDRAW flag tells the window to discard calls to paint. Passing "False" prevents the control referenced by the handle from updating when the invalidate rectangle function is called. As a result, you must ALWAYS call the function once to disable it and once to enable it. If you don't you will lose all access to the application window.
You might try passing the arguments as different types:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Any) As Integer
Private Const WM_SETREDRAW As Integer = 11
Public Sub LockUpdates(ByVal hWnd As Long, ByVal Redraw As Boolean)
SendMessage hWnd, WM_SETREDRAW, Redraw, ByVal 0&
End Sub
As an aside, you don't have to pass the application window to the function if you are dealing with open drawings, you can merely pass the handle of the drawing.
If you are opening and then plotting, you will probably want to disable the entire window.