IMSAdminBase::CopyData
The IMSAdminBase::CopyData method copies or moves data associated with the source key to the destination key. You can also specify whether the method copies the key's inherited data.
HRESULT CopyData(
METADATA_HANDLE hMDSourceHandle,
LPCWSTR pszMDSourcePath,
METADATA_HANDLE hMDDestHandle,
LPCWSTR pszMDDestPath,
DWORD dwMDAttributes,
DWORD dwMDUserType,
DWORD dwMDDataType,
BOOL bMDCopyFlag
);
Parameters
hMDSourceHandle
Specifies METADATA_MASTER_ROOT_HANDLE, or a handle with read permission returned by the IMSAdminBase::OpenKey method.pszMDSourcePath
Points to a string that contains the path of the key with which the source data is associated, relative to the path of hMDSourceHandle. For example, if the handle references the /LM key, you could specify the Web services subkey using the path /W3SVC.hMDDestHandle
Specifies a handle, returned by IMSAdminBase::OpenKey, that has write permission. METADATA_MASTER_ROOT_HANDLE is not a valid value for this parameter.pszMDDestPath
Points to the path of the key for data to be copied to, relative to the path of hMDDestHandle.dwMDAttributes
The flags, contained in the METADATA_RECORD structure, used to get the data.dwMDUserType
A DWORD that specifies the user type of the data. If not set to ALL_METADATA, only metadata of the specified user type will be copied or moved. The following user types are defined for IIS:User type
Meaning
ALL_METADATA
Copy or move all data, regardless of user type.
ASP_MD_UT_APP
The entry contains information specific to ASP application configuration.
IIS_MD_UT_FILE
Copy or move only data specific to a file, such as access permissions or logon methods.
IIS_MD_UT_SERVER
Copy or move only data specific to the server, such as ports in use and IP addresses.
IIS_MD_UT_WAM
The entry contains information specific to Web application management.
dwMDDataType
A DWORD that specifies the type of data to retrieve. If dwMDDataType is not set to ALL_METADATA, only metadata of the specified type will be copied or moved. This parameter can be one of the following values:Data type
Meaning
ALL_METADATA
Copy or move all data, regardless of type.
BINARY_METADATA
Binary data in any form.
DWORD_METADATA
An unsigned 32-bit number.
EXPANDSZ_METADATA
A null-terminated string that contains unexpanded environment variables, such as %PATH%.
MULTISZ_METADATA
An array of null-terminated strings, terminated by two null characters.
STRING_METADATA
A null-terminated ASCII string.
bMDCopyFlag
A Boolean value that specifies whether to copy or move the data. If this parameter is set to TRUE, the data is copied. If it is FALSE, the data is moved. If dwMDAttributes contains the flag METADATA_INHERIT, this parameter must be set to TRUE.
Return Values
Returns an HRESULT that contains one of the following values:
Value |
Description |
---|---|
E_ACCESSDENIED |
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. |
E_INVALIDARG |
The parameter is incorrect. |
HRESULT_FROM_WIN32(ERROR_NOT_ENOUGH_MEMORY) |
There is not enough memory to complete the operation. |
HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND) |
The specified path is not found. |
S_OK |
The method succeeded. |
Remarks
If inherited data is copied, (if dwMDAttributes specifies the METADATA_INHERIT flag) it is copied to the destination key, not to the corresponding parent keys.
The handle, METADATA_MASTER_ROOT_HANDLE, provides no guarantee against multiple thread access. If your application requires a constant data state, use a handle returned by IMSAdminBase::OpenKey.
Requirements
Client: Requires Windows XP Professional, Windows 2000 Professional, or Windows NT Workstation 4.0.
Server: Requires Windows Server 2003, Windows 2000 Server, or Windows NT Server 4.0.
Product: IIS
Header: Declared in iadmw.h; include iiscnfg.h.