Source code of Windows XP (NT5)
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.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 2000 - 2000
//
// File: SecUtil.h
//
// Contents: Utility functions for working with the security APIs
//
// History: 15-Sep-2000 JeffJon Created
//
//
//--------------------------------------------------------------------------
#ifndef _SECUTIL_H_
#define _SECUTIL_H_
extern const GUID GUID_CONTROL_UserChangePassword;
//+--------------------------------------------------------------------------
//
// Class: CSimpleSecurityDescriptorHolder
//
// Purpose: Smart wrapper for a SecurityDescriptor
//
// History: 15-Sep-2000 JeffJon Created
//
//---------------------------------------------------------------------------
class CSimpleSecurityDescriptorHolder { public: //
// Constructor and Destructor
//
CSimpleSecurityDescriptorHolder(); ~CSimpleSecurityDescriptorHolder();
//
// Public member data
//
PSECURITY_DESCRIPTOR m_pSD; private: CSimpleSecurityDescriptorHolder(const CSimpleSecurityDescriptorHolder&) {} CSimpleSecurityDescriptorHolder& operator=(const CSimpleSecurityDescriptorHolder&) {} };
//+--------------------------------------------------------------------------
//
// Class: CSimpleAclHolder
//
// Purpose: Smart wrapper for a ACL
//
// History: 15-Sep-2000 JeffJon Created
//
//---------------------------------------------------------------------------
class CSimpleAclHolder { public: CSimpleAclHolder() { m_pAcl = NULL; } ~CSimpleAclHolder() { if (m_pAcl != NULL) ::LocalFree(m_pAcl); }
PACL m_pAcl; };
//+--------------------------------------------------------------------------
//
// Class: CSidHolder
//
// Purpose: Smart wrapper for a SID
//
// History: 15-Sep-2000 JeffJon Created
//
//---------------------------------------------------------------------------
class CSidHolder { public: //
// Constructor and Destructor
//
CSidHolder(); ~CSidHolder();
//
// Public methods
//
PSID Get(); bool Copy(PSID p); void Attach(PSID p, bool bLocalAlloc); void Clear();
private: //
// Private methods
//
void _Init(); void _Free(); bool _Copy(PSID p);
//
// Private member data
//
PSID m_pSID; bool m_bLocalAlloc; };
//
//Function for reading and writing acl
//
HRESULT DSReadObjectSecurity(IN IDirectoryObject *pDsObject, OUT SECURITY_DESCRIPTOR_CONTROL * psdControl, OUT PACL *ppDacl);
HRESULT DSWriteObjectSecurity(IN IDirectoryObject *pDsObject, IN SECURITY_DESCRIPTOR_CONTROL sdControl, PACL pDacl);
#endif //_SECUTIL_H_
|