Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
some
0 / 0 / 0
Регистрация: 26.05.2014
Сообщений: 4
1

Проблема с COM и MFC Dialog-based Application

12.02.2009, 17:21. Просмотров 1170. Ответов 3
Метки нет (Все метки)

Уважаемый Олл!

В Visual C++ знаний крайне немного, начал разбираться и столкнулся с проблемой, причину которой не могу понять.

В MFC Dialog-based Application создаю подключение к COM-серверу.
Все замечательно, все работает, события генерит, данные отдает.

Есть потребность сделать так, чтобы по нажатию на одну кнопку - приложение отключалось от COM-сервера и тут-же подключалось обратно.

Подключаюсь вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
EnableAutomation();    
m_StServer = NULL;
 
HRESULT hr = m_StServer.CreateInstance(CLSID_StServer);
if (hr != S_OK)
    AfxMessageBox("CreateInstance FAILED!");
 
m_dwCookie = 0;
BOOL Ret = AfxConnectionAdvise( 
        m_StServer,
        DIID__IStClient, 
        this->GetIDispatch(FALSE),
        FALSE, //donod addref
        &m_dwCookie);
Переподключаться пытаюсь вот так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 m_dwCookie = 0;
BOOL Ret = AfxConnectionUnadvise( 
           m_StServer,
           DIID__IStClient, 
           this->GetIDispatch(FALSE),
           FALSE, //donod addref
           m_dwCookie);
 
HRESULT hr = m_StServer.CreateInstance(CLSID_StServer);
if (hr != S_OK)
    AfxMessageBox("CreateInstance FAILED!");
    
m_dwCookie = 0;
Ret = AfxConnectionAdvise( 
           m_StServer,
           DIID__IStClient, 
           this->GetIDispatch(FALSE),
           FALSE, //donod addref
           &m_dwCookie );
При нажатии на кнопку - окно закрывается без каких-либо ошибок.

Я понимаю, что где-то я явно идиот.
Но не могу никак понять, где.
Подскажите пож.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2009, 17:21
Ответы с готовыми решениями:

MFC Dialog-based Application: Combo Box
Я пишу мое первое приложение MFC, его смысл состоит в том, чтобы составить...

mfc. dialog-based application. CStatic, CButton
хочу понять логику поведения этих объектов. в диалоговом приложении создаем...

Работа Dialog-based MFC приложения
Здравствуйте. Есть Dialog-based MFC приложение. Необходимо по нажатию кнопки...

MFC Dialog based, перехват нажатия клавиш
Нахожу в интернете, что для того чтобы перехватить нажатия клавиш клавиатуры...

Dialog based MFC приложение, установка лимита для переменной Edit типа Double
Здравствуйте! Возникла проблемка, мне нужно связать поле Edit1 с переменной...

3
oxotnik
1627 / 1100 / 75
Регистрация: 21.08.2008
Сообщений: 4,624
Записей в блоге: 1
12.02.2009, 17:54 2
случаем не на кнопку Ok это повесил? за твоим кодом ниче типа CDialog::OnOk() не стоит?
0
some
0 / 0 / 0
Регистрация: 26.05.2014
Сообщений: 4
12.02.2009, 17:57 3
Неа.

А там может OnOk() или OnCancel() как то вызваться?

А то фиг знает....
0
Шерсть-На-Носу
46 / 46 / 8
Регистрация: 30.01.2009
Сообщений: 168
13.02.2009, 08:55 4
Попробуй закомментировать свой код и понажимай на кнопку (чтобы выяснить, проблема в основной программе или в коде обращения к COM-объекту). Потом раскомментируй по частям и определи, в какой строке проблема.

Кроме того, вместо

Код
if (hr != S_OK) ...
лучше писать

Код
if  (FAILED(hr)) ...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2009, 08:55

Dialog MFC
Помогите пожалуйста, я создала в проекте дополнительный диалог, как его...

MFC dialog
Есть прога созданная в MFC Dialog.Но там нету кнопки Свернуть.Подскажите...

MFC docking dialog
Можно ли в MFC, приложение на базе диалогового окна, сделать чтобы это окно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru