HRESULT GetProperty ( DISPID dwDispID, вариант * var );
статический HRESULT GetProperty ( IDispatch * pDisp, DISPID dwDispID, вариант * var );
Возвращаемое значение
Один из стандартных значений HRESULT.
Параметры
dwDispID
[в] Идентификатор DISPID для извлечения свойства. Идентификатор DISPID можно получить из IDispatch::GetIDsOfNames.
var
[out] Указатель на значение свойства которого должна храниться.
pDisp
[в] Указатель на интерфейс IDispatch.
Примечания
Получает значение свойства, определенных dwDispID. Если вы pDisp, что указатель IDispatch используется. Если этого не сделать, используется указатель IDispatch , содержащиеся в данных членов p.
В следующем примере показан вызов статические версии GetProperty. Этот код используется для реализации IPersistStreamInitImpl::Save.
CComPtrlt; IDispatch > pDispatch;
const IID * piidOld = NULL;
для (внутренне I = 0; pMap [i] .pclsidproppage! = NULL; i ++)
/ / pMap представляет собой указатель на массив / / ATL_PROPMAP_ENTRY структуры
{
Если (pMap [i] .szdesc == NULL)
продолжаются;
CComVariant var;
Если (pMap [i] .piiddispatch! = piidOld)
{
Если (FAILED (ControlQueryInterface (* .piiddispatch pMap [i] (void **) & pDispatch)))
{
ATLTRACE (_T ("удалось получить указатель направления для свойства #%i\n"), я);
HR = E_FAIL;
перерыв;
}
piidOld = .piiddispatch pMap [i];
}
Если (FAILED (CComDispatchDriver::GetProperty (pDispatch, .dispid pMap [i] и var)))
{
ATLTRACE (_T ("вызов не удалось на DISPID %x\n"), pMap[i].dispid);
HR = E_FAIL;
перерыв;
}
HRESULT hr = var.WriteToStream(pStm);
Если (FAILED(hr))
перерыв;
}
Обзор CComDispatchDriver | Члены класса
См. также CComDispatchDriver::PutProperty