Все начинает запутываться.
И все же,
в оконном варианте какие отличия в [функции] WinMain [по сравнению с функцией main в консольном варианте]?
Ну главное отличие то, что выброшены все Windows-функции, а такие функции как
CreateInstance и другие - внесены под
void main(), т.е. убран файл MyClass.cpp и MyClass.h. Соответственно и у класса MyIDispatch нет потомков - т.е. всё упрощено.
Вместо этого есть один файл main.cpp в котором находятся функция
void main() и функции-методы необходимые для работы класса MyIDispatch.
Далее... для функции
Advise() создаётся экземпляр объекта MyIDispatch как:
MyIDispatch* testObj = new MyIDispatch()
testObj -> Advise()
и она из него вызывается.
поэтому функция
MyIDispatch::Advise() там сохранена и находится отдельно от
main() как нестатическая.
Есть один-единственный
#include main.hВ нём находятся необходимые #include (такие же как в оконной версии) и определение класса - такое же. Только без лишних (оконных) констант и функций. Сокращённый вариант