Exemple #1
0
        // Token: 0x0600031D RID: 797 RVA: 0x0002F2EC File Offset: 0x0002D4EC
        public static IsGenuineResult IsGenuine(uint daysBetweenChecks, uint graceDaysOnInetErr, bool skipOffline = false, bool offlineShowInetErr = false)
        {
            TurboActivate.Native.GENUINE_OPTIONS genuine_OPTIONS = new TurboActivate.Native.GENUINE_OPTIONS
            {
                nDaysBetweenChecks  = daysBetweenChecks,
                nGraceDaysOnInetErr = graceDaysOnInetErr,
                flags = (TurboActivate.Native.GenuineFlags) 0u
            };
            genuine_OPTIONS.nLength = (uint)Marshal.SizeOf(genuine_OPTIONS);
            if (skipOffline)
            {
                genuine_OPTIONS.flags |= TurboActivate.Native.GenuineFlags.TA_SKIP_OFFLINE;
                if (offlineShowInetErr)
                {
                    genuine_OPTIONS.flags |= TurboActivate.Native.GenuineFlags.TA_OFFLINE_SHOW_INET_ERR;
                }
            }
            int num = TurboActivate.Native.IsGenuineEx(TurboActivate.VersionGUID, ref genuine_OPTIONS);

            if (num <= 8)
            {
                if (num == 0)
                {
                    return(IsGenuineResult.Genuine);
                }
                switch (num)
                {
                case 4:
                    break;

                case 5:
                case 6:
                    return(IsGenuineResult.NotGenuine);

                case 7:
                    throw new GUIDMismatchException();

                case 8:
                    throw new ProductDetailsException();

                default:
                    return(IsGenuineResult.NotGenuine);
                }
            }
            else
            {
                switch (num)
                {
                case 11:
                    throw new COMException();

                case 12:
                    return(IsGenuineResult.NotGenuine);

                case 13:
                    throw new DateTimeException(false);

                default:
                    switch (num)
                    {
                    case 17:
                        return(IsGenuineResult.NotGenuineInVM);

                    case 18:
                    case 20:
                        return(IsGenuineResult.NotGenuine);

                    case 19:
                        throw new InvalidArgsException();

                    case 21:
                        break;

                    case 22:
                        return(IsGenuineResult.GenuineFeaturesChanged);

                    default:
                        return(IsGenuineResult.NotGenuine);
                    }
                    break;
                }
            }
            return(IsGenuineResult.InternetError);
        }
Exemple #2
0
 public static extern int IsGenuineEx(string versionGUID, ref TurboActivate.Native.GENUINE_OPTIONS options);