CComDispatchDriver::GetProperty

HRESULT GetProperty ( DISPID DwDispID, VARIANT * Var );

statische HRESULT GetProperty ( IDispatch * pDisp, DISPID DwDispID, VARIANT * Var );

Rückgabewert

Eines der standard- HRESULT -Werte.

Parameter

dwDispID

[in] Die DISPID der Eigenschaft abgerufen werden. Die DISPID erhalten Sie von IDispatch:: GetIDsOfNames.

var

[out] Zeiger, wobei der Wert der Eigenschaft gespeichert werden.

pDisp

[in] Zeiger auf die IDispatch -Schnittstelle.

Bemerkungen

Ruft den Wert der Eigenschaft durch DwDispIDidentifiziert. Wenn Sie pDispangeben, wird die IDispatch -Zeiger verwendet. Wenn Sie dies nicht tun, wird der IDispatch -Zeiger in den Daten Member p enthaltenen verwendet.

Das folgende Beispiel zeigt einen Aufruf der statischen Version der GetProperty. Dieser Code wird verwendet, um IPersistStreamInitImpl::Save zu implementieren.

CComPtrlt; IDispatch > pDispatch;
const IID * PiidOld = NULL;
für (Int I = 0; pMap [i] .pclsidproppage! = NULL; i++)
               / / pMap ist ein Zeiger auf ein Array von / / ATL_PROPMAP_ENTRY Strukturen
{
   Wenn (pMap [i] .szdesc == NULL)
      weiter;
   CComVariant Var;
   Wenn (pMap [i] .piiddispatch! = PiidOld)
   {
      Wenn (FAILED (ControlQueryInterface (* pMap [i] .piiddispatch, (Void **) & pDispatch)))
      {
         ATLTRACE (_T ("Fehler beim Abrufen eines Versand-Zeigers für Eigenschaft #%i\n"), ich);
         HR = E_FAIL;
         brechen;
      }
      PiidOld = pMap [i] .piiddispatch;
   }
   Wenn (FAILED (CComDispatchDriver::GetProperty (pDispatch, pMap [i] .dispid u. Var)))
   {
      ATLTRACE (_T ("Invoked Fehler bei DISPID-%x\n"), pMap[i].dispid);
      HR = E_FAIL;
      brechen;
   }
   HRESULT hr = var.WriteToStream(pStm);
   Wenn (FAILED(hr))
      brechen;
}

Übersicht über die CComDispatchDriver |  Klassenmember

Siehe auch&Nbsp;CComDispatchDriver::PutProperty

Index