windows-nt/Source/XPSP1/NT/enduser/netmeeting/ulsldap/attribs.h
2020-09-26 16:20:57 +08:00

89 lines
2.4 KiB
C++

//****************************************************************************
//
// Module: ULS.DLL
// File: attribs.h
// Content: This file contains the attributes object definition.
// History:
// Wed 17-Apr-1996 11:18:47 -by- Viroon Touranachun [viroont]
//
// Copyright (c) Microsoft Corporation 1995-1996
//
//****************************************************************************
#ifndef _ATTRIBS_H_
#define _ATTRIBS_H_
//****************************************************************************
// CAttributes definition
//****************************************************************************
//
class CAttributes : public IIlsAttributes
{
friend class CIlsMain;
friend class CIlsUser;
friend class CIlsMeetingPlace;
private:
LONG m_cRef;
ILS_ATTR_TYPE m_AccessType;
ULONG m_cAttrs;
ULONG m_cchNames;
ULONG m_cchValues;
CList m_AttrList;
// Private methods
//
HRESULT InternalSetAttribute ( TCHAR *pszName, TCHAR *pszValue );
HRESULT InternalCheckAttribute ( TCHAR *pszName, BOOL fRemove );
HRESULT InternalSetAttributeName ( TCHAR *pszName );
protected:
VOID SetAccessType ( ILS_ATTR_TYPE AttrType ) { m_AccessType = AttrType; }
public:
// Constructor and destructor
//
CAttributes ( VOID );
~CAttributes ( VOID );
// For internal use
//
ULONG GetCount ( VOID ) { return m_cAttrs; }
ILS_ATTR_TYPE GetAccessType( void) { return m_AccessType; }
HRESULT GetAttributeList ( TCHAR **ppszList, ULONG *pcList, ULONG *pcb );
HRESULT GetAttributePairs ( TCHAR **ppszPairs, ULONG *pcList, ULONG *pcb );
HRESULT SetAttributePairs( TCHAR *pszPairs, ULONG cPair );
HRESULT SetAttributes ( CAttributes *pAttributes );
HRESULT RemoveAttributes ( CAttributes *pAttributes);
HRESULT CloneNameValueAttrib(CAttributes **ppClone);
// IUnknown
//
STDMETHODIMP QueryInterface (REFIID iid, void **ppv);
STDMETHODIMP_(ULONG) AddRef (void);
STDMETHODIMP_(ULONG) Release (void);
// IIlsAttributes
//
// For ILS_ATTRTYPE_NAME_VALUE
//
STDMETHODIMP SetAttribute (BSTR bstrName, BSTR bstrValue);
STDMETHODIMP GetAttribute (BSTR bstrName, BSTR *pbstrValue);
STDMETHODIMP EnumAttributes (IEnumIlsNames **ppEnumAttribute);
// For ILS_ATTRTYPE_NAME_ONLY
//
STDMETHODIMP SetAttributeName ( BSTR bstrName );
#ifdef DEBUG
// For debugging
//
void DebugOut (void);
#endif // DEBUG
};
#endif //_ATTRIBS_H_