178 lines
5.4 KiB
C++
178 lines
5.4 KiB
C++
/*++
|
||
|
||
Copyright (C) 1996-2001 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
DSUMICONT.H
|
||
|
||
Abstract:
|
||
|
||
Defines the CDsUmiWrapCallResult class which hides some implementation
|
||
specific detains of the DS teams implementation of the UMI
|
||
|
||
History:
|
||
|
||
--*/
|
||
|
||
#ifndef __DSUMICONT_RESULT__H_
|
||
#define __DSUMICONT_RESULT__H_
|
||
|
||
class CDsUmiContainer : public IUmiContainer, public _IUmiDsWrapper
|
||
{
|
||
protected:
|
||
long m_lRef;
|
||
IUmiContainer *m_pUmiContainer;
|
||
IUmiContainer *m_pUmiClassContainer;
|
||
IUmiConnection *m_pIUmiConn;
|
||
public:
|
||
|
||
// IUnknown
|
||
|
||
STDMETHOD_(ULONG, AddRef)() {return InterlockedIncrement(&m_lRef);}
|
||
STDMETHOD_(ULONG, Release)()
|
||
{
|
||
long lRef = InterlockedDecrement(&m_lRef);
|
||
if(lRef == 0)
|
||
delete this;
|
||
return lRef;
|
||
}
|
||
STDMETHOD(QueryInterface)(REFIID riid, void** ppv);
|
||
|
||
// IUmiPropList
|
||
|
||
HRESULT STDMETHODCALLTYPE Put(
|
||
/* [in] */ LPCWSTR pszName,
|
||
/* [in] */ ULONG uFlags,
|
||
/* [in] */ UMI_PROPERTY_VALUES __RPC_FAR *pProp);
|
||
|
||
HRESULT STDMETHODCALLTYPE Get(
|
||
/* [in] */ LPCWSTR pszName,
|
||
/* [in] */ ULONG uFlags,
|
||
/* [out] */ UMI_PROPERTY_VALUES __RPC_FAR *__RPC_FAR *pProp);
|
||
|
||
HRESULT STDMETHODCALLTYPE GetAt(
|
||
/* [in] */ LPCWSTR pszName,
|
||
/* [in] */ ULONG uFlags,
|
||
/* [in] */ ULONG uBufferLength,
|
||
/* [out] */ LPVOID pExistingMem);
|
||
|
||
HRESULT STDMETHODCALLTYPE GetAs(
|
||
/* [in] */ LPCWSTR pszName,
|
||
/* [in] */ ULONG uFlags,
|
||
/* [in] */ ULONG uCoercionType,
|
||
/* [out] */ UMI_PROPERTY_VALUES __RPC_FAR *__RPC_FAR *pProp);
|
||
|
||
HRESULT STDMETHODCALLTYPE FreeMemory(
|
||
ULONG uReserved,
|
||
LPVOID pMem);
|
||
|
||
HRESULT STDMETHODCALLTYPE Delete(
|
||
/* [in] */ LPCWSTR pszName,
|
||
/* [in] */ ULONG uFlags);
|
||
|
||
HRESULT STDMETHODCALLTYPE GetProps(
|
||
/* [in] */ LPCWSTR __RPC_FAR *pszNames,
|
||
/* [in] */ ULONG uNameCount,
|
||
/* [in] */ ULONG uFlags,
|
||
/* [out] */ UMI_PROPERTY_VALUES __RPC_FAR *__RPC_FAR *pProps);
|
||
|
||
HRESULT STDMETHODCALLTYPE PutProps(
|
||
/* [in] */ LPCWSTR __RPC_FAR *pszNames,
|
||
/* [in] */ ULONG uNameCount,
|
||
/* [in] */ ULONG uFlags,
|
||
/* [in] */ UMI_PROPERTY_VALUES __RPC_FAR *pProps);
|
||
|
||
HRESULT STDMETHODCALLTYPE PutFrom(
|
||
/* [in] */ LPCWSTR pszName,
|
||
/* [in] */ ULONG uFlags,
|
||
/* [in] */ ULONG uBufferLength,
|
||
/* [in] */ LPVOID pExistingMem);
|
||
|
||
// IUmiBaseObject
|
||
|
||
HRESULT STDMETHODCALLTYPE GetLastStatus(
|
||
/* [in] */ ULONG uFlags,
|
||
/* [out] */ ULONG __RPC_FAR *puSpecificStatus,
|
||
/* [in] */ REFIID riid,
|
||
/* [iid_is][out] */ LPVOID __RPC_FAR *pStatusObj);
|
||
|
||
HRESULT STDMETHODCALLTYPE GetInterfacePropList(
|
||
/* [in] */ ULONG uFlags,
|
||
/* [out] */ IUmiPropList __RPC_FAR *__RPC_FAR *pPropList);
|
||
|
||
|
||
|
||
// IUmiObject
|
||
|
||
HRESULT STDMETHODCALLTYPE Clone(
|
||
/* [in] */ ULONG uFlags,
|
||
/* [in] */ REFIID riid,
|
||
/* [iid_is][out] */ LPVOID __RPC_FAR *pCopy);
|
||
|
||
HRESULT STDMETHODCALLTYPE Refresh(
|
||
/* [in] */ ULONG uFlags,
|
||
/* [in] */ ULONG uNameCount,
|
||
/* [in] */ LPWSTR __RPC_FAR *pszNames);
|
||
|
||
HRESULT STDMETHODCALLTYPE CopyTo(
|
||
/* [in] */ ULONG uFlags,
|
||
/* [in] */ IUmiURL *pURL,
|
||
/* [in] */ REFIID riid,
|
||
/* [out, iid_is(riid)] */ LPVOID *pCopy);
|
||
|
||
HRESULT STDMETHODCALLTYPE Commit(
|
||
/* [in] */ ULONG uFlags);
|
||
|
||
// IUmiContainer
|
||
|
||
HRESULT STDMETHODCALLTYPE Open(
|
||
/* [in] */ IUmiURL __RPC_FAR *pURL,
|
||
/* [in] */ ULONG uFlags,
|
||
/* [in] */ REFIID TargetIID,
|
||
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvRes);
|
||
|
||
HRESULT STDMETHODCALLTYPE PutObject(
|
||
/* [in] */ ULONG uFlags,
|
||
/* [in] */ REFIID TargetIID,
|
||
/* [iid_is][out][in] */ void __RPC_FAR *pObj);
|
||
|
||
HRESULT STDMETHODCALLTYPE DeleteObject(
|
||
/* [in] */ IUmiURL __RPC_FAR *pURL,
|
||
/* [optional][in] */ ULONG uFlags);
|
||
|
||
HRESULT STDMETHODCALLTYPE Create(
|
||
/* [in] */ IUmiURL __RPC_FAR *pURL,
|
||
/* [in] */ ULONG uFlags,
|
||
/* [out] */ IUmiObject __RPC_FAR *__RPC_FAR *pNewObj);
|
||
|
||
HRESULT STDMETHODCALLTYPE Move(
|
||
/* [in] */ ULONG uFlags,
|
||
/* [in] */ IUmiURL __RPC_FAR *pOldURL,
|
||
/* [in] */ IUmiURL __RPC_FAR *pNewURL);
|
||
|
||
HRESULT STDMETHODCALLTYPE CreateEnum(
|
||
/* [in] */ IUmiURL __RPC_FAR *pszEnumContext,
|
||
/* [in] */ ULONG uFlags,
|
||
/* [in] */ REFIID TargetIID,
|
||
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvEnum);
|
||
|
||
HRESULT STDMETHODCALLTYPE ExecQuery(
|
||
/* [in] */ IUmiQuery __RPC_FAR *pQuery,
|
||
/* [in] */ ULONG uFlags,
|
||
/* [in] */ REFIID TargetIID,
|
||
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppResult);
|
||
|
||
STDMETHOD(GetRealContainer)( IUnknown** pUnk );
|
||
|
||
|
||
public:
|
||
CDsUmiContainer();
|
||
~CDsUmiContainer();
|
||
HRESULT SetInterface(IUmiContainer * pUmiContainer, IUmiURL * pPath, IUmiConnection *pIUmiConn);
|
||
};
|
||
|
||
|
||
|
||
#endif
|
||
|