} else if(!lstrcmpi(szArgVBuf, "-f") || !lstrcmpi(szArgVBuf, "/f")) { gbForceInstall = TRUE;
DWORD ParseCommandLine(LPSTR lpszCmdLine){  char  szArgVBuf[MAX_BUF];  int   i;  int   iArgC;#ifdef XXX_DEBUG  char  szBuf[MAX_BUF];  char  szOutputStr[MAX_BUF];#endif  iArgC = GetArgC(lpszCmdLine);#ifdef XXX_DEBUG  wsprintf(szOutputStr, "ArgC: %d\n", iArgC);#endif  i = 0;  while(i < iArgC)  {    GetArgV(lpszCmdLine, i, szArgVBuf, sizeof(szArgVBuf));    if(!lstrcmpi(szArgVBuf, "-h") || !lstrcmpi(szArgVBuf, "/h"))    {      PrintUsage();      return(WIZ_ERROR_UNDEFINED);    }    else if(!lstrcmpi(szArgVBuf, "-a") || !lstrcmpi(szArgVBuf, "/a"))    {      ++i;      GetArgV(lpszCmdLine, i, szArgVBuf, sizeof(szArgVBuf));      lstrcpy(sgProduct.szAlternateArchiveSearchPath, szArgVBuf);    }    else if(!lstrcmpi(szArgVBuf, "-n") || !lstrcmpi(szArgVBuf, "/n"))    {      ++i;      GetArgV(lpszCmdLine, i, szArgVBuf, sizeof(szArgVBuf));      lstrcpy(sgProduct.szParentProcessFilename, szArgVBuf);    }    else if(!lstrcmpi(szArgVBuf, "-ma") || !lstrcmpi(szArgVBuf, "/ma"))      SetSetupRunMode("AUTO");    else if(!lstrcmpi(szArgVBuf, "-ms") || !lstrcmpi(szArgVBuf, "/ms"))      SetSetupRunMode("SILENT");    else if(!lstrcmpi(szArgVBuf, "-ira") || !lstrcmpi(szArgVBuf, "/ira"))      /* ignore [RunAppX] sections */      gbIgnoreRunAppX = TRUE;    else if(!lstrcmpi(szArgVBuf, "-ispf") || !lstrcmpi(szArgVBuf, "/ispf"))      /* ignore [Program FolderX] sections */      gbIgnoreProgramFolderX = TRUE;    else if(!lstrcmpi(szArgVBuf, "-dd") || !lstrcmpi(szArgVBuf, "/dd"))    {      ++i;      GetArgV(lpszCmdLine, i, szArgVBuf, sizeof(szArgVBuf));      lstrcpy(sgProduct.szPath, szArgVBuf);    }    // identifies the app which is installing for shared installs    else if(!lstrcmpi(szArgVBuf, "-app") || !lstrcmpi(szArgVBuf, "/app"))    {      ++i;      GetArgV(lpszCmdLine, i, szArgVBuf, sizeof(szArgVBuf));      lstrcpy(sgProduct.szAppID, szArgVBuf);    }    // points to a file belonging to the app which can be searched to determine    //    if the app is installed    else if(!lstrcmpi(szArgVBuf, "-app_path") || !lstrcmpi(szArgVBuf, "/app_path"))    {      ++i;      GetArgV(lpszCmdLine, i, szArgVBuf, sizeof(szArgVBuf));      lstrcpy(sgProduct.szAppPath, szArgVBuf);    }    // alternative path in Windows registry, for private sharable installations    else if(!lstrcmpi(szArgVBuf, "-reg_path") || !lstrcmpi(szArgVBuf, "/reg_path"))    {      ++i;      GetArgV(lpszCmdLine, i, szArgVBuf, sizeof(szArgVBuf));      lstrcpy(sgProduct.szRegPath, szArgVBuf);    }    else if(!lstrcmpi(szArgVBuf, "-mmi") || !lstrcmpi(szArgVBuf, "/mmi"))    {      gbAllowMultipleInstalls = TRUE;        }#ifdef XXX_DEBUG    itoa(i, szBuf, 10);    lstrcat(szOutputStr, "    ");    lstrcat(szOutputStr, szBuf);    lstrcat(szOutputStr, ": ");    lstrcat(szOutputStr, szArgVBuf);    lstrcat(szOutputStr, "\n");#endif    ++i;  }#ifdef XXX_DEBUG  MessageBox(NULL, szOutputStr, "Output", MB_OK);#endif  return(WIZ_OK);}