Контрольная работа: Распределенная обработка данных
HRESULT __stdcall CA::QueryInterface(const IID& iid, void** ppv)
{
if (iid == IID_IUnknown)
{
trace("QueryInterface: Vernyt' ykazatel' na IUnknown");
*ppv = static_cast<IX*>(this);
}
else if (iid == IID_IX)
{
trace("QueryInterface: Vernyt' ykazatel' na IX");
*ppv = static_cast<IX*>(this);
}
else if (iid == IID_IY)
{
trace("QueryInterface: Vernyt' ykazatel' na IY");
*ppv = static_cast<IY*>(this);
}
else
{
trace("QueryInterface: Interface No!");
*ppv = NULL;
return E_NOINTERFACE;
}
reinterpret_cast<IUnknown*>(*ppv)->AddRef();
return S_OK;
}
// Функция создания
IUnknown* CreateInstance()
{