Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Знатокам COM

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Гость






СообщениеДобавлено: Ср Мар 17 2004 09:48    Заголовок сообщения: Знатокам COM Ответить с цитатой

Странные глюки с локальным сервером. Помогите, кто сможет.

Есть такой код:
HRESULT hr;
CoInitialize(NULL);

IClassFactory* pICF = NULL;
ISend* pIS = NULL;

hr = CoGetClassObject(CLSID_CoChatServer,
CLSCTX_LOCAL_SERVER,
NULL,
IID_IClassFactory,
(void**)&pICF);
// Здесь все в порядке: сервер загружается.

hr = pICF->CreateInstance(NULL, IID_ISend, (void**)&pIS);
// Здесь тоже все нормально: коклас создается, получаем указатель.

pIS->GetAllLocks();
//Функция отработала как надо.
//Раз через указатель pICF был сосздан экземпляр кокласса, //получен один из его интерфейсов, и вызван один из его
//методов, значит указатель pICF не лувый. Ведь так?

// А вот и глюк.
pICF->LockServer(TRUE);
// Функция почему-то не вызывается. Вопрос: ПОЧЕМУ? Какого х...?
// Из-за этого сарвак не блокируется, а сразу выгружается.

pIS->Release();
pICF->Release();
CoUninitialize();
Вернуться к началу
Леша



Зарегистрирован: 18.03.2004
Сообщения: 8

СообщениеДобавлено: Ср Мар 24 2004 12:17    Заголовок сообщения: Ответить с цитатой

Замени
hr = pICF->CreateInstance(NULL, IID_ISend, (void**)&pIS);
hr=pIS->GetAllLocks();
hr=pICF->LockServer(TRUE);

Попробуй посмотреть на результаты hr ,который возвращает метод,если все ОК, то hr=0. При других значениях - ошибка при работе метода, для справки по коду ошибки смотри VS в
Tools->Error Lookup.
Вставь значение hr и глянь , что оно значит.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Гость






СообщениеДобавлено: Ср Мар 24 2004 12:58    Заголовок сообщения: Леша, тебе Ответить с цитатой

Все это я делал - не помогает. Всегда возвращается S_OK.
Но все-таки с этим глюком я вчера разобрался. Все работает через Ж... . Сейчас нет времени, чтобы подробно это описать, напишу вечером.
Кратко можно сказать, что SCM ставит заглушки на некоторые вызовы. Т.о.
клиент не может вызывать эти функции. Я понял, как все это обойти.
Если интересно, зайди на форум вечерком, постараюсь все подробно описать.
Вернуться к началу
Гость






СообщениеДобавлено: Ср Мар 24 2004 21:10    Заголовок сообщения: Ответить с цитатой

Что-то не хочется сегодня выпендриваться впустую.
Если кому надо - скажите, напишу, но не сегодня.
Устал что-то.
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...