aFrame.FirstChild(&aPresContext,nsnull,&child);
nsIFrame* child = aFrame.GetFirstChild(nsnull);
static nscoord AccumulateImageSizes(nsIPresContext& aPresContext, nsIFrame& aFrame){  nscoord sizes = 0;  // see if aFrame is an image frame first  if (aFrame.GetType() == nsLayoutAtoms::imageFrame) {    sizes += aFrame.GetSize().width;  } else {    // see if there are children to process    nsIFrame* child = nsnull;    // XXX: process alternate child lists?    aFrame.FirstChild(&aPresContext,nsnull,&child);    while (child) {      // recurse: note that we already know we are in a child frame, so no need to track further      sizes += AccumulateImageSizes(aPresContext, *child);      // now next sibling      child = child->GetNextSibling();    }  }  return sizes;}