Updated CBrowse into a mini-test app

git-svn-id: svn://10.0.0.236/trunk@24116 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
locka%iol.ie 1999-03-14 17:44:01 +00:00
parent fe3b92e60b
commit e65e3b7805
11 changed files with 794 additions and 31 deletions

View File

@ -2,6 +2,7 @@
//
#include "stdafx.h"
#include "cbrowse.h"
#include "CBrowseDlg.h"
@ -11,8 +12,28 @@
static char THIS_FILE[] = __FILE__;
#endif
static const CLSID clsidMozilla =
{ 0x1339B54C, 0x3453, 0x11D2, { 0x93, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } };
#include <math.h>
#include <fpieee.h>
#include <float.h>
#include <signal.h>
void __cdecl fperr(int sig)
{
CString sError;
sError.Format("FP Error %08x", sig);
AfxMessageBox(sError);
}
TCHAR *aURLs[] =
{
_T("http://whippy"),
_T("http://whippy/mozilla/mozilla.htm"),
_T("http://www.mozilla.org"),
_T("http://www.yahoo.com"),
_T("http://www.netscape.com"),
_T("http://www.microsoft.com")
};
/////////////////////////////////////////////////////////////////////////////
// CBrowseDlg dialog
@ -20,21 +41,30 @@ static const CLSID clsidMozilla =
CBrowseDlg::CBrowseDlg(CWnd* pParent /*=NULL*/)
: CDialog(CBrowseDlg::IDD, pParent)
{
signal(SIGFPE, fperr);
double x = 0.0;
double y = 1.0/x;
//{{AFX_DATA_INIT(CBrowseDlg)
m_sURL = _T("");
m_szTestDescription = _T("");
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_sURL = _T("http://www.mozilla.com");
m_pControlSite = NULL;
m_clsid = CLSID_NULL;
}
void CBrowseDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBrowseDlg)
DDX_Text(pDX, IDC_URL, m_sURL);
DDX_Control(pDX, IDC_RUNTEST, m_btnRunTest);
DDX_Control(pDX, IDC_URL, m_cmbURLs);
DDX_Control(pDX, IDC_TESTLIST, m_tcTests);
DDX_Control(pDX, IDC_LISTMESSAGES, m_lbMessages);
DDX_Text(pDX, IDC_TESTDESCRIPTION, m_szTestDescription);
//}}AFX_DATA_MAP
}
@ -43,9 +73,19 @@ BEGIN_MESSAGE_MAP(CBrowseDlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_GO, OnGo)
ON_BN_CLICKED(IDC_RUNTEST, OnRuntest)
ON_BN_CLICKED(IDC_BACKWARD, OnBackward)
ON_BN_CLICKED(IDC_FORWARD, OnForward)
ON_NOTIFY(TVN_SELCHANGED, IDC_TESTLIST, OnSelchangedTestlist)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#define IL_CLOSEDFOLDER 0
#define IL_OPENFOLDER 1
#define IL_TEST 2
#define IL_TESTFAILED 3
#define IL_TESTPASSED 4
/////////////////////////////////////////////////////////////////////////////
// CBrowseDlg message handlers
@ -58,16 +98,52 @@ BOOL CBrowseDlg::OnInitDialog()
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// Image list
m_cImageList.Create(16, 16, ILC_COLOR | ILC_MASK, 0, 10);
m_cImageList.Add(AfxGetApp()->LoadIcon(IDI_CLOSEDFOLDER));
m_cImageList.Add(AfxGetApp()->LoadIcon(IDI_OPENFOLDER));
m_cImageList.Add(AfxGetApp()->LoadIcon(IDI_TEST));
m_cImageList.Add(AfxGetApp()->LoadIcon(IDI_TESTFAILED));
m_cImageList.Add(AfxGetApp()->LoadIcon(IDI_TESTPASSED));
m_tcTests.SetImageList(&m_cImageList, TVSIL_NORMAL);
for (int i = 0; i < nTestSets; i++)
{
TestSet *pTestSet = &aTestSets[i];
HTREEITEM hParent = m_tcTests.InsertItem(pTestSet->szName, IL_CLOSEDFOLDER, IL_CLOSEDFOLDER);
m_tcTests.SetItemData(hParent, (DWORD) pTestSet);
for (int j = 0; j < pTestSet->nTests; j++)
{
Test *pTest = &pTestSet->aTests[j];
HTREEITEM hTest = m_tcTests.InsertItem(pTest->szName, IL_TEST, IL_TEST, hParent);
if (hTest)
{
m_tcTests.SetItemData(hTest, (DWORD) pTest);
}
}
}
// Set up some URLs. The first couple are internal
for (i = 0; i < sizeof(aURLs) / sizeof(aURLs[0]); i++)
{
m_cmbURLs.AddString(aURLs[i]);
}
m_cmbURLs.SetCurSel(0);
// Get the position of the browser marker
CRect rcMarker;
GetDlgItem(IDC_BROWSER_MARKER)->GetWindowRect(&rcMarker);
ScreenToClient(rcMarker);
CControlSiteInstance::CreateInstance(&m_pControlSite);
GetDlgItem(IDC_BROWSER_MARKER)->DestroyWindow();
CControlSiteInstance::CreateInstance(&m_pControlSite);
if (m_pControlSite)
{
m_pControlSite->Attach(clsidMozilla, GetSafeHwnd(), rcMarker, NULL);
PropertyList pl;
m_pControlSite->Create(m_clsid, pl);
m_pControlSite->Attach(GetSafeHwnd(), rcMarker, NULL);
m_pControlSite->SetPosition(rcMarker);
}
return TRUE; // return TRUE unless you set the focus to a control
@ -98,7 +174,9 @@ void CBrowseDlg::OnPaint()
}
else
{
CDialog::OnPaint();
CPaintDC dc(this);
m_pControlSite->Draw(dc.m_hDC);
}
}
@ -109,29 +187,151 @@ HCURSOR CBrowseDlg::OnQueryDragIcon()
return (HCURSOR) m_hIcon;
}
void CBrowseDlg::OnGo()
HRESULT CBrowseDlg::GetWebBrowser(IWebBrowser **pWebBrowser)
{
UpdateData();
if (pWebBrowser == NULL)
{
return E_INVALIDARG;
}
// If there's a browser control, use it to navigate to the specified URL
*pWebBrowser = NULL;
if (m_pControlSite)
{
IUnknown *pIUnkBrowser = NULL;
m_pControlSite->GetControlUnknown(&pIUnkBrowser);
if (pIUnkBrowser)
{
IWebBrowser *pIWebBrowser = NULL;
pIUnkBrowser->QueryInterface(IID_IWebBrowser, (void **) &pIWebBrowser);
if (pIWebBrowser)
pIUnkBrowser->QueryInterface(IID_IWebBrowser, (void **) pWebBrowser);
if (*pWebBrowser)
{
BSTR bstrURL = m_sURL.AllocSysString();
pIWebBrowser->Navigate(bstrURL, NULL, NULL, NULL, NULL);
::SysFreeString(bstrURL);
pIWebBrowser->Release();
return S_OK;
}
pIUnkBrowser->Release();
}
}
return E_FAIL;
}
void CBrowseDlg::OnGo()
{
UpdateData();
IWebBrowser *pIWebBrowser = NULL;
if (SUCCEEDED(GetWebBrowser(&pIWebBrowser)))
{
int nItem = m_cmbURLs.GetCurSel();
CString szURL = aURLs[nItem];
BSTR bstrURL = szURL.AllocSysString();
pIWebBrowser->Navigate(bstrURL, NULL, NULL, NULL, NULL);
::SysFreeString(bstrURL);
pIWebBrowser->Release();
}
}
void CBrowseDlg::OnBackward()
{
IWebBrowser *pIWebBrowser = NULL;
if (SUCCEEDED(GetWebBrowser(&pIWebBrowser)))
{
pIWebBrowser->GoBack();
pIWebBrowser->Release();
}
}
void CBrowseDlg::OnForward()
{
IWebBrowser *pIWebBrowser = NULL;
if (SUCCEEDED(GetWebBrowser(&pIWebBrowser)))
{
pIWebBrowser->GoForward();
pIWebBrowser->Release();
}
}
void CBrowseDlg::OnRuntest()
{
HTREEITEM hItem = m_tcTests.GetNextItem(NULL, TVGN_FIRSTVISIBLE);
while (hItem)
{
UINT nState;
nState = m_tcTests.GetItemState(hItem, TVIS_SELECTED);
if (!m_tcTests.ItemHasChildren(hItem) && nState & TVIS_SELECTED)
{
Test *pTest = (Test *) m_tcTests.GetItemData(hItem);
TestResult nResult = trFailed;
if (pTest && pTest->pfn)
{
BrowserInfo cInfo;
cInfo.clsid = m_clsid;
cInfo.pControlSite = m_pControlSite;
cInfo.pIUnknown = NULL;
if (cInfo.pControlSite)
{
cInfo.pControlSite->GetControlUnknown(&cInfo.pIUnknown);
}
nResult = pTest->pfn(&cInfo);
if (cInfo.pIUnknown)
{
cInfo.pIUnknown->Release();
}
}
if (nResult == trPassed)
{
m_tcTests.SetItemImage(hItem, IL_TESTPASSED, IL_TESTPASSED);
}
else if (nResult == trFailed)
{
m_tcTests.SetItemImage(hItem, IL_TESTFAILED, IL_TESTFAILED);
}
else if (nResult == trPartial)
{
// TODO
}
}
hItem = m_tcTests.GetNextItem(hItem, TVGN_NEXTVISIBLE);
}
}
void CBrowseDlg::OnSelchangedTestlist(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
BOOL bItemSelected = FALSE;
m_szTestDescription.Empty();
HTREEITEM hItem = m_tcTests.GetNextItem(NULL, TVGN_FIRSTVISIBLE);
while (hItem)
{
UINT nState;
nState = m_tcTests.GetItemState(hItem, TVIS_SELECTED);
if (nState & TVIS_SELECTED)
{
bItemSelected = TRUE;
if (m_tcTests.ItemHasChildren(hItem))
{
TestSet *pTestSet = (TestSet *) m_tcTests.GetItemData(hItem);
m_szTestDescription = pTestSet->szDesc;
}
else
{
Test *pTest = (Test *) m_tcTests.GetItemData(hItem);
m_szTestDescription = pTest->szDesc;
}
}
hItem = m_tcTests.GetNextItem(hItem, TVGN_NEXTVISIBLE);
}
UpdateData(FALSE);
m_btnRunTest.EnableWindow(bItemSelected);
*pResult = 0;
}

