Если в диалоговой функции нужно какое-то состояние, кажется, вам нужна какая-то статическая переменная.Например, процедура подключения для GetOpenFileName предоставляет диалоговой функции адрес структуры OPENFILENAME в ее вызове WM_INITDIALOG, но не в последующих вызовах, а структура OPENFILENAME содержит место для lCustData, который можно использовать для передачи информации между диалоговой процедурой ивызывающий GetOpenFileName.Если для функции диалога требуется любое из этих состояний, кажется, что единственной альтернативой является статическая или глобальная переменная.