222 lines
5.0 KiB
C++
222 lines
5.0 KiB
C++
/*++
|
|
|
|
Copyright (C) 1996-2001 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ReqObjs.H
|
|
|
|
Abstract:
|
|
|
|
Implements the CRequest class and the classes derived from it. These classes are used
|
|
to encasulate a method so that the method can be executed asynchronously.
|
|
|
|
History:
|
|
|
|
davj 14-Mar-00 Created.
|
|
|
|
--*/
|
|
|
|
#ifndef __REQUEST_OBJECTS__H_
|
|
#define __REQUEST_OBJECTS__H_
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CLASS NAME:
|
|
//
|
|
// CRequest
|
|
//
|
|
// DESCRIPTION:
|
|
//
|
|
// Virtual base class for the actual requests. This holds data common to all
|
|
// requests.
|
|
//
|
|
//***************************************************************************
|
|
|
|
class CRequest
|
|
{
|
|
|
|
public:
|
|
CRequest(CDSCallResult * pCallRes, IWbemObjectSink * pResponseHandler, bool bAsync, IUmiContainer * pUmiContainer,
|
|
long lSecurityFlags = 0L);
|
|
virtual ~CRequest();
|
|
virtual HRESULT Execute();
|
|
IUmiContainer * m_pUmiContainer;
|
|
CDSCallResult * m_pCallRes;
|
|
IWbemObjectSink * m_pSink;
|
|
bool m_bAsync;
|
|
long m_lSecurityFlags;
|
|
|
|
};
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CLASS NAME:
|
|
//
|
|
// CDeleteObjectRequest
|
|
//
|
|
// DESCRIPTION:
|
|
//
|
|
// Deletes classes or instances
|
|
//
|
|
//***************************************************************************
|
|
|
|
class CDeleteObjectRequest : public CRequest
|
|
{
|
|
|
|
public:
|
|
IUmiURL *m_pPath;
|
|
long m_lFlags;
|
|
bool m_bClass;
|
|
CDeleteObjectRequest(IUmiURL *pURL,long lFlags, IWbemContext * pContext,
|
|
CDSCallResult * pCallRes, IWbemObjectSink * pResponseHandler,
|
|
bool bAsync, IUmiContainer * pUmiContainer, bool bClass);
|
|
|
|
|
|
~CDeleteObjectRequest();
|
|
HRESULT Execute();
|
|
};
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CLASS NAME:
|
|
//
|
|
// CGetObjectRequest
|
|
//
|
|
// DESCRIPTION:
|
|
//
|
|
// Implements "GetObject"
|
|
//
|
|
//***************************************************************************
|
|
|
|
class CGetObjectRequest : public CRequest
|
|
{
|
|
|
|
public:
|
|
IUmiURL *m_pPath;
|
|
long m_lFlags;
|
|
IWbemClassObject ** m_ppObject;
|
|
CGetObjectRequest(IUmiURL *pPathURL,long lFlags,IWbemClassObject ** ppObject,
|
|
CDSCallResult * pCallRes, IWbemObjectSink * pResponseHandler,
|
|
bool bAsync, IUmiContainer * pUmiContainer, long lSecurityFlags);
|
|
|
|
|
|
~CGetObjectRequest();
|
|
HRESULT Execute();
|
|
};
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CLASS NAME:
|
|
//
|
|
// COpenRequest
|
|
//
|
|
// DESCRIPTION:
|
|
//
|
|
// Implements OpenNamespace and Open
|
|
//
|
|
//***************************************************************************
|
|
|
|
class COpenRequest : public CRequest
|
|
{
|
|
|
|
public:
|
|
IUmiURL *m_pPath;
|
|
long m_lFlags;
|
|
IWbemServices** m_ppNewNamespace;
|
|
IWbemServicesEx **m_ppScope;
|
|
COpenRequest(IUmiURL *pPathURL,long lFlags,IWbemContext * pContext,
|
|
IWbemServices** ppNewNamespace, IWbemServicesEx **ppScope,
|
|
CDSCallResult * pCallRes, IWbemObjectSinkEx * pResponseHandler,
|
|
bool bAsync, IUmiContainer * pUmiContainer, long lSecurityFlags);
|
|
|
|
|
|
~COpenRequest();
|
|
HRESULT Execute();
|
|
};
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CLASS NAME:
|
|
//
|
|
// CPutObjectRequest
|
|
//
|
|
// DESCRIPTION:
|
|
//
|
|
// Implements PutInstance and PutClass
|
|
//
|
|
//***************************************************************************
|
|
|
|
class CPutObjectRequest : public CRequest
|
|
{
|
|
|
|
public:
|
|
long m_lFlags;
|
|
IWbemClassObject * m_pObject;
|
|
CPutObjectRequest(IWbemClassObject * pClass,long lFlags, IWbemContext * pContext,
|
|
CDSCallResult * pCallRes, IWbemObjectSink * pResponseHandler,
|
|
bool bAsync, IUmiContainer * pUmiContainer, long lSecurityFlags);
|
|
|
|
~CPutObjectRequest();
|
|
HRESULT Execute();
|
|
};
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CLASS NAME:
|
|
//
|
|
// CRefreshObjectRequest
|
|
//
|
|
// DESCRIPTION:
|
|
//
|
|
// Implements refresh
|
|
//
|
|
//***************************************************************************
|
|
|
|
class CRefreshObjectRequest : public CRequest
|
|
{
|
|
|
|
public:
|
|
long m_lFlags;
|
|
IWbemClassObject ** m_ppObject;
|
|
CRefreshObjectRequest(IWbemClassObject ** ppObject,long lFlags,
|
|
CDSCallResult * pCallRes, IWbemObjectSink * pResponseHandler,
|
|
bool bAsync, IUmiContainer * pUmiContainer);
|
|
|
|
|
|
~CRefreshObjectRequest();
|
|
HRESULT Execute();
|
|
};
|
|
|
|
//***************************************************************************
|
|
//
|
|
// CLASS NAME:
|
|
//
|
|
// CRenameObjectRequest
|
|
//
|
|
// DESCRIPTION:
|
|
//
|
|
// Implements Rename
|
|
//
|
|
//***************************************************************************
|
|
|
|
class CRenameObjectRequest : public CRequest
|
|
{
|
|
|
|
public:
|
|
long m_lFlags;
|
|
IUmiURL *m_pOldPath;
|
|
IUmiURL *m_pNewPath;
|
|
CRenameObjectRequest(IUmiURL *pURLOld, IUmiURL *pURLNew,long lFlags, IWbemContext * pContext,
|
|
CDSCallResult * pCallRes, IWbemObjectSink * pResponseHandler,
|
|
bool bAsync, IUmiContainer * pUmiContainer);
|
|
|
|
|
|
~CRenameObjectRequest();
|
|
HRESULT Execute();
|
|
};
|
|
|
|
|
|
|
|
#endif
|