// Token: 0x06006203 RID: 25091 RVA: 0x0014D2A0 File Offset: 0x0014B4A0
        internal void AddDelegate(Delegate d)
        {
            int num = 0;

            if (this._delegateWrappers != null)
            {
                num = this._delegateWrappers.Length;
            }
            for (int i = 0; i < num; i++)
            {
                if (this._delegateWrappers[i].Delegate.GetType() == d.GetType())
                {
                    this._delegateWrappers[i].Delegate = Delegate.Combine(this._delegateWrappers[i].Delegate, d);
                    return;
                }
            }
            ComEventsMethod.DelegateWrapper[] array = new ComEventsMethod.DelegateWrapper[num + 1];
            if (num > 0)
            {
                this._delegateWrappers.CopyTo(array, 0);
            }
            ComEventsMethod.DelegateWrapper delegateWrapper = new ComEventsMethod.DelegateWrapper(d);
            array[num]             = delegateWrapper;
            this._delegateWrappers = array;
        }
Ejemplo n.º 2
0
        internal void AddDelegate(Delegate d)
        {
            int index1 = 0;

            if (this._delegateWrappers != null)
            {
                index1 = this._delegateWrappers.Length;
            }
            for (int index2 = 0; index2 < index1; ++index2)
            {
                if (this._delegateWrappers[index2].Delegate.GetType() == d.GetType())
                {
                    this._delegateWrappers[index2].Delegate = Delegate.Combine(this._delegateWrappers[index2].Delegate, d);
                    return;
                }
            }
            ComEventsMethod.DelegateWrapper[] delegateWrapperArray = new ComEventsMethod.DelegateWrapper[index1 + 1];
            if (index1 > 0)
            {
                this._delegateWrappers.CopyTo((Array)delegateWrapperArray, 0);
            }
            ComEventsMethod.DelegateWrapper delegateWrapper = new ComEventsMethod.DelegateWrapper(d);
            delegateWrapperArray[index1] = delegateWrapper;
            this._delegateWrappers       = delegateWrapperArray;
        }
        // Token: 0x06006204 RID: 25092 RVA: 0x0014D338 File Offset: 0x0014B538
        internal void RemoveDelegate(Delegate d)
        {
            int num  = this._delegateWrappers.Length;
            int num2 = -1;

            for (int i = 0; i < num; i++)
            {
                if (this._delegateWrappers[i].Delegate.GetType() == d.GetType())
                {
                    num2 = i;
                    break;
                }
            }
            if (num2 < 0)
            {
                return;
            }
            Delegate @delegate = Delegate.Remove(this._delegateWrappers[num2].Delegate, d);

            if (@delegate != null)
            {
                this._delegateWrappers[num2].Delegate = @delegate;
                return;
            }
            if (num == 1)
            {
                this._delegateWrappers = null;
                return;
            }
            ComEventsMethod.DelegateWrapper[] array = new ComEventsMethod.DelegateWrapper[num - 1];
            int j;

            for (j = 0; j < num2; j++)
            {
                array[j] = this._delegateWrappers[j];
            }
            while (j < num - 1)
            {
                array[j] = this._delegateWrappers[j + 1];
                j++;
            }
            this._delegateWrappers = array;
        }
Ejemplo n.º 4
0
        internal void RemoveDelegate(Delegate d)
        {
            int length = this._delegateWrappers.Length;
            int index1 = -1;

            for (int index2 = 0; index2 < length; ++index2)
            {
                if (this._delegateWrappers[index2].Delegate.GetType() == d.GetType())
                {
                    index1 = index2;
                    break;
                }
            }
            if (index1 < 0)
            {
                return;
            }
            Delegate @delegate = Delegate.Remove(this._delegateWrappers[index1].Delegate, d);

            if (@delegate != null)
            {
                this._delegateWrappers[index1].Delegate = @delegate;
            }
            else if (length == 1)
            {
                this._delegateWrappers = (ComEventsMethod.DelegateWrapper[])null;
            }
            else
            {
                ComEventsMethod.DelegateWrapper[] delegateWrapperArray = new ComEventsMethod.DelegateWrapper[length - 1];
                int index2;
                for (index2 = 0; index2 < index1; ++index2)
                {
                    delegateWrapperArray[index2] = this._delegateWrappers[index2];
                }
                for (; index2 < length - 1; ++index2)
                {
                    delegateWrapperArray[index2] = this._delegateWrappers[index2 + 1];
                }
                this._delegateWrappers = delegateWrapperArray;
            }
        }