windows-nt/Source/XPSP1/NT/ds/adsi/winnt/cumiprop.hxx
2020-09-26 16:20:57 +08:00

183 lines
3.8 KiB
C++

//----------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 2000.
//
// File: cumiprop.hxx
//
// Contents: Header for the property list implementation for UMI.
//
// History: 02-28-00 SivaramR Created.
//
//----------------------------------------------------------------------------
#ifndef __CUMIPROP_H__
#define __CUMIPROP_H__
class CUmiPropList : INHERIT_TRACKING,
public IUmiPropList
{
public:
CUmiPropList(PPROPERTYINFO pSchema, DWORD dwSchemaSize);
~CUmiPropList(void);
DECLARE_STD_REFCOUNTING
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppInterface) ;
HRESULT FInit(CPropertyCache *pPropCache, LPWSTR *ppszUnImpl);
STDMETHODIMP Put(
LPCWSTR pszName,
ULONG uFlags,
UMI_PROPERTY_VALUES *pProp
);
STDMETHODIMP Get(
LPCWSTR pszName,
ULONG uFlags,
UMI_PROPERTY_VALUES **ppProp
);
STDMETHODIMP GetAs(
LPCWSTR pszName,
ULONG uFlags,
ULONG uCoercionType,
UMI_PROPERTY_VALUES **ppProp
);
STDMETHODIMP FreeMemory(
ULONG uReserved,
LPVOID pMem
);
STDMETHODIMP GetAt(
LPCWSTR pszName,
ULONG uFlags,
ULONG uBufferLength,
LPVOID pExistingMem
);
STDMETHODIMP GetProps(
LPCWSTR *pszNames,
ULONG uNameCount,
ULONG uFlags,
UMI_PROPERTY_VALUES **pProps
);
STDMETHODIMP PutProps(
LPCWSTR *pszNames,
ULONG uNameCount,
ULONG uFlags,
UMI_PROPERTY_VALUES *pProps
);
STDMETHODIMP PutFrom(
LPCWSTR pszName,
ULONG uFlags,
ULONG uBufferLength,
LPVOID pExistingMem
);
STDMETHODIMP Delete(
LPCWSTR pszName,
ULONG uFlags
);
HRESULT GetLastStatus(
ULONG uFlags,
ULONG *puSpecificStatus,
REFIID riid,
LPVOID *pStatusObj
);
HRESULT SetStandardProperties(
IADs *pIADs,
CCoreADsObject *pCoreObj
);
void SetClassInfo(
CLASSINFO *pClassInfo
);
HRESULT GetHelper(
LPCWSTR pszName,
ULONG uFlags,
UMI_PROPERTY_VALUES **ppProp,
UMI_TYPE UmiDstType,
BOOL fInternal,
BOOL fIsGetAs = FALSE
);
void DisableWrites(void);
HRESULT SetDefaultConnProps(void);
HRESULT SetPropertyCount(DWORD dwPropCount);
private:
HRESULT ValidatePutArgs(
LPCWSTR pszName,
ULONG uFlags,
UMI_PROPERTY_VALUES *pProp
);
HRESULT ValidateGetArgs(
LPCWSTR pszName,
ULONG uFlags,
UMI_PROPERTY_VALUES **ppProp
);
HRESULT GetInterfacePropNames(
UMI_PROPERTY_VALUES **pProps
);
HRESULT GetObjectPropNames(
UMI_PROPERTY_VALUES **pProps
);
void SetLastStatus(ULONG ulStatus);
BOOL IsSchemaObject(
BSTR bstrClass
);
HRESULT GetSchemaObject(
LPWSTR pszName,
UMI_PROPERTY_VALUES **ppProp
);
HRESULT GetClassInfo(
UMI_PROPERTY_VALUES **pProps
);
BOOL IsNamespaceObj(
BSTR bstrClass
);
BOOL IsClassObj(
BSTR bstrClass
);
HRESULT GetPropertyOrigin(
LPCWSTR pszName,
UMI_PROPERTY_VALUES **ppProp
);
PPROPERTYINFO m_pSchema;
DWORD m_dwSchemaSize;
CPropertyCache FAR *m_pPropCache;
BOOL m_fIsIntfPropObj;
ULONG m_ulErrorStatus;
LPWSTR m_pszSchema;
CLASSINFO *m_pClassInfo;
BOOL m_fIsNamespaceObj;
BOOL m_fIsClassObj;
BOOL m_fDisableWrites;
LPWSTR *m_ppszUnImpl;
};
#endif // __CUMIPROP_H__