/// <summary> /// Writes the specified property given the canonical name and a value. To allow truncation of the given value, set allowTruncatedValue /// to true. /// </summary> /// <param name="canonicalName">The canonical name.</param> /// <param name="value">The property value.</param> /// <param name="allowTruncatedValue">True to allow truncation (default); otherwise False.</param> /// <exception cref="System.ArgumentException">If the given canonical name is not valid.</exception> public void WriteProperty(string canonicalName, object value, bool allowTruncatedValue) { // Get the PropertyKey using the canonicalName passed in PropertyKey propKey; int result = PropertySystemNativeMethods.PSGetPropertyKeyFromName(canonicalName, out propKey); if (!CoreErrorHelper.Succeeded(result)) { throw new ArgumentException( LocalizedMessages.ShellInvalidCanonicalName, Marshal.GetExceptionForHR(result)); } WriteProperty(propKey, value, allowTruncatedValue); }