Отвечаю сам себе
Вот нарыл в файле atlcrack.h
// Note about message maps with cracked handlers:
// For ATL 3.0, a message map using cracked handlers MUST use BEGIN_MSG_MAP_EX.
// For ATL 7.0/7.1 you can use BEGIN_MSG_MAP for CWindowImpl/CDialogImpl derived classes,
// but must use BEGIN_MSG_MAP_EX for classes that don't derive from CWindowImpl/CDialogImpl.
Как и написано в писании Страуструпа "макросомагия до добра не доведет" (это в вольном переводе).
Короче, вопрос закрыт, всем спасибо. Костыль найден