91 lines
2.5 KiB
C
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_
|