CComDispatchDriver::GetProperty

HRESULT GetProperty ( DISPID dwDispID, variante * var );

estático HRESULT GetProperty ( IDispatch * pDisp, DISPID dwDispID, variante * var );

Valor de retorno

Um dos valores HRESULT padrão.

Parâmetros

dwDispID

[no] O DISPID da propriedade a ser recuperados. O DISPID pode ser obtido de IDispatch:: GetIDsOfNames.

var

[out] Ponteiro para onde o valor da propriedade é a ser armazenado.

pDisp

[no] Ponteiro para o interface IDispatch.

Observações

Obtém o valor da propriedade identificado por dwDispID. Se você fornecer pDisp, esse ponteiro de IDispatch é usado. Se você não fizer isso, o ponteiro de IDispatch contido no dados membro p é usado.

O exemplo a seguir mostra uma chamada para a versão estática do GetProperty. Este código é usado para implementar IPersistStreamInitImpl::Save.

CComPtrlt; IDispatch > pDispatch;
const IID * piidOld = NULL;
for (int i = 0; pMap [i] .pclsidproppage! = NULL; i + +)
               / / pMap é um ponteiro para uma matriz de / / estruturas ATL_PROPMAP_ENTRY
{
   se (pMap [i] .szdesc = = NULL)
      continuar;
   CComVariant var;
   se (pMap [i] .piiddispatch! = piidOld)
   {
      se (FAILED (ControlQueryInterface (* pMap [i] .piiddispatch, (void **) & pDispatch)))
      {
         ATLTRACE ( t ("falhado ao obter um ponteiro de expedição para a propriedade #%i\n"), i);
         hr = E_FAIL;
         quebra;
      }
      piidOld = pMap [i] .piiddispatch;
   }
   se (FAILED (CComDispatchDriver::GetProperty (pDispatch, pMap, [i] .dispid & var)))
   {
      ATLTRACE ( t ("Invoked falhado em DISPID %x\n"), pMap[i].dispid);
      hr = E_FAIL;
      quebra;
   }
   HRESULT hr = var.WriteToStream(pStm);
   se (FAILED(hr))
      quebra;
}

Visão geral de CComDispatchDriver |  Membros de classe

Co&nsulte tambémnbsp;CComDispatchDriver::PutProperty

Index