/*
 * Enumerations.cs --
 *
 * Copyright (c) 2007-2012 by Joe Mistachkin.  All rights reserved.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 *
 * RCS: @(#) $Id: $
 */

using System;
using System.Runtime.InteropServices;

namespace Eagle._Components.Private
{
    #region Build Type Enumeration
    [Guid("793e7b27-3390-4fcc-90dd-b91faf924f4e")]
    public enum BuildType
    {
        None = 0x0,          /* nop, do not use. */
        Invalid = 0x1,       /* invalid, do not use. */
        NetFx20 = 0x2,       /* NetFx20 on Windows. */
        NetFx35 = 0x4,       /* NetFx35 on Windows. */
        NetFx40 = 0x8,       /* NetFx40 on Windows. */
        NetFx45 = 0x10,      /* NetFx45 on Windows. */
        NetFx451 = 0x20,     /* NetFx451 on Windows. */
        Bare = 0x40,         /* almost all optional features disabled. */
        LeanAndMean = 0x80,  /* most speed-impacting optional features
                              * disabled. */
        Database = 0x100,    /* for SQL Server 2005+ embedding. */
        MonoOnUnix = 0x200,  /* Mono on Unix. */
        Development = 0x400, /* development and testing use. */
        Default = NetFx20    /* the default build type, has no suffix. */
    }
    #endregion

    ///////////////////////////////////////////////////////////////////////////

    #region Release Type Enumeration
    [Guid("5239484a-dc56-45b1-9e07-ab48c792bfeb")]
    public enum ReleaseType
    {
        None = 0x0,      /* nop, do not use. */
        Invalid = 0x1,   /* invalid, do not use. */
        Source = 0x2,    /* source code release. */
        Setup = 0x4,     /* Windows setup release. */
        Binary = 0x8,    /* binary release (not setup). */
        Runtime = 0x10,  /* runtime release (core + shell). */
        Core = 0x20,     /* runtime release (core only). */
        Default = Binary /* the default release type. */
    }
    #endregion

    ///////////////////////////////////////////////////////////////////////////

    #region Strong Name Flags Enumeration
    [Flags()]
    [Guid("e668e128-b5fb-4ff6-880e-eece1db14351")]
    public enum StrongNameExFlags
    {
        None = 0x0,    /* nop, do not use. */
        Invalid = 0x1, /* invalid, do not use. */
        Self = 0x2,    /* verify signature on the assembly for the updater
                        * itself. */
        Core = 0x4,    /* verify signature on the core release assembly (e.g.
                        * Eagle.dll). */
        Other = 0x8,   /* verify signatures on other assemblies (e.g.
                        * EagleShell.exe). */

        All = Self | Core | Other,
        Default = All
    }
    #endregion

    ///////////////////////////////////////////////////////////////////////////

    #region Signature Flags Enumeration
    [Flags()]
    [Guid("ede72b3d-7316-440e-8f31-c7b8e7231787")]
    public enum SignatureFlags
    {
        None = 0x0,    /* nop, do not use. */
        Invalid = 0x1, /* invalid, do not use. */
        Self = 0x2,    /* verify signatures on the file(s) for the updater
                        * itself. */
        Release = 0x4, /* verify signatures on all downloaded
                        * self-extracting files. */
        Core = 0x8,    /* verify signatures on the core release file (e.g.
                        * Eagle.dll). */
        Other = 0x10,  /* verify signatures on other EXE and DLL files
                        * (e.g. EagleShell.exe). */

        All = Self | Release | Core | Other,
        Default = All
    }
    #endregion
}