View File

@ -16,13 +16,20 @@ class CBrowseDlg : public CDialog
// Construction
public:
CControlSiteInstance *m_pControlSite;
CLSID m_clsid;
CBrowseDlg(CWnd* pParent = NULL); // standard constructor
HRESULT GetWebBrowser(IWebBrowser **pWebBrowser);
// Dialog Data
//{{AFX_DATA(CBrowseDlg)
enum { IDD = IDD_CBROWSE_DIALOG };
CString m_sURL;
CButton m_btnRunTest;
CComboBox m_cmbURLs;
CTreeCtrl m_tcTests;
CListBox m_lbMessages;
CString m_szTestDescription;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
@ -34,6 +41,7 @@ public:
// Implementation
protected:
HICON m_hIcon;
CImageList m_cImageList;
// Generated message map functions
//{{AFX_MSG(CBrowseDlg)
@ -41,6 +49,10 @@ protected:
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnGo();
afx_msg void OnRuntest();
afx_msg void OnBackward();
afx_msg void OnForward();
afx_msg void OnSelchangedTestlist(NMHDR* pNMHDR, LRESULT* pResult);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};

View File

@ -0,0 +1,92 @@
// PickerDlg.cpp : implementation file
//
#include "stdafx.h"
#include "cbrowse.h"
#include "PickerDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
// CLSIDs for the Mozilla and IE browser controls
static const CLSID CLSID_Mozilla =
{ 0x1339B54C, 0x3453, 0x11D2, { 0x93, 0xB9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } };
static const CLSID CLSID_InternetExplorer =
{ 0x8856F961, 0x340A, 0x11D0, { 0xA9, 0x6B, 0x00, 0xC0, 0x4F, 0xD7, 0x05, 0xA2 } };
struct BrowserControl
{
TCHAR *szName;
const CLSID *clsid;
};
BrowserControl aControls[] =
{
{ _T("Mozilla Control"), &CLSID_Mozilla },
{ _T("Internet Explorer Control"), &CLSID_InternetExplorer }
};
/////////////////////////////////////////////////////////////////////////////
// CPickerDlg dialog
CPickerDlg::CPickerDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPickerDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CPickerDlg)
//}}AFX_DATA_INIT
m_clsid = CLSID_NULL;
}
void CPickerDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPickerDlg)
DDX_Control(pDX, IDC_LISTBROWSER, m_lbPicker);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPickerDlg, CDialog)
//{{AFX_MSG_MAP(CPickerDlg)
ON_BN_CLICKED(IDOK, OnOk)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPickerDlg message handlers
BOOL CPickerDlg::OnInitDialog()
{
CDialog::OnInitDialog();
for (int i = 0; i < sizeof(aControls) / sizeof(aControls[0]); i++)
{
m_lbPicker.AddString(aControls[i].szName);
}
m_lbPicker.SetCurSel(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CPickerDlg::OnOk()
{
int nItem = m_lbPicker.GetCurSel();
if (nItem == LB_ERR)
{
AfxMessageBox(IDS_CHOOSEBROWSER);
return;
}
m_clsid = *aControls[nItem].clsid;
EndDialog(IDOK);
}

View File

@ -0,0 +1,48 @@
#if !defined(AFX_PICKERDLG_H__648FC652_D34B_11D2_A255_000000000000__INCLUDED_)
#define AFX_PICKERDLG_H__648FC652_D34B_11D2_A255_000000000000__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// PickerDlg.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CPickerDlg dialog
class CPickerDlg : public CDialog
{
// Construction
public:
CPickerDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CPickerDlg)
enum { IDD = IDD_PICKBROWSER };
CListBox m_lbPicker;
//}}AFX_DATA
CLSID m_clsid;
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CPickerDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CPickerDlg)
afx_msg void OnOk();
virtual BOOL OnInitDialog();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_PICKERDLG_H__648FC652_D34B_11D2_A255_000000000000__INCLUDED_)

