CComDispatchDriver::GetProperty

hresult GetProperty ( DISPID dwDispID, VARIANT * var );

Statik hresult GetProperty ( IDispatch * pDisp, DISPID dwDispID, VARIANT * var );

Dönüş değeri

Standart hresult değerlerden.

Parametreleri

dwDispID

[de] Özellik DISPID alınacak. DISPID sayfasından elde edilebilir IDispatch::GetIDsOfNames.

var

[out] Özellik değeri depolanmış olduğu için işaretçi.

pDisp

[de] İşaretçi IDispatch arabirimi.

Açıklamalar

DwDispIDtarafından tanımlanan özellik değerini alır. PDispsağlarsanız, o IDispatch işaretçisi kullanılır. Bunu yapmazsanız, içerdiği veri üyesi p IDispatch işaretçisi kullanılır.

Aşağıdaki örnek aramak için GetPropertystatik sürümünü gösterir. Bu kodu IPersistStreamInitImpl::Save uygulama için kullanılır.

CComPtrlt; IDispatch > pDispatch;
Const IID * piidOld = null;
for (int i = 0; pMap [i] .pclsidproppage! = null; i ++)
               / / pMap bir dizi işaretçisine / / atl_propmap_entry yapıları
{
   Eğer (pMap [i] .szdesc == null)
      «««devam;
   CComVariant var;
   Eğer (pMap [i] .piiddispatch! = piidOld)
   {
      Eğer (FAILED (ControlQueryInterface (* pMap [i] .piiddispatch, (void **) & pDispatch)))
      {
         atltrace (("a gönderme işaretçisi özelliği #%i\n için alınamadı") _t, ı);
         hr = E_FAIL;
         Break;
      }
      piidOld = pMap [i] .piiddispatch;
   }
   Eğer (FAILED (CComDispatchDriver::GetProperty (pDispatch, pMap [i] .dispid ve var)))
   {
      atltrace (_t ("üzerinde DISPID %x\n başarısız Invoked"), pMap[i].dispid);
      hr = E_FAIL;
      Break;
   }
   hresult hr = var.WriteToStream(pStm);
   Eğer (FAILED(hr))
      Break;
}

CComDispatchDriver ge&nel bakış |nbsp; Sınıf üyeleri

Ayrıca bkz: CComDispatchDriver::PutProperty

Index