Как создать класс ATL, реализующий CDialogImpl и IPreviewFrameHandler - PullRequest
2 голосов
/ 13 июля 2020

Я пытаюсь создать диалоговое окно, в котором размещен обработчик предварительного просмотра файла. Я начал с создания диалога ATL (через меню Visual Studio), производного от CDialogImpl, так что эта часть была довольно простой.

Но теперь я узнал, что размещение обработчика предварительного просмотра включает в себя реализацию IPreviewHandlerFrame. Итак, я думаю, мне нужно извлечь из этого, реализовать его методы и реализовать IUnknown. И тогда я предполагаю, что диалог нужно создать через CoCreateInstance? (Не уверен в этой части.)

Так что я не уверен, нужно ли мне go вернуться и начать заново, вместо этого создавая объект ATL, производный от CDialogImpl и IPreviewHandlerFrame. Это потребует всей регистрации ATL и всего остального, и я не уверен, что это необходимо. Или лучше просто добавить методы IUnknown? Но даже в этом случае как будет создан экземпляр класса? Я не уверен, что хочу вмешиваться в подсчет ссылок или что-то в этом роде.

Спасибо за любые указания, как это сделать.

Или, может быть, другой подход - реализовать IPreviewHandlerFrame в собственном классе ATL, а затем создать его экземпляр в CDialogImpl?

...