2025-04-27 07:49:33 -04:00

109 lines
3.0 KiB
C++

/*++
Copyright (c) 1995-1996 Microsoft Corporation
Module Name :
odblogc.h
Abstract:
NCSA Logging Format implementation
Author:
Terence Kwan ( terryk ) 18-Sep-1996
Project:
IIS Logging 3.0
--*/
#ifndef _ODBLOGC_H_
#define _ODBLOGC_H_
#include "lmcons.h"
class CODBCLOG :
public ILogPlugin,
public CComCoClass<CODBCLOG, &CLSID_ODBCLOG>,
public CComObjectRootEx<CComMultiThreadModel> {
public:
CODBCLOG();
VOID Lock( VOID) {EnterCriticalSection( &m_csLock); }
VOID Unlock( VOID) {LeaveCriticalSection( &m_csLock); }
DWORD GetRegParameters( LPCSTR strRegKey, LPVOID pvIMDCOM );
BOOL PrepareStatement(VOID);
BOOL PrepareParameters(VOID);
LPCSTR QueryServiceName( VOID) const { return m_rgchServiceName; }
LPCSTR QueryServerName( VOID) const { return m_rgchServerName; }
LPCSTR QueryDefaultUserName() const { return _T("-"); }
protected:
~CODBCLOG();
public:
//
// ATL Interface
//
DECLARE_NO_REGISTRY( );
BEGIN_COM_MAP(CODBCLOG)
COM_INTERFACE_ENTRY(ILogPlugin)
END_COM_MAP()
//
// Plugin Interface
//
HRESULT STDMETHODCALLTYPE
InitializeLog(
IN LPCSTR InstanceName,
IN LPCSTR MetabasePath,
IN PCHAR pvIMDCOM );
HRESULT STDMETHODCALLTYPE
TerminateLog( VOID );
HRESULT STDMETHODCALLTYPE
LogInformation( IInetLogInformation *pLogObj );
HRESULT STDMETHODCALLTYPE
SetConfig( IN DWORD cbSize, PBYTE Log );
HRESULT STDMETHODCALLTYPE
GetConfig( IN DWORD cbSize, PBYTE Log );
HRESULT STDMETHODCALLTYPE
QueryExtraLoggingFields(PDWORD cbSize, PCHAR szParameters);
private:
LPVOID m_pvIMDCOM;
CRITICAL_SECTION m_csLock;
CHAR m_rgchDataSource[ MAX_DATABASE_NAME_LEN];
CHAR m_rgchTableName[ MAX_TABLE_NAME_LEN];
CHAR m_rgchUserName[ UNLEN + 1];
CHAR m_rgchPassword[ UNLEN + 1];
DWORD m_cOdbcParams; // count of odbc params to be logged.
PODBC_CONNECTION m_poc; // odbc connection for connecting to DB
PODBC_STATEMENT m_poStmt; // Odbc statement for inserting records.
PODBC_PARAMETER * m_ppParams; // array of odbc parameters.
CHAR m_rgchServiceName[ MAX_PATH + 1];
CHAR m_rgchServerName[ MAX_PATH + 1];
CHAR m_rgchMetabasePath[MAX_PATH + 1];
bool m_fEnableEventLog;
DWORD m_TickResumeOpen;
};
#endif // _ODBLOGC_H_