Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

230 lines
3.6 KiB

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1999
//
// File: MyBasePathsInfo.h
//
// Contents: Thin wrapper around dsadminlib CDSBasePathsInfo class
// to deal with memory management of strings
//
// History: 04/02/2001 jeffjon Created
//
//--------------------------------------------------------------------------
#include "stdafx.h"
void MyBasePathsInfo::ComposeADsIPath(CString& szPath, IN LPCWSTR lpszNamingContext)
{
int result = 0;
szPath.Empty();
PWSTR pszPath = 0;
result = CDSBasePathsInfo::ComposeADsIPath(&pszPath, lpszNamingContext);
if (pszPath && result)
{
szPath = pszPath;
delete[] pszPath;
pszPath = 0;
}
else
{
ASSERT(pszPath);
}
ASSERT(result);
}
void MyBasePathsInfo::GetSchemaPath(CString& s)
{
int result = 0;
s.Empty();
PWSTR pszPath = 0;
result = CDSBasePathsInfo::GetSchemaPath(&pszPath);
if (pszPath && result)
{
s = pszPath;
delete[] pszPath;
pszPath = 0;
}
else
{
ASSERT(pszPath);
}
ASSERT(result);
}
void MyBasePathsInfo::GetConfigPath(CString& s)
{
int result = 0;
s.Empty();
PWSTR pszPath = 0;
result = CDSBasePathsInfo::GetConfigPath(&pszPath);
if (pszPath && result)
{
s = pszPath;
delete[] pszPath;
pszPath = 0;
}
else
{
ASSERT(pszPath);
}
ASSERT(result);
}
void MyBasePathsInfo::GetDefaultRootPath(CString& s)
{
int result = 0;
s.Empty();
PWSTR pszPath = 0;
result = CDSBasePathsInfo::GetDefaultRootPath(&pszPath);
if (pszPath && result)
{
s = pszPath;
delete[] pszPath;
pszPath = 0;
}
else
{
ASSERT(pszPath);
}
ASSERT(result);
}
void MyBasePathsInfo::GetRootDSEPath(CString& s)
{
int result = 0;
s.Empty();
PWSTR pszPath = 0;
result = CDSBasePathsInfo::GetRootDSEPath(&pszPath);
if (pszPath && result)
{
s = pszPath;
delete[] pszPath;
pszPath = 0;
}
else
{
ASSERT(pszPath);
}
ASSERT(result);
}
void MyBasePathsInfo::GetAbstractSchemaPath(CString& s)
{
int result = 0;
s.Empty();
PWSTR pszPath = 0;
result = CDSBasePathsInfo::GetAbstractSchemaPath(&pszPath);
if (pszPath && result)
{
s = pszPath;
delete[] pszPath;
pszPath = 0;
}
else
{
ASSERT(pszPath);
}
ASSERT(result);
}
void MyBasePathsInfo::GetPartitionsPath(CString& s)
{
int result = 0;
s.Empty();
PWSTR pszPath = 0;
result = CDSBasePathsInfo::GetPartitionsPath(&pszPath);
if (pszPath && result)
{
s = pszPath;
delete[] pszPath;
pszPath = 0;
}
else
{
ASSERT(pszPath);
}
ASSERT(result);
}
void MyBasePathsInfo::GetSchemaObjectPath(IN LPCWSTR lpszObjClass, CString& s)
{
int result = 0;
s.Empty();
PWSTR pszPath = 0;
result = CDSBasePathsInfo::GetSchemaObjectPath(lpszObjClass, &pszPath);
if (pszPath && result)
{
s = pszPath;
delete[] pszPath;
pszPath = 0;
}
else
{
ASSERT(pszPath);
}
ASSERT(result);
}
void MyBasePathsInfo::GetInfrastructureObjectPath(CString& s)
{
int result = 0;
s.Empty();
PWSTR pszPath = 0;
result = CDSBasePathsInfo::GetInfrastructureObjectPath(&pszPath);
if (pszPath && result)
{
s = pszPath;
delete[] pszPath;
pszPath = 0;
}
else
{
ASSERT(pszPath);
}
ASSERT(result);
}
HRESULT GetADSIServerName(CString& szServer, IN IUnknown* pUnk)
{
PWSTR pszServer = 0;
HRESULT hr = GetADSIServerName(&pszServer, pUnk);
if (SUCCEEDED(hr) && pszServer)
{
szServer = pszServer;
delete[] pszServer;
pszServer = 0;
}
return hr;
}