Предложения Эрана кажутся логичными, но я не смог найти некоторые из предметов, о которых он говорил. Поэтому я попробовал другой подход.
Я создал проект Empty ATL (Server) в VS 2008. Он автоматически создает проект ps вместе с обычным проектом atl.
Я скопировал файл vcproj для проекта ps в папку моего проекта и переименовал его в myprojectname ps.vcproj.
Затем я открыл свое решение и добавил в него вновь скопированный проект. Я переименовал проект (в VS 2008) в myprojectname ps и удалил все файлы, которые уже были включены в него.
Затем я включил в проект мои файлы _i.c, _p.c, dlldata.c и .def . В настройках Linker> Input> Файл определения модуля я добавил имя файла def.
Вот и все! Работал как шарм.