windows-nt/Source/XPSP1/NT/admin/snapin/wsecmgr/edittemp.h
2020-09-26 16:20:57 +08:00

119 lines
3.3 KiB
C++

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation 1996-2001.
//
// File: edittemp.h
//
// Contents: definition of CEditTemplate
//
//----------------------------------------------------------------------------
#ifndef EDITTEMP_H
#define EDITTEMP_H
#include "stdafx.h"
#include "hidwnd.h"
#pragma warning(push,3)
#include <scesvc.h>
#pragma warning(pop)
class CComponentDataImpl;
#define AREA_DESCRIPTION 0x1000
class CEditTemplate {
public:
BOOL SetDirty(AREA_INFORMATION Area);
void LockWriteThrough();
void UnLockWriteThrough();
BOOL IsLockedWriteThrough() {return m_bLocked;};
BOOL IsDirty();
BOOL SetWriteThrough(BOOL bOn) { return m_bWriteThrough = bOn; };
BOOL QueryWriteThrough() { return m_bWriteThrough; };
BOOL SetWriteThroughDirty(BOOL bOn) { return m_bWriteThroughDirty = bOn; };
void SetNotificationWindow(LPNOTIFY pNotify) { m_pNotify = pNotify; };
BOOL QueryWriteThroughDirty() { return m_bWriteThroughDirty; };
BOOL Save(LPCTSTR szName=NULL);
BOOL AddService(LPCTSTR szService,
LPSCESVCATTACHMENTPERSISTINFO pPersistInfo);
BOOL SetInfFile(LPCTSTR szName);
BOOL CheckArea(AREA_INFORMATION Area) { return ((Area & m_AreaLoaded) == Area); }
DWORD QueryArea() { return m_AreaLoaded; }
void AddArea(AREA_INFORMATION Area) { m_AreaLoaded |= Area; }
void ClearArea(AREA_INFORMATION Area) { m_AreaLoaded &= ~Area; SetDirty(Area); }
void SetProfileHandle(PVOID hProfile) { m_hProfile = hProfile; }
BOOL SetDescription(LPCTSTR szDesc);
void SetComponentDataImpl(CComponentDataImpl *pCDI) { m_pCDI = pCDI; }
DWORD RefreshTemplate(AREA_INFORMATION aiAreaToAdd = 0);
BOOL SetNoSave(BOOL b) { return m_bNoSave = b; }
BOOL QueryNoSave() { return m_bNoSave; }
BOOL SetPolicy(BOOL b) { return m_bPolicy = b; }
BOOL QueryPolicy() { return m_bPolicy; }
LPCTSTR GetInfName()
{ return m_szInfFile; };
void SetTemplateDefaults();
LPCTSTR GetDesc() const;
public:
CEditTemplate();
virtual ~CEditTemplate();
public:
DWORD
UpdatePrivilegeAssignedTo(
BOOL bRemove,
PSCE_PRIVILEGE_ASSIGNMENT *ppaLink,
LPCTSTR pszName = NULL
);
LPCTSTR
GetFriendlyName() //Raid Bug292634, Yang Gao, 3/30/2001
{ return (m_strFriendlyName.IsEmpty() ? (LPCTSTR)m_szInfFile : m_strFriendlyName); };
void
SetFriendlyName(LPCTSTR pszName)
{ m_strFriendlyName = pszName; };
public:
static DWORD
ComputeStatus(
PSCE_REGISTRY_VALUE_INFO prvEdit,
PSCE_REGISTRY_VALUE_INFO prvAnal
);
static DWORD
ComputeStatus(
PSCE_PRIVILEGE_ASSIGNMENT pEdit,
PSCE_PRIVILEGE_ASSIGNMENT pAnal
);
private:
CMap<CString, LPCTSTR, LPSCESVCATTACHMENTPERSISTINFO, LPSCESVCATTACHMENTPERSISTINFO&> m_Services;
PVOID m_hProfile;
LPTSTR m_szInfFile;
AREA_INFORMATION m_AreaDirty;
BOOL m_bWriteThrough;
BOOL m_bWriteThroughDirty;
BOOL m_bNoSave;
AREA_INFORMATION m_AreaLoaded;
CComponentDataImpl *m_pCDI;
LPTSTR m_szDesc;
LPNOTIFY m_pNotify;
CString m_strFriendlyName;
BOOL m_bWMI;
BOOL m_bPolicy;
BOOL m_bLocked;
public:
//
// Public attributes.
//
PSCE_PROFILE_INFO pTemplate;
};
typedef CEditTemplate EDITTEMPLATE, *PEDITTEMPLATE;
#endif // EDITTEMP_H