Контрольная работа: Распределенная обработка данных
virtual ULONG __stdcall AddRef();
virtual ULONG __stdcall Release();
// Реализация интерфейса IX
virtual void __stdcall Fx() { cout << "Fx" << endl; }
// Реализация интерфейса IY
virtual void __stdcall Fy() { cout << "Fy" << endl; }
public:
// Конструктор
CA() : m_cRef(0) {}
// Деструктор
~CA() { trace("CA: Likvidirovat' seby"); }
private:
long m_cRef;
};
HRESULT __stdcall CA::QueryInterface(const IID& iid, void** ppv)
{
if (iid == IID_IUnknown)
{
trace("CA QI: Vozvratit' ykazateel na IUnknown");
*ppv = static_cast<IX*>(this);
}
else if (iid == IID_IX)
{
trace("CA QI: Vozvratit' ykazateel na IX");
*ppv = static_cast<IX*>(this);
}
else if (iid == IID_IY)
{
trace("CA QI:Vozvratit' ykazateel na IY");