///////////////////////////////////////////////////////////////////////////// // // DataChannel.h : Declaration of the CDataChannel // // JPDup 2000.12.10 #pragma once #include "resource.h" // main symbols ///////////////////////////////////////////////////////////////////////////// // CDataChannel // class ATL_NO_VTABLE CDataChannel : public CComObjectRootEx, public CComCoClass, public IDataChannel { public: CDataChannel() { MYTRACE_ENTER_NOSHOWEXIT("CDataChannel::NEW"); m_hCreateEvent=NULL; m_hDeleteEvent=NULL; } ~CDataChannel() { MYTRACE_ENTER_NOSHOWEXIT("CDataChannel::DELETE"); if ( m_hCreateEvent ) CloseHandle((HANDLE)m_hCreateEvent); if ( m_hDeleteEvent ) CloseHandle((HANDLE)m_hDeleteEvent); } DECLARE_REGISTRY_RESOURCEID(IDR_DATACHANNEL) DECLARE_NOT_AGGREGATABLE(CDataChannel) BEGIN_COM_MAP(CDataChannel) COM_INTERFACE_ENTRY(IDataChannel) END_COM_MAP() // // IDataChannel // public: STDMETHODIMP GetSessionDeletionEventHandle( OUT HANDLE* pHandle ); STDMETHODIMP GetSessionCreationEventHandle( OUT HANDLE* pHandle ); STDMETHODIMP GetChannelProperties( OUT ALG_DATA_CHANNEL_PROPERTIES** ppProperties ); STDMETHODIMP Cancel(); // // Properties // ALG_DATA_CHANNEL_PROPERTIES m_Properties; // // Used to cache the last arguments used to create the redirect // will be use to cancel the redirect // ULONG m_ulFlags; ULONG m_ulSourceAddress; USHORT m_usSourcePort; ULONG m_ulDestinationAddress; USHORT m_usDestinationPort; ULONG m_ulNewSourceAddress; USHORT m_usNewSourcePort; ULONG m_ulNewDestinationAddress; USHORT m_usNewDestinationPort; ULONG m_ulRestrictAdapterIndex; HANDLE m_hCreateEvent; HANDLE m_hDeleteEvent; };