//================================================================= // // assoc.h -- Generic association class // // Copyright 1999 Microsoft Corporation // //================================================================= class CAssociation : public Provider { public: CAssociation( LPCWSTR pwszClassName, LPCWSTR pwszNamespaceName, LPCWSTR pwszLeftClassName, LPCWSTR pwszRightClassName, LPCWSTR pwszLeftPropertyName, LPCWSTR pwszRightPropertyName ); ~CAssociation(); HRESULT ExecQuery( MethodContext* pMethodContext, CFrameworkQuery &pQuery, long lFlags ); HRESULT GetObject( CInstance* pInstance, long lFlags, CFrameworkQuery &pQuery ); HRESULT EnumerateInstances( MethodContext *pMethodContext, long lFlags /*= 0L*/ ); protected: bool IsInstance(const CInstance *pInstance); static HRESULT WINAPI StaticEnumerationCallback( Provider* pThat, CInstance* pInstance, MethodContext* pContext, void* pUserData ); virtual HRESULT RetrieveLeftInstance( LPCWSTR lpwszObjPath, CInstance **ppInstance, MethodContext *pMethodContext ); virtual HRESULT RetrieveRightInstance( LPCWSTR lpwszObjPath, CInstance **ppInstance, MethodContext *pMethodContext ); virtual HRESULT EnumerationCallback( CInstance *pRight, MethodContext *pMethodContext, void *pUserData ); virtual HRESULT ValidateLeftObjectPaths( MethodContext *pMethodContext, const CHStringArray &sPaths, TRefPointerCollection &lefts ); virtual HRESULT ValidateRightObjectPaths( MethodContext *pMethodContext, const CHStringArray &sPaths, TRefPointerCollection &lefts ); virtual BOOL AreRelated( const CInstance *pLeft, const CInstance *pRight ) { return IsInstance(pLeft) && IsInstance(pRight); } virtual HRESULT LoadPropertyValues( CInstance *pInstance, const CInstance *pLeft, const CInstance *pRight ) { return WBEM_S_NO_ERROR; } virtual HRESULT GetLeftInstances( MethodContext *pMethodContext, TRefPointerCollection &lefts ); virtual HRESULT GetRightInstances( MethodContext *pMethodContext, TRefPointerCollection *lefts ); LPCWSTR m_pwszLeftClassName; LPCWSTR m_pwszRightClassName; LPCWSTR m_pwszLeftPropertyName; LPCWSTR m_pwszRightPropertyName; }; /* class CAssocSystemToOS : public CAssociation { public: CAssocSystemToOS( LPCWSTR pwszClassName, LPCWSTR pwszNamespaceName, LPCWSTR pwszLeftClassName, LPCWSTR pwszRightClassName, LPCWSTR pwszLeftPropertyName, LPCWSTR pwszRightPropertyName ); ~CAssocSystemToOS(); protected: HRESULT LoadPropertyValues( CInstance *pInstance, const CInstance *pLeft, const CInstance *pRight ); }; */