_ATL_ENABLE_PTM_WARNING
Defina essa macro para forçar o uso da sintaxe compatível com o padrão ANSI C++ para o ponteiro para funções de membro.Usar essa macro fará com que o erro de compilador C4867 seja gerado ao não-padrão de sintaxe é usada para inicializar um ponteiro para uma função de membro.
#define _ATL_ENABLE_PTM_WARNING
Comentários
As bibliotecas ATL e MFC foram alteradas para corresponder à melhor conformidade de C++ padrão do compilador Visual C++.De acordo com o C++ ANSI padrão, a sintaxe de um ponteiro para uma função de membro de classe deve ser &CMyClass::MyFunc.
Quando _ATL_ENABLE_PTM_WARNING não está definido (caso padrão), ATL/MFC desabilita o erro C4867 na macro mapeado (notavelmente mapas de mensagem) para permitir que código herdado continuar criando sistema autônomo antes. Se você definir _ATL_ENABLE_PTM_WARNING, seu código deve ser padrão C++ em conformidade.
No entanto, o formulário não-padrão foi substituído, portanto, você precisará mover o código existente para sintaxe compatível com o padrão C++.Por exemplo, o seguinte:
BEGIN_MESSAGE_MAP(CMFCListViewDoc, CDocument)
ON_COMMAND(ID_MYCOMMAND, OnMycommand)
END_MESSAGE_MAP()
Deve ser alterado para:
BEGIN_MESSAGE_MAP(CMFCListViewDoc, CDocument)
ON_COMMAND(ID_MYCOMMAND, &CMFCListViewDoc::OnMycommand)
END_MESSAGE_MAP()
Observe que para macros de MAP de adicionar o caractere '&', você deve não adicioná-lo novamente no seu código.