WindowsXP-SP1/admin/wmi/wbem/scripting/parsedn.h
2020-09-30 16:53:49 +02:00

119 lines
3.3 KiB
C++

//***************************************************************************
//
// 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_