/// <summary> /// Implementation of IUICommandHandler.UpdateProperty /// Responds to property update requests from the Windows Ribbon (Ribbon) framework. /// </summary> /// <param name="commandID">The ID for the Command, which is specified in the Markup resource file</param> /// <param name="key">The Property Key to update</param> /// <param name="currentValue">A pointer to the current value for key. This parameter can be NULL</param> /// <param name="newValue">When this method returns, contains a pointer to the new value for key</param> /// <returns>Returns S_OK if successful, or an error value otherwise</returns> /// <remarks>This method is used internally by the Ribbon class and should not be called by the user.</remarks> public virtual HRESULT UpdateProperty(uint commandID, ref PropertyKey key, PropVariantRef currentValue, ref PropVariant newValue) { #if DEBUG Debug.WriteLine(string.Format("UpdateProperty key: {0} for command {1}", RibbonProperties.GetPropertyKeyName(ref key), commandID)); #endif if (_mapRibbonControls.ContainsKey(commandID)) { return(_mapRibbonControls[commandID].UpdateProperty(ref key, currentValue, ref newValue)); } return(HRESULT.S_OK); }
private static void PrintChangedProperties(IUISimplePropertySet commandExecutionProperties) { PropVariant propChangesProperties; commandExecutionProperties.GetValue(ref RibbonProperties.FontProperties_ChangedProperties, out propChangesProperties); IPropertyStore changedProperties = (IPropertyStore)propChangesProperties.Value; uint changedPropertiesNumber; changedProperties.GetCount(out changedPropertiesNumber); Debug.WriteLine(""); Debug.WriteLine("FontControl changed properties:"); for (uint i = 0; i < changedPropertiesNumber; ++i) { PropertyKey propertyKey; changedProperties.GetAt(i, out propertyKey); Debug.WriteLine(RibbonProperties.GetPropertyKeyName(ref propertyKey)); } }
/// <summary> /// Handles IUICommandHandler.UpdateProperty function for this ribbon control /// </summary> /// <param name="key">The Property Key to update</param> /// <param name="currentValue">A pointer to the current value for key. This parameter can be null</param> /// <param name="newValue">When this method returns, contains a pointer to the new value for key</param> /// <returns>Returns S_OK if successful, or an error value otherwise</returns> public virtual HRESULT UpdateProperty(ref PropertyKey key, PropVariantRef currentValue, ref PropVariant newValue) { // check if property is registered with this ribbon control if (_mapProperties.ContainsKey(key)) { // find property provider IPropertiesProvider propertiesProvider = _mapProperties[key]; // delegates execution to property provider return(propertiesProvider.UpdateProperty(ref key, currentValue, ref newValue)); } Debug.WriteLine(string.Format("Class {0} does not support property: {1}.", GetType(), RibbonProperties.GetPropertyKeyName(ref key))); return(HRESULT.S_OK); }
/// <summary> /// Retrieves the stored value of a given property /// </summary> /// <param name="key">The Property Key of interest.</param> /// <param name="value">When this method returns, contains a pointer to the value for key.</param> /// <returns></returns> public HRESULT GetValue(ref PropertyKey key, out PropVariant value) { if (key == RibbonProperties.CommandID) { if (_commandID.HasValue) { value = PropVariant.FromObject(_commandID.Value); } else { value = PropVariant.Empty; } return(HRESULT.S_OK); } if (key == RibbonProperties.CommandType) { if (_commandType.HasValue) { value = PropVariant.FromObject((uint)_commandType.Value); } else { value = PropVariant.Empty; } return(HRESULT.S_OK); } if (key == RibbonProperties.CategoryID) { if (_categoryID.HasValue) { value = PropVariant.FromObject(_categoryID.Value); } else { value = PropVariant.Empty; } return(HRESULT.S_OK); } Debug.WriteLine(string.Format("Class {0} does not support property: {1}.", GetType(), RibbonProperties.GetPropertyKeyName(ref key))); value = PropVariant.Empty; return(HRESULT.E_NOTIMPL); }
/// <summary> /// Retrieves the stored value of a given property /// </summary> /// <param name="key">The Property Key of interest.</param> /// <param name="value">When this method returns, contains a pointer to the value for key.</param> /// <returns></returns> public HRESULT GetValue(ref PropertyKey key, out PropVariant value) { if (key == RibbonProperties.Label) { if ((_label == null) || (_label.Trim() == string.Empty)) { value = PropVariant.Empty; } else { value = PropVariant.FromObject(_label); } return(HRESULT.S_OK); } if (key == RibbonProperties.LabelDescription) { if ((_labelDescription == null) || (_labelDescription.Trim() == string.Empty)) { value = PropVariant.Empty; } else { value = PropVariant.FromObject(_labelDescription); } return(HRESULT.S_OK); } if (key == RibbonProperties.Pinned) { if (_pinned.HasValue) { value = PropVariant.FromObject(_pinned.Value); } else { value = PropVariant.Empty; } return(HRESULT.S_OK); } Debug.WriteLine(string.Format("Class {0} does not support property: {1}.", GetType().ToString(), RibbonProperties.GetPropertyKeyName(ref key))); value = PropVariant.Empty; return(HRESULT.E_NOTIMPL); }
public HRESULT GetValue(ref PropertyKey key, out PropVariant value) { if (key == RibbonProperties.Label) { if ((style.Title == null) || (style.Title.Trim() == string.Empty)) { value = PropVariant.Empty; } else { value = PropVariant.FromObject(style.Title); } return(HRESULT.S_OK); } if (key == RibbonProperties.CategoryID) { if (categoryId.HasValue) { value = PropVariant.FromObject(categoryId.Value); } else { value = PropVariant.Empty; } return(HRESULT.S_OK); } if (key == RibbonProperties.ItemImage) { if (itemImage != null) { value = new PropVariant(); value.SetIUnknown(itemImage); } else { value = PropVariant.Empty; } return(HRESULT.S_OK); } Debug.WriteLine("Class {0} does not support property: {1}.", GetType().ToString(), RibbonProperties.GetPropertyKeyName(ref key)); value = PropVariant.Empty; return(HRESULT.E_NOTIMPL); }