An Item Type property has several attributes that can be set, along these lines...
CustomPropertyP p1 = ecItemType.AddProperty (L"prop-name", false);
if (nullptr != p1)
{
p1->SetType (prop.CustomPropertyType ());
p1->SetIsArray (false);
p1->SetDefaultValue (value);
}
An attribute that is not provided is Read-Only. That is, a user should not be able to change that property's value in the user interface. My idea is for a CustomProperty::SetReadOnly()
method.