windows-nt/Source/XPSP1/NT/base/ntsetup/oobe/msobcomm/msobcomm.h

290 lines
15 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
//*********************************************************************
//* Microsoft Windows **
//* Copyright(c) Microsoft Corp., 1999 **
//*********************************************************************
//
// MSOBWEB.H - Header for the implementation of CObWebBrowser
//
// HISTORY:
//
// 1/27/99 a-jaswed Created.
//
// Class which will call up an IOleSite and the WebOC
// and provide external interfaces.
#ifndef _MSOBCOMM_H_
#define _MSOBCOMM_H_
#include <ocidl.h> //For IConnectionPoint
#include "cunknown.h"
#include "cfactory.h"
#include "obcomm.h"
#include "Cntpoint.h"
#include "refdial.h"
#include "webgate.h"
#include "icsmgr.h"
#include "homenet.h"
#include "connmgr.h"
class CObCommunicationManager : public CUnknown,
public IObCommunicationManager2,
public DObCommunicationEvents,
public IConnectionPointContainer
{
// Declare the delegating IUnknown.
DECLARE_IUNKNOWN
public:
static HRESULT CreateInstance (IUnknown* pOuterUnknown, CUnknown** ppNewComponent);
// IObCommunicationManager Members
virtual HRESULT __stdcall ListenToCommunicationEvents (IUnknown* pUnk);
// RAS Dialing methods
virtual HRESULT __stdcall CheckDialReady(DWORD *pdwRetVal) ;
virtual HRESULT __stdcall SetupForDialing(UINT nType, BSTR bstrISPFile, DWORD dwCountry, BSTR bstrAreaCode, DWORD dwFlag, DWORD dwAppMode, DWORD dwMigISPIdx);
virtual HRESULT __stdcall DoConnect(BOOL *pbRetVal) ;
virtual HRESULT __stdcall DoHangup() ;
virtual HRESULT __stdcall GetDialPhoneNumber(BSTR *pVal);
virtual HRESULT __stdcall PutDialPhoneNumber(BSTR newVal);
virtual HRESULT __stdcall GetDialErrorMsg(BSTR *pVal);
virtual HRESULT __stdcall GetSupportNumber(BSTR *pVal);
virtual HRESULT __stdcall RemoveConnectoid(BOOL *pbRetVal);
virtual HRESULT __stdcall SetRASCallbackHwnd(HWND hwndCallback);
virtual HRESULT __stdcall GetSignupURL(BSTR *pVal);
virtual HRESULT __stdcall GetReconnectURL(BSTR *pVal);
virtual HRESULT __stdcall CheckPhoneBook(BSTR bstrISPFile, DWORD dwCountry, BSTR bstrAreaCode, DWORD dwFlag, BOOL *pbRetVal);
virtual HRESULT __stdcall RestoreConnectoidInfo() ;
virtual HRESULT __stdcall SetPreloginMode(BOOL bVal);
virtual HRESULT __stdcall GetConnectionType(DWORD * pdwVal);
virtual HRESULT __stdcall CheckKbdMouse(DWORD *pdwRetVal) ;
virtual HRESULT __stdcall OnDownloadEvent(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL* bHandled);
virtual HRESULT __stdcall GetISPList(BSTR* pVal);
virtual HRESULT __stdcall Set_SelectISP(UINT nVal);
virtual HRESULT __stdcall Set_ConnectionMode(UINT nVal);
virtual HRESULT __stdcall Get_ConnectionMode(UINT* pnVal);
virtual HRESULT __stdcall DownloadReferralOffer(BOOL *pbVal);
virtual HRESULT __stdcall DownloadISPOffer(BOOL *pbVal, BSTR *pVal);
virtual HRESULT __stdcall Get_ISPName(BSTR *pVal);
virtual HRESULT __stdcall RemoveDownloadDir() ;
virtual HRESULT __stdcall PostRegData(DWORD dwSrvType, BSTR bstrRegUrl);
virtual HRESULT __stdcall Connect(UINT nType, BSTR bstrISPFile, DWORD dwCountry, BSTR bstrAreaCode, DWORD dwFlag, DWORD dwAppMode);
virtual HRESULT __stdcall CheckStayConnected(BSTR bstrISPFile, BOOL *pbVal);
virtual HRESULT __stdcall CheckOnlineStatus(BOOL *pbVal);
virtual HRESULT __stdcall GetPhoneBookNumber(BSTR *pVal);
virtual HRESULT __stdcall SetDialAlternative(BOOL bVal);
// WebGate html download methods
virtual HRESULT __stdcall FetchPage(BSTR szURL, BSTR* szLocalFile);
virtual HRESULT __stdcall DownloadFileBuffer(BSTR *pVal);
virtual HRESULT __stdcall GetFile(BSTR szURL, BSTR szFileFullName);
// INS processing methods
virtual HRESULT __stdcall ProcessINS(BSTR bstrINSFilePath, BOOL *pbRetVal);
// IConnectionPointContainer Methods
virtual HRESULT __stdcall EnumConnectionPoints(IEnumConnectionPoints **ppEnum) ;
virtual HRESULT __stdcall FindConnectionPoint(REFIID riid, IConnectionPoint **ppCP) ;
//IObCommunicationEvents
STDMETHOD (GetTypeInfoCount) (UINT* pcInfo);
STDMETHOD (GetTypeInfo) (UINT, LCID, ITypeInfo** );
STDMETHOD (GetIDsOfNames) (REFIID, OLECHAR**, UINT, LCID, DISPID* );
STDMETHOD (Invoke) (DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pdispparams, VARIANT* pvarResult, EXCEPINFO* pexcepinfo, UINT* puArgErr);
//IObCommunicationEvents Members
virtual HRESULT Fire_Dialing (DWORD dwDialStatus);
virtual HRESULT Fire_Connecting ();
virtual HRESULT Fire_DialError (DWORD dwErrorCode);
virtual HRESULT Fire_ConnectionComplete ();
virtual HRESULT Fire_DownloadComplete (BSTR pVal);
//ICS Routines
virtual HRESULT __stdcall CreateIcsBot(DWORD *pdwRetVal);
virtual HRESULT __stdcall IsIcsAvailable(BOOL *bRetVal);
virtual HRESULT __stdcall IsCallbackUsed(BOOL *bRetVal);
virtual HRESULT __stdcall NotifyIcsMgr(UINT msg, WPARAM wParam, LPARAM lParam);
virtual HRESULT __stdcall NotifyIcsUsage(BOOL bParam);
virtual HRESULT __stdcall TriggerIcsCallback(BOOL bParam);
virtual HRESULT __stdcall IsIcsHostReachable(BOOL *bParam);
//IObCommunicationManager2 Methods
STDMETHOD(CreateModemConnectoid) (BSTR bstrPhoneBook,
BSTR bstrConnectionName,
DWORD dwCountryID,
DWORD dwCountryCode,
BSTR bstrAreaCode,
BSTR bstrPhoneNumber,
BOOL fAutoIPAddress,
DWORD ipaddr_A,
DWORD ipaddr_B,
DWORD ipaddr_C,
DWORD ipaddr_D,
BOOL fAutoDNS,
DWORD ipaddrDns_A,
DWORD ipaddrDns_B,
DWORD ipaddrDns_C,
DWORD ipaddrDns_D,
DWORD ipaddrDnsAlt_A,
DWORD ipaddrDnsAlt_B,
DWORD ipaddrDnsAlt_C,
DWORD ipaddrDnsAlt_D,
BSTR bstrUserName,
BSTR bstrPassword);
STDMETHOD(CreatePppoeConnectoid) (BSTR bstrPhoneBook,
BSTR bstrConnectionName,
BSTR bstrBroadbandService,
BOOL fAutoIPAddress,
DWORD ipaddr_A,
DWORD ipaddr_B,
DWORD ipaddr_C,
DWORD ipaddr_D,
BOOL fAutoDNS,
DWORD ipaddrDns_A,
DWORD ipaddrDns_B,
DWORD ipaddrDns_C,
DWORD ipaddrDns_D,
DWORD ipaddrDnsAlt_A,
DWORD ipaddrDnsAlt_B,
DWORD ipaddrDnsAlt_C,
DWORD ipaddrDnsAlt_D,
BSTR bstrUserName,
BSTR bstrPassword
);
STDMETHOD(CreateConnectoid) (BSTR bstrPhoneBook,
BSTR bstrConnectionName,
DWORD dwCountryID,
DWORD dwCountryCode,
BSTR bstrAreaCode,
BSTR bstrPhoneNumber,
BOOL fAutoIPAddress,
DWORD ipaddr_A,
DWORD ipaddr_B,
DWORD ipaddr_C,
DWORD ipaddr_D,
BOOL fAutoDNS,
DWORD ipaddrDns_A,
DWORD ipaddrDns_B,
DWORD ipaddrDns_C,
DWORD ipaddrDns_D,
DWORD ipaddrDnsAlt_A,
DWORD ipaddrDnsAlt_B,
DWORD ipaddrDnsAlt_C,
DWORD ipaddrDnsAlt_D,
BSTR bstrUserName,
BSTR bstrPassword,
BSTR bstrDeviceName,
BSTR bstrDeviceType,
DWORD dwEntryOptions,
DWORD dwEntryType);
STDMETHOD(SetPreferredConnectionTcpipProperties)
(BOOL fAutoIPAddress,
DWORD StaticIp_A,
DWORD StaticIp_B,
DWORD StaticIp_C,
DWORD StaticIp_D,
DWORD SubnetMask_A,
DWORD SubnetMask_B,
DWORD SubnetMask_C,
DWORD SubnetMask_D,
DWORD DefGateway_A,
DWORD DefGateway_B,
DWORD DefGateway_C,
DWORD DefGateway_D,
BOOL fAutoDns,
DWORD DnsPref_A,
DWORD DnsPref_B,
DWORD DnsPref_C,
DWORD DnsPref_D,
DWORD DnsAlt_A,
DWORD DnsAlt_B,
DWORD DnsAlt_C,
DWORD DnsAlt_D,
BOOL fFirewallRequired
);
STDMETHOD(DoFinalTasks) (BOOL* pfRebootRequired);
STDMETHOD(GetConnectionCapabilities) (DWORD* pdwConnectionCapabilities);
STDMETHOD(GetPreferredConnection) (DWORD* pdwPreferredConnection);
STDMETHOD(SetPreferredConnection) (const DWORD dwPreferredConnection,
BOOL* pfSupportedType);
STDMETHOD(ConnectedToInternet) (BOOL* pfConnected);
STDMETHOD(ConnectedToInternetEx) (BOOL* pfConnected);
STDMETHOD(AsyncConnectedToInternetEx) (const HWND hwnd);
STDMETHOD(OobeAutodial) ();
STDMETHOD(OobeAutodialHangup) ();
STDMETHOD(FirewallPreferredConnection) (BOOL fFirewall);
STDMETHOD(UseWinntProxySettings) ();
STDMETHOD(DisableWinntProxySettings) ();
STDMETHOD(GetProxySettings) (BOOL* pbUseAuto,
BOOL* pbUseScript,
BSTR* pszScriptUrl,
BOOL* pbUseProxy,
BSTR* pszProxy
);
STDMETHOD(SetProxySettings) (BOOL bUseAuto,
BOOL bUseScript,
BSTR szScriptUrl,
BOOL bUseProxy,
BSTR szProxy
);
BSTR GetPreferredModem ();
STDMETHOD(SetICWCompleted) (BOOL bMultiUser);
STDMETHOD(GetPublicLanCount) (int* pcPublicLan);
STDMETHOD(SetExclude1394) (BOOL bExclude);
STDMETHOD(GnsAutodial) (BOOL bEnabled,
BSTR bstrUserSection
);
HWND m_hwndCallBack;
CRefDial* m_pRefDial;
BOOL m_pbPreLogin;
private:
DWORD m_dwcpCookie;
HRESULT ConnectToConnectionPoint (IUnknown* punkThis,
REFIID riidEvent,
BOOL fConnect,
IUnknown* punkTarget,
DWORD* pdwCookie,
IConnectionPoint** ppcpOut);
// IUnknown
virtual HRESULT __stdcall NondelegatingQueryInterface( const IID& iid, void** ppv);
CObCommunicationManager (IUnknown* pOuterUnknown);
virtual ~CObCommunicationManager ();
virtual void FinalRelease (); // Notify derived classes that we are releasing
// Connection Point support
CConnectionPoint* m_pConnectionPoint;
CWebGate* m_pWebGate;
CINSHandler* m_InsHandler;
CIcsMgr* m_IcsMgr;
IDispatch* m_pDisp;
BOOL m_bIsIcsUsed;
static INT m_nNumListener;
WCHAR m_szExternalConnectoid[RAS_MaxEntryName];
CConnectionManager m_ConnectionManager;
CEnumModem m_EnumModem;
BOOL m_bFirewall;
BOOL m_bAutodialCleanup;
};
LRESULT
RegQueryOobeValue(
LPCWSTR szValue,
LPBYTE pBuffer,
DWORD* pcbBuffer
);
#endif