; 
; Exports of file IISLOG.DLL
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY IISLOG.DLL
EXPORTS
; public: __thiscall LOGGING::LOGGING(class LOGGING const &)
??0LOGGING@@QAE@ABV0@@Z
; public: __thiscall ODBC_CONNECTION::ODBC_CONNECTION(void)
??0ODBC_CONNECTION@@QAE@XZ
; public: __thiscall ODBC_PARAMETER::ODBC_PARAMETER(unsigned short,short,short,short,unsigned long)
??0ODBC_PARAMETER@@QAE@GFFFK@Z
; public: __thiscall ODBC_CONNECTION::~ODBC_CONNECTION(void)
??1ODBC_CONNECTION@@QAE@XZ
; public: __thiscall ODBC_PARAMETER::~ODBC_PARAMETER(void)
??1ODBC_PARAMETER@@QAE@XZ
; public: __thiscall ODBC_STATEMENT::~ODBC_STATEMENT(void)
??1ODBC_STATEMENT@@QAE@XZ
; public: class LOGGING & __thiscall LOGGING::operator=(class LOGGING const &)
??4LOGGING@@QAEAAV0@ABV0@@Z
; public: class ODBC_STATEMENT * __thiscall ODBC_CONNECTION::AllocStatement(void)
?AllocStatement@ODBC_CONNECTION@@QAEPAVODBC_STATEMENT@@XZ
; public: short __thiscall ODBC_PARAMETER::Bind(void *)
?Bind@ODBC_PARAMETER@@QAEFPAX@Z
; public: int __thiscall ODBC_STATEMENT::BindParameter(class ODBC_PARAMETER *)
?BindParameter@ODBC_STATEMENT@@QAEHPAVODBC_PARAMETER@@@Z
; public: int __thiscall ODBC_CONNECTION::Close(void)
?Close@ODBC_CONNECTION@@QAEHXZ
; public: int __thiscall ODBC_PARAMETER::CopyValue(unsigned long)
?CopyValue@ODBC_PARAMETER@@QAEHK@Z
; public: int __thiscall ODBC_PARAMETER::CopyValue(struct _SYSTEMTIME *)
?CopyValue@ODBC_PARAMETER@@QAEHPAU_SYSTEMTIME@@@Z
; public: int __thiscall ODBC_PARAMETER::CopyValue(void *,long)
?CopyValue@ODBC_PARAMETER@@QAEHPAXJ@Z
; public: int __thiscall ODBC_PARAMETER::CopyValue(char const *)
?CopyValue@ODBC_PARAMETER@@QAEHPBD@Z
; public: int __thiscall ODBC_PARAMETER::CopyValue(unsigned short const *)
?CopyValue@ODBC_PARAMETER@@QAEHPBG@Z
; public: static unsigned long __stdcall ODBC_CONNECTION::DisplaySize(short,unsigned long)
?DisplaySize@ODBC_CONNECTION@@SGKFK@Z
; public: int __thiscall ODBC_STATEMENT::ExecDirect(char const *,unsigned long)
?ExecDirect@ODBC_STATEMENT@@QAEHPBDK@Z
; public: int __thiscall ODBC_STATEMENT::ExecuteStatement(void)
?ExecuteStatement@ODBC_STATEMENT@@QAEHXZ
; public: void __thiscall ODBC_STATEMENT::FreeColumnMemory(void)
?FreeColumnMemory@ODBC_STATEMENT@@QAEXXZ
; public: int __thiscall ODBC_CONNECTION::GetInfo(unsigned long,void *,unsigned long,unsigned long *)
?GetInfo@ODBC_CONNECTION@@QAEHKPAXKPAK@Z
; public: int __thiscall ODBC_CONNECTION::GetLastErrorText(class STR *,void *,short)const 
?GetLastErrorText@ODBC_CONNECTION@@QBEHPAVSTR@@PAXF@Z
; public: int __thiscall ODBC_CONNECTION::GetLastErrorTextAsHtml(class STR *,void *,short)const 
?GetLastErrorTextAsHtml@ODBC_CONNECTION@@QBEHPAVSTR@@PAXF@Z
; public: int __thiscall ODBC_CONNECTION::IsValid(void)const 
?IsValid@ODBC_CONNECTION@@QBEHXZ
; public: int __thiscall ODBC_STATEMENT::IsValid(void)const 
?IsValid@ODBC_STATEMENT@@QBEHXZ
; private: void __thiscall LOGGING::LockExclusive(void)
?LockExclusive@LOGGING@@AAEXXZ
; private: void __thiscall LOGGING::LockShared(void)
?LockShared@LOGGING@@AAEXXZ
; public: int __thiscall ODBC_STATEMENT::MoreResults(int *)
?MoreResults@ODBC_STATEMENT@@QAEHPAH@Z
; public: int __thiscall ODBC_CONNECTION::Open(char const *,char const *,char const *,int)
?Open@ODBC_CONNECTION@@QAEHPBD00H@Z
; public: int __thiscall ODBC_STATEMENT::PrepareStatement(char const *)
?PrepareStatement@ODBC_STATEMENT@@QAEHPBD@Z
; public: short __thiscall ODBC_PARAMETER::QueryCType(void)const 
?QueryCType@ODBC_PARAMETER@@QBEFXZ
; public: long __thiscall ODBC_PARAMETER::QueryCbValue(void)const 
?QueryCbValue@ODBC_PARAMETER@@QBEJXZ
; public: long & __thiscall ODBC_PARAMETER::QueryCbValueRef(void)
?QueryCbValueRef@ODBC_PARAMETER@@QAEAAJXZ
; public: int __thiscall ODBC_STATEMENT::QueryColNames(class STR * *,unsigned long *,unsigned long,int *)
?QueryColNames@ODBC_STATEMENT@@QAEHPAPAVSTR@@PAKKPAH@Z
; public: short __thiscall ODBC_CONNECTION::QueryErrorCode(void)const 
?QueryErrorCode@ODBC_CONNECTION@@QBEFXZ
; public: short __thiscall ODBC_STATEMENT::QueryErrorCode(void)const 
?QueryErrorCode@ODBC_STATEMENT@@QBEFXZ
; public: long __thiscall ODBC_PARAMETER::QueryMaxCbValue(void)const 
?QueryMaxCbValue@ODBC_PARAMETER@@QBEJXZ
; public: unsigned short __thiscall ODBC_PARAMETER::QueryParamNumber(void)const 
?QueryParamNumber@ODBC_PARAMETER@@QBEGXZ
; public: short __thiscall ODBC_PARAMETER::QueryParamType(void)const 
?QueryParamType@ODBC_PARAMETER@@QBEFXZ
; public: unsigned long __thiscall ODBC_PARAMETER::QueryPrecision(void)const 
?QueryPrecision@ODBC_PARAMETER@@QBEKXZ
; public: int __thiscall ODBC_STATEMENT::QueryRowCount(long *)
?QueryRowCount@ODBC_STATEMENT@@QAEHPAJ@Z
; public: short __thiscall ODBC_PARAMETER::QueryScale(void)const 
?QueryScale@ODBC_PARAMETER@@QBEFXZ
; public: short __thiscall ODBC_PARAMETER::QuerySqlType(void)const 
?QuerySqlType@ODBC_PARAMETER@@QBEFXZ
; public: void * __thiscall ODBC_PARAMETER::QueryValue(void)const 
?QueryValue@ODBC_PARAMETER@@QBEPAXXZ
; public: int __thiscall ODBC_STATEMENT::QueryValuesAsStr(class STR * *,int *)
?QueryValuesAsStr@ODBC_STATEMENT@@QAEHPAPAVSTR@@PAH@Z
; public: int __thiscall ODBC_CONNECTION::SetConnectOption(unsigned short,unsigned long)
?SetConnectOption@ODBC_CONNECTION@@QAEHGK@Z
; public: int __thiscall ODBC_PARAMETER::SetValueBuffer(long,long)
?SetValueBuffer@ODBC_PARAMETER@@QAEHJJ@Z
; public: static int __stdcall ODBC_CONNECTION::Success(short)
?Success@ODBC_CONNECTION@@SGHF@Z
; private: void __thiscall LOGGING::Unlock(void)
?Unlock@LOGGING@@AAEXXZ
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer
