rv = m_prefs->CopyCharPref(serverTypePref, getter_Copies(serverType));
rv = m_prefs->CopyCharPref(serverPref, getter_Copies(serverType));    serverPref = serverPrefPrefix; serverPref += ".userName"; nsXPIDLCString username; rv = m_prefs->CopyCharPref(serverPref, getter_Copies(username));   serverPref = serverPrefPrefix; serverPref += ".hostname"; nsXPIDLCString hostname; rv = m_prefs->CopyCharPref(serverPref, getter_Copies(hostname));
nsMsgAccountManager::GetIncomingServer(const char* key,                                       nsIMsgIncomingServer **_retval){  if (!_retval) return NS_ERROR_NULL_POINTER;  nsresult rv=NS_OK;    nsStringKey hashKey(key);  nsCOMPtr<nsIMsgIncomingServer> server =    do_QueryInterface((nsISupports*)m_incomingServers.Get(&hashKey), &rv);  if (NS_SUCCEEDED(rv)) {    *_retval = server;    NS_ADDREF(*_retval);    return NS_OK;  }  // server doesn't exist, so create it    // in order to create the right kind of server, we have to look  // at the pref for this server to get the type  const char *serverTypePref =    PR_smprintf("mail.server.%s.type", key);  // serverType is the short server type, like "pop3","imap","nntp","none", etc  nsXPIDLCString serverType;  rv = m_prefs->CopyCharPref(serverTypePref, getter_Copies(serverType));      // the server type doesn't exist. That's bad.  if (NS_FAILED(rv))    return NS_ERROR_NOT_INITIALIZED;  rv = createKeyedServer(key, serverType, _retval);  if (NS_FAILED(rv)) return rv;  return rv;}