IPlugView callbacks vs. VSTGUI direct handling

I’ve noticed that IPlugView provides an onWheel function to be called by the host to notify the plugin of mouse wheel movements.

However the VSTGUI code (for example, on Win32) seems to also get mouse wheel messages directly from the WindowProc callback called by Windows.

The same is true for the other callbacks: onKeyDown, onKeyUp, etc.

So why are the onWheel etc. callbacks provided in IPlugView at all? Is there a practical or historical reason? In what scenario would that callback be called instead of WindowProc?

I’ve also noticed that IPlugView provides no similar callbacks for mouse motion or mouse buttons. Why is this?

Just trying to understand if it’s necessary for both to be implemented.

Update: I’ve noticed that sometimes both the IPlugView function and I get the same event in my WindowProc for keyboard events. I there any reason I couldn’t just completely ignore events received via IPlugView?

I would also like to know the answer to this. But the reason for my curiosity is that when I make a new IPlugView and attach a debugger, none of these input methods actually get called (along with onFocus and others). I did verify that attached and removed are indeed being called. Is there some init/registration that we are supposed to call when we create a new view?