CodeTV.GraphBuilderBase.GetBlackBands C# (CSharp) Метод

GetBlackBands() защищенный Метод

protected GetBlackBands ( ) : System.Drawing.Rectangle[]
Результат System.Drawing.Rectangle[]
        protected Rectangle[] GetBlackBands()
        {
            Rectangle outerRectangle = this.hostingControl.ClientRectangle;
            DsRect innerDsRect = new DsRect();
            int hr;
            if (useEVR)
            {
                MFVideoNormalizedRect pnrcSource = new MFVideoNormalizedRect();
                MediaFoundation.Misc.MFRect prcDest = new MediaFoundation.Misc.MFRect();
                hr = evrVideoDisplayControl.GetVideoPosition(pnrcSource, prcDest);
                innerDsRect = DsRect.FromRectangle((Rectangle)prcDest);
            }
            else
            {
                IVMRWindowlessControl9 vmrWindowlessControl9 = this.videoRenderer as IVMRWindowlessControl9;
                hr = vmrWindowlessControl9.GetVideoPosition(null, innerDsRect);
            }
            Rectangle innerRectangle = innerDsRect.ToRectangle();

            //Trace.WriteLineIf(trace.TraceVerbose, string.Format(("\tvideoRenderer.GetVideoPosition({0})"), innerRectangle.ToString()));
            //Trace.WriteLineIf(trace.TraceVerbose, string.Format(("\thostingControl.ClientRectangle({0})"), outerRectangle.ToString()));

            List<Rectangle> alRectangles = new List<Rectangle>();

            if (innerRectangle.Top > outerRectangle.Top)
                alRectangles.Add(new Rectangle(outerRectangle.Left, outerRectangle.Top, outerRectangle.Width - 1, innerRectangle.Top - 1));

            if (innerRectangle.Bottom < outerRectangle.Bottom)
                alRectangles.Add(new Rectangle(outerRectangle.Left, innerRectangle.Bottom, outerRectangle.Width - 1, outerRectangle.Height - (innerRectangle.Bottom + 1)));

            if (innerRectangle.Left > outerRectangle.Left)
            {
                Rectangle rectangleLeft = new Rectangle(outerRectangle.Left, innerRectangle.Top, innerRectangle.Left - 1, innerRectangle.Height - 1);
                rectangleLeft.Intersect(outerRectangle);
                alRectangles.Add(rectangleLeft);
            }

            if (innerRectangle.Right < outerRectangle.Right)
            {
                Rectangle rectangleLeft = new Rectangle(innerRectangle.Right, innerRectangle.Top, outerRectangle.Width - (innerRectangle.Right + 1), innerRectangle.Height - 1);
                rectangleLeft.Intersect(outerRectangle);
                alRectangles.Add(rectangleLeft);
            }
            return alRectangles.ToArray();
        }