HtmlWindowCollection.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / HtmlWindowCollection.cs / 1305376 / HtmlWindowCollection.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

using System; 
using System.ComponentModel; 
using System.Diagnostics;
using System.IO; 
using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;
using System.Security.Permissions; 
using System.Security;
using System.Runtime.InteropServices; 
using System.Net; 
using System.Collections;
 
namespace System.Windows.Forms {
    /// 
    /// 
    ///    [To be supplied.] 
    /// 
    public class HtmlWindowCollection : ICollection { 
        private UnsafeNativeMethods.IHTMLFramesCollection2 htmlFramesCollection2; 
        private HtmlShimManager shimManager;
 
        internal HtmlWindowCollection(HtmlShimManager shimManager, UnsafeNativeMethods.IHTMLFramesCollection2 collection) {
            this.htmlFramesCollection2 = collection;
            this.shimManager = shimManager;
 
            Debug.Assert(this.NativeHTMLFramesCollection2 != null, "The window collection object should implement IHTMLFramesCollection2");
        } 
 
        private UnsafeNativeMethods.IHTMLFramesCollection2 NativeHTMLFramesCollection2 {
            get { 
                return this.htmlFramesCollection2;
            }
        }
 

        ///  
        ///  
        ///    [To be supplied.]
        ///  
        public HtmlWindow this[int index] {
            get {
                if (index < 0 || index >= this.Count) {
                    throw new ArgumentOutOfRangeException("index", SR.GetString(SR.InvalidBoundArgument, "index", index, 0, this.Count - 1)); 
                }
 
                object oIndex = (object)index; 
                UnsafeNativeMethods.IHTMLWindow2 htmlWindow2 = this.NativeHTMLFramesCollection2.Item(ref oIndex)
                        as UnsafeNativeMethods.IHTMLWindow2; 
                return (htmlWindow2 != null) ? new HtmlWindow(shimManager, htmlWindow2) : null;
            }
        }
 
        /// 
        ///  
        ///    [To be supplied.] 
        /// 
        public HtmlWindow this[string windowId] { 
            get {
                object oWindowId = (object)windowId;
                UnsafeNativeMethods.IHTMLWindow2 htmlWindow2 = null;
                try { 
                    htmlWindow2 = this.htmlFramesCollection2.Item(ref oWindowId)
                            as UnsafeNativeMethods.IHTMLWindow2; 
                } 
                catch (COMException) {
                    throw new ArgumentException(SR.GetString(SR.InvalidArgument, "windowId", windowId)); 
                }
                return (htmlWindow2 != null) ? new HtmlWindow(shimManager, htmlWindow2) : null;
            }
        } 

        ///  
        ///  
        ///     Returns the total number of elements in the collection.
        ///  
        public int Count {
            get {
                return this.NativeHTMLFramesCollection2.GetLength();
            } 
        }
 
        ///  
        /// 
        bool ICollection.IsSynchronized { 
            get {
                return false;
            }
        } 

        ///  
        ///  
        object ICollection.SyncRoot {
            get { 
                return this;
            }
        }
 
        /// 
        ///  
        void ICollection.CopyTo(Array dest, int index) { 
            int count = this.Count;
            for (int i = 0; i < count; i++) { 
                dest.SetValue(this[i], index++);
            }
        }
 
        /// 
        ///  
        public IEnumerator GetEnumerator() { 
            HtmlWindow[] htmlWindows = new HtmlWindow[this.Count];
            ((ICollection)this).CopyTo(htmlWindows, 0); 

            return htmlWindows.GetEnumerator();
        }
 
    }
} 
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

using System; 
using System.ComponentModel; 
using System.Diagnostics;
using System.IO; 
using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;
using System.Security.Permissions; 
using System.Security;
using System.Runtime.InteropServices; 
using System.Net; 
using System.Collections;
 
namespace System.Windows.Forms {
    /// 
    /// 
    ///    [To be supplied.] 
    /// 
    public class HtmlWindowCollection : ICollection { 
        private UnsafeNativeMethods.IHTMLFramesCollection2 htmlFramesCollection2; 
        private HtmlShimManager shimManager;
 
        internal HtmlWindowCollection(HtmlShimManager shimManager, UnsafeNativeMethods.IHTMLFramesCollection2 collection) {
            this.htmlFramesCollection2 = collection;
            this.shimManager = shimManager;
 
            Debug.Assert(this.NativeHTMLFramesCollection2 != null, "The window collection object should implement IHTMLFramesCollection2");
        } 
 
        private UnsafeNativeMethods.IHTMLFramesCollection2 NativeHTMLFramesCollection2 {
            get { 
                return this.htmlFramesCollection2;
            }
        }
 

        ///  
        ///  
        ///    [To be supplied.]
        ///  
        public HtmlWindow this[int index] {
            get {
                if (index < 0 || index >= this.Count) {
                    throw new ArgumentOutOfRangeException("index", SR.GetString(SR.InvalidBoundArgument, "index", index, 0, this.Count - 1)); 
                }
 
                object oIndex = (object)index; 
                UnsafeNativeMethods.IHTMLWindow2 htmlWindow2 = this.NativeHTMLFramesCollection2.Item(ref oIndex)
                        as UnsafeNativeMethods.IHTMLWindow2; 
                return (htmlWindow2 != null) ? new HtmlWindow(shimManager, htmlWindow2) : null;
            }
        }
 
        /// 
        ///  
        ///    [To be supplied.] 
        /// 
        public HtmlWindow this[string windowId] { 
            get {
                object oWindowId = (object)windowId;
                UnsafeNativeMethods.IHTMLWindow2 htmlWindow2 = null;
                try { 
                    htmlWindow2 = this.htmlFramesCollection2.Item(ref oWindowId)
                            as UnsafeNativeMethods.IHTMLWindow2; 
                } 
                catch (COMException) {
                    throw new ArgumentException(SR.GetString(SR.InvalidArgument, "windowId", windowId)); 
                }
                return (htmlWindow2 != null) ? new HtmlWindow(shimManager, htmlWindow2) : null;
            }
        } 

        ///  
        ///  
        ///     Returns the total number of elements in the collection.
        ///  
        public int Count {
            get {
                return this.NativeHTMLFramesCollection2.GetLength();
            } 
        }
 
        ///  
        /// 
        bool ICollection.IsSynchronized { 
            get {
                return false;
            }
        } 

        ///  
        ///  
        object ICollection.SyncRoot {
            get { 
                return this;
            }
        }
 
        /// 
        ///  
        void ICollection.CopyTo(Array dest, int index) { 
            int count = this.Count;
            for (int i = 0; i < count; i++) { 
                dest.SetValue(this[i], index++);
            }
        }
 
        /// 
        ///  
        public IEnumerator GetEnumerator() { 
            HtmlWindow[] htmlWindows = new HtmlWindow[this.Count];
            ((ICollection)this).CopyTo(htmlWindows, 0); 

            return htmlWindows.GetEnumerator();
        }
 
    }
} 
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK