SystemParametersInfo(SPI_GETSCREENREADER, 0, &(gSystemInfo.bScreenReader), 0);
HRESULT Initialize(HINSTANCE hInstance){  char szBuf[MAX_BUF];  char szCurrentProcessDir[MAX_BUF];  bSDUserCanceled     = FALSE;  hDlgMessage         = NULL;  /* load strings from setup.exe */  if(NS_LoadStringAlloc(hInstance, IDS_ERROR_GLOBALALLOC, &szEGlobalAlloc, MAX_BUF))    return(1);  if(NS_LoadStringAlloc(hInstance, IDS_ERROR_STRING_LOAD, &szEStringLoad,  MAX_BUF))    return(1);  if(NS_LoadStringAlloc(hInstance, IDS_ERROR_DLL_LOAD,    &szEDllLoad,     MAX_BUF))    return(1);  if(NS_LoadStringAlloc(hInstance, IDS_ERROR_STRING_NULL, &szEStringNull,  MAX_BUF))    return(1);  GetModuleFileName(NULL, szBuf, sizeof(szBuf));  ParsePath(szBuf, szCurrentProcessDir,            sizeof(szCurrentProcessDir),            FALSE,            PP_PATH_ONLY);  hAccelTable = LoadAccelerators(hInstance, CLASS_NAME_SETUP_DLG);  if((hSetupRscInst = LoadLibraryEx("Setuprsc.dll", NULL, LOAD_WITH_ALTERED_SEARCH_PATH)) == NULL)  {    char szFullFilename[MAX_BUF];    lstrcpy(szFullFilename, szCurrentProcessDir);    AppendBackSlash(szFullFilename, sizeof(szFullFilename));    lstrcat(szFullFilename, "Setuprsc.dll");    if((hSetupRscInst = LoadLibraryEx(szFullFilename, NULL, 0)) == NULL)    {      wsprintf(szBuf, szEDllLoad, szFullFilename);      PrintError(szBuf, ERROR_CODE_HIDE);      return(1);    }  }  dwWizardState         = DLG_NONE;  dwTempSetupType       = dwWizardState;  siComponents          = NULL;  bCreateDestinationDir = FALSE;  bReboot               = FALSE;  gdwUpgradeValue       = UG_NONE;  gdwSiteSelectorStatus = SS_SHOW;  gbILUseTemp           = TRUE;  gbIgnoreRunAppX        = FALSE;  gbIgnoreProgramFolderX = FALSE;  if((szSetupDir = NS_GlobalAlloc(MAX_BUF)) == NULL)    return(1);  lstrcpy(szSetupDir, szCurrentProcessDir);  if((szTempDir = NS_GlobalAlloc(MAX_BUF)) == NULL)    return(1);  if((szOSTempDir = NS_GlobalAlloc(MAX_BUF)) == NULL)    return(1);  if((szFileIniConfig = NS_GlobalAlloc(MAX_BUF)) == NULL)    return(1);  if((szFileIniInstall = NS_GlobalAlloc(MAX_BUF)) == NULL)  return(1);  // determine the system's TEMP path  if(GetTempPath(MAX_BUF, szTempDir) == 0)  {    if(GetWindowsDirectory(szTempDir, MAX_BUF) == 0)    {      char szEGetWinDirFailed[MAX_BUF];      if(GetPrivateProfileString("Messages", "ERROR_GET_WINDOWS_DIRECTORY_FAILED", "", szEGetWinDirFailed, sizeof(szEGetWinDirFailed), szFileIniInstall))        PrintError(szEGetWinDirFailed, ERROR_CODE_SHOW);      return(1);    }    AppendBackSlash(szTempDir, MAX_BUF);    lstrcat(szTempDir, "TEMP");  }  lstrcpy(szOSTempDir, szTempDir);  AppendBackSlash(szTempDir, MAX_BUF);  lstrcat(szTempDir, WIZ_TEMP_DIR);  if(!FileExists(szTempDir))  {    AppendBackSlash(szTempDir, MAX_BUF);    CreateDirectoriesAll(szTempDir, FALSE);    if(!FileExists(szTempDir))    {      char szECreateTempDir[MAX_BUF];      if(GetPrivateProfileString("Messages", "ERROR_CREATE_TEMP_DIR", "", szECreateTempDir, sizeof(szECreateTempDir), szFileIniInstall))      {        wsprintf(szBuf, szECreateTempDir, szTempDir);        PrintError(szBuf, ERROR_CODE_HIDE);      }      return(1);    }    RemoveBackSlash(szTempDir);  }  hbmpBoxChecked         = LoadBitmap(hSetupRscInst, MAKEINTRESOURCE(IDB_BOX_CHECKED));  hbmpBoxCheckedDisabled = LoadBitmap(hSetupRscInst, MAKEINTRESOURCE(IDB_BOX_CHECKED_DISABLED));  hbmpBoxUnChecked       = LoadBitmap(hSetupRscInst, MAKEINTRESOURCE(IDB_BOX_UNCHECKED));  DeleteIdiGetConfigIni();  bIdiArchivesExists = DeleteIdiGetArchives();  DeleteIdiGetRedirect();  DeleteInstallLogFile(FILE_INSTALL_LOG);  DeleteInstallLogFile(FILE_INSTALL_STATUS_LOG);  LogISTime(W_START);  DetermineOSVersionEx();  return(0);}