protected bool WndPrc(ref Message message)
{
try {
switch (message.Id)
{
case NativeConstants.WmDeadchar: {
break;
}
case NativeConstants.WmKeydown:
case NativeConstants.WmKeyup:
case NativeConstants.WmChar: {
WmKeyEvent(ref message);
break;
}
case NativeConstants.WmUnichar:
break;
case NativeConstants.WmSyskeydown:
case NativeConstants.WmSyskeyup:
case NativeConstants.WmSyschar: {
NativeMethods.TranslateMessage(ref message);
WmKeyEvent(ref message);
return(c_WpNopassthrough);
}
case NativeConstants.WmSyscommand: {
break;
}
case NativeConstants.WmMousemove: {
WmMouseMove(ref message);
break;
}
case NativeConstants.WmLbuttondown: {
WmMouseDown(ref message, WinMouseButtons.Left, 1);
break;
}
case NativeConstants.WmRbuttondown: {
WmMouseDown(ref message, WinMouseButtons.Right, 1);
break;
}
case NativeConstants.WmMbuttondown: {
WmMouseDown(ref message, WinMouseButtons.Middle, 1);
break;
}
case NativeConstants.WmLbuttonup: {
WmMouseUp(ref message, WinMouseButtons.Left, 1);
return(c_WpPassthrough);
}
case NativeConstants.WmRbuttonup: {
WmMouseUp(ref message, WinMouseButtons.Right, 1);
return(c_WpPassthrough);
}
case NativeConstants.WmMbuttonup: {
WmMouseUp(ref message, WinMouseButtons.Middle, 1);
return(c_WpPassthrough);
}
case NativeConstants.WmLbuttondblclk: {
WmMouseDown(ref message, WinMouseButtons.Left, 2);
return(c_WpPassthrough);
}
case NativeConstants.WmRbuttondblclk: {
WmMouseDown(ref message, WinMouseButtons.Right, 2);
return(c_WpPassthrough);
}
case NativeConstants.WmMbuttondblclk: {
WmMouseDown(ref message, WinMouseButtons.Middle, 2);
return(c_WpPassthrough);
}
case NativeConstants.WmMousewheel: {
WmMouseWheel(ref message);
return(c_WpPassthrough);
}
case NativeConstants.WmXbuttondown: {
WmMouseDown(ref message, GetXButton(Message.HighWord(message.WParam)), 1);
return(c_WpPassthrough);
}
case NativeConstants.WmXbuttonup: {
WmMouseUp(ref message, GetXButton(Message.HighWord(message.WParam)), 1);
return(c_WpPassthrough);
}
case NativeConstants.WmXbuttondblclk: {
WmMouseDown(ref message, GetXButton(Message.HighWord(message.WParam)), 2);
return(c_WpPassthrough);
}
}
}
catch {
//TODO: log...crash...what?
}
return(c_WpPassthrough);
}