Source code of Windows XP (NT5)
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.2 KiB

  1. /*++
  2. Copyright (C) 1996-2001 Microsoft Corporation
  3. Module Name:
  4. Abstract:
  5. History:
  6. --*/
  7. #ifndef __MULTSEND_H__
  8. #define __MULTSEND_H__
  9. #include <sync.h>
  10. #include <unk.h>
  11. #include <comutl.h>
  12. #include <wmimsg.h>
  13. class CMsgMultiSendReceive
  14. : public CUnkBase<IWmiMessageMultiSendReceive,&IID_IWmiMessageMultiSendReceive>
  15. {
  16. struct SenderNode
  17. {
  18. SenderNode* m_pNext;
  19. CWbemPtr<IWmiMessageSendReceive> m_pVal;
  20. BOOL m_bTermSender;
  21. }* m_pTail; // tail can move as we send.
  22. SenderNode* m_pPrimary; // always points to the first one added.
  23. CCritSec m_cs;
  24. public:
  25. CMsgMultiSendReceive( CLifeControl* pCtl )
  26. : CUnkBase< IWmiMessageMultiSendReceive,
  27. &IID_IWmiMessageMultiSendReceive >(pCtl),
  28. m_pTail( NULL ), m_pPrimary( NULL )
  29. {
  30. }
  31. ~CMsgMultiSendReceive();
  32. STDMETHOD(Add)( DWORD dwFlags,
  33. IWmiMessageSendReceive* pSndRcv );
  34. STDMETHOD(SendReceive)( PBYTE pData,
  35. ULONG cData,
  36. PBYTE pAuxData,
  37. ULONG cAuxData,
  38. DWORD dwFlagsStatus,
  39. IUnknown* pCtx );
  40. };
  41. #endif // __MULTSEND_H__