rv = NS_NewHTMLParamElement(aResult, aAtom);
rv = NS_NewHTMLParamElement(aResult, aNodeInfo);
MakeContentObject(nsHTMLTag aNodeType,                             nsIAtom* aAtom,                             nsIDOMHTMLFormElement* aForm,                             nsIWebShell* aWebShell,                             nsIHTMLContent** aResult,                             const nsString* aContent = nsnull){  nsresult rv = NS_OK;  switch (aNodeType) {  default:    rv = NS_NewHTMLSpanElement(aResult, aAtom);    break;  case eHTMLTag_a:    rv = NS_NewHTMLAnchorElement(aResult, aAtom);    break;  case eHTMLTag_applet:    rv = NS_NewHTMLAppletElement(aResult, aAtom);    break;  case eHTMLTag_area:    rv = NS_NewHTMLAreaElement(aResult, aAtom);    break;  case eHTMLTag_base:    rv = NS_NewHTMLBaseElement(aResult, aAtom);    break;  case eHTMLTag_basefont:    rv = NS_NewHTMLBaseFontElement(aResult, aAtom);    break;  case eHTMLTag_blockquote:    rv = NS_NewHTMLQuoteElement(aResult, aAtom);    break;  case eHTMLTag_body:    rv = NS_NewHTMLBodyElement(aResult, aAtom);    break;  case eHTMLTag_br:    rv = NS_NewHTMLBRElement(aResult, aAtom);    break;  case eHTMLTag_button:    rv = NS_NewHTMLButtonElement(aResult, aAtom);    SetForm(*aResult, aForm);    break;  case eHTMLTag_caption:    rv = NS_NewHTMLTableCaptionElement(aResult, aAtom);    break;  case eHTMLTag_col:    rv = NS_NewHTMLTableColElement(aResult, aAtom);    break;  case eHTMLTag_colgroup:    rv = NS_NewHTMLTableColGroupElement(aResult, aAtom);    break;  case eHTMLTag_dir:    rv = NS_NewHTMLDirectoryElement(aResult, aAtom);    break;  case eHTMLTag_div:  case eHTMLTag_noembed:  case eHTMLTag_noframes:  case eHTMLTag_noscript:  case eHTMLTag_parsererror:  case eHTMLTag_sourcetext:    rv = NS_NewHTMLDivElement(aResult, aAtom);    break;  case eHTMLTag_dl:    rv = NS_NewHTMLDListElement(aResult, aAtom);    break;  case eHTMLTag_embed:    rv = NS_NewHTMLEmbedElement(aResult, aAtom);    break;  case eHTMLTag_fieldset:    rv = NS_NewHTMLFieldSetElement(aResult, aAtom);    SetForm(*aResult, aForm);    break;  case eHTMLTag_font:    rv = NS_NewHTMLFontElement(aResult, aAtom);    break;  case eHTMLTag_form:    // the form was already created     if (aForm) {      rv = aForm->QueryInterface(kIHTMLContentIID, (void**)aResult);    }    else {      rv = NS_NewHTMLFormElement(aResult, aAtom);    }    break;  case eHTMLTag_frame:    rv = NS_NewHTMLFrameElement(aResult, aAtom);    break;  case eHTMLTag_frameset:    rv = NS_NewHTMLFrameSetElement(aResult, aAtom);    break;  case eHTMLTag_h1:  case eHTMLTag_h2:  case eHTMLTag_h3:  case eHTMLTag_h4:  case eHTMLTag_h5:  case eHTMLTag_h6:    rv = NS_NewHTMLHeadingElement(aResult, aAtom);    break;  case eHTMLTag_head:    rv = NS_NewHTMLHeadElement(aResult, aAtom);    break;  case eHTMLTag_hr:    rv = NS_NewHTMLHRElement(aResult, aAtom);    break;  case eHTMLTag_html:    rv = NS_NewHTMLHtmlElement(aResult, aAtom);    break;  case eHTMLTag_iframe:    rv = NS_NewHTMLIFrameElement(aResult, aAtom);    break;  case eHTMLTag_img:    rv = NS_NewHTMLImageElement(aResult, aAtom);    break;  case eHTMLTag_input:    rv = NS_NewHTMLInputElement(aResult, aAtom);    SetForm(*aResult, aForm);    break;  case eHTMLTag_isindex:    rv = NS_NewHTMLIsIndexElement(aResult, aAtom);    break;  case eHTMLTag_label:    rv = NS_NewHTMLLabelElement(aResult, aAtom);    SetForm(*aResult, aForm);    break;  case eHTMLTag_legend:    rv = NS_NewHTMLLegendElement(aResult, aAtom);    SetForm(*aResult, aForm);    break;  case eHTMLTag_li:    rv = NS_NewHTMLLIElement(aResult, aAtom);    break;  case eHTMLTag_link:    rv = NS_NewHTMLLinkElement(aResult, aAtom);    break;  case eHTMLTag_map:    rv = NS_NewHTMLMapElement(aResult, aAtom);    break;  case eHTMLTag_menu:    rv = NS_NewHTMLMenuElement(aResult, aAtom);    break;  case eHTMLTag_meta:    rv = NS_NewHTMLMetaElement(aResult, aAtom);    break;  case eHTMLTag_object:    rv = NS_NewHTMLObjectElement(aResult, aAtom);    break;  case eHTMLTag_ol:    rv = NS_NewHTMLOListElement(aResult, aAtom);    break;  case eHTMLTag_optgroup:    rv = NS_NewHTMLOptGroupElement(aResult, aAtom);    break;  case eHTMLTag_option:    rv = NS_NewHTMLOptionElement(aResult, aAtom);    break;  case eHTMLTag_p:    rv = NS_NewHTMLParagraphElement(aResult, aAtom);    break;  case eHTMLTag_pre:    rv = NS_NewHTMLPreElement(aResult, aAtom);    break;  case eHTMLTag_param:    rv = NS_NewHTMLParamElement(aResult, aAtom);    break;  case eHTMLTag_q:    rv = NS_NewHTMLQuoteElement(aResult, aAtom);    break;  case eHTMLTag_script:    rv = NS_NewHTMLScriptElement(aResult, aAtom);    break;  case eHTMLTag_select:    rv = NS_NewHTMLSelectElement(aResult, aAtom);    SetForm(*aResult, aForm);    break;  case eHTMLTag_spacer:    rv = NS_NewHTMLSpacerElement(aResult, aAtom);    break;  case eHTMLTag_style:    rv = NS_NewHTMLStyleElement(aResult, aAtom);    break;  case eHTMLTag_table:    rv = NS_NewHTMLTableElement(aResult, aAtom);    break;  case eHTMLTag_tbody:  case eHTMLTag_thead:  case eHTMLTag_tfoot:    rv = NS_NewHTMLTableSectionElement(aResult, aAtom);    break;  case eHTMLTag_td:  case eHTMLTag_th:    rv = NS_NewHTMLTableCellElement(aResult, aAtom);    break;  case eHTMLTag_textarea:    rv = NS_NewHTMLTextAreaElement(aResult, aAtom);    // XXX why is textarea not a container. If it were, this code would not be necessary    // If the text area has some content, set it     if (aContent && (aContent->Length() > 0)) {      nsIDOMHTMLTextAreaElement* taElem;      rv = (*aResult)->QueryInterface(kIDOMHTMLTextAreaElementIID, (void **)&taElem);      if ((NS_OK == rv) && taElem) {        taElem->SetDefaultValue(*aContent);        NS_RELEASE(taElem);      }    }    SetForm(*aResult, aForm);    break;  case eHTMLTag_title:    rv = NS_NewHTMLTitleElement(aResult, aAtom);    break;  case eHTMLTag_tr:    rv = NS_NewHTMLTableRowElement(aResult, aAtom);    break;  case eHTMLTag_ul:    rv = NS_NewHTMLUListElement(aResult, aAtom);    break;  case eHTMLTag_wbr:    rv = NS_NewHTMLWBRElement(aResult, aAtom);    break;  case eHTMLTag_layer:  case eHTMLTag_ilayer:  case eHTMLTag_nolayer:  case eHTMLTag_unknown:  case eHTMLTag_userdefined:    rv = NS_NewHTMLUnknownElement(aResult, aAtom);    break;  }  return rv;}