64 lines
1.2 KiB
C
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__
|
||
|
|
||
|
|
||
|
|
||
|
|