IMSAdminBase::SetData

The IMSAdminBase::SetData method sets a data item. If data with that identifier does not already exist, this method creates and inserts a data item into the list of data items of that type. If data with that identifier already exists, this method sets the new data value. Duplicate data identifiers are not valid even if the entries are of different user types or data types.

HRESULT SetData(

  METADATA_HANDLE hMDHandle, //metadata handle..

  LPCWSTR pszMDPath,     //path of the key relative to hMDHandle.

  PMETADATA_RECORD pmdrMDData  //pointer to data.

);

 

Parameters
hMDHandle
Specifies a handle with write permissions as returned by the IMSAdminBase::OpenKey method. METADATA_MASTER_ROOT_HANDLE is not valid for this operation.
pszMDPath
Specifies a string that contains the path of the key that receives the entry, relative to the path of hMDHandle. For example, if the handle references the /LM key, you could specify the Web services subkey by using the path /W3SVC.
pmdrMDData
Points to a METADATA_RECORD structure that contains the data to set. All the structure Parameters must be filled except dwMDDataTag.
Return Values

Returns an HRESULT that contains one of the following values:

Value Description
ERROR_ACCESS_DENIED Access is denied. Either the open handle does not have read or write permission as needed, or the user does not have sufficient permissions to perform the operation.
ERROR_INVALID_PARAMETER The parameter is incorrect.
ERROR_NOT_ENOUGH_MEMORY There is not enough memory to complete the operation.
ERROR_PATH_NOT_FOUND The specified path is not found.
ERROR_SUCCESS The method succeeded.
MD_ERROR_CANNOT_REMOVE_SECURE_ATTRIBUTE Cannot set data to be not secure when a secure value exists.