public virtual void add_RigTypeChange([In] IOmniRigXEvents_RigTypeChangeEventHandler obj0)
        {
            bool lockTaken;

            try
            {
                Monitor.Enter((object)this, ref lockTaken);
                if (this.m_ConnectionPoint == null)
                {
                    this.Init();
                }
                IOmniRigXEvents_SinkHelper xeventsSinkHelper = new IOmniRigXEvents_SinkHelper();
                int pdwCookie = 0;
                this.m_ConnectionPoint.Advise((object)xeventsSinkHelper, out pdwCookie);
                xeventsSinkHelper.m_dwCookie = pdwCookie;
                xeventsSinkHelper.m_RigTypeChangeDelegate = obj0;
                this.m_aEventSinkHelpers.Add((object)xeventsSinkHelper);
            }
            finally
            {
                if (lockTaken)
                {
                    Monitor.Exit((object)this);
                }
            }
        }
 internal IOmniRigXEvents_SinkHelper()
 {
     this.m_dwCookie = 0;
     this.m_VisibleChangeDelegate = (IOmniRigXEvents_VisibleChangeEventHandler)null;
     this.m_RigTypeChangeDelegate = (IOmniRigXEvents_RigTypeChangeEventHandler)null;
     this.m_StatusChangeDelegate  = (IOmniRigXEvents_StatusChangeEventHandler)null;
     this.m_ParamsChangeDelegate  = (IOmniRigXEvents_ParamsChangeEventHandler)null;
     this.m_CustomReplyDelegate   = (IOmniRigXEvents_CustomReplyEventHandler)null;
 }
        public virtual void remove_RigTypeChange([In] IOmniRigXEvents_RigTypeChangeEventHandler obj0)
        {
            bool lockTaken;

            try
            {
                Monitor.Enter((object)this, ref lockTaken);
                if (this.m_aEventSinkHelpers == null)
                {
                    return;
                }
                int count = this.m_aEventSinkHelpers.Count;
                int index = 0;
                if (0 >= count)
                {
                    return;
                }
                do
                {
                    IOmniRigXEvents_SinkHelper aEventSinkHelper = (IOmniRigXEvents_SinkHelper)this.m_aEventSinkHelpers[index];
                    if (aEventSinkHelper.m_RigTypeChangeDelegate != null && ((aEventSinkHelper.m_RigTypeChangeDelegate.Equals((object)obj0) ? 1 : 0) & (int)byte.MaxValue) != 0)
                    {
                        this.m_aEventSinkHelpers.RemoveAt(index);
                        this.m_ConnectionPoint.Unadvise(aEventSinkHelper.m_dwCookie);
                        if (count <= 1)
                        {
                            Marshal.ReleaseComObject((object)this.m_ConnectionPoint);
                            this.m_ConnectionPoint   = (IConnectionPoint)null;
                            this.m_aEventSinkHelpers = (ArrayList)null;
                            return;
                        }
                        goto label_11;
                    }
                    else
                    {
                        ++index;
                    }
                }while (index < count);
                goto label_12;
label_11:
                return;

                label_12 :;
            }
            finally
            {
                if (lockTaken)
                {
                    Monitor.Exit((object)this);
                }
            }
        }
Esempio n. 4
0
 public virtual extern void remove_RigTypeChange([In] IOmniRigXEvents_RigTypeChangeEventHandler obj0);