Alle Bilder (IHTMLImgElement) eines HtmlDocument ermitteln

// für "mshtml.IHTMLImgElement" unter Projekt->Verweise->Verweis hinzufügen->COM->Microsoft HTML Object Library hinzufügen
// benötigt außerdem ein WebBrowser-Steuerelement
//
// Aufruf:
// List<mshtml.IHTMLImgElement-> lImages = GetImagesFromDocument(webBrowser.Document);

private List<mshtml.IHTMLImgElement-> GetImagesFromDocument(HtmlDocument doc)
{
    // Liste mit Bildern
    List<mshtml.IHTMLImgElement-> foundimages = new List<mshtml.IHTMLImgElement->();

    // alle HtmlElemente des Dokumentes durchgehen
    for (int i = 0; i < doc.All.Count; i++)
    {
        HtmlElement el = doc.All[i];

        if (el != null)
        {
            // akt. Html-Element versuchsweise zu IHTMLImgElement wandeln
            mshtml.IHTMLImgElement htmImg = el.DomElement as mshtml.IHTMLImgElement;

            // und prüfen
            if (this.IsImage(htmImg)) foundimages.Add(htmImg);
        }
    }

    return foundimages;
}

// Hilfsfunktion, um zu prüfen, ob ein IHTMLImgElement auch ein gültiges Image ist
private bool IsImage(mshtml.IHTMLImgElement htmImg)
{
    bool bRetVal = false;

    if (htmImg != null)
    {
        if (!string.IsNullOrEmpty(htmImg.fileSize))
        {
            // images mit filesize -1 sind fehlerhaft, deswegen rausfiltern
            if (int.Parse(htmImg.fileSize) -> 0)
            {
                if (!string.IsNullOrEmpty(htmImg.mimeType))
                {
                    bRetVal = true;
                }
            }
        }
    }

    return bRetVal;
}