; 
; Exports of file W3COMLOG.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY W3COMLOG.dll
EXPORTS
; public: __cdecl LOGGING::LOGGING(class LOGGING const & __ptr64) __ptr64
??0LOGGING@@QEAA@AEBV0@@Z
; public: __cdecl LOGGING::LOGGING(void) __ptr64
??0LOGGING@@QEAA@XZ
; private: __cdecl LOGGING::~LOGGING(void) __ptr64
??1LOGGING@@AEAA@XZ
; public: class LOGGING & __ptr64 __cdecl LOGGING::operator=(class LOGGING const & __ptr64) __ptr64
??4LOGGING@@QEAAAEAV0@AEBV0@@Z
; public: long __cdecl LOGGING::ActivateLogging(char const * __ptr64,unsigned short const * __ptr64,struct IMSAdminBaseW * __ptr64,int) __ptr64
?ActivateLogging@LOGGING@@QEAAJPEBDPEBGPEAUIMSAdminBaseW@@H@Z
; public: void __cdecl LOGGING::AddRef(void) __ptr64
?AddRef@LOGGING@@QEAAXXZ
; public: static long __cdecl LOGGING::Initialize(void)
?Initialize@LOGGING@@SAJXZ
; public: int __cdecl LOGGING::IsRequiredExtraLoggingFields(void)const  __ptr64
?IsRequiredExtraLoggingFields@LOGGING@@QEBAHXZ
; public: void __cdecl LOGGING::LogInformation(class LOG_CONTEXT * __ptr64) __ptr64
?LogInformation@LOGGING@@QEAAXPEAVLOG_CONTEXT@@@Z
; public: int __cdecl LOGGING::QueryDoCustomLogging(void)const  __ptr64
?QueryDoCustomLogging@LOGGING@@QEBAHXZ
; public: int __cdecl LOGGING::QueryDoUlLogging(void)const  __ptr64
?QueryDoUlLogging@LOGGING@@QEBAHXZ
; public: class MULTISZA const * __ptr64 __cdecl LOGGING::QueryExtraLoggingFields(void)const  __ptr64
?QueryExtraLoggingFields@LOGGING@@QEBAPEBVMULTISZA@@XZ
; public: void __cdecl LOGGING::Release(void) __ptr64
?Release@LOGGING@@QEAAXXZ
; public: static void __cdecl LOGGING::Terminate(void)
?Terminate@LOGGING@@SAXXZ
