Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

160 lines
3.5 KiB

//=================================================================
//
// 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<CInstance> &lefts
);
virtual HRESULT ValidateRightObjectPaths(
MethodContext *pMethodContext,
const CHStringArray &sPaths,
TRefPointerCollection<CInstance> &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<CInstance> &lefts
);
virtual HRESULT GetRightInstances(
MethodContext *pMethodContext,
TRefPointerCollection<CInstance> *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
);
};
*/