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

322 lines
10 KiB
C++

/*++
Copyright (C) 1997-2001 Microsoft Corporation
Module Name:
HMMPPROX.CPP
Abstract:
Declares the CProxy subclasses for HMMP
History:
alanbos 06-Jan-97 Created.
--*/
#ifndef _HMMPPROX_H_
#define _HMMPPROX_H_
//***************************************************************************
//
// CLASS NAME:
//
// CResProxy_Hmmp
//
// DESCRIPTION:
//
// HMMP Proxy for the IWbemCallResult interface.
//
//***************************************************************************
class CResProxy_HMMP : public CResProxy
{
protected:
public:
CResProxy_Hmmp (CComLink * pComLink) :
CResProxy (pComLink, 0) {}
/* IWbemCallResult methods */
HRESULT STDMETHODCALLTYPE GetResultObject(
/* [in] */ long lTimeout,
/* [out] */ IWbemClassObject __RPC_FAR *__RPC_FAR *ppStatusObject);
HRESULT STDMETHODCALLTYPE GetResultString(
/* [in] */ long lTimeout,
/* [out] */ BSTR __RPC_FAR *pstrResultString);
HRESULT STDMETHODCALLTYPE GetCallStatus(
/* [in] */ long lTimeout,
/* [out] */ long __RPC_FAR *plStatus);
HRESULT STDMETHODCALLTYPE GetResultServices(
/* [in] */ long lTimeout,
/* [out] */ IWbemServices __RPC_FAR *__RPC_FAR *ppServices);
};
//***************************************************************************
//
// CLASS NAME:
//
// CEnumProxy_Hmmp
//
// DESCRIPTION:
//
// HMMP Proxy for the IEnumWbemClassObject interface.
//
//***************************************************************************
class CEnumProxy_Hmmp : public CEnumProxy
{
protected:
public:
CEnumProxy_Hmmp (CComLink * pComLink):
CEnumProxy (pComLink, 0) {}
// IEnumWbemClassObject
STDMETHODIMP Reset();
STDMETHODIMP Next(long lTimeout, ULONG uCount, IWbemClassObject FAR* FAR* pProp,
ULONG FAR* turned);
STDMETHODIMP NextAsync(unsigned long uCount, IWbemObjectSink __RPC_FAR *pSink);
STDMETHODIMP Clone(IEnumWbemClassObject FAR* FAR* pEnum);
STDMETHODIMP Skip(long lTimeout, ULONG nNum);
};
//***************************************************************************
//
// CLASS NAME:
//
// CProvProxy_Hmmp
//
// DESCRIPTION:
//
// HMMP Proxy for the IWbemServices interface.
//
//***************************************************************************
class CProvProxy_Hmmp : public CProvProxy
{
protected:
BSTR namespaceRef;
public:
CProvProxy_Hmmp (CComLink *pComLink) :
CProvProxy (pComLink, 0) {}
// Proxy Factory Methods
CProvProxy* GetProvProxy (DWORD dwAddr);
CEnumProxy* GetEnumProxy (DWORD dwAddr);
CResProxy* GetResProxy (DWORD dwAddr);
CObjectSinkProxy* GetSinkProxy (DWORD dwAddr);
/* IWbemServices methods */
/* [id] */ HRESULT STDMETHODCALLTYPE OpenNamespace(
/* [in] */ const BSTR Namespace,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [out] */ IWbemServices __RPC_FAR *__RPC_FAR *ppWorkingNamespace,
/* [out] */ IWbemCallResult __RPC_FAR *__RPC_FAR *ppResult);
/* [id] */ HRESULT STDMETHODCALLTYPE CancelAsyncCall(
/* [in] */ IWbemObjectSink __RPC_FAR *pSink);
/* [id] */ HRESULT STDMETHODCALLTYPE QueryObjectSink(
/* [in] */ long lFlags,
/* [out] */ IWbemObjectSink __RPC_FAR *__RPC_FAR *ppResponseHandler);
/* [id] */ HRESULT STDMETHODCALLTYPE GetObject(
/* [in] */ const BSTR ObjectPath,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [out] */ IWbemClassObject __RPC_FAR *__RPC_FAR *ppObject,
/* [out] */ IWbemCallResult __RPC_FAR *__RPC_FAR *ppCallResult);
/* [id] */ HRESULT STDMETHODCALLTYPE GetObjectAsync(
/* [in] */ const BSTR ObjectPath,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [in] */ IWbemObjectSink __RPC_FAR *pResponseHandler);
/* [id] */ HRESULT STDMETHODCALLTYPE PutClass(
/* [in] */ IWbemClassObject __RPC_FAR *pObject,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [out] */ IWbemCallResult __RPC_FAR *__RPC_FAR *ppCallResult);
/* [id] */ HRESULT STDMETHODCALLTYPE PutClassAsync(
/* [in] */ IWbemClassObject __RPC_FAR *pObject,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [in] */ IWbemObjectSink __RPC_FAR *pResponseHandler);
/* [id] */ HRESULT STDMETHODCALLTYPE DeleteClass(
/* [in] */ const BSTR Class,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [out] */ IWbemCallResult __RPC_FAR *__RPC_FAR *ppCallResult);
/* [id] */ HRESULT STDMETHODCALLTYPE DeleteClassAsync(
/* [in] */ const BSTR Class,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [in] */ IWbemObjectSink __RPC_FAR *pResponseHandler);
/* [id] */ HRESULT STDMETHODCALLTYPE CreateClassEnum(
/* [in] */ const BSTR Superclass,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [out] */ IEnumWbemClassObject __RPC_FAR *__RPC_FAR *ppEnum);
/* [id] */ HRESULT STDMETHODCALLTYPE CreateClassEnumAsync(
/* [in] */ const BSTR Superclass,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [in] */ IWbemObjectSink __RPC_FAR *pResponseHandler);
/* [id] */ HRESULT STDMETHODCALLTYPE PutInstance(
/* [in] */ IWbemClassObject __RPC_FAR *pInst,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [out] */ IWbemCallResult __RPC_FAR *__RPC_FAR *ppCallResult);
/* [id] */ HRESULT STDMETHODCALLTYPE PutInstanceAsync(
/* [in] */ IWbemClassObject __RPC_FAR *pInst,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [in] */ IWbemObjectSink __RPC_FAR *pResponseHandler);
/* [id] */ HRESULT STDMETHODCALLTYPE DeleteInstance(
/* [in] */ const BSTR ObjectPath,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [out] */ IWbemCallResult __RPC_FAR *__RPC_FAR *ppCallResult);
/* [id] */ HRESULT STDMETHODCALLTYPE DeleteInstanceAsync(
/* [in] */ const BSTR ObjectPath,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [in] */ IWbemObjectSink __RPC_FAR *pResponseHandler);
/* [id] */ HRESULT STDMETHODCALLTYPE CreateInstanceEnum(
/* [in] */ const BSTR Class,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [out] */ IEnumWbemClassObject __RPC_FAR *__RPC_FAR *ppEnum);
/* [id] */ HRESULT STDMETHODCALLTYPE CreateInstanceEnumAsync(
/* [in] */ const BSTR Class,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [in] */ IWbemObjectSink __RPC_FAR *pResponseHandler);
/* [id] */ HRESULT STDMETHODCALLTYPE ExecQuery(
/* [in] */ const BSTR QueryLanguage,
/* [in] */ const BSTR Query,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [out] */ IEnumWbemClassObject __RPC_FAR *__RPC_FAR *ppEnum);
/* [id] */ HRESULT STDMETHODCALLTYPE ExecQueryAsync(
/* [in] */ const BSTR QueryLanguage,
/* [in] */ const BSTR Query,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [in] */ IWbemObjectSink __RPC_FAR *pResponseHandler);
/* [id] */ HRESULT STDMETHODCALLTYPE ExecNotificationQuery(
/* [in] */ const BSTR QueryLanguage,
/* [in] */ const BSTR Query,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [out] */ IEnumWbemClassObject __RPC_FAR *__RPC_FAR *ppEnum);
/* [id] */ HRESULT STDMETHODCALLTYPE ExecNotificationQueryAsync(
/* [in] */ const BSTR QueryLanguage,
/* [in] */ const BSTR Query,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [in] */ IWbemObjectSink __RPC_FAR *pResponseHandler);
/* [id] */ HRESULT STDMETHODCALLTYPE ExecMethod(
/* [in] */ const BSTR ObjectPath,
/* [in] */ const BSTR MethodName,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [in] */ IWbemClassObject __RPC_FAR *pInParams,
/* [unique][in][out] */ IWbemClassObject __RPC_FAR *__RPC_FAR *ppOutParams,
/* [unique][in][out] */ IWbemCallResult __RPC_FAR *__RPC_FAR *ppCallResult);
/* [id] */ HRESULT STDMETHODCALLTYPE ExecMethodAsync(
/* [in] */ const BSTR ObjectPath,
/* [in] */ const BSTR MethodName,
/* [in] */ long lFlags,
/* [in] */ IWbemContext __RPC_FAR *pCtx,
/* [in] */ IWbemClassObject __RPC_FAR *pInParams,
/* [in] */ IWbemObjectSink __RPC_FAR *pResponseHandler);
};
//***************************************************************************
//
// CLASS NAME:
//
// CLoginProxy_Hmmp
//
// DESCRIPTION:
//
// HMMP Proxy for the IWbemLevel1Login interface. Always overridden.
//
//***************************************************************************
class CLoginProxy_Hmmp : public CLoginProxy
{
protected:
public:
CLoginProxy_Hmmp (CComLink * pComLink) :
CLoginProxy (pComLink, 0) {}
// Proxy factory methods
CProvProxy* GetProvProxy (DWORD dwAddr);
// IWbemLevel1Login
STDMETHODIMP RequestChallenge(
LPWSTR pNetworkResource,
LPWSTR pUser,
WBEM_128BITS Nonce,
DWORD dwProcessID,
DWORD * pAuthEventHandle);
STDMETHODIMP SspiPreLogin(
LPWSTR pNetworkResource,
LPSTR pszSSPIPkg,
long lFlags,
long lBufSize,
byte __RPC_FAR *pInToken,
long lOutBufSize,
long __RPC_FAR *plOutBufBytes,
byte __RPC_FAR *pOutToken,
DWORD dwProcessId,
DWORD __RPC_FAR *pAuthEventHandle);
STDMETHODIMP Login(
LPWSTR pNetworkResource,
LPWSTR TokenType,
LPWSTR pPreferredLocale,
WBEM_128BITS AccessToken,
IN LONG lFlags,
IWbemContext *pCtx,
IN OUT IWbemServices **ppNamespace);
STDMETHODIMP InvalidateAccessToken(
/* [unique][in] */ WBEM_128BITS AccessToken,
/* [in] */ long lFlags);
};
#endif // !_HMMPPROX_H_