Example #1
0
void SystemInfo::DetectWindowsEdition()
{
   if(m_bOsVersionInfoEx)
   {
      switch(m_osvi.dwMajorVersion)
      {
      case 4:
         {
            switch(m_osvi.wProductType)
            {
            case VER_NT_WORKSTATION:
               m_nWinEdition = Workstation;
               break;

            case VER_NT_SERVER:
               m_nWinEdition = (m_osvi.wSuiteMask & VER_SUITE_ENTERPRISE) != 0 ? 
                  EnterpriseServer :
                  StandardServer;
               break;
            }
         }
         break;

      case 5:
         {
            switch (m_osvi.wProductType)
            {
            case VER_NT_WORKSTATION:
               {
                  m_nWinEdition = (m_osvi.wSuiteMask & VER_SUITE_PERSONAL) != 0 ?
                     Home :
                     Professional;
               }
               break;

            case VER_NT_SERVER:
               {
                  switch(m_osvi.dwMinorVersion)
                  {
                  case 0:
                     {
                        if ((m_osvi.wSuiteMask & VER_SUITE_DATACENTER) != 0)
                        {
                           m_nWinEdition = DatacenterServer;
                        }
                        else if ((m_osvi.wSuiteMask & VER_SUITE_ENTERPRISE) != 0)
                        {
                           m_nWinEdition = AdvancedServer;
                        }
                        else
                        {
                           m_nWinEdition = Server;
                        }
                     }
                     break;

                  default:
                     {
                        if ((m_osvi.wSuiteMask & VER_SUITE_DATACENTER) != 0)
                        {
                           m_nWinEdition = DatacenterServer;
                        }
                        else if ((m_osvi.wSuiteMask & VER_SUITE_ENTERPRISE) != 0)
                        {
                           m_nWinEdition = EnterpriseServer;
                        }
                        else if ((m_osvi.wSuiteMask & VER_SUITE_BLADE) != 0)
                        {
                           m_nWinEdition = WebServer;
                        }
                        else
                        {
                           m_nWinEdition = StandardServer;
                        }
                     }
                     break;
                  }
               }
               break;
            }
         }
         break;

      case 6:
         {
            DWORD dwReturnedProductType = DetectProductInfo();
            switch (dwReturnedProductType)
            {
            case PRODUCT_UNDEFINED:
               m_nWinEdition = EditionUnknown;
               break;

            case PRODUCT_ULTIMATE:
               m_nWinEdition = Ultimate;
               break;
            case PRODUCT_HOME_BASIC:
               m_nWinEdition = HomeBasic;
               break;
            case PRODUCT_HOME_PREMIUM:
               m_nWinEdition = HomePremium;
               break;
            case PRODUCT_ENTERPRISE:
               m_nWinEdition = Enterprise;
               break;
            case PRODUCT_HOME_BASIC_N:
               m_nWinEdition = HomeBasic_N;
               break;
            case PRODUCT_BUSINESS:
               m_nWinEdition = Business;
               break;
            case PRODUCT_STANDARD_SERVER:
               m_nWinEdition = StandardServer;
               break;
            case PRODUCT_DATACENTER_SERVER:
               m_nWinEdition = DatacenterServer;
               break;
            case PRODUCT_SMALLBUSINESS_SERVER:
               m_nWinEdition = SmallBusinessServer;
               break;
            case PRODUCT_ENTERPRISE_SERVER:
               m_nWinEdition = EnterpriseServer;
               break;
            case PRODUCT_STARTER:
               m_nWinEdition = Starter;
               break;
            case PRODUCT_DATACENTER_SERVER_CORE:
               m_nWinEdition = DatacenterServerCore;
               break;
            case PRODUCT_STANDARD_SERVER_CORE:
               m_nWinEdition = StandardServerCore;
               break;
            case PRODUCT_ENTERPRISE_SERVER_CORE:
               m_nWinEdition = EnterpriseServerCore;
               break;
            case PRODUCT_ENTERPRISE_SERVER_IA64:
               m_nWinEdition = EnterpriseServerIA64;
               break;
            case PRODUCT_BUSINESS_N:
               m_nWinEdition = Business_N;
               break;
            case PRODUCT_WEB_SERVER:
               m_nWinEdition = WebServer;
               break;
            case PRODUCT_CLUSTER_SERVER:
               m_nWinEdition = ClusterServer;
               break;
            case PRODUCT_HOME_SERVER:
               m_nWinEdition = HomeServer;
               break;
            case PRODUCT_STORAGE_EXPRESS_SERVER:
               m_nWinEdition = StorageExpressServer;
               break;
            case PRODUCT_STORAGE_STANDARD_SERVER:
               m_nWinEdition = StorageStandardServer;
               break;
            case PRODUCT_STORAGE_WORKGROUP_SERVER:
               m_nWinEdition = StorageWorkgroupServer;
               break;
            case PRODUCT_STORAGE_ENTERPRISE_SERVER:
               m_nWinEdition = StorageEnterpriseServer;
               break;
            case PRODUCT_SERVER_FOR_SMALLBUSINESS:
               m_nWinEdition = ServerForSmallBusiness;
               break;
            case PRODUCT_SMALLBUSINESS_SERVER_PREMIUM:
               m_nWinEdition = SmallBusinessServerPremium;
               break;

#if _WIN32_WINNT >= 0x0601 // windows 7
            case PRODUCT_HOME_PREMIUM_N:
               m_nWinEdition = HomePremium_N;
               break;
            case PRODUCT_ENTERPRISE_N:
               m_nWinEdition = Enterprise_N;
               break;
            case PRODUCT_ULTIMATE_N:
               m_nWinEdition = Ultimate_N;
               break;
            case PRODUCT_WEB_SERVER_CORE:
               m_nWinEdition = WebServerCore;
               break;
            case PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT:
               m_nWinEdition = MediumBusinessServerManagement;
               break;
            case PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY:
               m_nWinEdition = MediumBusinessServerSecurity;
               break;
            case PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING:
               m_nWinEdition = MediumBusinessServerMessaging;
               break;
            case PRODUCT_SERVER_FOUNDATION:
               m_nWinEdition = ServerFoundation;
               break;
            case PRODUCT_HOME_PREMIUM_SERVER:
               m_nWinEdition = HomePremiumServer;
               break;
            case PRODUCT_SERVER_FOR_SMALLBUSINESS_V:
               m_nWinEdition = ServerForSmallBusiness_V;
               break;
            case PRODUCT_STANDARD_SERVER_V:
               m_nWinEdition = StandardServer_V;
               break;
            case PRODUCT_DATACENTER_SERVER_V:
               m_nWinEdition = DatacenterServer_V;
               break;
            case PRODUCT_ENTERPRISE_SERVER_V:
               m_nWinEdition = EnterpriseServer_V;
               break;
            case PRODUCT_DATACENTER_SERVER_CORE_V:
               m_nWinEdition = DatacenterServerCore_V;
               break;
            case PRODUCT_STANDARD_SERVER_CORE_V:
               m_nWinEdition = StandardServerCore_V;
               break;
            case PRODUCT_ENTERPRISE_SERVER_CORE_V:
               m_nWinEdition = EnterpriseServerCore_V;
               break;
            case PRODUCT_HYPERV:
               m_nWinEdition = HyperV;
               break;
            case PRODUCT_STORAGE_EXPRESS_SERVER_CORE:
               m_nWinEdition = StorageExpressServerCore;
               break;
            case PRODUCT_STORAGE_STANDARD_SERVER_CORE:
               m_nWinEdition = StorageStandardServerCore;
               break;
            case PRODUCT_STORAGE_WORKGROUP_SERVER_CORE:
               m_nWinEdition = StorageWorkgroupServerCore;
               break;
            case PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE:
               m_nWinEdition = StorageEnterpriseServerCore;
               break;
            case PRODUCT_STARTER_N:
               m_nWinEdition = Starter_N;
               break;
            case PRODUCT_PROFESSIONAL:
               m_nWinEdition = Professional;
               break;
            case PRODUCT_PROFESSIONAL_N:
               m_nWinEdition = Professional_N;
               break;
            case PRODUCT_SB_SOLUTION_SERVER:
               m_nWinEdition = SBSolutionServer;
               break;
            case PRODUCT_SERVER_FOR_SB_SOLUTIONS:
               m_nWinEdition = ServerForSBSolution;
               break;
            case PRODUCT_STANDARD_SERVER_SOLUTIONS:
               m_nWinEdition = StandardServerSolutions;
               break;
            case PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE:
               m_nWinEdition = StandardServerSolutionsCore;
               break;
            case PRODUCT_SB_SOLUTION_SERVER_EM:
               m_nWinEdition = SBSolutionServer_EM;
               break;
            case PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM:
               m_nWinEdition = ServerForSBSolution_EM;
               break;
            case PRODUCT_SOLUTION_EMBEDDEDSERVER:
               m_nWinEdition = SolutionEmbeddedServer;
               break;
            case PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE:
               m_nWinEdition = SolutionEmbeddedServerCore;
               break;
            case PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE:
               m_nWinEdition = SmallBusinessServerPremiumCore;
               break;
            case PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT:
               m_nWinEdition = EssentialBusinessServerMGMT;
               break;
            case PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL:
               m_nWinEdition = EssentialBusinessServerADDL;
               break;
            case PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC:
               m_nWinEdition = EssentialBusinessServerMGMTSVC;
               break;
            case PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC:
               m_nWinEdition = EssentialBusinessServerADDLSVC;
               break;
            case PRODUCT_CLUSTER_SERVER_V:
               m_nWinEdition = ClusterServer_V;
               break;
            case PRODUCT_EMBEDDED:
               m_nWinEdition = Embedded;
               break;
            case PRODUCT_STARTER_E:
               m_nWinEdition = Starter_E;
               break;
            case PRODUCT_HOME_BASIC_E:
               m_nWinEdition = HomeBasic_E;
               break;
            case PRODUCT_HOME_PREMIUM_E:
               m_nWinEdition = HomePremium_E;
               break;
            case PRODUCT_PROFESSIONAL_E:
               m_nWinEdition = Professional_E;
               break;
            case PRODUCT_ENTERPRISE_E:
               m_nWinEdition = Enterprise_E;
               break;
            case PRODUCT_ULTIMATE_E:
               m_nWinEdition = Ultimate_E;
               break;
#endif
            }
         }
         break;
      }
   }
}
void CQuazaaSysInfo::DetectWindowsEdition()
{
   if(m_bOsVersionInfoEx)
   {
	  switch(m_osvi.dwMajorVersion)
	  {
	  case 4:
		 {
			switch(m_osvi.wProductType)
			{
			case VER_NT_WORKSTATION:
			   m_nWindowsEdition = WindowsEdition::Workstation;
			   break;

			case VER_NT_SERVER:
			   m_nWindowsEdition = (m_osvi.wSuiteMask & VER_SUITE_ENTERPRISE) != 0 ?
				  WindowsEdition::EnterpriseServer :
				  WindowsEdition::StandardServer;
			   break;
			}
		 }
		 break;

	  case 5:
		 {
			switch (m_osvi.wProductType)
			{
			case VER_NT_WORKSTATION:
			   {
				  m_nWindowsEdition = (m_osvi.wSuiteMask & VER_SUITE_PERSONAL) != 0 ?
					 WindowsEdition::Home :
					 WindowsEdition::Professional;
			   }
			   break;

			case VER_NT_SERVER:
			   {
				  switch(m_osvi.dwMinorVersion)
				  {
				  case 0:
					 {
						if ((m_osvi.wSuiteMask & VER_SUITE_DATACENTER) != 0)
						{
						   m_nWindowsEdition = WindowsEdition::DatacenterServer;
						}
						else if ((m_osvi.wSuiteMask & VER_SUITE_ENTERPRISE) != 0)
						{
						   m_nWindowsEdition = WindowsEdition::AdvancedServer;
						}
						else
						{
						   m_nWindowsEdition = WindowsEdition::Server;
						}
					 }
					 break;

				  default:
					 {
						if ((m_osvi.wSuiteMask & VER_SUITE_DATACENTER) != 0)
						{
						   m_nWindowsEdition = WindowsEdition::DatacenterServer;
						}
						else if ((m_osvi.wSuiteMask & VER_SUITE_ENTERPRISE) != 0)
						{
						   m_nWindowsEdition = WindowsEdition::EnterpriseServer;
						}
						else if ((m_osvi.wSuiteMask & VER_SUITE_BLADE) != 0)
						{
						   m_nWindowsEdition = WindowsEdition::WebServer;
						}
						else
						{
						   m_nWindowsEdition = WindowsEdition::StandardServer;
						}
					 }
					 break;
				  }
			   }
			   break;
			}
		 }
		 break;

	  case 6:
		 {
			DWORD dwReturnedProductType = DetectProductInfo();
			switch (dwReturnedProductType)
			{
			case PRODUCT_UNDEFINED:
			   m_nWindowsEdition = WindowsEdition::EditionUnknown;
			   break;

			case PRODUCT_ULTIMATE:
			   m_nWindowsEdition = WindowsEdition::Ultimate;
			   break;
			case PRODUCT_HOME_BASIC:
			   m_nWindowsEdition = WindowsEdition::HomeBasic;
			   break;
			case PRODUCT_HOME_PREMIUM:
			   m_nWindowsEdition = WindowsEdition::HomePremium;
			   break;
			case PRODUCT_ENTERPRISE:
			   m_nWindowsEdition = WindowsEdition::Enterprise;
			   break;
			case PRODUCT_HOME_BASIC_N:
			   m_nWindowsEdition = WindowsEdition::HomeBasicN;
			   break;
			case PRODUCT_BUSINESS:
			   m_nWindowsEdition = WindowsEdition::Business;
			   break;
			case PRODUCT_STANDARD_SERVER:
			   m_nWindowsEdition = WindowsEdition::StandardServer;
			   break;
			case PRODUCT_DATACENTER_SERVER:
			   m_nWindowsEdition = WindowsEdition::DatacenterServer;
			   break;
			case PRODUCT_SMALLBUSINESS_SERVER:
			   m_nWindowsEdition = WindowsEdition::SmallBusinessServer;
			   break;
			case PRODUCT_ENTERPRISE_SERVER:
			   m_nWindowsEdition = WindowsEdition::EnterpriseServer;
			   break;
			case PRODUCT_STARTER:
			   m_nWindowsEdition = WindowsEdition::Starter;
			   break;
			case PRODUCT_DATACENTER_SERVER_CORE:
			   m_nWindowsEdition = WindowsEdition::DatacenterServerCore;
			   break;
			case PRODUCT_STANDARD_SERVER_CORE:
			   m_nWindowsEdition = WindowsEdition::StandardServerCore;
			   break;
			case PRODUCT_ENTERPRISE_SERVER_CORE:
			   m_nWindowsEdition = WindowsEdition::EnterpriseServerCore;
			   break;
			case PRODUCT_ENTERPRISE_SERVER_IA64:
			   m_nWindowsEdition = WindowsEdition::EnterpriseServerIA64;
			   break;
			case PRODUCT_BUSINESS_N:
			   m_nWindowsEdition = WindowsEdition::BusinessN;
			   break;
			case PRODUCT_WEB_SERVER:
			   m_nWindowsEdition = WindowsEdition::WebServer;
			   break;
			case PRODUCT_CLUSTER_SERVER:
			   m_nWindowsEdition = WindowsEdition::ClusterServer;
			   break;
			case PRODUCT_HOME_SERVER:
			   m_nWindowsEdition = WindowsEdition::HomeServer;
			   break;
			case PRODUCT_STORAGE_EXPRESS_SERVER:
			   m_nWindowsEdition = WindowsEdition::StorageExpressServer;
			   break;
			case PRODUCT_STORAGE_STANDARD_SERVER:
			   m_nWindowsEdition = WindowsEdition::StorageStandardServer;
			   break;
			case PRODUCT_STORAGE_WORKGROUP_SERVER:
			   m_nWindowsEdition = WindowsEdition::StorageWorkgroupServer;
			   break;
			case PRODUCT_STORAGE_ENTERPRISE_SERVER:
			   m_nWindowsEdition = WindowsEdition::StorageEnterpriseServer;
			   break;
			case PRODUCT_SERVER_FOR_SMALLBUSINESS:
			   m_nWindowsEdition = WindowsEdition::ServerForSmallBusiness;
			   break;
			case PRODUCT_SMALLBUSINESS_SERVER_PREMIUM:
			   m_nWindowsEdition = WindowsEdition::SmallBusinessServerPremium;
			   break;
			case PRODUCT_HOME_PREMIUM_N:
				m_nWindowsEdition = WindowsEdition::HomePremiumN;
				break;
			case PRODUCT_ENTERPRISE_N:
				m_nWindowsEdition = WindowsEdition::EnterpriseN;
				break;
			case PRODUCT_ULTIMATE_N:
				m_nWindowsEdition = WindowsEdition::UltimateN;
				break;
			case PRODUCT_WEB_SERVER_CORE:
				m_nWindowsEdition = WindowsEdition::WebServerCore;
				break;
			case PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT:
				m_nWindowsEdition = WindowsEdition::MediumBusinessServerManagement;
				break;
			case PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY:
				m_nWindowsEdition = WindowsEdition::MediumBusinessServerSecurity;
				break;
			case PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING:
				m_nWindowsEdition = WindowsEdition::MediumBusinessServerMessaging;
				break;
			case PRODUCT_SERVER_FOUNDATION:
				m_nWindowsEdition = WindowsEdition::ServerFoundation;
				break;
			case PRODUCT_HOME_PREMIUM_SERVER:
				m_nWindowsEdition = WindowsEdition::HomePremiumServer;
				break;
			case PRODUCT_SERVER_FOR_SMALLBUSINESS_V:
				m_nWindowsEdition = WindowsEdition::ServerForSmallBusinessV;
				break;
			case PRODUCT_STANDARD_SERVER_V:
				m_nWindowsEdition = WindowsEdition::StandardServerV;
				break;
			case PRODUCT_DATACENTER_SERVER_V:
				m_nWindowsEdition = WindowsEdition::DatacenterServerV;
				break;
			case PRODUCT_ENTERPRISE_SERVER_V:
				m_nWindowsEdition = WindowsEdition::EnterpriseServerV;
				break;
			case PRODUCT_DATACENTER_SERVER_CORE_V:
				m_nWindowsEdition = WindowsEdition::DatacenterServerCoreV;
				break;
			case PRODUCT_STANDARD_SERVER_CORE_V:
				m_nWindowsEdition = WindowsEdition::StandardServerCoreV;
				break;
			case PRODUCT_ENTERPRISE_SERVER_CORE_V:
				m_nWindowsEdition = WindowsEdition::EnterpriseServerCoreV;
				break;
			case PRODUCT_HYPERV:
				m_nWindowsEdition = WindowsEdition::HyperV;
				break;
			case PRODUCT_STORAGE_EXPRESS_SERVER_CORE:
				m_nWindowsEdition = WindowsEdition::StorageExpressServerCore;
				break;
			case PRODUCT_STORAGE_STANDARD_SERVER_CORE:
				m_nWindowsEdition = WindowsEdition::StorageStandardServerCore;
				break;
			case PRODUCT_STORAGE_WORKGROUP_SERVER_CORE:
				m_nWindowsEdition = WindowsEdition::StorageWorkgroupServerCore;
				break;
			case PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE:
				m_nWindowsEdition = WindowsEdition::StorageEnterpriseServerCore;
				break;
			case PRODUCT_STARTER_N:
				m_nWindowsEdition = WindowsEdition::StarterN;
				break;
			case PRODUCT_PROFESSIONAL:
				m_nWindowsEdition = WindowsEdition::Professional;
				break;
			case PRODUCT_PROFESSIONAL_N:
				m_nWindowsEdition = WindowsEdition::ProfessionalN;
				break;
			case PRODUCT_SB_SOLUTION_SERVER:
				m_nWindowsEdition = WindowsEdition::SBSolutionServer;
				break;
			case PRODUCT_SERVER_FOR_SB_SOLUTIONS:
				m_nWindowsEdition = WindowsEdition::ServerForSBSolutions;
				break;
			case PRODUCT_STANDARD_SERVER_SOLUTIONS:
				m_nWindowsEdition = WindowsEdition::StandardServerSolutions;
				break;
			case PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE:
				m_nWindowsEdition = WindowsEdition::StandardServerSolutionsCore;
				break;
			case PRODUCT_SB_SOLUTION_SERVER_EM:
				m_nWindowsEdition = WindowsEdition::SBSolutionServerEM;
				break;
			case PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM:
				m_nWindowsEdition = WindowsEdition::ServerForSBSolutionsEM;
				break;
			case PRODUCT_SOLUTION_EMBEDDEDSERVER:
				m_nWindowsEdition = WindowsEdition::SolutionEmbeddedServer;
				break;
			case PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE:
				m_nWindowsEdition = WindowsEdition::SolutionEmbeddedServerCore;
				break;
			case PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT:
				m_nWindowsEdition = WindowsEdition::EssentialBusinessServerMGMT;
				break;
			case PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL:
				m_nWindowsEdition = WindowsEdition::EssentialBusinessServerADDL;
				break;
			case PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC:
				m_nWindowsEdition = WindowsEdition::EssentialBusinessServerMGMTSVC;
				break;
			case PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC:
				m_nWindowsEdition = WindowsEdition::EssentialBusinessServerADDLSVC;
				break;
			case PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE:
				m_nWindowsEdition = WindowsEdition::SmallBusinessServerPremiumCore;
				break;
			case PRODUCT_CLUSTER_SERVER_V:
				m_nWindowsEdition = WindowsEdition::ClusterServerV;
				break;
			case PRODUCT_EMBEDDED:
				m_nWindowsEdition = WindowsEdition::Embedded;
				break;
			case PRODUCT_STARTER_E:
				m_nWindowsEdition = WindowsEdition::StarterE;
				break;
			case PRODUCT_HOME_BASIC_E:
				m_nWindowsEdition = WindowsEdition::HomeBasicE;
				break;
			case PRODUCT_HOME_PREMIUM_E:
				m_nWindowsEdition = WindowsEdition::HomePremiumE;
				break;
			case PRODUCT_PROFESSIONAL_E:
				m_nWindowsEdition = WindowsEdition::ProfessionalE;
				break;
			case PRODUCT_ENTERPRISE_E:
				m_nWindowsEdition = WindowsEdition::EnterpriseE;
				break;
			case PRODUCT_ULTIMATE_E:
				m_nWindowsEdition = WindowsEdition::UltimateE;
				break;
			case PRODUCT_ENTERPRISE_EVALUATION:
				m_nWindowsEdition = WindowsEdition::EnterpriseEvaluation;
				break;
			case PRODUCT_MULTIPOINT_STANDARD_SERVER:
				m_nWindowsEdition = WindowsEdition::MultipointStandardServer;
				break;
			case PRODUCT_MULTIPOINT_PREMIUM_SERVER:
				m_nWindowsEdition = WindowsEdition::MultipointPremiumServer;
				break;
			case PRODUCT_STANDARD_EVALUATION_SERVER:
				m_nWindowsEdition = WindowsEdition::StandardEvaluationServer;
				break;
			case PRODUCT_DATACENTER_EVALUATION_SERVER:
				m_nWindowsEdition = WindowsEdition::DatacenterEvaluationServer;
				break;
			case PRODUCT_ENTERPRISE_N_EVALUATION:
				m_nWindowsEdition = WindowsEdition::EnterpriseNEvaluation;
				break;
			case PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER:
				m_nWindowsEdition = WindowsEdition::StorageWorkgroupEvaluationServer;
				break;
			case PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER:
				m_nWindowsEdition = WindowsEdition::StorageStandardEvaluationServer;
				break;
			case PRODUCT_CORE_N:
				m_nWindowsEdition = WindowsEdition::CoreN;
				break;
			case PRODUCT_CORE_COUNTRYSPECIFIC:
				m_nWindowsEdition = WindowsEdition::CoreCountrySpecific;
				break;
			case PRODUCT_CORE_SINGLELANGUAGE:
				m_nWindowsEdition = WindowsEdition::CoreSingleLanguage;
				break;
			case PRODUCT_CORE:
				m_nWindowsEdition = WindowsEdition::Core;
				break;
			case PRODUCT_PROFESSIONAL_WMC:
				m_nWindowsEdition = WindowsEdition::ProfessionalWindowsMediaCenter;
				break;
			}
		 }
		 break;
	  }
   }
}