rv = LaunchApplication(contractID.get(), closure->height, closure->width);
rv = LaunchApplication(param, closure->height, closure->width);
void startupPrefEnumerationFunction(const char *prefName, void *data){  nsresult rv;  PRBool prefValue = PR_FALSE;  if (!data || !prefName) return;  StartupClosure *closure = (StartupClosure *)data;#ifdef DEBUG_CMD_LINE  printf("getting %s\n", prefName);#endif /* DEBUG_CMD_LINE */  rv = closure->prefs->GetBoolPref(prefName, &prefValue);  if (NS_FAILED(rv)) return;#ifdef DEBUG_CMD_LINE  printf("%s = %d\n", prefName, prefValue);#endif /* DEBUG_CMD_LINE */  PRUint32 prefixLen = PL_strlen(PREF_STARTUP_PREFIX);  // if the pref is "general.startup.", ignore it.  if (PL_strlen(prefName) <= prefixLen) return;  if (prefValue) {    // this is the contractid prefix that all the command line handlers register    nsCAutoString contractID("@mozilla.org/commandlinehandler/general-startup;1?type=");    contractID += (prefName + prefixLen);#ifdef DEBUG_CMD_LINE    printf("contractid = %s\n", contractID.get());#endif /* DEBUG_CMD_LINE */    rv = LaunchApplication(contractID.get(), closure->height, closure->width);  }  return;}