CComDispatchDriver::GetProperty

HRESULT GetProperty ( DISPID dwDispID, варіант * var );

статичний HRESULT GetProperty ( IDispatch * pDisp, DISPID dwDispID, варіант * var );

Значення, яке повертається

Один із стандартних значень HRESULT.

Параметри

dwDispID

[в] DISPID власності будуть отримані. На DISPID можна отримати від IDispatch::GetIDsOfNames.

вар

[з] Курсор туди, де вартість майна буде зберігатися.

pDisp

[в] Вказівник на IDispatch інтерфейс.

Зауваження

Отримує значення властивості, визначені dwDispID. Якщо вказати pDisp, що IDispatch вказівник використовується. Якщо ви цього не зробите, використовується IDispatch вказівник, які містяться у даних член p.

Наступний приклад показує заклик до статичної версії GetProperty. Цей код використовується для здійснення IPersistStreamInitImpl::Save.

CComPtrlt; IDispatch > pDispatch;
константа IID * piidOld = NULL;
для (int я = 0; pMap, [i] .pclsidproppage! = NULL; i + +)
               / / pMap — це вказівник на масив / / ATL_PROPMAP_ENTRY структури
{
   Якщо (.szDesc pMap, [i] = = NULL)
      Продовжити;
   CComVariant var;
   Якщо (.piidDispatch pMap, [i]! = piidOld)
   {
      Якщо (не вдалося (ControlQueryInterface (* pMap [i] .piiddispatch, (void **) & pDispatch)))
      {
         ATLTRACE (_T ("не вдалося отримати вказівник відправлення для властивості #%i\n"), я);
         hr = E_FAIL;
         перерви;
      }
      piidOld = .piiddispatch pMap, [i];
   }
   Якщо (не вдалося (CComDispatchDriver::GetProperty (pDispatch, pMap, [i] .dispid & var)))
   {
      ATLTRACE (_T ("Invoked не вдалося на DISPID %x\n"), pMap[i].dispid);
      hr = E_FAIL;
      перерви;
   }
   HRESULT hr = VAR.WriteToStream(pStm);
   Якщо (FAILED(hr))
      перерви;
}

Огляд CComDispatchDriverЧлени класу

Дивіться також CComDispatchDriver::PutProperty

Index