View File

@ -28,9 +28,23 @@ extern CComModule _Module;
#include <atlctl.h>
#include <exdisp.h>
#include <mshtml.h>
#include <string>
#include <vector>
#include <list>
// Define some string classes
typedef std::basic_string<TCHAR> tstring;
#include "..\..\BrowserDiagnostics.h"
#include "..\..\PropertyList.h"
#include "..\..\PropertyBag.h"
#include "..\..\ControlSiteIPFrame.h"
#include "..\..\ControlSite.h"
#include "Tests.h"
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

View File

@ -0,0 +1,121 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#include "stdafx.h"
TestResult __cdecl tstDocument(BrowserInfo *pInfo)
{
CIPtr(IHTMLDocument2) cpDocElement;
pInfo->GetDocument(&cpDocElement);
if (cpDocElement == NULL)
{
return trFailed;
}
return trPassed;
}
TestResult __cdecl tstTesters(BrowserInfo *pInfo)
{
AfxMessageBox("Test architecture is reasonably sane!");
return trPassed;
}
TestResult __cdecl tstControlActive(BrowserInfo *pInfo)
{
CControlSiteInstance *pControlSite = pInfo->pControlSite;
if (pControlSite == NULL || !pControlSite->IsInPlaceActive())
{
return trFailed;
}
return trPassed;
}
TestResult __cdecl tstIWebBrowser(BrowserInfo *pInfo)
{
if (pInfo->pIUnknown == NULL)
{
return trFailed;
}
IWebBrowser *pIWebBrowser = NULL;
pInfo->pIUnknown->QueryInterface(IID_IWebBrowser, (void **) &pIWebBrowser);
if (pIWebBrowser)
{
pIWebBrowser->Release();
return trPassed;
}
return trFailed;
}
TestResult __cdecl tstIWebBrowser2(BrowserInfo *pInfo)
{
if (pInfo->pIUnknown == NULL)
{
return trFailed;
}
IWebBrowser2 *pIWebBrowser = NULL;
pInfo->pIUnknown->QueryInterface(IID_IWebBrowser2, (void **) &pIWebBrowser);
if (pIWebBrowser)
{
pIWebBrowser->Release();
return trPassed;
}
return trFailed;
}
TestResult __cdecl tstIWebBrowserApp(BrowserInfo *pInfo)
{
if (pInfo->pIUnknown == NULL)
{
return trFailed;
}
IWebBrowser2 *pIWebBrowser = NULL;
pInfo->pIUnknown->QueryInterface(IID_IWebBrowserApp, (void **) &pIWebBrowser);
if (pIWebBrowser)
{
pIWebBrowser->Release();
return trPassed;
}
return trFailed;
}
Test aBasic[] =
{
{ _T("Test Tester"), _T("Ensure that the testing architecture is working"), tstTesters },
{ _T("Control basics"), _T("Ensure that the browser control is active"), tstControlActive },
{ _T("IWebBrowser"), _T("Test if control has an IWebBrowser interface"), tstIWebBrowser },
{ _T("IWebBrowser2"), _T("Test if control has an IWebBrowser2 interface"), tstIWebBrowser2 },
{ _T("IWebBrowserApp"), _T("Test if control has an IWebBrowserApp interface"), tstIWebBrowserApp }
};
Test aDHTML[] =
{
{ _T("get_Document"), _T("Test if browser has a top level element"), tstDocument }
};
TestSet aTestSets[] =
{
{ _T("Basic"), _T("Basic sanity tests"), 5, aBasic },
{ _T("Browsing"), _T("Browsing and navigation tests"), 0, NULL },
{ _T("DHTML"), _T("Test the DOM"), 1, aDHTML }
};
int nTestSets = sizeof(aTestSets) / sizeof(aTestSets[0]);

