private unsafe int GetContainer(PIActionReference reference, PIActionReference *value) { if (reference == null) { return(PSError.kSPBadParameterError); } ActionReferenceContainer container; if (actionReferences.TryGetValue(reference, out container)) { try { ActionReferenceContainer nextContainer = container.GetNextContainer(); if (nextContainer != null) { *value = GenerateDictionaryKey(); actionReferences.Add(*value, nextContainer); } else { *value = PIActionReference.Null; } } catch (OutOfMemoryException) { return(PSError.memFullErr); } return(PSError.kSPNoError); } return(PSError.kSPBadParameterError); }
private int GetContainer(IntPtr reference, ref IntPtr value) { ActionReferenceContainer container; if (actionReferences.TryGetValue(reference, out container)) { try { ActionReferenceContainer nextContainer = container.GetNextContainer(); if (nextContainer != null) { value = GenerateDictionaryKey(); actionReferences.Add(value, nextContainer); } else { value = IntPtr.Zero; } } catch (OutOfMemoryException) { return(PSError.memFullErr); } return(PSError.kSPNoError); } return(PSError.kSPBadParameterError); }