2025-04-27 07:49:33 -04:00

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