View File

@ -0,0 +1,89 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (the "NPL"); you may not use this file except in
* compliance with the NPL. You may obtain a copy of the NPL at
* http://www.mozilla.org/NPL/
*
* Software distributed under the NPL is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
* for the specific language governing rights and limitations under the
* NPL.
*
* The Initial Developer of this code under the NPL is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
* Reserved.
*/
#ifndef TESTS_H
#define TESTS_H
#define CIPtr(iface) \
CComQIPtr< iface, &IID_ ## iface >
enum TestResult
{
trFailed,
trPassed,
trPartial
};
class BrowserInfo
{
public:
CControlSiteInstance *pControlSite;
IUnknown *pIUnknown;
CLSID clsid;
HRESULT GetWebBrowser(IWebBrowserApp **pWebBrowser)
{
if (pIUnknown == NULL)
{
return E_FAIL;
}
return pIUnknown->QueryInterface(IID_IWebBrowserApp, (void **) pWebBrowser);
}
HRESULT GetDocument(IHTMLDocument2 **pDocument)
{
CIPtr(IWebBrowserApp) cpWebBrowser;
if (FAILED(GetWebBrowser(&cpWebBrowser)))
{
return E_FAIL;
}
CIPtr(IDispatch) cpDispDocument;
cpWebBrowser->get_Document(&cpDispDocument);
if (cpDispDocument == NULL)
{
return E_FAIL;
}
return cpDispDocument->QueryInterface(IID_IHTMLDocument2, (void **) pDocument);
}
};
typedef TestResult (__cdecl *TestProc)(BrowserInfo *pInfo);
struct Test
{
TCHAR *szName;
TCHAR *szDesc;
TestProc pfn;
};
struct TestSet
{
TCHAR *szName;
TCHAR *szDesc;
int nTests;
Test *aTests;
};
extern TestSet aTestSets[];
extern int nTestSets;
#endif

