The IMSAdminBase::GetData method retrieves an entry from the metabase.
HRESULT GetData(
  METADATA_HANDLE hMDHandle,    //metabase handle
  LPCWSTR pszMDPath,            //path to the key, relative to 
                                // hMDHandle
  PMETADATA_RECORD pmdrMDData,  //pointer to a structure that 
                                // receives the data
  DWORD *pdwMDRequiredDataLen   //pointer to a DWORD that receives 
                                // the required data length in the case 
                                // of an overflow
);
 Returns an HRESULT that contains one of the following values:
| 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_INSUFFICIENT_BUFFER | The buffer passed to the method call is too small to receive the data. | 
| ERROR_INVALID_PARAMETER | The parameter is incorrect. | 
| ERROR_PATH_NOT_FOUND | The specified path is not found in the metabase. | 
| ERROR_SUCCESS | The method succeeded. | 
| MD_ERROR_DATA_NOT_FOUND | The specified data is not found in the metabase. | 
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.