#ifndef __WBEM_EMAIL_CONSUMER__H_ #define __WBEM_EMAIL_CONSUMER__H_ #include #include #include #include "txttempl.h" class CEmailConsumer : public CUnk { protected: class XProvider : public CImpl { public: XProvider(CEmailConsumer* pObj) : CImpl(pObj){} HRESULT STDMETHODCALLTYPE FindConsumer( IWbemClassObject* pLogicalConsumer, IWbemUnboundObjectSink** ppConsumer); } m_XProvider; friend XProvider; protected: HANDLE m_hAttention; HANDLE m_hDone; HANDLE m_hThread; IWbemClassObject* m_pLogicalConsumer; IStream* m_pStream; static DWORD staticWorker(void*); void Worker(); public: CEmailConsumer(CLifeControl* pControl = NULL, IUnknown* pOuter = NULL); ~CEmailConsumer(); void* GetInterface(REFIID riid); }; class CEmailSink : public CUnk { protected: class XSink : public CImpl { public: XSink(CEmailSink* pObj) : CImpl(pObj){} HRESULT STDMETHODCALLTYPE IndicateToConsumer( IWbemClassObject* pLogicalConsumer, long lNumObjects, IWbemClassObject** apObjects); } m_XSink; friend XSink; protected: IMAPISession* m_pSession; IMAPIFolder* m_pOutbox; IMsgStore* m_pStore; IAddrBook* m_pAddrBook; ADRLIST* m_pAddrList; CTextTemplate m_SubjectTemplate; CTextTemplate m_MessageTemplate; WString m_wsProfile; WString m_wsAddressee; public: CEmailSink(CLifeControl* pControl = NULL); ~CEmailSink(); HRESULT Initialize(IWbemClassObject* pLogicalConsumer); void* GetInterface(REFIID riid); }; #endif