nsnull, szCheckMessage, checkValue, &buttonPressed);
nsnull, nsnull, nsnull, szCheckMessage, checkValue, &buttonPressed);
permission_CheckConfirmYN(nsIPrompt *aPrompter, PRUnichar * szMessage, PRUnichar * szCheckMessage, PRBool* checkValue) {  nsresult res;  nsCOMPtr<nsIPrompt> dialog;  if (aPrompter)    dialog = aPrompter;  else {    nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1"));    if (wwatch)      wwatch->GetNewPrompter(0, getter_AddRefs(dialog));  }  if (!dialog) {    *checkValue = 0;    return PR_FALSE;  }  PRInt32 buttonPressed = 1; /* in case user exits dialog by clickin X */  PRUnichar * confirm_string = CKutil_Localize(NS_LITERAL_STRING("Confirm").get());  res = dialog->ConfirmEx(confirm_string, szMessage,                          (nsIPrompt::BUTTON_TITLE_YES * nsIPrompt::BUTTON_POS_0) +                          (nsIPrompt::BUTTON_TITLE_NO * nsIPrompt::BUTTON_POS_1),                          nsnull, szCheckMessage, checkValue, &buttonPressed);  if (NS_FAILED(res)) {    *checkValue = 0;  }  if (*checkValue!=0 && *checkValue!=1) {    NS_ASSERTION(PR_FALSE, "Bad result from checkbox");    *checkValue = 0; /* this should never happen but it is happening!!! */  }  Recycle(confirm_string);  return (buttonPressed == 0);}