rv = prompter->Select( NULL, szMessage, *pCount, (const char **)pList, &selectedIndex, &rtnValue );
rv = prompter->Select( NULL, szMessage, *pCount, (const PRUnichar **)pList, &selectedIndex, &rtnValue );
si_SelectDialog(const PRUnichar* szMessage, char** pList, PRInt32* pCount) {  if (si_UserHasBeenSelected) {    /* a user was already selected for this form, use same one again */    *pCount = 0; /* last user selected is now at head of list */    return PR_TRUE;  }  nsresult rv;  NS_WITH_SERVICE(nsIAppShellService, appshellservice, kAppShellServiceCID, &rv);  if(NS_FAILED(rv)) {    return PR_FALSE;  }  nsCOMPtr<nsIWebShellWindow> webshellwindow;  appshellservice->GetHiddenWindow(getter_AddRefs(webshellwindow));  nsCOMPtr<nsIPrompt> prompter(do_QueryInterface(webshellwindow));  PRInt32 selectedIndex;  PRBool rtnValue;  rv = prompter->Select( NULL, szMessage, *pCount, (const char **)pList, &selectedIndex, &rtnValue );  *pCount = selectedIndex;  si_UserHasBeenSelected = PR_TRUE;  return rtnValue;  }