; 
; Exports of file TCPMonUI.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY TCPMonUI.dll
EXPORTS
; public: __cdecl CPortABC::CPortABC(class CPortABC const & __ptr64) __ptr64
??0CPortABC@@QEAA@AEBV0@@Z
; public: __cdecl CPortABC::CPortABC(void) __ptr64
??0CPortABC@@QEAA@XZ
; public: __cdecl CTcpMibABC::CTcpMibABC(class CTcpMibABC const & __ptr64) __ptr64
??0CTcpMibABC@@QEAA@AEBV0@@Z
; public: __cdecl CTcpMibABC::CTcpMibABC(void) __ptr64
??0CTcpMibABC@@QEAA@XZ
; public: virtual __cdecl CPortABC::~CPortABC(void) __ptr64
??1CPortABC@@UEAA@XZ
; public: virtual __cdecl CTcpMibABC::~CTcpMibABC(void) __ptr64
??1CTcpMibABC@@UEAA@XZ
; public: class CPortABC & __ptr64 __cdecl CPortABC::operator=(class CPortABC const & __ptr64) __ptr64
??4CPortABC@@QEAAAEAV0@AEBV0@@Z
; public: class CTcpMibABC & __ptr64 __cdecl CTcpMibABC::operator=(class CTcpMibABC const & __ptr64) __ptr64
??4CTcpMibABC@@QEAAAEAV0@AEBV0@@Z
; const  CPortABC::`vftable'
??_7CPortABC@@6B@
; const  CTcpMibABC::`vftable'
??_7CTcpMibABC@@6B@
; public: virtual unsigned long __cdecl CPortABC::Read(void * __ptr64 const,unsigned char * __ptr64,unsigned long,unsigned long * __ptr64) __ptr64
?Read@CPortABC@@UEAAKQEAXPEAEKPEAK@Z
InitializePrintMonitorUI
LocalAddPortUI
LocalConfigurePortUI
