Контрольная работа: Распределенная обработка данных

hr = pIY->QueryInterface(IID_IUnknown, (void**)&pIUnknownFromIY);

if (SUCCEEDED(hr))

{

cout << "Sovpadaut li ykazateli na IUnknown? ";

if (pIUnknownFromIY == pIUnknown)

{

cout << "Yes, pIUnknownFromIY == pIUnknown" << endl;

}

else

{

cout << "No, pIUnknownFromIY != pIUnknown" << endl;

}

}

// Удалить компонент

delete pIUnknown;

getch();

return 0;

}

 

Результат работы программы:


Вывод:

 

В данном задании объявили интерфейсы IX, IY, IZ, и интерфейс IUnknown.

Реализовали компонент. Класс СА который реализует компонент, поддерживающий интерфейсы IX и IY. Реализовали QueryInterface. Функцию CreateInstance, которая определяется после класса CA. Клиент использует ее, чтобы создать компонент, представляемый при помощи СА, и получили указатель на IUnknown этого компонента.

Задание №1B Подсчет ссылок

 

Цель работы:

Добавить к предыдущей программе из лабороторной работы №1А подсчет ссылок. Для этого к компоненту добавить реализации двух методов IUnknown – AddRef и Release.используя функции Win32 InterlockedIncrement и InterlockedDecrement. Функцию AddRef вызывают CreateInstance и QueryInterface для соответствующих указателей на интерфейсы. Вызовы Release добавить в клиенте, чтобы обозначить окончание работы с различными интерфейсами.

Ликвидировать компонент с помощью деструктора.

К-во Просмотров: 512
Бесплатно скачать Контрольная работа: Распределенная обработка данных