You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.1 KiB
58 lines
1.1 KiB
class CServiceItem
|
|
{
|
|
public:
|
|
CServiceItem();
|
|
void GetClsid(CLSID& clsid) const;
|
|
HRESULT Load(const WCHAR* pszClsid);
|
|
BOOL ShallStartByFrameWork();
|
|
BOOL SupportsSecurityInterface();
|
|
|
|
protected:
|
|
CLSID m_clsid;
|
|
DWORD m_fStartByFrameWork;
|
|
DWORD m_fSupportsSecurityInterface;
|
|
};
|
|
|
|
class CServiceDirectory
|
|
{
|
|
public:
|
|
CServiceDirectory();
|
|
~CServiceDirectory();
|
|
void Reset();
|
|
BOOL GetNext(CServiceItem& service);
|
|
protected:
|
|
DWORD m_dwIndex;
|
|
HKEY m_hKeyDirectory;
|
|
|
|
};
|
|
|
|
inline CServiceItem::CServiceItem()
|
|
{
|
|
ZeroMemory(&m_clsid, sizeof(m_clsid));
|
|
}
|
|
|
|
inline void CServiceItem::GetClsid(CLSID& clsid) const
|
|
{
|
|
clsid = m_clsid;
|
|
}
|
|
|
|
inline BOOL CServiceItem::ShallStartByFrameWork()
|
|
{
|
|
return m_fStartByFrameWork;
|
|
}
|
|
|
|
inline BOOL CServiceItem::SupportsSecurityInterface()
|
|
{
|
|
return m_fSupportsSecurityInterface;
|
|
}
|
|
|
|
|
|
inline CServiceDirectory::CServiceDirectory() : m_dwIndex(0), m_hKeyDirectory(NULL){};
|
|
inline CServiceDirectory::~CServiceDirectory()
|
|
{
|
|
if (m_hKeyDirectory)
|
|
{
|
|
RegCloseKey(m_hKeyDirectory);
|
|
}
|
|
}
|
|
|