Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Most of the property system uses PROPERTYKEYs to identify properties. But you can also identify a property using its canonical name. For instance, PKEY_DateModified corresponds to L"System.DateModified".
Whereas a PROPERTYKEY was good for coding and binary structures, the name is the ideal form for the registry or config files. Canonical names are meant to be programmer friendly, composed of [0-9A-Za-z.], up to 63 characters long, and are structured as Company.Group.Property. The only exception to the naming convension is that the built-in system properties are named System.Group.Property.
Anyway, converting between a canonical name and a key is easy. These two functions are very cheap (a hash table lookup, usually).
// from propsys.h
HRESULT PSGetPropertyKeyFromName(__in PCWSTR pszName, __out PROPERTYKEY *ppropkey);
HRESULT PSGetNameFromPropertyKey(__in REFPROPERTYKEY propkey, __out PWSTR *ppszCanonicalName);
There's even a version of PSGetPropertyDescription that takes canonical names...
PSSTDAPI PSGetPropertyDescriptionByName(LPCWSTR pszCanonicalName, __in REFIID riid, __deref_out void **ppv);
Comments
- Anonymous
September 12, 2006
glad to see posts on the Vista property system! good stuff.