windows-nt/Source/XPSP1/NT/shell/osshell/dskquota/common/ntds.h
2020-09-26 16:20:57 +08:00

113 lines
3.9 KiB
C++

#ifndef _INC_DSKQUOTA_NTDS_H
#define _INC_DSKQUOTA_NTDS_H
///////////////////////////////////////////////////////////////////////////////
/* File: ntds.h
Description: Contains declaration for class NTDS.
This class provides a simple wrapper around NT Directory Service
name translation features. It has no data and no virtual functions.
Revision History:
Date Description Programmer
-------- --------------------------------------------------- ----------
06/01/97 Initial creation. BrianAu
*/
///////////////////////////////////////////////////////////////////////////////
#ifndef __SSPI_H__
# define SECURITY_WIN32
# include <security.h> // For TranslateName
#endif
class NTDS
{
public:
NTDS(VOID) { }
~NTDS(VOID) { }
HRESULT LookupAccountByName(
LPCTSTR pszSystem,
LPCTSTR pszLogonName,
CString *pstrContainerName,
CString *pstrDisplayName,
PSID pSid,
LPDWORD pdwSid,
PSID_NAME_USE peUse);
HRESULT LookupAccountBySid(
LPCTSTR pszSystem,
PSID pSid,
CString *pstrContainerName,
CString *pstrLogonName,
CString *pstrDisplayName,
PSID_NAME_USE peUse);
HRESULT TranslateFQDNsToLogonNames(
const CArray<CString>& rgstrFQDNs,
CArray<CString> *prgstrLogonNames);
HRESULT TranslateFQDNToLogonName(
LPCTSTR pszFQDN,
CString *pstrLogonName);
static void CreateSamLogonName(LPCTSTR pszSamDomain, LPCTSTR pszSamUser, CString *pstrSamLogonName);
static LPCTSTR FindFQDNInADsPath(LPCTSTR pszADsPath);
static LPCTSTR FindSamAccountInADsPath(LPCTSTR pszADsPath);
private:
HRESULT LookupSamAccountName(
LPCTSTR pszSystem,
LPCTSTR pszLogonName,
CString *pstrContainerName,
CString *pstrDisplayName,
PSID pSid,
LPDWORD pdwSid,
PSID_NAME_USE peUse);
HRESULT LookupDsAccountName(
LPCTSTR pszSystem,
LPCTSTR pszLogonName,
CString *pstrContainerName,
CString *pstrDisplayName,
PSID pSid,
LPDWORD pdwSid,
PSID_NAME_USE peUse);
HRESULT GetSamAccountDisplayName(
LPCTSTR pszLogonName,
CString *pstrDisplayName);
HRESULT GetDsAccountDisplayName(
LPCTSTR pszLogonName,
CString *pstrDisplayName);
HRESULT TranslateNameInternal(
LPCTSTR pszAccountName,
EXTENDED_NAME_FORMAT AccountNameFormat,
EXTENDED_NAME_FORMAT DesiredNameFormat,
CString *pstrTranslatedName);
HRESULT LookupAccountNameInternal(
LPCTSTR pszSystemName,
LPCTSTR pszAccountName,
PSID Sid,
LPDWORD pcbSid,
CString *pstrReferencedDomainName,
PSID_NAME_USE peUse);
HRESULT LookupAccountSidInternal(
LPCTSTR pszSystemName,
PSID Sid,
CString *pstrName,
CString *pstrReferencedDomainName,
PSID_NAME_USE peUse);
};
#endif // _INC_DSKQUOTA_NTDS_H