Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }