Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Гость
|
Добавлено: Ср Мар 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 Заголовок сообщения: |
|
|
Что-то не хочется сегодня выпендриваться впустую.
Если кому надо - скажите, напишу, но не сегодня.
Устал что-то. |
|
Вернуться к началу |
|
|
|