detectors->HasMore(&hasMore);
nsresult nsTestUConv::DisplayDetectors(){  char * trace = "DisplayDetectors";  mLog.AddTrace(trace);  nsresult res = NS_OK;  nsCOMPtr<nsICharsetConverterManager> ccMan =            do_GetService(kCharsetConverterManagerCID, &res);  if (NS_FAILED(res)) {    mLog.PrintError("NS_WITH_SERVICE", res);    return res;  }  // charset detectors  nsCOMPtr<nsIUTF8StringEnumerator> detectors;  res = ccMan->GetCharsetDetectorList(getter_AddRefs(detectors));  if (NS_FAILED(res)) {    mLog.PrintError("GetCharsetDetectorList()", res);    return res;  }  printf("***** Character Set Detectors *****\n");  PRBool hasMore;  detectors->HasMore(&hasMore);  while (hasMore) {    nsCAutoString detectorName;    res = detectors->GetNext(detectorName);    if (NS_FAILED(res)) {      mLog.PrintError("GetNext()", res);      return res;    }    printf("%s", detectorName.get());    PrintSpaces(36 - detectorName.Length()); // align to hard coded column number    nsAutoString title;    res = ccMan->GetCharsetTitle(detectorName.get(), title);    if (NS_FAILED(res)) title.SetLength(0);    printf("\"%s\"\n", NS_LossyConvertUCS2toASCII(title).get());  }    mLog.DelTrace(trace);  return NS_OK;}