Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.9 KiB

  1. #ifndef __FCONSINK_H__
  2. #define __FCONSINK_H__
  3. #include <comutl.h>
  4. #include <unk.h>
  5. #include <wmimsg.h>
  6. #include <wstring.h>
  7. #include "fconnspc.h"
  8. /*************************************************************************
  9. CFwdConsSink
  10. **************************************************************************/
  11. class CFwdConsSink
  12. : public CUnkBase< IWbemUnboundObjectSink, &IID_IWbemUnboundObjectSink >
  13. {
  14. CFwdConsNamespace* m_pNamespace;
  15. CWbemPtr<IWmiMessageMultiSendReceive> m_pMultiSend;
  16. WString m_wsName;
  17. DWORD m_dwFlags;
  18. ULONG m_ulLastDataSize;
  19. ULONG m_cTargetSD;
  20. PSECURITY_DESCRIPTOR m_pTargetSD;
  21. DWORD m_dwCurrentMrshFlags;
  22. DWORD m_dwDisconnectedMrshFlags;
  23. CWbemPtr<IWmiObjectMarshal> m_pMrsh;
  24. protected:
  25. CFwdConsSink( CLifeControl* pCtl ) :
  26. CUnkBase<IWbemUnboundObjectSink, &IID_IWbemUnboundObjectSink>(pCtl),
  27. m_ulLastDataSize(0), m_pTargetSD(NULL), m_cTargetSD(0) { }
  28. ~CFwdConsSink();
  29. HRESULT Initialize( CFwdConsNamespace* pNspc, IWbemClassObject* pCons );
  30. HRESULT IndicateSome( IWbemClassObject* pLogicalConsumer,
  31. long cObjs,
  32. IWbemClassObject** ppObjs,
  33. long* pcProcessed );
  34. public:
  35. STDMETHOD(IndicateToConsumer)( IWbemClassObject* pLogicalConsumer,
  36. long cObjs,
  37. IWbemClassObject** ppObjs );
  38. HRESULT Notify( HRESULT hRes,
  39. GUID guidSource,
  40. LPCWSTR wszTrace,
  41. IUnknown* pContext );
  42. static HRESULT Create( CLifeControl* pCtl,
  43. CFwdConsNamespace* pNspc,
  44. IWbemClassObject* pCons,
  45. IWbemUnboundObjectSink** ppSink );
  46. };
  47. #endif // __FCONSINK_H__