290 lines
15 KiB
C
290 lines
15 KiB
C
|
//*********************************************************************
|
||
|
//* 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
|
||
|
|
||
|
|