/// <summary>
 /// Wird von <see cref="Element"/> während seiner Freigabe aufgerufen. Wir müssen
 /// das Element aus unserer Liste entfernen.
 /// </summary>
 /// <param name="element">Das zu entfernende Element.</param>
 /// <exception cref="System.ArgumentNullException">Wird ausgelöst, wenn <paramref name="element"/>
 /// <see langword="null"/> ist.</exception>
 internal void RemoveElement(Element element)
 {
     if (element == null)
         throw new ArgumentNullException("element");
     this._elements.Remove(element);
 }
 /// <summary>
 /// Wird ausgeführt, wenn ein Video entfernt wird. Wir müssen unsere Event handler
 /// deinstallieren um Memory Leaks zu vermeiden.
 /// </summary>
 /// <param name="element"></param>
 /// <param name="Args"></param>
 private void OnVideoElementRemove(Element element, EventArgs Args)
 {
     VideoFile vf = element as VideoFile;
     if (vf != null)
     {
         vf.OnLoopFinished -= OnVideoElementLoopFinished;
         vf.OnRemove -= OnVideoElementRemove;
     }
 }
        /// <summary>
        /// Fügt ein Element der Synchronisationsliste hinzu. Alle auf <see cref="Sync"/>
        /// ausgeführten Aktionen werden auch auf das neue Element ausgeführt.
        /// </summary>
        /// <param name="Element">Das Element, dass der Synchronisationsliste hinzugefügt
        /// werden soll. Darf nicht <see langword="null"/> sein.</param>
        /// <exception cref="System.ArgumentNullException">Wird ausgelöst, wenn <paramref name="Element"/>
        /// <see langword="null"/> ist.</exception>
        public void Add(Element Element)
        {
            if (Element == null)
                throw new ArgumentNullException("Element");

            this.CheckDisposed();

            #if DEBUG
            System.Diagnostics.Debug.Assert(this._sync != null);
            #endif

            this._sync.Add((global::Liconcomp.Element)Element.COMObject);
        }