CComDispatchDriver::GetProperty

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

Index