IntPtr IActionListSuite.CreateFromActionDescriptor(ActionDescriptorList descriptor) { if (descriptor == null) { throw new ArgumentNullException(nameof(descriptor)); } IntPtr list = GenerateDictionaryKey(); actionLists.Add(list, new ActionListItemCollection(descriptor.Items)); return(list); }
bool IActionListSuite.ConvertToActionDescriptor(IntPtr list, out ActionDescriptorList descriptor) { descriptor = null; ActionListItemCollection items; if (actionLists.TryGetValue(list, out items)) { descriptor = items.ConvertToActionDescriptor(); return(true); } return(false); }
private int GetList(IntPtr descriptor, uint key, ref IntPtr data) { #if DEBUG DebugUtils.Ping(DebugFlags.DescriptorParameters, string.Format("key: 0x{0:X4}({1})", key, DebugUtils.PropToString(key))); #endif AETEValue item; if (actionDescriptors[descriptor].TryGetValue(key, out item)) { ActionDescriptorList value = (ActionDescriptorList)item.Value; try { data = actionListSuite.CreateFromActionDescriptor(value); } catch (OutOfMemoryException) { return(PSError.memFullErr); } return(PSError.kSPNoError); } return(PSError.errMissingParameter); }