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

92 lines
5.0 KiB
C++

/*
******************************************************************************
******************************************************************************
*
*
* INTEL CORPORATION PROPRIETARY INFORMATION
* This software is supplied under the terms of a license agreement or
* nondisclosure agreement with Intel Corporation and may not be copied or
* disclosed except in accordance with the terms of that agreement.
*
* Copyright (c) 1997, 1998 Intel Corporation All Rights Reserved
******************************************************************************
******************************************************************************
*
*
*
*
*
*/
#if !defined(__SERVICES_H__)
#define __SERVICES_H__
LPWSTR GetObjectPathFromMachinePath(LPWSTR pString);
// Provider interfaces are provided by objects of this class
class CServices : public IWbemServices , public IWbemProviderInit
{
private:
CString m_cszNamespace;
protected:
LONG m_cRef; //Object reference count
IWbemServices* m_pGateway;
public:
CServices(BSTR ObjectPath = NULL);
~CServices(void);
//Non-delegated IUnknown Methods
STDMETHODIMP QueryInterface(REFIID, void**);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
//Implmented IWbemServices Methods
STDMETHOD (CreateClassEnumAsync)(THIS_ BSTR Superclass, long lFlags, IWbemContext*, IWbemObjectSink FAR*);
STDMETHOD (GetObjectAsync)(THIS_ BSTR ObjectPath, long lFlags, IWbemContext *pCtx, IWbemObjectSink FAR* pSink);
STDMETHOD (CreateInstanceEnumAsync)(THIS_ BSTR Class, long lFlags, IWbemContext*, IWbemObjectSink FAR* pSink);
STDMETHOD (OpenNamespace)(THIS_ BSTR Namespace, long lFlags, IWbemContext *pCtx, IWbemServices FAR* FAR* ppNewContext, IWbemCallResult FAR* FAR* ppErrorObject);
STDMETHOD (DeleteClassAsync)(THIS_ BSTR Class, long lFlags, IWbemContext *pCtx, IWbemObjectSink FAR* pSink);
STDMETHOD (DeleteInstanceAsync)(THIS_ BSTR ObjectPath, long lFlags, IWbemContext*, IWbemObjectSink FAR* pSink);
STDMETHOD (ExecMethodAsync)(THIS_ BSTR, BSTR, long, IWbemContext*, IWbemClassObject*, IWbemObjectSink*);
STDMETHOD (PutInstanceAsync)(THIS_ IWbemClassObject FAR*, long, IWbemContext*, IWbemObjectSink FAR*);
//Unimplmented IWbemServices Methods
STDMETHOD (CancelAsyncCall)(IWbemObjectSink *pSink) {return WBEM_E_NOT_SUPPORTED;}
STDMETHOD (QueryObjectSink)(long lFlags, IWbemObjectSink **ppResponseHandler) {return WBEM_E_NOT_SUPPORTED;}
STDMETHOD (GetObject)(THIS_ BSTR ObjectPath, long lFlags, IWbemContext* pCtx, IWbemClassObject **ppObject, IWbemCallResult **) {return WBEM_E_NOT_SUPPORTED;}
STDMETHOD (CreateInstanceEnum)(THIS_ BSTR Class, long lFlags, IWbemContext*, IEnumWbemClassObject FAR* FAR* ppEnum) {return WBEM_E_NOT_SUPPORTED;}
STDMETHOD (QueryObjectSink)(THIS_ IWbemObjectSink FAR* FAR* ppSink, IWbemClassObject FAR* FAR* ppErrorObject) {return WBEM_E_NOT_SUPPORTED;}
STDMETHOD (PutClass)(THIS_ IWbemClassObject FAR* pObject, long lFlags, IWbemContext *pCtx, IWbemCallResult **ppCallResult) {return WBEM_E_NOT_SUPPORTED;}
STDMETHOD (DeleteClass)(THIS_ BSTR Class, long lFlags, IWbemContext *pCtx, IWbemCallResult **ppCallResult) {return WBEM_E_NOT_SUPPORTED;}
STDMETHOD (CreateClassEnum)(THIS_ BSTR Superclass, long lFlags, IWbemContext *pCtx, IEnumWbemClassObject FAR* FAR* ppEnum) {return WBEM_E_NOT_SUPPORTED;}
STDMETHOD (PutInstance)(THIS_ IWbemClassObject FAR* pInst, long lFlags, IWbemContext *pCtx, IWbemCallResult **ppCallResult) {return WBEM_E_NOT_SUPPORTED;}
STDMETHOD (DeleteInstance)(THIS_ BSTR ObjectPath, long lFlags, IWbemContext*, IWbemCallResult **) {return WBEM_E_NOT_SUPPORTED;}
STDMETHOD (ExecQuery)(THIS_ BSTR QueryLanguage, BSTR Query, long lFlags, IWbemContext*, IEnumWbemClassObject FAR* FAR* ppEnum) {return WBEM_E_NOT_SUPPORTED;}
STDMETHOD (ExecQueryAsync)(THIS_ BSTR, BSTR, long, IWbemContext*, IWbemObjectSink FAR* ) {return WBEM_E_NOT_SUPPORTED;}
STDMETHOD (ExecNotificationQueryAsync)(THIS_ BSTR, BSTR, long, IWbemContext*, IWbemObjectSink * ) {return WBEM_E_NOT_SUPPORTED;}
STDMETHOD (ExecNotificationQuery)(THIS_ BSTR, BSTR, long, IWbemContext*, IEnumWbemClassObject ** ) {return WBEM_E_NOT_SUPPORTED;}
STDMETHOD (ExecMethod)(THIS_ BSTR, BSTR, long, IWbemContext*, IWbemClassObject*, IWbemClassObject **, IWbemCallResult**) {return WBEM_E_NOT_SUPPORTED;}
STDMETHOD (PutClassAsync)(THIS_ IWbemClassObject FAR* , long , IWbemContext *, IWbemObjectSink FAR* ) {return WBEM_E_NOT_SUPPORTED;}
/* IWbemProviderInit methods */
HRESULT STDMETHODCALLTYPE Initialize (
/* [in] */ LPWSTR pszUser,
/* [in] */ LONG lFlags,
/* [in] */ LPWSTR pszNamespace,
/* [in] */ LPWSTR pszLocale,
/* [in] */ IWbemServices *pCIMOM, // For anybody
/* [in] */ IWbemContext *pCtx,
/* [in] */ IWbemProviderInitSink *pInitSink // For init signals
);
CWbemLoopBack m_Wbem;
};
#endif // __SERVICES_H__