Back to index

lightning-sunbird  0.9+nobinonly
Functions | Variables
uninstall.c File Reference
#include "uninstall.h"
#include "extra.h"
#include "dialogs.h"
#include "ifuncns.h"

Go to the source code of this file.

Functions

int APIENTRY WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)

Variables

HINSTANCE hInst
HANDLE hAccelTable
HWND hDlgUninstall
HWND hDlgMessage
HWND hWndMain
LPSTR szEGlobalAlloc
LPSTR szEStringLoad
LPSTR szEDllLoad
LPSTR szEStringNull
LPSTR szTempSetupPath
LPSTR szClassName
LPSTR szUninstallDir
LPSTR szTempDir
LPSTR szOSTempDir
LPSTR szFileIniUninstall
LPSTR szFileIniDefaultsInfo
LPSTR gszSharedFilename
ULONG ulOSType
DWORD dwScreenX
DWORD dwScreenY
DWORD gdwWhatToDo
BOOL gbAllowMultipleInstalls = FALSE
uninstallGen ugUninstall
diU diUninstall

Function Documentation

int APIENTRY WinMain ( HINSTANCE  hInstance,
HINSTANCE  hPrevInstance,
LPSTR  lpszCmdLine,
int  nCmdShow 
)

Definition at line 79 of file uninstall.c.

{
  /***********************************************************************/
  /* HANDLE hInstance;       handle for this instance                    */
  /* HANDLE hPrevInstance;   handle for possible previous instances      */
  /* LPSTR  lpszCmdLine;     long pointer to exec command line           */
  /* int    nCmdShow;        Show code for main window display           */
  /***********************************************************************/

  MSG   msg;
  char  szBuf[MAX_BUF];
  int   iRv = WIZ_OK;
  HWND  hwndFW;

  if(!hPrevInstance)
  {
    hInst = GetModuleHandle(NULL);
    if(InitUninstallGeneral())
      PostQuitMessage(1);
    else if(ParseCommandLine(lpszCmdLine))
      PostQuitMessage(1);
    else if((hwndFW = FindWindow(CLASS_NAME_UNINSTALL_DLG, NULL)) != NULL && !gbAllowMultipleInstalls)
    {
    /* Allow only one instance of setup to run.
     * Detect a previous instance of setup, bring it to the 
     * foreground, and quit current instance */

      ShowWindow(hwndFW, SW_RESTORE);
      SetForegroundWindow(hwndFW);
      iRv = WIZ_SETUP_ALREADY_RUNNING;
      PostQuitMessage(1);
    }
    else if(Initialize(hInst))
    {
      PostQuitMessage(1);
    }
    else if(!InitApplication(hInst))
    {
      char szEFailed[MAX_BUF];

      if(NS_LoadString(hInst, IDS_ERROR_FAILED, szEFailed, MAX_BUF) == WIZ_OK)
      {
        wsprintf(szBuf, szEFailed, "InitApplication().");
        PrintError(szBuf, ERROR_CODE_SHOW);
      }
      PostQuitMessage(1);
    }
    else if(ParseUninstallIni())
    {
      PostQuitMessage(1);
    }
    else if(ugUninstall.bUninstallFiles == TRUE)
    {
      if(diUninstall.bShowDialog == TRUE)
        hDlgUninstall = InstantiateDialog(hWndMain, DLG_UNINSTALL, diUninstall.szTitle, DlgProcUninstall);
      // Assumes that SHOWICONS, HIDEICONS, and SETDEFAULT never show dialogs
      else if((ugUninstall.mode == SHOWICONS) || (ugUninstall.mode == HIDEICONS))
        ParseDefaultsInfo();
      else if(ugUninstall.mode == SETDEFAULT)
        SetDefault();
      else
        ParseAllUninstallLogs();
    }
  }

  if((ugUninstall.bUninstallFiles == TRUE) && (diUninstall.bShowDialog == TRUE))
  {
    while(GetMessage(&msg, NULL, 0, 0))
    {
      if((!IsDialogMessage(hDlgUninstall, &msg)) && (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)))
      {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
      }
    }
  }

  /* garbage collection */
  DeInitUninstallGeneral();
  if(iRv != WIZ_SETUP_ALREADY_RUNNING)
    /* Do clean up before exiting from the application */
    DeInitialize();

  return(msg.wParam);
} /*  End of WinMain */

Here is the call graph for this function:


Variable Documentation

Definition at line 77 of file uninstall.c.

Definition at line 69 of file uninstall.c.

Definition at line 70 of file uninstall.c.

Definition at line 74 of file uninstall.c.

Definition at line 72 of file uninstall.c.

Definition at line 66 of file uninstall.c.

Definition at line 48 of file uninstall.c.

Definition at line 51 of file uninstall.c.

Definition at line 50 of file uninstall.c.

Definition at line 46 of file uninstall.c.

Definition at line 52 of file uninstall.c.

Definition at line 60 of file uninstall.c.

Definition at line 56 of file uninstall.c.

Definition at line 54 of file uninstall.c.

Definition at line 55 of file uninstall.c.

Definition at line 57 of file uninstall.c.

Definition at line 65 of file uninstall.c.

Definition at line 64 of file uninstall.c.

Definition at line 63 of file uninstall.c.

Definition at line 62 of file uninstall.c.

Definition at line 58 of file uninstall.c.

Definition at line 61 of file uninstall.c.

Definition at line 76 of file uninstall.c.

Definition at line 68 of file uninstall.c.