nsresult rv = aFrameIn.QueryInterface(kIScrollableFrameIID, (void **)&scrollable);
nsresult rv = aFrameIn.QueryInterface(NS_GET_IID(nsIScrollableFrame), (void **)&scrollable);
GetNonScrollFrame(nsIFrame&  aFrameIn,                  nsIFrame*& aNonScrollFrame,                  nsIAtom*&  aNonScrollFrameType){  nsIAtom* frameType;  aFrameIn.GetFrameType(&frameType);  if (nsLayoutAtoms::scrollFrame == frameType) {    // get the scrolled frame if there is a scroll frame    nsIScrollableFrame* scrollable = nsnull;    nsresult rv = aFrameIn.QueryInterface(kIScrollableFrameIID, (void **)&scrollable);    if (NS_SUCCEEDED(rv) && (scrollable)) {      scrollable->GetScrolledFrame(nsnull, aNonScrollFrame);    }  }  else {    aNonScrollFrame = &aFrameIn;  }  aNonScrollFrameType = nsnull;  if (aNonScrollFrame) {    aNonScrollFrame->GetFrameType(&aNonScrollFrameType);  }}