CComDispatchDriver::GetProperty

HRESULT GetProperty ( DISPID dwDispID, wariant * var. );

statyczne HRESULT GetProperty ( interfejsu IDispatch * pDisp, DISPID dwDispID, wariant * var. );

Wartość zwracany

Jednym ze standardowych wartości HRESULT.

Parametry

dwDispID

[w] DISPID właściwości mają zostać pobrane. DISPID, można otrzymać od IDispatch::GetIDsOfNames.

var

[limit] Wskaźnik, aby w przypadku wartość właściwości mają być przechowywane.

pDisp

[w] Wskaźnik do interfejsu IDispatch.

Uwagi

Pobiera wartość właściwości zidentyfikowanych przez dwDispID. Jeśli zostanie podana pDisp, używana jest tego wskaźnika interfejsu IDispatch . Jeśli nie, używany jest wskaźnikiem interfejsu IDispatch zawarte w Państwa danych p.

W poniższym przykładzie wywołanie statycznej wersji GetProperty. Kod ten jest używany do wykonania IPersistStreamInitImpl::Save.

CComPtrlt; IDispatch > pDispatch;
stała IID * piidOld = NULL;
dla (int i = 0; pMap, [i] .pclsidproppage! = NULL; i ++)
               / / pMap jest wskaźnik do tablicy / / ATL_PROPMAP_ENTRY struktur
{
   Jeżeli (pMap, [i] .szdesc == NULL)
      w dalszym ciągu;
   Var. CComVariant;
   Jeżeli (pMap, [i] .piiddispatch! = piidOld)
   {
      Jeżeli (nie powiodło się (ControlQueryInterface (* .piiddispatch pMap [i], (void **) & pDispatch)))
      {
         ATLTRACE (_T ("Niepowodzenie Aby uzyskać wskaźnik wysyłki dla właściwości #%i\n"), i);
         hr = E_FAIL;
         podział;
      }
      piidOld = pMap, [i] .piiddispatch;
   }
   Jeżeli (FAILED (CComDispatchDriver::GetProperty (pDispatch, pMap, [i] .dispid & var)))
   {
      ATLTRACE (_T ("Invoked nie powiodło się DISPID %x\n"), pMap[i].dispid);
      hr = E_FAIL;
      podział;
   }
   HRESULT hr = var.WriteToStream(pStm);
   Jeżeli (FAILED(hr))
      podział;
}

Omówie&nie CComDispatchDriver |nbsp; Członkowie klasy

Zobacz też CComDispatchDriver::PutProperty

Index