View File

@ -4,6 +4,7 @@
#include "stdafx.h"
#include "cbrowse.h"
#include "CBrowseDlg.h"
#include "PickerDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
@ -61,9 +62,21 @@ BOOL CBrowseApp::InitInstance()
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
int nResponse;
CPickerDlg pickerDlg;
nResponse = pickerDlg.DoModal();
if (nResponse != IDOK)
{
return FALSE;
}
CBrowseDlg dlg;
dlg.m_clsid = pickerDlg.m_clsid;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is

View File

@ -112,9 +112,25 @@ SOURCE=..\..\ControlSite.cpp
# End Source File
# Begin Source File
SOURCE=..\..\ControlSiteIPFrame.cpp
# End Source File
# Begin Source File
SOURCE=.\PickerDlg.cpp
# End Source File
# Begin Source File
SOURCE=..\..\PropertyBag.cpp
# End Source File
# Begin Source File
SOURCE=.\StdAfx.cpp
# ADD CPP /Yc"stdafx.h"
# End Source File
# Begin Source File
SOURCE=.\Tests.cpp
# End Source File
# End Group
# Begin Group "Header Files"
@ -133,12 +149,24 @@ SOURCE=..\..\ControlSite.h
# End Source File
# Begin Source File
SOURCE=..\..\ControlSiteIPFrame.h
# End Source File
# Begin Source File
SOURCE=.\PickerDlg.h
# End Source File
# Begin Source File
SOURCE=.\Resource.h
# End Source File
# Begin Source File
SOURCE=.\StdAfx.h
# End Source File
# Begin Source File
SOURCE=.\Tests.h
# End Source File
# End Group
# Begin Group "Resource Files"
@ -151,6 +179,30 @@ SOURCE=.\res\cbrowse.ico
SOURCE=.\res\cbrowse.rc2
# End Source File
# Begin Source File
SOURCE=.\res\closedfolder.ico
# End Source File
# Begin Source File
SOURCE=.\res\openfold.ico
# End Source File
# Begin Source File
SOURCE=.\res\openfolder.ico
# End Source File
# Begin Source File
SOURCE=.\res\test.ico
# End Source File
# Begin Source File
SOURCE=.\res\testfailed.ico
# End Source File
# Begin Source File
SOURCE=.\res\testpassed.ico
# End Source File
# End Group
# Begin Source File

