hrResult = pfnXpiInit(sgProduct.szPath, cbXPIStart, cbXPIProgress, cbXPIFinal);
hrResult = pfnXpiInit(sgProduct.szPath, cbXPIProgress);
HRESULT SmartUpdateJars(){  DWORD     dwIndex0;  siC       *siCObject = NULL;  HRESULT   hrResult;  char      szBuf[MAX_BUF];  char      szArchive[MAX_BUF];  char      szMsgSmartUpdateStart[MAX_BUF];  if(NS_LoadString(hSetupRscInst, IDS_MSG_SMARTUPDATE_START, szMsgSmartUpdateStart, MAX_BUF) != WIZ_OK)    return(1);  ShowMessage(szMsgSmartUpdateStart, TRUE);  if(InitializeXPIStub() == WIZ_OK)  {    hrResult = pfnXpiInit(sgProduct.szPath, cbXPIStart, cbXPIProgress, cbXPIFinal);    ShowMessage(szMsgSmartUpdateStart, FALSE);    InitProgressDlg();    GetTotalArchivesToInstall();    dwIndex0          = 0;    dwCurrentArchive  = 0;    dwTotalArchives  *= 2;    siCObject = SiCNodeGetObject(dwIndex0, TRUE);    while(siCObject)    {      /* launch smartupdate engine for earch jar to be installed */      if((siCObject->dwAttributes & SIC_SELECTED) && !(siCObject->dwAttributes & SIC_LAUNCHAPP))      {        lFileCounter      = 0;			  dlgInfo.nFileBars = 0;        UpdateGaugeFileProgressBar(0);        lstrcpy(szArchive, sgProduct.szAlternateArchiveSearchPath);        AppendBackSlash(szArchive, sizeof(szArchive));        lstrcat(szArchive, siCObject->szArchiveName);        if(!FileExists(szArchive))        {          lstrcpy(szArchive, szSetupDir);          AppendBackSlash(szArchive, sizeof(szArchive));          lstrcat(szArchive, siCObject->szArchiveName);          if(!FileExists(szArchive))          {            lstrcpy(szArchive, szTempDir);            AppendBackSlash(szArchive, sizeof(szArchive));            lstrcat(szArchive, siCObject->szArchiveName);            if(!FileExists(szArchive))            {              char szEFileNotFound[MAX_BUF];              if(NS_LoadString(hSetupRscInst, IDS_ERROR_FILE_NOT_FOUND, szEFileNotFound, MAX_BUF) == WIZ_OK)              {                wsprintf(szBuf, szEFileNotFound, szArchive);                PrintError(szBuf, ERROR_CODE_HIDE);              }              return(1);            }          }        }        hrResult = pfnXpiInstall(szArchive, "", 0xFFFF);        ++dwCurrentArchive;        UpdateGaugeArchiveProgressBar((unsigned)(((double)(dwCurrentArchive)/(double)dwTotalArchives)*(double)100));        ProcessWindowsMessages();      }      ++dwIndex0;      siCObject = SiCNodeGetObject(dwIndex0, TRUE);    }    pfnXpiExit();    DeInitProgressDlg();  }  else  {    ShowMessage(szMsgSmartUpdateStart, FALSE);  }  DeInitializeXPIStub();  return(0);}