0 / 0 / 0
Регистрация: 26.05.2014
Сообщений: 4
1

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

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

Author24 — интернет-сервис помощи студентам
Уважаемый Олл!

В 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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, перехват нажатия клавиш
Нахожу в интернете, что для того чтобы перехватить нажатия клавиш клавиатуры нужно переопределить...

3
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
12.02.2009, 17:54 2
случаем не на кнопку Ok это повесил? за твоим кодом ниче типа CDialog::OnOk() не стоит?
0
0 / 0 / 0
Регистрация: 26.05.2014
Сообщений: 4
12.02.2009, 17:57  [ТС] 3
Неа.

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

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

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

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

Код
if  (FAILED(hr)) ...
0
13.02.2009, 08:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2009, 08:55
Помогаю со студенческими работами здесь

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

Как получить сообщение WM_CHAR в dialog based приложениях?
kak poluchit' soobshenie WM_CHAR v Dialog Based prilojeniyax?

navigation based application в xcode 4.5
Здравсвуйте! Сразу прошу прощения за дурацкий вопрос, но прошу не кидаться плохими словами:) ...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru