LDAPModW structure (winldap.h)

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


typedef struct ldapmodW {
  ULONG  mod_op;
  PWCHAR mod_type;
  union {
    PWCHAR *modv_strvals;
    berval **modv_bvals;
  } mod_vals;



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.


Adds a value to the entry. The supplied values are appended to the existing values in the attribute.


Deletes a value in the entry. The supplied values are deleted from the current attribute values.


Replaces a value in the entry. The supplied values replace the existing attribute values.


Pointer to a null-terminated string that specifies the name of the attribute to modify.


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.


Pointer to a null-terminated array of null-terminated strings. The last element of the array must be a NULL pointer.


Pointer to a NULL-terminated array of berval pointers. The last element of the array must be a NULL pointer.


Assign values to the fields of the LDAPMod structure before you call a modification function ( 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.


The winldap.h header defines LDAPMod as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see Conventions for Function Prototypes.


Minimum supported client Windows Vista
Minimum supported server Windows Server 2008
Header winldap.h

See also

Data Structures

Modifying a Directory Entry