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.
251 lines
5.7 KiB
251 lines
5.7 KiB
//#--------------------------------------------------------------
|
|
//
|
|
// File: mainwindow.h
|
|
//
|
|
// Synopsis: This file holds the declarations of the
|
|
// CMainWindow class
|
|
//
|
|
// History: 11/10/2000 serdarun Created
|
|
//
|
|
// Copyright (C) 1999-2000 Microsoft Corporation
|
|
// All rights reserved.
|
|
//
|
|
//#--------------------------------------------------------------
|
|
#ifndef _MAINWINDOW_H_
|
|
#define _MAINWINDOW_H_
|
|
|
|
#define SA_DISPLAY_MAX_BITMAP_IN_BYTES SA_DISPLAY_MAX_BITMAP_SIZE/8
|
|
|
|
#include <exdispid.h>
|
|
#include <atlhost.h>
|
|
#include "saio.h"
|
|
#include "ieeventhandler.h"
|
|
#include "langchange.h"
|
|
#include "salocmgr.h"
|
|
#include "ldm.h"
|
|
#include <string>
|
|
using namespace std;
|
|
#include "sacom.h"
|
|
#include "saconsumer.h"
|
|
|
|
|
|
class CMainWindow : public CWindowImpl<CMainWindow>
|
|
{
|
|
public:
|
|
BEGIN_MSG_MAP(CMainWindow)
|
|
MESSAGE_HANDLER(WM_TIMER, OnTimer)
|
|
MESSAGE_HANDLER(WM_CREATE, OnCreate)
|
|
MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
|
|
MESSAGE_HANDLER(WM_SETFOCUS, OnFocus)
|
|
MESSAGE_HANDLER(wm_SaKeyMessage,OnSaKeyMessage)
|
|
MESSAGE_HANDLER(wm_SaLocMessage,OnSaLocMessage)
|
|
MESSAGE_HANDLER(wm_SaLEDMessage,OnSaLEDMessage)
|
|
MESSAGE_HANDLER(wm_SaAlertMessage,OnSaAlertMessage)
|
|
END_MSG_MAP()
|
|
|
|
|
|
CMainWindow();
|
|
|
|
LRESULT OnTimer(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnFocus(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnCreate(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnDestroy(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnSaKeyMessage(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnSaLocMessage(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnSaLEDMessage(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
LRESULT OnSaAlertMessage(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
|
|
|
|
void PageLoaded(IDispatch* pdisp, VARIANT* purl);
|
|
|
|
void RegistryPageLoaded(IDispatch* pdisp, VARIANT* purl);
|
|
|
|
void LoadingNewPage();
|
|
|
|
void GetBitmap();
|
|
|
|
HRESULT Initialize();
|
|
|
|
|
|
|
|
|
|
private:
|
|
//
|
|
// Clear the resources
|
|
//
|
|
void ShutDown();
|
|
|
|
//
|
|
// method to register alert consumer in WMI sink
|
|
//
|
|
HRESULT InitWMIConsumer();
|
|
|
|
//
|
|
// method to initialize display helper component
|
|
//
|
|
HRESULT InitDisplayComponent ();
|
|
|
|
//
|
|
// create the language change class
|
|
// initialize the connection to localization manager
|
|
//
|
|
HRESULT InitLanguageCallback();
|
|
|
|
//
|
|
// determines the port number for default web site
|
|
// and construct URLs for localui pages
|
|
//
|
|
HRESULT ConstructUrlStrings();
|
|
|
|
//
|
|
// creates the main IE control that is used for rendering
|
|
//
|
|
HRESULT CreateMainIEControl();
|
|
|
|
//
|
|
// creates the second IE control that is used for startup pages
|
|
//
|
|
HRESULT CreateSecondIEControl();
|
|
|
|
void PrintRegistryPage();
|
|
|
|
//
|
|
// sets an active element on a page if nothing is selected
|
|
//
|
|
void CMainWindow::CorrectTheFocus();
|
|
|
|
//
|
|
// here are the private resource handles
|
|
//
|
|
LONG m_lDispHeight;
|
|
LONG m_lDispWidth;
|
|
HANDLE m_hWorkerThread;
|
|
BOOL m_bSecondIECreated;
|
|
|
|
public:
|
|
//
|
|
// display component object
|
|
//
|
|
CComPtr<ISaDisplay> m_pSaDisplay;
|
|
|
|
//
|
|
// worker function to read messages from keypad
|
|
//
|
|
void KeypadReader();
|
|
|
|
//
|
|
// pointers to main IE control
|
|
//
|
|
CComPtr<IWebBrowser2> m_pMainWebBrowser;
|
|
CComPtr<IUnknown> m_pMainWebBrowserUnk;
|
|
CComPtr<IOleInPlaceActiveObject> m_pMainInPlaceAO;
|
|
CComPtr<IOleObject> m_pMainOleObject;
|
|
CComPtr<IViewObject2> m_pMainViewObject;
|
|
CComObject<CWebBrowserEventSink>* m_pMainWebBrowserEventSink;
|
|
|
|
//
|
|
// window handle of the main IE control
|
|
//
|
|
HWND m_hwndWebBrowser;
|
|
|
|
DWORD m_dwMainCookie;
|
|
|
|
|
|
//
|
|
// state of the startup pages
|
|
//
|
|
SA_REGISTRYBITMAP_STATE m_RegBitmapState;
|
|
|
|
//
|
|
// Language change
|
|
//
|
|
CLangChange *m_pLangChange;
|
|
ISALocInfo *m_pLocInfo;
|
|
|
|
//
|
|
// pointers to second IE control
|
|
// this one is used render startup pages
|
|
//
|
|
CComPtr<IWebBrowser2> m_pSecondWebBrowser;
|
|
CComPtr<IUnknown> m_pSecondWebBrowserUnk;
|
|
CComObject<CWebBrowserEventSink>* m_pSecondWebBrowserEventSink;
|
|
|
|
DWORD m_dwSecondCookie;
|
|
|
|
|
|
//
|
|
// GDI objects used for drawing
|
|
//
|
|
HDC m_HdcMem;
|
|
HBITMAP m_hBitmap;
|
|
|
|
|
|
//
|
|
// timers for the registry and main page
|
|
//
|
|
UINT_PTR m_unintptrMainTimer;
|
|
|
|
UINT_PTR m_unintptrSecondTimer;
|
|
|
|
DWORD id;
|
|
|
|
//
|
|
// flag for the ready state of web page
|
|
//
|
|
BOOL m_bPageReady;
|
|
|
|
//
|
|
// Pointer to keypad controller component
|
|
//
|
|
CComPtr<ISAKeypadController> m_pSAKeypadController;
|
|
|
|
//
|
|
// Pointer to consumer component
|
|
//
|
|
CComPtr<IWbemObjectSink> m_pSAWbemSink;
|
|
|
|
//
|
|
// Pointer to saconsumer interface
|
|
//
|
|
CSAConsumer *m_pSAConsumer;
|
|
|
|
//
|
|
// led message dword
|
|
//
|
|
DWORD m_dwLEDMessageCode;
|
|
|
|
//
|
|
// URL strings
|
|
//
|
|
wstring m_szMainPage;
|
|
|
|
BOOL m_bInTaskorMainPage;
|
|
//
|
|
// %system32%\ServerAppliance\LocalUI
|
|
//
|
|
wstring m_szLocalUIDir;
|
|
|
|
//
|
|
// Pointer to Wbem services component
|
|
//
|
|
CComPtr <IWbemServices> m_pWbemServices;
|
|
|
|
//
|
|
//
|
|
//
|
|
BOOL m_bActiveXFocus;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif //_MAINWINDOW_H_
|