Getting Properties of Objects
This section shows example code to get properties of objects. The example code uses:
CMetaObject::GetPropertyValue
/////////////////////////////////////////////////////////////////////
// GetAutoProp function
//
// Read Auto Object and Get Auto Properties.
/////////////////////////////////////////////////////////////////////
HRESULT GetAutoProp()
{
CMetaObject obj;
CMetaProperty PropObj;
String CarID;
unsigned char CarIDBuf[4];
int Bufsz = 4;
short Price;
String DesignDate;
float FuelTank;
double Height;
int Weight;
String VehicleType;
String Review;
HRESULT result = S_OK;
// Read by ClassGUID and Name
obj.SetClassGUID(CLSGUID_Auto);
obj.SetObjectName(_T("Yearling"));
if (SUCCEEDED(result = obj.ReadObject()))
{
if (SUCCEEDED(result =
obj.GetPropertyValue(PID_AUTO_CARID, PropObj)))
{
result = PropObj.GetBinaryAsString(CarID);
result = PropObj.GetBinary((void*)CarIDBuf, Bufsz);
}
}
if (SUCCEEDED(result))
{
if (SUCCEEDED(result =
obj.GetPropertyValue(PID_AUTO_BASEPRICE, PropObj)))
result = PropObj.GetShort(Price);
}
if (SUCCEEDED(result))
{
if (SUCCEEDED(result =
obj.GetPropertyValue(PID_AUTO_DESIGNDATE, PropObj)))
result = PropObj.GetString(DesignDate);
}
if (SUCCEEDED(result))
{
if (SUCCEEDED(result =
obj.GetPropertyValue(PID_AUTO_FUELTANK, PropObj)))
result = PropObj.GetFloat(FuelTank);
}
if (SUCCEEDED(result))
{
if (SUCCEEDED(result =
obj.GetPropertyValue(PID_AUTO_HEIGHT, PropObj)))
result = PropObj.GetDouble(Height);
}
if (SUCCEEDED(result))
{
if (SUCCEEDED(result =
obj.GetPropertyValue(PID_AUTO_WEIGHT, PropObj)))
result = PropObj.GetInt(Weight);
}
if (SUCCEEDED(result))
{
if (SUCCEEDED(result =
obj.GetPropertyValue(PID_AUTO_VEHICLETYPE, PropObj)))
result = PropObj.GetString(VehicleType);
}
if (SUCCEEDED(result))
{
if (SUCCEEDED(result =
obj.GetPropertyValue(PID_AUTO_REVIEW, PropObj)))
result = PropObj.GetString(Review);
}
return(result);
}