158 lines
3.4 KiB
C++
158 lines
3.4 KiB
C++
#include "inspch.h"
|
|
#include "util2.h"
|
|
#include "inseng.h"
|
|
#include "ciffile.h"
|
|
|
|
|
|
//=--------------------------------------------------------------------------=
|
|
// Function name here
|
|
//=--------------------------------------------------------------------------=
|
|
// Function description
|
|
//
|
|
// Parameters:
|
|
//
|
|
// Returns:
|
|
//
|
|
// Notes:
|
|
//
|
|
|
|
CCifGroup::CCifGroup(LPCSTR pszCompID, UINT uGrpNum, CCifFile *pCif) : CCifEntry(pszCompID, pCif)
|
|
{
|
|
_uGrpNum = uGrpNum;
|
|
}
|
|
|
|
//=--------------------------------------------------------------------------=
|
|
// Function name here
|
|
//=--------------------------------------------------------------------------=
|
|
// Function description
|
|
//
|
|
// Parameters:
|
|
//
|
|
// Returns:
|
|
//
|
|
// Notes:
|
|
//
|
|
|
|
CCifGroup::~CCifGroup()
|
|
{
|
|
}
|
|
|
|
|
|
STDMETHODIMP CCifGroup::GetID(LPSTR pszID, DWORD dwSize)
|
|
{
|
|
lstrcpyn(pszID, _szID, dwSize);
|
|
return NOERROR;
|
|
}
|
|
|
|
|
|
STDMETHODIMP CCifGroup::GetDescription(LPSTR pszDesc, DWORD dwSize)
|
|
{
|
|
return(MyTranslateString(_pCif->GetCifPath(), _szID, DISPLAYNAME_KEY, pszDesc, dwSize));
|
|
}
|
|
|
|
STDMETHODIMP_(DWORD) CCifGroup::GetPriority()
|
|
{
|
|
return(GetPrivateProfileInt(_szID, PRIORITY, 0, _pCif->GetCifPath()));
|
|
}
|
|
|
|
STDMETHODIMP CCifGroup::EnumComponents(IEnumCifComponents **pp, DWORD dwFilter, LPVOID pv)
|
|
{
|
|
CCifComponentEnum *pce;
|
|
HRESULT hr = E_FAIL;
|
|
|
|
*pp = 0;
|
|
|
|
pce = new CCifComponentEnum(_pCif->GetComponentList(), dwFilter, PARENTTYPE_GROUP, _szID);
|
|
if(pce)
|
|
{
|
|
*pp = (IEnumCifComponents *) pce;
|
|
(*pp)->AddRef();
|
|
hr = NOERROR;
|
|
}
|
|
|
|
return hr;
|
|
}
|
|
|
|
STDMETHODIMP_(DWORD) CCifGroup::GetInstallQueueState()
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
|
|
STDMETHODIMP_(DWORD) CCifGroup::GetCurrentPriority()
|
|
{
|
|
if(_uPriority == 0xffffffff)
|
|
_uPriority = ((GetPriority() << 10) + _uGrpNum) << 10;
|
|
|
|
return _uPriority;
|
|
}
|
|
|
|
//=========== ICifRWGroup implementation ============================================
|
|
//
|
|
CCifRWGroup::CCifRWGroup(LPCSTR pszID, UINT uGrpNum, CCifFile *pCif) : CCifGroup(pszID, uGrpNum, pCif)
|
|
{
|
|
}
|
|
|
|
CCifRWGroup::~CCifRWGroup()
|
|
{
|
|
|
|
}
|
|
|
|
STDMETHODIMP CCifRWGroup::GetID(LPSTR pszID, DWORD dwSize)
|
|
{
|
|
return(CCifGroup::GetID(pszID, dwSize));
|
|
}
|
|
|
|
STDMETHODIMP CCifRWGroup::GetDescription(LPSTR pszDesc, DWORD dwSize)
|
|
{
|
|
return(CCifGroup::GetDescription(pszDesc, dwSize));
|
|
}
|
|
|
|
STDMETHODIMP_(DWORD) CCifRWGroup::GetPriority()
|
|
{
|
|
return(CCifGroup::GetPriority());
|
|
}
|
|
|
|
STDMETHODIMP CCifRWGroup::EnumComponents(IEnumCifComponents **pp, DWORD dwFilter, LPVOID pv)
|
|
{
|
|
CCifComponentEnum *pce;
|
|
HRESULT hr = E_FAIL;
|
|
|
|
*pp = 0;
|
|
|
|
pce = new CCifComponentEnum((CCifComponent**)_pCif->GetComponentList(), dwFilter, PARENTTYPE_GROUP, _szID);
|
|
if(pce)
|
|
{
|
|
*pp = (IEnumCifComponents *) pce;
|
|
(*pp)->AddRef();
|
|
hr = NOERROR;
|
|
}
|
|
|
|
return hr;
|
|
|
|
}
|
|
|
|
// access to state
|
|
STDMETHODIMP_(DWORD) CCifRWGroup::GetCurrentPriority()
|
|
{
|
|
return(CCifGroup::GetCurrentPriority());
|
|
}
|
|
|
|
STDMETHODIMP CCifRWGroup::SetDescription(LPCSTR pszDesc)
|
|
{
|
|
return(WriteTokenizeString(_pCif->GetCifPath(), _szID, DISPLAYNAME_KEY, pszDesc));
|
|
}
|
|
|
|
STDMETHODIMP CCifRWGroup::SetPriority(DWORD dwPri)
|
|
{
|
|
char szbuf[20];
|
|
|
|
return(WritePrivateProfileString(_szID, PRIORITY, ULtoA(dwPri, szbuf, 10), _pCif->GetCifPath()));
|
|
}
|
|
|
|
STDMETHODIMP CCifRWGroup::SetDetails(LPCSTR pszDetails)
|
|
{
|
|
return(WriteTokenizeString(_pCif->GetCifPath(), _szID, DETAILS_KEY, pszDetails));
|
|
}
|
|
|