Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Вниз

Глупый вопрос   Найти похожие ветки 

 
Марина   (2006-05-07 20:48) [0]

Проблема с Дельфи не связана, но все же.
Разбираюсь с асинхронными вызовами COM компонентов, и при создании объекта вызова, а точнее при запросе любого интерфейса у объекта вызова (реализующего асинхронный интерфейс, но аггрегирующего объект вызова, предоставляемый прокси), почему-то происходит автоматический AddRef на родительский Объект, предоставляющий синхронный интерфейс. Интуитивно чувствую, что у объекта вызова должен быть свой счетчик ссылок и AddRef происходить не должен (счетчик ссылок родительского объекта не уменьшается после удаления объекта вызова). Почему это происходит?

STDMETHODIMP CNotifyCallObj::Init(ULONG hWnd,
                              ULONG ulMsgID, // сообщение о заверш. вызова
                              ICallFactory * pCallFactory, // фабрика объектов вызова
                              REFIID riid1, // интерфейс, возвращаемый при создании объекта вызова
                              REFIID riid2,  // интерфейс, возвращаемый данной функцией
                              IUnknown **ppvObj  // указатель на один из интерф. созданного объекта вызова
                             ) {
 m_hWnd = (HWND)hWnd;
 m_nMsgID = ulMsgID;

 // создание и аггрегация объекта вызова, предоставляемого прокси
 HRESULT hr;
 hr = pCallFactory->CreateCall(riid1, GetControllingUnknown(), IID_IUnknown, &m_spUnkInner);

 if (FAILED(hr))
   return hr;

  // получение указателя на интерфейс синхронизации аггрегируемого объекта
  hr = m_spUnkInner->QueryInterface(IID_ISynchronize, (void**)&m_spSyncInner);

 if (FAILED(hr)) {
   m_spUnkInner.Release();
   return hr;
 }

 // возвращение указателя на интерфейс, запрошенный при вызове данной функции
 hr = m_spUnkInner->QueryInterface(riid2, (void **)ppvObj); // AddRef на родительский объект происходит здесь

 if (FAILED(hr)) {
   m_spSyncInner.Release();
   m_spUnkInner.Release();

 }

 pCallFactory->Release();

 return hr;
}

Помогите пожалуйста.


 
Вовчик   (2006-05-07 20:55) [1]

марина мне очень хочется тебе помочь.. есть дополнительные данные?


 
Павлик   (2006-05-07 20:55) [2]

Удалено модератором


 
Пусик   (2006-05-07 22:14) [3]

Удалено модератором


 
LexxX ©   (2006-05-07 22:19) [4]


> Пусик   (07.05.06 22:14)


> Павлик   (07.05.06 20:55)


Может уже хватит на форуме личные разборки устраивать? Здесь не базарная площадь.


 
Пусик   (2006-05-07 22:21) [5]


> LexxX ©   (07.05.06 22:19) [4]
>
>
> > Пусик   (07.05.06 22:14)
>
>
> > Павлик   (07.05.06 20:55)
>
>
> Может уже хватит на форуме личные разборки устраивать? Здесь
> не базарная площадь.


А что-то другое? Незаметно.


 
Павлик   (2006-05-07 22:25) [6]


> Пусик   (07.05.06 22:14) [3]

Да угомонись уже :)
У меня все нормально, чего и тебе искренне желаю. А будешь такой сварливой никто с тобой дружить не станет. Такая и останешься :) И книжки почитывай не иногда, а почаще, что б код не клянчить и писать без ошибок :)


 
Пусик   (2006-05-07 22:26) [7]


> Павлик   (07.05.06 22:25) [6]
>
>
> > Пусик   (07.05.06 22:14) [3]
>
> Да угомонись уже :)
> У меня все нормально, чего и тебе искренне желаю. А будешь
> такой сварливой никто с тобой дружить не станет. Такая и
> останешься :) И книжки почитывай не иногда, а почаще, что
> б код не клянчить и писать без ошибок :)


Ух ты... никак нашел слово-то в интернете?



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.04 c
15-1147093145
recordPlay
2006-05-08 16:59
2006.06.04
Шрифт цифр, как на конвертах.


15-1146822724
Petr V. Abramov
2006-05-05 13:52
2006.06.04
Где узнать


3-1144784361
{AleX}
2006-04-11 23:39
2006.06.04
Как правельно проводить аудентификацию пользователя?


1-1145892988
Meganop
2006-04-24 19:36
2006.06.04
Вызов chm файла из Delphi


11-1127987323
shalex
2005-09-29 13:48
2006.06.04
Обрезаются иконки в MainMenu





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский