CComDispatchDriver::GetProperty

HRESULT GetProperty ( DISPID dwDispID, variante de * var );

statique HRESULT GetProperty ( IDispatch * pDisp, DISPID dwDispID, variante de * var );

Valeur de retour

Une des valeurs HRESULT standards.

Paramètres

dwDispID

[en] Le DISPID de la propriété à récupérer. Le DISPID peut être obtenus à IDispatch::GetIDsOfNames.

var

[out] Pointeur vers où la valeur de la propriété doit être stocké.

pDisp

[en] Pointeur vers la interface IDispatch.

Remarques

Obtient la valeur de la propriété identifiée par dwDispID. Si vous fournissez des pDisp, ce pointeur IDispatch est utilisé. Si vous ne le faites pas, le pointeur IDispatch contenu dans les données membres p est utilisé.

L'exemple suivant montre un appel à la version statique de GetProperty. Ce code est utilisé pour mettre en œuvre des IPersistStreamInitImpl::Save.

CComPtrlt ; IDispatch > pDispatch ;
const IID * piidOld = NULL ;
for (int i = 0; pMap [i] .pclsidproppage! = NULL; i ++)
               / / PPAFM est un pointeur vers un tableau de / / structures ATL_PROPMAP_ENTRY
{
   Si (.szDesc pMap [i] == NULL)
      continuer ;
   CComVariant var ;
   Si (.piidDispatch pMap [i]! = piidOld)
   {
      Si (FAILED (ControlQueryInterface (* pMap [i] .piiddispatch, (void **) & pDispatch)))
      {
         ATLTRACE (_T ("Impossible d'obtenir un pointeur d'expédition pour la propriété #%i\n »), i) ;
         HR = E_FAIL ;
         Pause ;
      }
      piidOld = pMap [i] .piiddispatch ;
   }
   Si (FAILED (CComDispatchDriver::GetProperty (pDispatch, PPAFM [i] .dispid & var)))
   {
      ATLTRACE (_T ("invoquées n'a pas le DISPID %x\n »), pMap[i].dispid) ;
      HR = E_FAIL ;
      Pause ;
   }
   HRESULT hr = var.WriteToStream(pStm) ;
   Si (FAILED(hr))
      Pause ;
}

Aperçu CComDispatchDriver |  ; Membres de classe

Voir aussi  ;CComDispatchDriver::PutProperty

Index