RemoveUninstaller(ugUninstall.szUninstallFilename);
LRESULT CALLBACK DlgProcUninstall(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam){  char  szBuf[MAX_BUF];  char  szFileInstallLog[MAX_BUF];  char  szKey[MAX_BUF];  sil   *silFile;  RECT  rDlg;  DWORD dwFileFound;  switch(msg)  {    case WM_INITDIALOG:      SetWindowText(hDlg, diUninstall.szTitle);      wsprintf(szBuf, diUninstall.szMessage0, ugUninstall.szDescription);      SetDlgItemText(hDlg, IDC_MESSAGE0, szBuf);      if(GetClientRect(hDlg, &rDlg))        SetWindowPos(hDlg, HWND_TOP, (dwScreenX/2)-(rDlg.right/2), (dwScreenY/2)-(rDlg.bottom/2), 0, 0, SWP_NOSIZE);      break;    case WM_COMMAND:      switch(LOWORD(wParam))      {        case IDWIZNEXT:          dwFileFound = GetLogFile(ugUninstall.szLogPath, ugUninstall.szLogFilename, szFileInstallLog, sizeof(szFileInstallLog));          while(dwFileFound)          {            if((silFile = InitSilNodes(szFileInstallLog)) != NULL)            {              FileDelete(szFileInstallLog);              Uninstall(silFile);              DeInitSilNodes(&silFile);            }            dwFileFound = GetLogFile(ugUninstall.szLogPath, ugUninstall.szLogFilename, szFileInstallLog, sizeof(szFileInstallLog));          }          lstrcpy(szFileInstallLog, ugUninstall.szLogPath);          AppendBackSlash(szFileInstallLog, MAX_BUF);          lstrcat(szFileInstallLog, ugUninstall.szLogFilename);          if(FileExists(szFileInstallLog))          {            if((silFile = InitSilNodes(szFileInstallLog)) != NULL)            {              FileDelete(szFileInstallLog);              Uninstall(silFile);              DeInitSilNodes(&silFile);            }          }          /* clean up the uninstall windows registry key */          lstrcpy(szKey, "Software\\Microsoft\\Windows\\CurrentVersion\\uninstall\\");          lstrcat(szKey, ugUninstall.szUninstallKeyDescription);          RegDeleteKey(HKEY_LOCAL_MACHINE, szKey);          DestroyWindow(hDlg);          PostQuitMessage(0);          break;        case IDCANCEL:          DestroyWindow(hDlg);          PostQuitMessage(0);          break;        default:          break;      }      break;  }  return(0);}