183 lines
3.8 KiB
C++
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__
|