本文整理汇总了C#中PropVariant.SetSafeArray方法的典型用法代码示例。如果您正苦于以下问题:C# PropVariant.SetSafeArray方法的具体用法?C# PropVariant.SetSafeArray怎么用?C# PropVariant.SetSafeArray使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PropVariant
的用法示例。
在下文中一共展示了PropVariant.SetSafeArray方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: UpdateProperty
/// <summary>
/// Handles IUICommandHandler.UpdateProperty function for the supported properties
/// </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 override HRESULT UpdateProperty(ref PropertyKey key, PropVariantRef currentValue, ref PropVariant newValue)
{
if (key == RibbonProperties.RecentItems)
{
if (_recentItems != null)
{
newValue.SetSafeArray(_recentItems.ToArray());
}
}
return HRESULT.S_OK;
}
示例2: NullCommandUpdateProperty
public int NullCommandUpdateProperty(uint commandId, ref PropertyKey key, PropVariantRef currentValue, out PropVariant newValue)
{
try
{
newValue = new PropVariant();
if (key == PropertyKeys.Enabled)
{
newValue.SetBool(false);
}
else if (key == PropertyKeys.SmallImage)
{
Bitmap bitmap = CommandResourceLoader.LoadCommandBitmap(((CommandId)commandId).ToString(), "SmallImage");
RibbonHelper.CreateImagePropVariant(bitmap, out newValue);
}
else if (key == PropertyKeys.SmallHighContrastImage)
{
Bitmap bitmap =
CommandResourceLoader.LoadCommandBitmap(((CommandId)commandId).ToString(),
"SmallHighContrastImage") ??
CommandResourceLoader.LoadCommandBitmap(((CommandId)commandId).ToString(), "SmallImage");
RibbonHelper.CreateImagePropVariant(bitmap, out newValue);
}
else if (key == PropertyKeys.LargeImage)
{
Bitmap bitmap = CommandResourceLoader.LoadCommandBitmap(((CommandId)commandId).ToString(), "LargeImage");
RibbonHelper.CreateImagePropVariant(bitmap, out newValue);
}
else if (key == PropertyKeys.LargeHighContrastImage)
{
Bitmap bitmap =
CommandResourceLoader.LoadCommandBitmap(((CommandId)commandId).ToString(),
"LargeHighContrastImage") ??
CommandResourceLoader.LoadCommandBitmap(((CommandId)commandId).ToString(), "LargeImage");
RibbonHelper.CreateImagePropVariant(bitmap, out newValue);
}
else if (key == PropertyKeys.Label)
{
string str = "Command." + ((CommandId)commandId).ToString() + ".LabelTitle";
newValue = new PropVariant(TextHelper.UnescapeNewlines(Res.GetProp(str)) ?? String.Empty);
}
else if (key == PropertyKeys.LabelDescription)
{
string str = "Command." + ((CommandId)commandId).ToString() + ".LabelDescription";
newValue = new PropVariant(Res.GetProp(str) ?? String.Empty);
}
else if (key == PropertyKeys.TooltipTitle)
{
string commandName = ((CommandId)commandId).ToString();
string str = "Command." + commandName + ".TooltipTitle";
newValue = new PropVariant(Res.GetProp(str) ?? (Res.GetProp("Command." + commandName + ".LabelTitle") ?? String.Empty));
}
else if (key == PropertyKeys.TooltipDescription)
{
string str = "Command." + ((CommandId)commandId).ToString() + ".TooltipDescription";
newValue = new PropVariant(Res.GetProp(str) ?? String.Empty);
}
else if (key == PropertyKeys.Keytip)
{
newValue = new PropVariant("XXX");
}
else if (key == PropertyKeys.ContextAvailable)
{
newValue.SetUInt((uint)ContextAvailability.NotAvailable);
}
else if (key == PropertyKeys.Categories)
{
newValue = new PropVariant();
newValue.SetIUnknown(currentValue);
}
else if (key == PropertyKeys.RecentItems)
{
object[] currColl = (object[])currentValue.PropVariant.Value;
newValue = new PropVariant();
newValue.SetSafeArray(currColl);
return HRESULT.S_OK;
}
else if (key == PropertyKeys.ItemsSource)
{
// This should only be necessary if you have created a gallery in the ribbon markup that you have not yet put into the command manager.
List<IUISimplePropertySet> list = new List<IUISimplePropertySet>();
OpenLiveWriter.Interop.Com.Ribbon.IEnumUnknown enumUnk = new BasicCollection(list);
newValue = new PropVariant();
newValue.SetIUnknown(enumUnk);
return HRESULT.S_OK;
}
else if (key == PropertyKeys.StringValue)
{
newValue = new PropVariant(String.Empty);
}
else if (key == PropertyKeys.SelectedItem)
{
newValue = new PropVariant(0);
}
else if (key == PropertyKeys.DecimalValue)
{
//.........这里部分代码省略.........