View File

@ -12,6 +12,30 @@
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Neutral resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
#ifdef _WIN32
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_CLOSEDFOLDER ICON DISCARDABLE "res\\closedfolder.ico"
IDI_OPENFOLDER ICON DISCARDABLE "res\\openfolder.ico"
IDI_TESTPASSED ICON DISCARDABLE "res\\testpassed.ico"
IDI_TESTFAILED ICON DISCARDABLE "res\\testfailed.ico"
#endif // Neutral resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
@ -72,17 +96,30 @@ IDR_MAINFRAME ICON DISCARDABLE "res\\cbrowse.ico"
// Dialog
//
IDD_CBROWSE_DIALOG DIALOGEX 0, 0, 358, 226
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
IDD_CBROWSE_DIALOG DIALOGEX 0, 0, 477, 318
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
EXSTYLE WS_EX_APPWINDOW
CAPTION "CBrowse"
FONT 8, "MS Sans Serif"
BEGIN
RTEXT "Goto &URL:",IDC_STATIC,6,8,35,10
EDITTEXT IDC_URL,47,7,247,12,ES_AUTOHSCROLL
PUSHBUTTON "&Go",IDC_GO,301,7,50,12
CONTROL "",IDC_BROWSER_MARKER,"Static",SS_BLACKFRAME,7,22,344,
196
DEFPUSHBUTTON "&Go",IDC_GO,230,7,25,13
CONTROL "",IDC_BROWSER_MARKER,"Static",SS_BLACKFRAME,7,24,310,
205
PUSHBUTTON "Run",IDC_RUNTEST,325,296,50,14,WS_DISABLED
LISTBOX IDC_LISTMESSAGES,7,247,310,63,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
LTEXT "Messages:",IDC_STATIC,7,233,110,11
CONTROL "Tree1",IDC_TESTLIST,"SysTreeView32",TVS_HASBUTTONS |
TVS_HASLINES | TVS_LINESATROOT | TVS_SHOWSELALWAYS |
WS_BORDER | WS_TABSTOP,330,16,134,222
GROUPBOX "Tests",IDC_STATIC,324,7,146,237
COMBOBOX IDC_URL,45,7,180,52,CBS_DROPDOWNLIST | WS_VSCROLL |
WS_TABSTOP
PUSHBUTTON "<",IDC_BACKWARD,261,7,25,13
PUSHBUTTON ">",IDC_FORWARD,292,7,25,13
GROUPBOX "Test Description",IDC_STATIC,324,246,146,45
LTEXT "",IDC_TESTDESCRIPTION,328,258,137,28
END
@ -140,9 +177,9 @@ BEGIN
IDD_CBROWSE_DIALOG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 351
RIGHTMARGIN, 470
TOPMARGIN, 7
BOTTOMMARGIN, 218
BOTTOMMARGIN, 310
END
END
#endif // APSTUDIO_INVOKED
@ -151,6 +188,77 @@ END
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// English (U.K.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_TEST ICON DISCARDABLE "res\\test.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_PICKBROWSER DIALOG DISCARDABLE 0, 0, 186, 71
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",IDOK,129,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,129,24,50,14
LISTBOX IDC_LISTBROWSER,7,38,115,26,LBS_NOINTEGRALHEIGHT |
WS_VSCROLL | WS_TABSTOP
LTEXT "CBrowse is a test app that exercises the IE browser interface.",
IDC_STATIC,7,7,116,18
LTEXT "Pick the browser to test:",IDC_STATIC,7,28,77,8
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_PICKBROWSER, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 179
TOPMARGIN, 7
BOTTOMMARGIN, 64
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_CHOOSEBROWSER "You must choose a browser control from the list to proceed."
END
#endif // English (U.K.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////

View File

@ -2,19 +2,33 @@
// Microsoft Developer Studio generated include file.
// Used by cbrowse.rc
//
#define IDS_CHOOSEBROWSER 1
#define IDD_CBROWSE_DIALOG 102
#define IDR_MAINFRAME 128
#define IDD_PICKBROWSER 129
#define IDI_CLOSEDFOLDER 130
#define IDI_OPENFOLDER 131
#define IDI_TEST 132
#define IDI_TESTPASSED 133
#define IDI_TESTFAILED 134
#define IDC_URL 1000
#define IDC_GO 1001
#define IDC_BROWSER_MARKER 1002
#define IDC_LISTBROWSER 1003
#define IDC_RUNTEST 1004
#define IDC_LISTMESSAGES 1005
#define IDC_TESTLIST 1006
#define IDC_BACKWARD 1008
#define IDC_FORWARD 1009
#define IDC_TESTDESCRIPTION 1010
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 129
#define _APS_NEXT_RESOURCE_VALUE 135
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1003
#define _APS_NEXT_CONTROL_VALUE 1011
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif