Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

87 lines
4.2 KiB

// --------------------------------------------------------------------------------
// Ixpbase.h
// Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
// Steven J. Bailey
// --------------------------------------------------------------------------------
#ifndef __IXPBASE_H
#define __IXPBASE_H
// ------------------------------------------------------------------------------------
// Depends
// ------------------------------------------------------------------------------------
#include "imnxport.h"
#include "asynconn.h"
// --------------------------------------------------------------------------------
// CIxpBase
// --------------------------------------------------------------------------------
class CIxpBase : public IInternetTransport, public IAsyncConnCB, public IAsyncConnPrompt
{
protected:
BOOL m_fBusy; // Are we in the busy state
IXPSTATUS m_status; // Status of the transport
ULONG m_cRef; // Reference Count
LPSTR m_pszResponse; // Last Server Response String
UINT m_uiResponse; // Server Response Error
HRESULT m_hrResponse; // Server Response Error
ILogFile *m_pLogFile; // Logfile Object
CAsyncConn *m_pSocket; // Socket Object
ITransportCallback *m_pCallback; // Transport callback object
INETSERVER m_rServer; // Internet Server information
BOOL m_fConnectAuth; // Proceed with user auth
BOOL m_fConnectTLS; // Proceed with TLS encryption
BOOL m_fCommandLogging;// Do ITransportCallback::OnCommand
BOOL m_fAuthenticated; // Has the user been authenticated successfully...
IXPTYPE m_ixptype; // Transport type
CRITICAL_SECTION m_cs; // Thread Safety
protected:
HRESULT HrSendLine(LPSTR pszLine);
HRESULT HrReadLine(LPSTR *ppszLine, INT *pcbLine, BOOL *pfComplete);
HRESULT HrSendCommand(LPSTR pszCommand, LPSTR pszParameters, BOOL fDoBusy=TRUE);
HRESULT OnInitNew(LPSTR pszProtocol, LPSTR pszLogFilePath, DWORD dwShareMode, ITransportCallback *pCallback);
void Reset(void);
HRESULT HrEnterBusy(void);
void OnStatus(IXPSTATUS ixpstatus);
void OnError(HRESULT hrResult, LPSTR pszProblem=NULL);
void LeaveBusy(void);
virtual void ResetBase(void) PURE;
virtual void DoQuit(void) PURE;
virtual void OnConnected(void);
virtual void OnDisconnected(void);
virtual void OnEnterBusy(void) PURE;
virtual void OnLeaveBusy(void) PURE;
public:
// ----------------------------------------------------------------------------
// Construction
// ----------------------------------------------------------------------------
CIxpBase(IXPTYPE ixptype);
virtual ~CIxpBase(void);
// ----------------------------------------------------------------------------
// IAsyncConnPrompt methods
// ----------------------------------------------------------------------------
int OnPrompt(HRESULT hrError, LPCTSTR pszText, LPCTSTR pszCaption, UINT uType);
// ----------------------------------------------------------------------------
// IAsyncConnCB methods
// ----------------------------------------------------------------------------
virtual void OnNotify(ASYNCSTATE asOld, ASYNCSTATE asNew, ASYNCEVENT ae);
// ----------------------------------------------------------------------------
// IInternetTransport methods
// ----------------------------------------------------------------------------
virtual STDMETHODIMP Connect(LPINETSERVER pInetServer, boolean fAuthenticate, boolean fCommandLogging);
virtual STDMETHODIMP Disconnect(void);
STDMETHODIMP DropConnection(void);
STDMETHODIMP IsState(IXPISSTATE isstate);
STDMETHODIMP GetServerInfo(LPINETSERVER pInetServer);
STDMETHODIMP_(IXPTYPE) GetIXPType(void);
STDMETHODIMP InetServerFromAccount(IImnAccount *pAccount, LPINETSERVER pInetServer);
STDMETHODIMP HandsOffCallback(void);
STDMETHODIMP GetStatus(IXPSTATUS *pCurrentStatus);
};
#endif // __IXPBASE_H