HRESULT GetProperty ( DISPID dwDispID, варіант * var );
статичний HRESULT GetProperty ( IDispatch * pDisp, DISPID dwDispID, варіант * var );
Значення, яке повертається
Один із стандартних значень HRESULT.
Параметри
dwDispID
[в] DISPID власності будуть отримані. На DISPID можна отримати від IDispatch::GetIDsOfNames.
вар
[з] Курсор туди, де вартість майна буде зберігатися.
pDisp
[в] Вказівник на IDispatch інтерфейс.
Зауваження
Отримує значення властивості, визначені dwDispID. Якщо вказати pDisp, що IDispatch вказівник використовується. Якщо ви цього не зробите, використовується IDispatch вказівник, які містяться у даних член p.
Наступний приклад показує заклик до статичної версії GetProperty. Цей код використовується для здійснення IPersistStreamInitImpl::Save.
CComPtrlt; IDispatch > pDispatch;
константа IID * piidOld = NULL;
для (int я = 0; pMap, [i] .pclsidproppage! = NULL; i + +)
/ / pMap — це вказівник на масив / / ATL_PROPMAP_ENTRY структури
{
Якщо (.szDesc pMap, [i] = = NULL)
Продовжити;
CComVariant var;
Якщо (.piidDispatch pMap, [i]! = piidOld)
{
Якщо (не вдалося (ControlQueryInterface (* pMap [i] .piiddispatch, (void **) & pDispatch)))
{
ATLTRACE (_T ("не вдалося отримати вказівник відправлення для властивості #%i\n"), я);
hr = E_FAIL;
перерви;
}
piidOld = .piiddispatch pMap, [i];
}
Якщо (не вдалося (CComDispatchDriver::GetProperty (pDispatch, pMap, [i] .dispid & var)))
{
ATLTRACE (_T ("Invoked не вдалося на DISPID %x\n"), pMap[i].dispid);
hr = E_FAIL;
перерви;
}
HRESULT hr = VAR.WriteToStream(pStm);
Якщо (FAILED(hr))
перерви;
}
Огляд CComDispatchDriver | Члени класу
Дивіться також CComDispatchDriver::PutProperty