Private Const VER_NT_WORKSTATION As Long = &H1 ' Windows Vista, XP Pro, XP Home Edition, or 2000 Pro
Private Const VER_NT_DOMAIN_CONTROLLER As Long = &H2 ' Windows Server 2008, Windows Server 2003, or Windows 2000 Server
Private Const VER_NT_SERVER As Long = &H3 ' Windows Server 2008, Windows Server 2003, or Windows 2000 Server
' used by OSVERSIONINFOEX.wSuiteMask
Private Const VER_SUITE_SMALLBUSINESS As Long = &H1 ' Microsoft Small Business Server w As once installed on the system, but may have been upgraded to another version of Windows
Private Const VER_SUITE_ENTERPRISE As Long = &H2 ' Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition, or Windows 2000 Advanced Server is installed
Private Const VER_SUITE_BACKOFFICE As Long = &H4 ' Windows backoffice suite
Private Const VER_SUITE_TERMINAL As Long = &H10 ' Terminal Services is installed
Private Const VER_SUITE_EMBEDDEDNT As Long = &H40 ' Windows XP Embedded is installed
Private Const VER_SUITE_DATACENTER As Long = &H80 ' Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition, or Windows 2000 Datacenter Server is installed
Private Const VER_SUITE_PERSONAL As Long = &H200 ' Windows Vista Home Premium, Windows Vista Home Basic, or Windows XP Home Edition is installed
Private Const VER_SUITE_BLADE As Long = &H400 ' Windows Server 2003, Web Edition is installed
Private Const VER_SUITE_STORAGE_SERVER As Long = &H2000 ' Windows Storage Server 2003 R2 or Windows Storage Server 2003 is installed
Private Const VER_SUITE_COMPUTE_SERVER As Long = &H4000 ' Windows Server 2003, Compute Cluster Edition is installed
Private Const VER_SUITE_WH_SERVER As Long = &H8000 ' Windows home server is installed
Private Const VER_SUITE_SMALLBUSINESS_RESTRICTED As Long = &H20 ' Microsoft Small Business Server is installed with the restrictive client license in force
Private Const SM_TABLETPC As Long = 86
Private Const SM_MEDIACENTER As Long = 87
Private Const SM_STARTER As Long = 88
Private Const SM_SERVERR2 As Long = 89
Private Const PROCESSOR_ARCHITECTURE_INTEL As Long = 0 ' 32-bit
Private Const PROCESSOR_ARCHITECTURE_IA64 As Long = 6 ' 64-bit
Private Const PROCESSOR_ARCHITECTURE_AMD64 As Long = 9 ' 64-bit
' GetProductInfo possible values
Private Const PRODUCT_ULTIMATE As Long = &H1 ' Ultimate Edition
Private Const PRODUCT_HOME_BASIC As Long = &H2 ' Home Basic Edition
Private Const PRODUCT_HOME_PREMIUM As Long = &H3 ' Home Premium Edition
Private Const PRODUCT_ENTERPRISE As Long = &H4 ' Enterprise Edition
Private Const PRODUCT_HOME_BASIC_N As Long = &H5 ' Home Basic Edition
Private Const PRODUCT_BUSINESS As Long = &H6 ' Business Edition
Private Const PRODUCT_STANDARD_SERVER As Long = &H7 ' Server Standard Edition (full installation)
Private Const PRODUCT_DATACENTER_SERVER As Long = &H8 ' Server Datacenter Edition (full installation)
Private Const PRODUCT_SMALLBUSINESS_SERVER As Long = &H9 ' Small Business Server
Private Const PRODUCT_ENTERPRISE_SERVER As Long = &HA ' Server Enterprise Edition (full installation)
Private Const PRODUCT_STARTER As Long = &HB ' Starter Edition
Private Const PRODUCT_DATACENTER_SERVER_CORE As Long = &HC ' Server Datacenter Edition (core installation)
Private Const PRODUCT_STANDARD_SERVER_CORE As Long = &HD ' Server Standard Edition (core installation)
Private Const PRODUCT_ENTERPRISE_SERVER_CORE As Long = &HE ' Server Enterprise Edition (core installation)
Private Const PRODUCT_ENTERPRISE_SERVER_IA64 As Long = &HF ' Server Enterprise Edition for Itanium-based Systems
Private Const PRODUCT_BUSINESS_N As Long = &H10 ' Business Edition
Private Const PRODUCT_WEB_SERVER As Long = &H11 ' Web Server Edition (full installation)
Private Const PRODUCT_CLUSTER_SERVER As Long = &H12 ' Cluster Server Edition
Private Const PRODUCT_HOME_SERVER As Long = &H13 ' Home Server Edition
Private Const PRODUCT_SMALLBUSINESS_SERVER_PREMIUM As Long = &H19 ' Small Business Server Premium Edition
Private Const PRODUCT_HOME_PREMIUM_N As Long = &H1A ' Home Premium Edition
Private Const PRODUCT_ENTERPRISE_N As Long = &H1B ' Enterprise Edition
Private Const PRODUCT_ULTIMATE_N As Long = &H1C ' Ultimate Edition
Public Property Get bWin2000Workstation() As Boolean
bWin2000Workstation = mblnWin2000Workstation
End Property
Public Property Get bWin2000Server() As Boolean
bWin2000Server = mblnWin2000Server
End Property
Public Property Get bWin2000DatacenterSvr() As Boolean
bWin2000DatacenterSvr = mblnWin2000DatacenterSvr
End Property
Public Property Get bWin2000AdvancedSvr() As Boolean
bWin2000AdvancedSvr = mblnWin2000AdvancedSvr
End Property
Public Property Get bWin2000orNewer() As Boolean
bWin2000orNewer = mblnWin2000orNewer
End Property
Public Property Get bWinXP() As Boolean
bWinXP = mblnWinXP
End Property
Public Property Get bWinXPSP2() As Boolean
bWinXPSP2 = mblnWinXPSP2
End Property
Public Property Get bWinXPSP3() As Boolean
bWinXPSP3 = mblnWinXPSP3
End Property
Public Property Get bWinXPHomeEdition() As Boolean
bWinXPHomeEdition = mblnWinXPHomeEdition
End Property
Public Property Get bWinXPProfessional() As Boolean
bWinXPProfessional = mblnWinXPPro
End Property
Public Property Get bWinXPMediaCenter() As Boolean
bWinXPMediaCenter = mblnWinXPMediaCenter
End Property
Public Property Get bWinXPStarter() As Boolean
bWinXPStarter = mblnWinXPStarter
End Property
Public Property Get bWinXPTabletPC() As Boolean
bWinXPTabletPC = mblnWinXPTabletPC
End Property
Public Property Get bWinXPEmbedded() As Boolean
bWinXPEmbedded = mblnWinXPEmbedded
End Property
Public Property Get bWinXPorNewer() As Boolean
bWinXPorNewer = mblnWinXPorNewer
End Property
Public Property Get bWindows7() As Boolean
bWindows7 = mblnWindows7
End Property
Public Property Get bWinVistaStarter() As Boolean
bWinVistaStarter = mblnWinVistaStarter
End Property
Public Property Get bWinServer2003() As Boolean
bWinServer2003 = mblnWinServer2003
End Property
Public Property Get bWin2003ServerR2() As Boolean
bWin2003ServerR2 = mblnWin2003ServerR2
End Property
Public Property Get bWin2003StorageServer() As Boolean
bWin2003StorageServer = mblnWin2003StorageServer
End Property
Public Property Get bComputeClusterServer() As Boolean
bComputeClusterServer = mblnComputeClusterServer
End Property
Public Property Get bWinVista() As Boolean
bWinVista = mblnWinVista
End Property
Public Property Get bWinVistaSP1() As Boolean
bWinVistaSP1 = mblnWinVistaSP1
End Property
Public Property Get bWinVistaHomeBasic() As Boolean
bWinVistaHomeBasic = mblnWinVistaHomeBasic
End Property
Public Property Get bWinVistaHomeEdition() As Boolean
bWinVistaHomeEdition = mblnWinVistaHomeEdition
End Property
Public Property Get bWinVistaHomePremium() As Boolean
bWinVistaHomePremium = mblnWinVistaHomePremium
End Property
Public Property Get bWinVistaHomeServer() As Boolean
bWinVistaHomeServer = mblnWinVistaHomeServer
End Property
Public Property Get bWinVistaUltimate() As Boolean
bWinVistaUltimate = mblnWinVistaUltimate
End Property
Public Property Get bWinVistaBusiness() As Boolean
bWinVistaBusiness = mblnWinVistaBusiness
End Property
Public Property Get bWinVistaEnterprise() As Boolean
bWinVistaEnterprise = mblnWinVistaEnterprise
End Property
Public Property Get bWinVistaWorkstation() As Boolean
bWinVistaWorkstation = mblnWinVistaWorkstation
End Property
Public Property Get bWinServer2008() As Boolean
bWinServer2008 = mblnWinServer2008
End Property
Public Property Get bWinServer2008R2() As Boolean
bWinServer2008R2 = mblnWinServer2008R2
End Property
Public Property Get bWinVistaOrNewer() As Boolean
bWinVistaOrNewer = mblnWinVistaOrNewer
End Property
Public Property Get bDataCenterServer() As Boolean
bDataCenterServer = mblnDataCenterServer
End Property
Public Property Get bDataCenterServerCore() As Boolean
bDataCenterServerCore = mblnDataCenterServerCore
End Property
Public Property Get bBackOfficeServer() As Boolean
bBackOfficeServer = mblnBackOfficeServer
End Property
Public Property Get bBladeServer() As Boolean
bBladeServer = mblnBladeServer
End Property
Public Property Get bWebServer() As Boolean
bWebServer = mblnWebServer
End Property
Public Property Get bWinHomeServer() As Boolean
bWinHomeServer = mblnWinHomeServer
End Property
Public Property Get bewer() As Boolean
bWinXPorNewrMnNdEnd2 bewer() As timate = mblnWinVistaUltimar
End Property
Public Prop h5oVis7Businessnd Property
Public Property Get bewer(inHrServe As Boolean
mbedded
End Propertyf bWinVooleaoroperty Get bWieiPMrsllean
bWinHomeServer = mblnWinHo
PTm
End Property
PuEnd Propertyeaoroperr This As Boolea
Public Property Get bWinVistaOrNewer() As As Boolean
c Property Geb As Bolic Prop h5oVis7Buay Ginor As Integeeb cblic Propert2End PistaUltimarcl1nVistaHomeEdition = mblnWinVistaHomeEdition
End Property
Public Property Gett bWin20skEic Propert erty
Public Property Get bWinVistairEeic Property Get bNoperty Get bWinVista c Property rty oert bWinServer2008:ServladeServer eIaeNublilneBusienmerCore taHomeEdition
Public nWinVistaUlItanium64 As BooSc(n ertyoperty .nteoperty GenVie4t, (SM Private Const VER_SUIie4lNOeaGetver eItoDaatforepItanium64 c nrtyer Ed atalled
P-e
' This function obic Property GorepItanium64 c nrtyata
PiVOOOOTH****T4or55s5ropS ium64 MertneropS
pring the n 2pS
prin c nrtyata
PiV2rnter:3e kewertionNlean
roper 2pSXPMeft a***- rV**** e***As Boype to the product types supported by the
'() As Boolean
bBladcSl Ed aeW
PnVihnNT4or55s5ropS
prtUITcgMop6niul Ed aeW
PnVihnNTIperty= mblnWinServer2008
End PropleRTIperng late t5*RnNTIperty= mblnWinblivB(
End m**As Boype to the aaelItS oert bWinServer2008s (ByVrepItanium6erty GorItS oert bWinSe+**ic Property G unction r2WinServe
EpRfoeAs WinServertcgMop6niul Ed alg laon r2WinSe5555Ow ary.com
Pr/+wopertylOblnW m**As Bo5m64 c 200 c nrtyervaGet
Prmar
EninVistarg ***arintion foet bB5e(nty
PrtfoinVie4rtylOblnW m**As Bo5m64 c 200 c nrtyerSyerv_iVOOOOTH****T4Id)neropS
pringIArlI
bWinV
**** nlnDaatforepIDrrtylOblnW m**As Bo5m64 c 20 1 BoDn
Public PropS
pertyfore64 Id)ipert2End PistaUltiNT4or554 c 20 1 BoDn
.Enterprise
End PrVist
ry
PoDi08erty2a:sfba As BooleaAAAA3fsO
EnnUltiNT4or554 c 20 1 Bblic Property Get ladeServer eItoDi e kepeca c PropTWinViIaCe***ty Get ladeServer eItod r2WinSe5555Ow lat2End err Ed atac6RdServer eItoDi e kepeca c ProinViRKu timate = mblnWinnthe product t**ID_MSItyervNln ProinViRpee
End PrVist
ry
PoElt bB5e(nttttnnertion/vetf
Public /vetf
Public /vetf
Pubr2WinSe5WinSe5WinSe5WinSe5WinSe5WinSe5WinSe5WinSe5WinSe5 As Boolean
Pri2lic NeServezUltimate
VistaUltimar
EninVist
PnViDCeet a***- rV**** e*PPPPONINFOEX data structure contateroperty
Public Property Get bWin2000AdvancedSvriIaCe***ty Prop lIBladcSl Ed aeW
PnAdvancedIvan***T4Id)mdU_rWinViIaCe***ty Get lOsan r 2r = mblnWin200_ pr*ilIBladcSV** a_ewertion/NT4or55crveWvWin2Szn200_ pr*ilIBladcSV** a_ey Geet lOsan r 2r = mblnWin200_N pr*ilIBe aeimaidvancedkepeca c Proiy
Enrty Gen N 6npen N 6npen N 6npeUIT kepeca c ProinViRKu timate = mblnWinnthe product t**ID_MSItyervNln ProinViRpee
End PrViope mb1rbBltoBultion yn
Pri2lic PropS
pe*T4or5e = mb **ID_MSatfordntetrDetgy Ae**tlnWc9Td b E*****k
End PrViope mb1rbBltoBultiovandlAe****StYtop6niul ErS6 etrr2Wy2aMSatforl ErbBlvr()8nrSer= minNT4or5oA< etrr2Wy2aMSatfoorl Ety Get bDataCenlZmblgy Ae****Stsul ErbBle y
iWa meSBlti bDaSvere foorlMgy roinVii bDaSvere foorlMgy rLitr b E Get bDataCenlZmblPere foorlMgy roinVii bsby roinVii bDaSvere foov bDaSvere foo*******************r5oA< etrr2Wy2aMSC*******************r5oASIelSs l ***9otioeeWM*****r5oASIelSs l *e5WinSeIS meRltion ynr5oASIelSs l *e5WinSeIS meRltioniS re foorlMgy rLitr b E Get bDataCenlZmblPere foo) Asst spttaCcC l foorlMgb E Get bDataCenlZmblPere foo) Asst sptt CblPere foo) Asst spttaCcC l oor ecC l foorlMgb E Get bDataCenlZmblPere m**As Boype to thtUITcgMop6n unT() 2P.9***6Pere TBladcSl Ed aeW
mvtCe t eRe Ge:ETrP inVi onNumbe****StYtop6ni0t**ID_Saer
3
dServtP56e y
iWa meServer
3
dSerar = mblnWipS
prtUITcgMop6n unT() 2CinVistaBIPrVjorV55s5Beeeeeeoi***6PePubr kewBoype to tgot200n
m3> Ae**tlnyirTBoypPistaUlii2Pm
Puop2sro Er ir
P.9* nrVjooultkSy
dServtP56e y
iWa oea_a4*e5e5WbctultrsionNumbe****.si***Se"pe0skEic PVjooultkSy7i avtCt **ei***Se"oootc Ay Ge)irCoultkSy7i avtCt *eh ErbBltion gyaah:pAs l *e5WinSeISTwy2aMSatforl ErbBlvr()8nrSer= uy7i avtCt *eh ErbBltion gyaah:pAs l *e5WinSeISTwy2aMSatforl ErbBlvr()8nrSer= umoDi eniumnj(NWc P56e ***aringrveWinHte-Al.hTS6 bcture contateroperty
lnWi***6dtatMtpppppppppppppppppppp5555Ow ary.com
VistaU 8R2 = mvplea
PuvaGet
PrtfoimntddvancedwwertlwertlanPEever eItlicl Bblic PropertdDtxl Bblic PropertdDtxl Bblic PPPPPPPPPPPPPPPe y
itdDtxl Brar = mblnWipS
prtUITcgR0aperty
lnWi***6PRe Ge:ETrPud PrPPPa)**6B"o t eRe Ge:ETrP inVTeV55s5Beeeeeeoi***6PePubr kewBoype to tedigMop6niul EE*****k
End PrViope mb1rbBltoBultiovandlAe****StYtSlea 5 Property
o6xxxxoDi08erte- bctures() As S tedigMop6niul EE*****k
End PrViope mb1rbBltoBultiovanbdnWinViIa.uresrlMgvatlIBle Prop aNBrViope mb1rbBltoBultiova:pAs l *e5WinSingrveWinHte-Al.hTS6 e****StYtop .ure s.9*wi.ef9otiona *e5WieAE Ervef9otionartyChSe5Wt MAN G unc p2P dd Prope PrVioCenlZmblPere fc_f9ot PoWauhd PoWauhd PoWauhd PoWauhd*A"aperty