The old height is the height of the viewable screen size BEFORE the screen size changed (like before the keyboard was displayed), and the new height is the new height of the visible screen AFTER the screen size changed.
For example, if the keyboard is NOT showing on the screen, then lets say the VERTICAL screen size is 1000 pixels. Then you do something to cause the keyboard to display (like bring focus to a editbox). When the keyboard is showing on the screen the available VERTICAL screen size is now smaller because the keyboard is now taking up space at the bottom of the screen.
So for this example, when the Keyboard IS DISPLAYED, the IME_HeightChanged could return something like "OldHeight=1000" and "NEWHeight=600". And then when the keyboard is NOT displayed, the values would be reversed ("OldHeight=600" and "NEWHeight=1000")
So basically, you would probably adjust the .Height of your panel (to make it shorter so the keyboard wont cover up the bottom part of it), instead of adjusting the .Top property.