Freigegebene Eigenschaftengruppen
Um Namenskonflikte zwischen Eigenschaften zu verhindern, die von verschiedenen Objekten erstellt wurden, verwendet der Freigegebene Eigenschaften-Manager (SHARED Property Manager, SPM) freigegebene Eigenschaftengruppen. Eine freigegebene Eigenschaftengruppe ist einfach ein Namespace für einen Satz freigegebener Eigenschaften. Jede Eigenschaft innerhalb einer freigegebenen Eigenschaftengruppe besteht aus einem Namen, einem Wert und einer Position innerhalb der freigegebenen Eigenschaftengruppe. Der Name oder die Position kann zum Abrufen des Eigenschaftswerts verwendet werden. Sie können über den Gruppen-Manager für freigegebene Eigenschaften auf freigegebene Eigenschaftengruppen zugreifen und diese erstellen.
Das SPM-Objektmodell ist in der folgenden Abbildung dargestellt.

Es folgen Schnittstellen des freigegebenen Eigenschaften-Managers:
ISharedPropertyGroupManager wird verwendet, um freigegebene Eigenschaftengruppen zu erstellen und Zugriff auf vorhandene freigegebene Eigenschaftengruppen zu erhalten. Sie können auf die ISharedPropertyGroupManager-Schnittstelle zugreifen, indem Sie eine Instanz des SharedPropertyGroupManager-Objekts erstellen, indem Sie entweder IObjectContext::CreateInstance oder CoCreateInstanceverwenden.
ISharedPropertyGroup wird verwendet, um die freigegebenen Eigenschaften in einer freigegebenen Eigenschaftengruppe zu erstellen und darauf zuzugreifen. Sie können auf die ISharedPropertyGroup-Schnittstelle zugreifen, indem Sie ein SharedPropertyGroup-Objekt mit der ISharedPropertyGroupManager::CreatePropertyGroup-Methode erstellen. Wie bei jedem COM-Objekt müssen Sie ein SharedPropertyGroup-Objekt freigeben, wenn Sie es nicht mehr verwenden.
ISharedProperty wird verwendet, um den Wert einer freigegebenen Eigenschaft festzulegen oder abzurufen. Eine freigegebene Eigenschaft kann jeden Datentyp enthalten, der durch eine Variante dargestellt werden kann. Sie können auf die ISharedProperty-Schnittstelle zugreifen, indem Sie ein SharedProperty-Objekt mit der ISharedPropertyGroup::CreateProperty-Methode oder der ISharedPropertyGroup::CreatePropertyByPosition-Methode erstellen. Ein SharedProperty-Objekt kann nur innerhalb eines SharedPropertyGroup-Objekts erstellt oder darauf zugegriffen werden. Auch hier müssen Sie ein SharedProperty-Objekt freigeben, wenn Sie es nicht mehr verwenden.