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