Что такое Message.Msg, определенное как?
Держу пари, что это Int32.
Могу поспорить, что WindowsMessagesFlags - ваш тип, но Message - из фреймворка.
Это означает, что вы используете свой собственный enum со встроенным в фреймворк объектом, и, конечно, они будут иметь некоторые несовместимости в отношении типов.
Перечисление - это строгий тип, а не просто число , это число с именем в контексте . Это имя, контекст, номер, часть не совместимы напрямую только с числами, и именно поэтому вам необходимо выполнить приведение.