//---------------------------------------------------------------------------- // // 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__