private int PutObject(PIActionList list, uint type, PIActionDescriptor descriptor) { if (actionDescriptorSuite == null) { // The plug-in called this method before acquiring the Action Descriptor suite. return(PSError.kSPLogicError); } try { ReadOnlyDictionary <uint, AETEValue> descriptorValues; if (actionDescriptorSuite.TryGetDescriptorValues(descriptor, out descriptorValues)) { ActionListDescriptor item = new ActionListDescriptor(type, descriptorValues); actionLists[list].Add(new ActionListItem(DescriptorTypes.Object, item)); } else { return(PSError.kSPBadParameterError); } } catch (OutOfMemoryException) { return(PSError.kSPOutOfMemoryError); } return(PSError.kSPNoError); }
private unsafe int GetObject(PIActionList list, uint index, uint *retType, PIActionDescriptor *descriptor) { if (actionDescriptorSuite == null) { // The plug-in called this method before acquiring the Action Descriptor suite. return(PSError.kSPLogicError); } if (descriptor == null) { return(PSError.kSPBadParameterError); } ActionListItemCollection items = actionLists[list]; if (index < items.Count) { ActionListDescriptor item = (ActionListDescriptor)items[(int)index].Value; if (retType != null) { *retType = item.Type; } try { *descriptor = actionDescriptorSuite.CreateDescriptor(item.DescriptorValues); } catch (OutOfMemoryException) { return(PSError.kSPOutOfMemoryError); } return(PSError.kSPNoError); } return(PSError.kSPBadParameterError); }