Образец CALCDRIV: демонстрация клиентского приложения автоматизации
Обновлен: Ноябрь 2007
Образец CALCDRIV является простым клиентским приложением автоматизации (ранее называемой OLE-автоматизацией). Образец CALCDRIV использует образец приложения MFCCALC, которое служит сервером автоматизации, предоставляющим основные функции калькулятора. Образец MFCCALC обладает простым интерфейсом калькулятора, который выглядит аналогично калькулятору, входящему в состав Microsoft Windows.
Примечание о безопасности. |
---|
Этот образец кода служит для демонстрации основных принципов и не предназначен для использования в приложениях или на веб-узлах, поскольку не может считаться примером наиболее безопасного кода. Корпорация Майкрософт не несет ответственности за случайные или косвенные убытки в случае использования образца кода не по назначению. |
Чтобы получить образцы и инструкции по их установке, выполните следующие действия.
В меню Справка среды Visual Studio выберите пункт Примеры.
Дополнительные сведения см. в разделе Поиск файлов примеров.
Самая последняя версия и полный список образцов доступны в Интернете на странице образцов Visual Studio 2008.
Кроме того, образцы находятся на жестком диске компьютера. По умолчанию образцы кода и файл Readme копируются в папку, находящуюся в папке \Program Files\Visual Studio 9.0\Samples\. Все образцы кода для экспресс-выпусков Visual Studio находятся в Интернете.
Построение и запуск образца
Построение и запуск образца CALCDRIV
Выполните инструкции для образца MFCCALC, чтобы построить и запустить соответствующий проект.
Откройте решение calcdriv.sln
В меню Построение выберите команду Построить.
Примечание. Если не построить и не зарегистрировать образец MFCCALC перед построением образца CALCDRIV, будет получено сообщение "Не удалось создать объект "MFCCALC.Application".
Во время запуска образца CALCDRIV открывается диалоговое окно библиотеки Microsoft Foundation Class (MFC) Calc Driver, и запускается приложение MFCCALC. Теперь можно непосредственно обращаться к пользовательскому интерфейсу калькулятора MFCCALC или управлять им из приложения CALCDRIV, как описано далее.
В поле Выражение окна Calc Driver MFC введите несколько чисел, разделенных оператором +, -, * или /.
Примечание. Приложение MFCCALC не обрабатывает скобки и не реализует приоритеты операторов.
Нажмите кнопку Перейти, чтобы приложение MFCCALC вычислило выражение за один шаг.
Нажмите кнопку По шагам, чтобы перемещаться по выражению шагами, обрабатывая за один раз одно число или один оператор.
Нажмите кнопку Обновить, чтобы запросить сведения о состоянии для приложения MFCCALC (свойства Last Accum и Last Operand).
Использование диспетчерского класса
Образец CALCDRIV использует класс CRemoteCalcDlg следующим образом.
Класс CRemoteCalcDlg приложения CALCDRIV представляет интерфейс диспетчеризации для приложения MFCCALC. Класс CRemoteCalcDlg является производным от CCmdTarget, который содержит несколько функций, предназначенных для автоматизации, например CreateDispatch.
В класс CDriverDlg внедряется объект CRemoteCalcDlg с именем m_calc. Объект CRemoteCalcDlg, подобно объекту CDriverDlg, в который он внедрен, активен на протяжении большей части интервала длительности CALCDRIV. Объект CRemoteCalcDlg создается во время создания объекта диалогового окна.
Метод CDriverDlg::OnInitDialog вызывает метод CCmdTarget::CreateDispatch для объекта CRemoteCalcDlg. В качестве первого параметра методу CreateDispatch необходимо имя интерфейса диспетчеризации. Обычно разработчик приложения сервера автоматизации предоставляет документацию, где описываются имена интерфейсов диспетчеризации, а также свойства и методы этих интерфейсов. Кроме того, имена интерфейсов диспетчеризации для приложения сервера автоматизации можно найти в реестре Windows для сервера, используя команду REGEDIT /v (с параметром подробных сведений).
В классе CDriverDlg реализовано средство оценки выражений CALCDRIV. Для этого вызывается метод Button приложения MFCCALC, который имитирует различные кнопки в диалоговом окне калькулятора.
В классе CDriverDlg реализуется функция Refresh CALCDRIV путем вызова методов GetOpnd и GetAccum приложения MFCCALC.
Деструктор CDriverDlg вызывает метод Quit, доступный в MFCCALC, чтобы завершить работу приложения MFCCALC, когда закрывается приложение CALCDRIV.
Ключевые слова
В этом образце показаны следующие ключевые слова:
AfxMessageBox; AfxOleInit; CDialog::DoModal; CDialog::EndDialog; CDialog::OnInitDialog; CEdit::GetSel; CEdit::SetSel; COleDispatchDriver::AttachDispatch; COleDispatchDriver::CreateDispatch; COleDispatchDriver::GetProperty; COleDispatchDriver::InvokeHelper; COleDispatchDriver::SetProperty; CString::GetLength; CWinApp::InitInstance; CWnd::DoDataExchange; CWnd::GetWindowText; CWnd::SetWindowText; GetWindowText; afxMemDF; min; wsprintf
Примечание. |
---|
Некоторые образцы, включая данный, не модифицировались с учетом изменений в мастерах, библиотеках и компиляторе Visual C++, однако по-прежнему демонстрируют выполнение требуемой задачи. |