windows-nt/Source/XPSP1/NT/net/tapi/skywalker/rend/rnduser.h
2020-09-26 16:20:57 +08:00

157 lines
3.2 KiB
C++

/*++
Copyright (c) 1997-1999 Microsoft Corporation
Module Name:
rnduser.h
Abstract:
Definitions for CUser class.
Author:
Mu Han (muhan) 12-5-1997
--*/
#ifndef __RNDUSER_H
#define __RNDUSER_H
#pragma once
#include "rnddo.h"
/////////////////////////////////////////////////////////////////////////////
// CUser
/////////////////////////////////////////////////////////////////////////////
const DWORD NUM_USER_ATTRIBUTES =
USER_ATTRIBUTES_END - USER_ATTRIBUTES_BEGIN - 1;
template <class T>
class ITDirectoryObjectUserVtbl : public ITDirectoryObjectUser
{
};
class CUser :
public CDirectoryObject,
public CComDualImpl<
ITDirectoryObjectUserVtbl<CUser>,
&IID_ITDirectoryObjectUser,
&LIBID_RENDLib
>
{
public:
BEGIN_COM_MAP(CUser)
COM_INTERFACE_ENTRY(ITDirectoryObjectUser)
COM_INTERFACE_ENTRY_CHAIN(CDirectoryObject)
END_COM_MAP()
//
// ITDirectoryObject overrides (not implemented by CDirectoryObject)
//
STDMETHOD (get_Name) (
OUT BSTR *pVal
);
STDMETHOD (put_Name) (
IN BSTR Val
);
STDMETHOD (get_DialableAddrs) (
IN long dwAddressTypes, //defined in tapi.h
OUT VARIANT * pVariant
);
STDMETHOD (EnumerateDialableAddrs) (
IN DWORD dwAddressTypes, //defined in tapi.h
OUT IEnumDialableAddrs ** pEnumDialableAddrs
);
STDMETHOD (GetTTL)(
OUT DWORD * pdwTTL
);
//
// ITDirectoryObjectPrivate overrides (not implemented by CDirectoryObject)
//
STDMETHOD (GetAttribute)(
IN OBJECT_ATTRIBUTE Attribute,
OUT BSTR * ppAttributeValue
);
STDMETHOD (SetAttribute)(
IN OBJECT_ATTRIBUTE Attribute,
IN BSTR pAttributeValue
);
//
// ITDirectoryObjectUser
//
STDMETHOD (get_IPPhonePrimary) (
OUT BSTR *ppName
);
STDMETHOD (put_IPPhonePrimary) (
IN BSTR newVal
);
//
// IDispatch methods
//
STDMETHOD(GetIDsOfNames)(REFIID riid,
LPOLESTR* rgszNames,
UINT cNames,
LCID lcid,
DISPID* rgdispid
);
STDMETHOD(Invoke)(DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS* pdispparams,
VARIANT* pvarResult,
EXCEPINFO* pexcepinfo,
UINT* puArgErr
);
public:
CUser()
{
m_Type = OT_USER;
}
HRESULT Init(BSTR bName);
virtual ~CUser() {}
protected:
HRESULT GetSingleValueBstr(
IN OBJECT_ATTRIBUTE Attribute,
OUT BSTR * AttributeValue
);
HRESULT SetSingleValue(
IN OBJECT_ATTRIBUTE Attribute,
IN WCHAR * AttributeValue
);
HRESULT SetDefaultSD();
protected:
CTstr m_Attributes[NUM_USER_ATTRIBUTES];
};
#endif