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.
90 lines
2.6 KiB
90 lines
2.6 KiB
/* ----------------------------------------------------------------------
|
|
|
|
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_
|