mirror of https://github.com/tongzx/nt5src
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.
119 lines
3.2 KiB
119 lines
3.2 KiB
//***************************************************************************
|
|
//
|
|
// Copyright (c) 1998-1999 Microsoft Corporation
|
|
//
|
|
// File: parsedn.h
|
|
//
|
|
// Description :
|
|
// The implementation of IParseDisplayName
|
|
//
|
|
//***************************************************************************
|
|
|
|
|
|
#ifndef _PARSEDN_H_
|
|
#define _PARSEDN_H_
|
|
|
|
//***************************************************************************
|
|
//
|
|
// Class : CWbemParseDN
|
|
//
|
|
// Description :
|
|
// Implements the IParseDisplayName interface, which parses
|
|
// CIM object paths and returns a pointer to the requested object
|
|
//
|
|
// Public Methods :
|
|
// IUnknown Methods
|
|
// IParseDisplayName Methods
|
|
// Constructor, Destructor
|
|
// CreateProvider - creates an object of this class
|
|
//
|
|
// Public Data Members :
|
|
//
|
|
//***************************************************************************
|
|
|
|
class CWbemParseDN : public IParseDisplayName
|
|
{
|
|
private:
|
|
long m_cRef;
|
|
|
|
static bool ParseAuthAndImpersonLevel (
|
|
LPWSTR lpszInputString,
|
|
ULONG* pchEaten,
|
|
bool &authnSpecified,
|
|
enum WbemAuthenticationLevelEnum *lpeAuthLevel,
|
|
bool &impSpecified,
|
|
enum WbemImpersonationLevelEnum *lpeImpersonLevel,
|
|
CSWbemPrivilegeSet &privilegeSet,
|
|
BSTR &bsAuthority);
|
|
|
|
static bool ParseImpersonationLevel (
|
|
LPWSTR lpszInputString,
|
|
ULONG* pchEaten,
|
|
enum WbemImpersonationLevelEnum *lpeImpersonLevel);
|
|
|
|
static bool ParseAuthenticationLevel (
|
|
LPWSTR lpszInputString,
|
|
ULONG* pchEaten,
|
|
enum WbemAuthenticationLevelEnum *lpeAuthLevel);
|
|
|
|
static bool ParsePrivilegeSet (
|
|
LPWSTR lpszInputString,
|
|
ULONG *pchEaten,
|
|
CSWbemPrivilegeSet &privilegeSet);
|
|
|
|
static bool ParseAuthority (
|
|
LPWSTR lpszInputString,
|
|
ULONG *pchEaten,
|
|
BSTR &bsAuthority);
|
|
|
|
public:
|
|
|
|
//IUnknown members
|
|
STDMETHODIMP QueryInterface(REFIID, LPVOID*);
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
|
|
//IParseDisplayName members
|
|
STDMETHODIMP ParseDisplayName (IBindCtx* pbc,
|
|
LPOLESTR szDisplayName,
|
|
ULONG* pchEaten,
|
|
IMoniker** ppmk);
|
|
|
|
CWbemParseDN::CWbemParseDN();
|
|
virtual CWbemParseDN::~CWbemParseDN();
|
|
|
|
// Used for parsing the authentication and impersonation levels.
|
|
static bool ParseSecurity (
|
|
LPWSTR lpszInputString,
|
|
ULONG* pchEaten,
|
|
bool &authnSpecified,
|
|
enum WbemAuthenticationLevelEnum *lpeAuthLevel,
|
|
bool &impSpecified,
|
|
enum WbemImpersonationLevelEnum *lpeImpersonLevel,
|
|
CSWbemPrivilegeSet &privilegeSet,
|
|
BSTR &bsAuthority);
|
|
|
|
// Used for parsing the locale setting.
|
|
static bool ParseLocale (
|
|
LPWSTR lpszInputString,
|
|
ULONG *pchEaten,
|
|
BSTR &bsLocale);
|
|
|
|
// Used to return security specification as a string
|
|
static wchar_t *GetSecurityString (
|
|
bool authnSpecified,
|
|
enum WbemAuthenticationLevelEnum authnLevel,
|
|
bool impSpecified,
|
|
enum WbemImpersonationLevelEnum impLevel,
|
|
CSWbemPrivilegeSet &privilegeSet,
|
|
BSTR &bsAuthority
|
|
);
|
|
|
|
// Used to return locale specification as a string
|
|
static wchar_t *GetLocaleString (
|
|
BSTR bsLocale
|
|
);
|
|
};
|
|
|
|
|
|
#endif //_PARSEDN_H_
|