/*++ Copyright (C) 1996-2001 Microsoft Corporation Module Name: Abstract: History: --*/ #ifndef __MULTSEND_H__ #define __MULTSEND_H__ #include #include #include #include class CMsgMultiSendReceive : public CUnkBase { struct SenderNode { SenderNode* m_pNext; CWbemPtr m_pVal; BOOL m_bTermSender; }* m_pTail; // tail can move as we send. SenderNode* m_pPrimary; // always points to the first one added. CCritSec m_cs; public: CMsgMultiSendReceive( CLifeControl* pCtl ) : CUnkBase< IWmiMessageMultiSendReceive, &IID_IWmiMessageMultiSendReceive >(pCtl), m_pTail( NULL ), m_pPrimary( NULL ) { } ~CMsgMultiSendReceive(); STDMETHOD(Add)( DWORD dwFlags, IWmiMessageSendReceive* pSndRcv ); STDMETHOD(SendReceive)( PBYTE pData, ULONG cData, PBYTE pAuxData, ULONG cAuxData, DWORD dwFlagsStatus, IUnknown* pCtx ); }; #endif // __MULTSEND_H__