windows-nt/Source/XPSP1/NT/admin/wmi/wbem/winmgmt/msg/multsend.h
2020-09-26 16:20:57 +08:00

64 lines
1.2 KiB
C++

/*++
Copyright (C) 1996-2001 Microsoft Corporation
Module Name:
Abstract:
History:
--*/
#ifndef __MULTSEND_H__
#define __MULTSEND_H__
#include <sync.h>
#include <unk.h>
#include <comutl.h>
#include <wmimsg.h>
class CMsgMultiSendReceive
: public CUnkBase<IWmiMessageMultiSendReceive,&IID_IWmiMessageMultiSendReceive>
{
struct SenderNode
{
SenderNode* m_pNext;
CWbemPtr<IWmiMessageSendReceive> 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__