if (iid.Equals(nsIXULPopupListener::GetIID())) {
if (iid.Equals(nsIXULPopupListener::GetIID()) || iid.Equals(kISupportsIID)) {
XULPopupListenerImpl::QueryInterface(REFNSIID iid, void** result){    if (! result)        return NS_ERROR_NULL_POINTER;    *result = nsnull;    if (iid.Equals(nsIXULPopupListener::GetIID())) {        *result = NS_STATIC_CAST(nsIXULPopupListener*, this);        NS_ADDREF_THIS();        return NS_OK;    }    else if (iid.Equals(nsIDOMMouseListener::GetIID())) {        *result = NS_STATIC_CAST(nsIDOMMouseListener*, this);        NS_ADDREF_THIS();        return NS_OK;    }    else if (iid.Equals(nsIDOMFocusListener::GetIID())) {        *result = NS_STATIC_CAST(nsIDOMFocusListener*, this);        NS_ADDREF_THIS();        return NS_OK;    }      // compiler problems with nsIDOMEventListener::GetIID() cause us to do it this      // way. Please excuse the lameness (hyatt and pinkerton).    else if (iid.Equals(kIDomEventListenerIID)) {        *result = (nsIDOMEventListener*)(nsIDOMMouseListener*)this;        NS_ADDREF_THIS();        return NS_OK;    }    return NS_NOINTERFACE;}