Back

// PSLOSVersion.h : Declaration of the CPSLOSVersion

#pragma once
#include "resource.h"       // main symbols
#include "GUIDs.h"
#include "PSLExceptions.h"
#include "ProSysLib_i.h"

class ATL_NO_VTABLE CPSLOSVersion:
   public CComObjectRootEx<CComMultiThreadModel>,
   public CComCoClass<CPSLOSVersion, &CLSID_PSLOSVersion>,
   public IDispatchImpl<IPSLOSVersion, &IID_IPSLOSVersion, &LIBID_ProSysLib, PSL_HiVersion, PSL_LoVersion>,
   public CPSLException<&CLSID_PSLOSVersion, &IID_IPSLOSVersion>
{
public:

   CPSLOSVersion();

BEGIN_COM_MAP(CPSLOSVersion)
   COM_INTERFACE_ENTRY(IPSLOSVersion)
   COM_INTERFACE_ENTRY(IDispatch)
   COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()

   DECLARE_PROTECT_FINAL_CONSTRUCT()
   HRESULT FinalConstruct();
   void FinalRelease();

////////////////////////////
// Interface Implementation:
////////////////////////////

   STDMETHOD(get_OSVersion)(PSLOSMainVersion * pValue);
   STDMETHOD(get_OSMajor)(long * pValue);
   STDMETHOD(get_OSMinor)(long * pValue);
   STDMETHOD(get_OSBuild)(long * pValue);
   STDMETHOD(get_IsHomeEdition)(VARIANT_BOOL * pValue);
   STDMETHOD(get_SuitMask)(PSLOSSuitMask * pValue);
   STDMETHOD(get_SPMajor)(long * pValue);
   STDMETHOD(get_SPMinor)(long * pValue);
   STDMETHOD(get_SPName)(BSTR * pValue);

private:

   OSVERSIONINFOEX m_Version;
   PSLOSMainVersion m_OSVersion;
};

Top