Windows-Server-2003/enduser/netmeeting/ulsldap/spanyatt.h

91 lines
2.5 KiB
C++

/* ----------------------------------------------------------------------
Module: ULS.DLL (Service Provider)
File: spanyatt.h
Content: This file contains the arbitrary-attribute object definition.
History:
10/15/96 Chu, Lon-Chan [lonchanc]
Created.
Copyright (c) Microsoft Corporation 1996-1997
---------------------------------------------------------------------- */
#ifndef _ULS_SP_ANYATTR_H_
#define _ULS_SP_ANYATTR_H_
#include <pshpack8.h>
// this structure is used to remember which arbitrary attributes
// have been created at the server side.
// in isbu server implementation, all the applications' and
// protocols' arbitrary attributes are under RTPerson; therefore,
// it is important to clean up arbitrary attributes propertly.
typedef struct tagAnyAttr
{
struct tagAnyAttr *prev;
struct tagAnyAttr *next;
LONG mod_op; // used in temp list only
TCHAR *pszAttrName;
// followed by attr name
}
ANY_ATTR;
class UlsLdap_CAnyAttrs
{
friend class UlsLdap_CLocalApp;
friend class UlsLdap_CLocalProt;
public:
UlsLdap_CAnyAttrs ( VOID );
~UlsLdap_CAnyAttrs ( VOID );
protected:
HRESULT SetAnyAttrs ( ULONG *puRespID, ULONG *puMsgID, ULONG uNotifyMsg,
ULONG cPrefix, TCHAR *pszPrefix,
ULONG cAttrs, TCHAR *pszAttrs,
LONG ModOp, SERVER_INFO *pServerInfo, TCHAR *pszDN );
HRESULT RemoveAnyAttrs ( ULONG *puRespID, ULONG *puMsgID, ULONG uNotifyMsg,
ULONG cPrefix, TCHAR *pszPrefix,
ULONG cAttrs, TCHAR *pszAttrs,
SERVER_INFO *pServerInfo, TCHAR *pszDN );
HRESULT RemoveAllAnyAttrs ( ULONG *puMsgID, ULONG cPrefix, TCHAR *pszPrefix,
SERVER_INFO *pServerInfo, TCHAR *pszDN );
ULONG GetAnyAttrsCount ( VOID ) { return m_cAttrs; }
private:
HRESULT RemoveAnyAttrsEx ( ULONG *puRespID, ULONG *puMsgID, ULONG uNotifyMsg,
ULONG cPrefix, TCHAR *pszPrefix,
ULONG cAttrs, TCHAR *pszAttrs,
SERVER_INFO *pServerInfo, TCHAR *pszDN );
HRESULT SetAttrsAux ( ULONG cAttrs, TCHAR *pszAttrs,
ULONG cPrefix, TCHAR *pszPrefix, LONG ModOp,
LDAPMod ***pppMod );
HRESULT RemoveAttrsAux ( ULONG cAttrs, TCHAR *pszAttrs,
ULONG cPrefix, TCHAR *pszPrefix,
LDAPMod ***pppMod );
VOID RemoveAttrFromList ( TCHAR *pszAttrName );
VOID FreeAttrList ( ANY_ATTR *AttrList );
ANY_ATTR *LocateAttr ( TCHAR *pszAttrName );
ULONG m_cAttrs;
ANY_ATTR *m_AttrList;
};
const TCHAR *SkipAnyAttrNamePrefix ( const TCHAR *pszAttrName );
const TCHAR *IsAnyAttrName ( const TCHAR *pszAttrName );
TCHAR *PrefixNameValueArray ( BOOL fPair, ULONG cAttrs, const TCHAR *pszAttrs );
#include <poppack.h>
#endif // _ULS_SP_ANYATTR_H_