rv = nsComponentManager::CreateInstance(NS_SUPPORTS_STRING_CONTRACTID, nsnull, NS_GET_IID(nsISupportsString), getter_AddRefs(printerNameWrapper));
printerNameWrapper = do_CreateInstance(NS_SUPPORTS_STRING_CONTRACTID, &rv);
NS_IMETHODIMP nsPrinterListEnumerator::GetNext(nsISupports **aPrinter){   NS_ENSURE_ARG_POINTER(aPrinter);   *aPrinter = nsnull;   if (mIndex >= mCount) {     return NS_ERROR_UNEXPECTED;   }   PRUnichar *printerName = mPrinters[mIndex++];   nsCOMPtr<nsISupportsString> printerNameWrapper;   nsresult rv;   rv = nsComponentManager::CreateInstance(NS_SUPPORTS_STRING_CONTRACTID, nsnull,                                           NS_GET_IID(nsISupportsString), getter_AddRefs(printerNameWrapper));   NS_ENSURE_SUCCESS(rv, rv);   NS_ENSURE_TRUE(printerNameWrapper, NS_ERROR_OUT_OF_MEMORY);   printerNameWrapper->SetData(nsDependentString(printerName));   *aPrinter = NS_STATIC_CAST(nsISupports*, printerNameWrapper);   NS_ADDREF(*aPrinter);   return NS_OK;}