Directory Services

LDAPMod

The LDAPMod structure holds data required to perform a modification operation.

typedef struct ldapmod {
ULONG mod_op;
PWCHAR mod_type;
union {
PWCHAR* modv_strvals;
struct berval** modv_bvals;
} mod_vals; } LDAPMod,
*PLDAPMod;

Members

mod_op
Specifies one of the following values to indicate the modification operation to perform.

You can use the bitwise OR operator to combine the operation value with LDAP_MOD_BVALUES to indicate that the mod_vals union uses the modv_bvals member. If LDAP_MOD_BVALUES is not set, the union uses the modv_strvals member.

Value Meaning
LDAP_MOD_ADD (0x00) Adds a value to the entry. The supplied values are appended to the existing values in the attribute.
LDAP_MOD_DELETE (0x01) Deletes a value in the entry. The supplied values are deleted from the current attribute values.
LDAP_MOD_REPLACE (0x02) Replaces a value in the entry. The supplied values replace the existing attribute values.
mod_type
Pointer to a null-terminated string that specifies the name of the attribute to modify.
mod_vals
Pointer to an array of values, if any, to add, delete, or replace. If mop_op does not include the LDAP_MOD_BVALUES flag, the modv_strvals member is a pointer to an array of null-terminated strings. If mop_op includes LDAP_MOD_BVALUES, the modv_bvals member is a pointer to an array of berval pointers, which is useful for specifying binary values.
modv_strvals
Pointer to a null-terminated array of null-terminated strings. The last element of the array must be a NULL pointer.
modv_bvals
Pointer to a NULL terminated array of berval pointers. The last element of the array must be a NULL pointer.

Remarks

Assign values to the fields of the LDAPMod structure before you call one of the modification functions ( ldap_add*, or ldap_modify*).

ldap_modify* with the LDAP_MOD_REPLACE operation does not delete an attribute when passed a null pointer. However, LDAP_MOD_DELETE deletes the entire attribute when mod_vals is set to NULL.

When passing a LDAPMod structure into the ldap_add* functions, only the LDAP_MOD_BVALUES flag is significant. Creating a new object implies adding values to it.

Requirements

Client: Included in Windows XP and Windows 2000 Professional.
Server: Included in Windows Server 2003 and Windows 2000 Server.
Redistributable: Requires Active Directory Client Extension on Windows NT 4.0 SP6a and Windows 95/98/Me.
Unicode: Declared as Unicode and ANSI structures.
Header: Declared in Winldap.h.

See Also

berval, Data Structures, ldap_add, ldap_modify, ldap_modify_s, Modifying a Directory Entry