[GME-commit] GMESRC/GME/Console Console.cpp,NONE,1.1 Console.def,NONE,1.1 Console.dsp,NONE,1.1 Console.h,NONE,1.1 Console.ico,NONE,1.1 Console.odl,NONE,1.1 Console.rc,NONE,1.1 ConsoleCtl.bmp,NONE,1.1 ConsoleCtl.cpp,NONE,1.1 ConsoleCtl.h,NONE,1.1 ConsolePpg.cpp,NONE,1.1 ConsolePpg.h,NONE,1.1 HtmlCtrl.cpp,NONE,1.1 HtmlCtrl.h,NONE,1.1 Resource.h,NONE,1.1 StdAfx.cpp,NONE,1.1 StdAfx.h,NONE,1.1

gme-commit at list.isis.vanderbilt.edu gme-commit at list.isis.vanderbilt.edu
Sat Jul 24 02:41:55 CDT 2004


Update of /var/lib/gme/GMESRC/GME/Console
In directory braindrain:/tmp/cvs-serv15124/GME/Console

Added Files:
	Console.cpp Console.def Console.dsp Console.h Console.ico 
	Console.odl Console.rc ConsoleCtl.bmp ConsoleCtl.cpp 
	ConsoleCtl.h ConsolePpg.cpp ConsolePpg.h HtmlCtrl.cpp 
	HtmlCtrl.h Resource.h StdAfx.cpp StdAfx.h 
Log Message:
New ActiveX control added: Console Window

CVS User: volgy

--- NEW FILE: Console.cpp ---
// Console.cpp : Implementation of CConsoleApp and DLL registration.

#include "stdafx.h"
#include "Console.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


CConsoleApp NEAR theApp;

const GUID CDECL BASED_CODE _tlid =
		{ 0x339fd307, 0x717b, 0x4698, { 0xac, 0x13, 0x4a, 0xcc, 0xcf, 0x5d, 0x4c, 0x91 } };
const WORD _wVerMajor = 1;
const WORD _wVerMinor = 0;


////////////////////////////////////////////////////////////////////////////
// CConsoleApp::InitInstance - DLL initialization

BOOL CConsoleApp::InitInstance()
{
	BOOL bInit = COleControlModule::InitInstance();

	if (bInit)
	{
		// TODO: Add your own module initialization code here.
	}

	return bInit;
}


////////////////////////////////////////////////////////////////////////////
// CConsoleApp::ExitInstance - DLL termination

int CConsoleApp::ExitInstance()
{
	// TODO: Add your own module termination code here.

	return COleControlModule::ExitInstance();
}


/////////////////////////////////////////////////////////////////////////////
// DllRegisterServer - Adds entries to the system registry

STDAPI DllRegisterServer(void)
{
	AFX_MANAGE_STATE(_afxModuleAddrThis);

	if (!AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid))
		return ResultFromScode(SELFREG_E_TYPELIB);

	if (!COleObjectFactoryEx::UpdateRegistryAll(TRUE))
		return ResultFromScode(SELFREG_E_CLASS);

	return NOERROR;
}


/////////////////////////////////////////////////////////////////////////////
// DllUnregisterServer - Removes entries from the system registry

STDAPI DllUnregisterServer(void)
{
	AFX_MANAGE_STATE(_afxModuleAddrThis);

	if (!AfxOleUnregisterTypeLib(_tlid, _wVerMajor, _wVerMinor))
		return ResultFromScode(SELFREG_E_TYPELIB);

	if (!COleObjectFactoryEx::UpdateRegistryAll(FALSE))
		return ResultFromScode(SELFREG_E_CLASS);

	return NOERROR;
}

--- NEW FILE: Console.def ---
; Console.def : Declares the module parameters.

LIBRARY      "CONSOLE.OCX"

EXPORTS
	DllCanUnloadNow     @1 PRIVATE
	DllGetClassObject   @2 PRIVATE
	DllRegisterServer   @3 PRIVATE
	DllUnregisterServer @4 PRIVATE

--- NEW FILE: Console.dsp ---
# Microsoft Developer Studio Project File - Name="Console" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **

# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102

CFG=Console - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE 
!MESSAGE NMAKE /f "Console.mak".
!MESSAGE 
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE 
!MESSAGE NMAKE /f "Console.mak" CFG="Console - Win32 Debug"
!MESSAGE 
!MESSAGE Possible choices for configuration are:
!MESSAGE 
!MESSAGE "Console - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "Console - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE 

# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe

!IF  "$(CFG)" == "Console - Win32 Release"

# PROP BASE Use_MFC 2
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Ext "ocx"
# PROP BASE Target_Dir ""
# PROP Use_MFC 2
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Ext "ocx"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "../Common" /I "../Interfaces" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /FR /Yu"stdafx.h" /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /win32
# SUBTRACT MTL /mktyplib203
# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /dll /machine:I386
# ADD LINK32 /nologo /base:"0x61200000" /subsystem:windows /dll /debug /machine:I386
# Begin Custom Build - Registering ActiveX Control...
OutDir=.\Release
TargetPath=.\Release\Console.ocx
InputPath=.\Release\Console.ocx
SOURCE="$(InputPath)"

"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
	regsvr32 /s /c "$(TargetPath)" 
	echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" 
	
# End Custom Build

!ELSEIF  "$(CFG)" == "Console - Win32 Debug"

# PROP BASE Use_MFC 2
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Ext "ocx"
# PROP BASE Target_Dir ""
# PROP Use_MFC 2
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Ext "ocx"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../Common" /I "../Interfaces" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_WINDLL" /D "_AFXDLL" /D "_MBCS" /D "_USRDLL" /FR /Yu"stdafx.h" /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /win32
# SUBTRACT MTL /mktyplib203
# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 /nologo /base:"0x61200000" /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
# Begin Custom Build - Registering ActiveX Control...
OutDir=.\Debug
TargetPath=.\Debug\Console.ocx
InputPath=.\Debug\Console.ocx
SOURCE="$(InputPath)"

"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
	regsvr32 /s /c "$(TargetPath)" 
	echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" 
	
# End Custom Build

!ENDIF 

# Begin Target

# Name "Console - Win32 Release"
# Name "Console - Win32 Debug"
# Begin Group "Source Files"

# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File

SOURCE=..\Common\CommonError.cpp
# End Source File
# Begin Source File

SOURCE=..\Common\CommonMfc.cpp
# End Source File
# Begin Source File

SOURCE=..\Common\CommonSmart.cpp
# End Source File
# Begin Source File

SOURCE=.\Console.cpp
# End Source File
# Begin Source File

SOURCE=.\Console.def
# End Source File
# Begin Source File

SOURCE=.\Console.odl
# ADD MTL /h "Console_i.h" /iid "Console_i.c" /Oicf
# End Source File
# Begin Source File

SOURCE=.\Console.rc
# End Source File
# Begin Source File

SOURCE=.\ConsoleCtl.cpp
# End Source File
# Begin Source File

SOURCE=.\ConsolePpg.cpp
# End Source File
# Begin Source File

SOURCE=.\HtmlCtrl.cpp
# End Source File
# Begin Source File

SOURCE=.\StdAfx.cpp
# ADD CPP /Yc"stdafx.h"
# End Source File
# End Group
# Begin Group "Header Files"

# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File

SOURCE=.\Console.h
# End Source File
# Begin Source File

SOURCE=.\ConsoleCtl.h
# End Source File
# Begin Source File

SOURCE=.\ConsolePpg.h
# End Source File
# Begin Source File

SOURCE=.\HtmlCtrl.h
# End Source File
# Begin Source File

SOURCE=.\Resource.h
# End Source File
# Begin Source File

SOURCE=.\StdAfx.h
# End Source File
# End Group
# Begin Group "Resource Files"

# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File

SOURCE=.\Console.ico
# End Source File
# Begin Source File

SOURCE=.\ConsoleCtl.bmp
# End Source File
# Begin Source File

SOURCE=.\res\error.gif
# End Source File
# Begin Source File

SOURCE=.\res\info.gif
# End Source File
# Begin Source File

SOURCE=.\res\normal.gif
# End Source File
# Begin Source File

SOURCE=.\res\warning.gif
# End Source File
# End Group
# Begin Source File

SOURCE=.\res\blank.html
# End Source File
# Begin Source File

SOURCE=.\ReadMe.txt
# End Source File
# End Target
# End Project

--- NEW FILE: Console.h ---
#if !defined(AFX_CONSOLE_H__25F84967_DCC3_4EF7_9E42_402398CE7C40__INCLUDED_)
#define AFX_CONSOLE_H__25F84967_DCC3_4EF7_9E42_402398CE7C40__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

// Console.h : main header file for CONSOLE.DLL

#if !defined( __AFXCTL_H__ )
	#error include 'afxctl.h' before including this file
#endif

#include "resource.h"       // main symbols

/////////////////////////////////////////////////////////////////////////////
// CConsoleApp : See Console.cpp for implementation.

class CConsoleApp : public COleControlModule
{
public:
	BOOL InitInstance();
	int ExitInstance();
};

extern const GUID CDECL _tlid;
extern const WORD _wVerMajor;
extern const WORD _wVerMinor;

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CONSOLE_H__25F84967_DCC3_4EF7_9E42_402398CE7C40__INCLUDED)

--- NEW FILE: Console.ico ---
(This appears to be a binary file; contents omitted.)

--- NEW FILE: Console.odl ---
// Console.odl : type library source for ActiveX Control project.

// This file will be processed by the Make Type Library (mktyplib) tool to
// produce the type library (Console.tlb) that will become a resource in
// Console.ocx.

#include <olectl.h>
#include <idispids.h>



[ uuid(339FD307-717B-4698-AC13-4ACCCF5D4C91), version(1.0),
  helpfile("Console.hlp"),
  helpstring("Console ActiveX Control module"),
  control ]
library CONSOLELib
{
	importlib(STDOLE_TLB);
	importlib(STDTYPE_TLB);

	//  Primary dispatch interface for CConsoleCtrl

	[ uuid(71655C2B-D6DD-4345-B273-5BD1422370CB),
	  helpstring("Dispatch interface for GME Console Control"), hidden ]
	dispinterface _DConsole
	{
		properties:
			// NOTE - ClassWizard will maintain property information here.
			//    Use extreme caution when editing this section.
			//{{AFX_ODL_PROP(CConsoleCtrl)
			[id(1)] BSTR Contents;
			[id(0)] BSTR _Contents;
			//}}AFX_ODL_PROP

		methods:
			// NOTE - ClassWizard will maintain method information here.
			//    Use extreme caution when editing this section.
			//{{AFX_ODL_METHOD(CConsoleCtrl)
			[id(2)] void Message(BSTR str, short type);
			[id(3)] void Clear();
			//}}AFX_ODL_METHOD

			[id(DISPID_ABOUTBOX)] void AboutBox();
	};

	//  Event dispatch interface for CConsoleCtrl

	[ uuid(39F56B4C-E7DB-4A54-868C-CAA7EBE23233),
	  helpstring("Event interface for GME Console Control") ]
	dispinterface _DConsoleEvents
	{
		properties:
			//  Event interface has no properties

		methods:
			// NOTE - ClassWizard will maintain event information here.
			//    Use extreme caution when editing this section.
			//{{AFX_ODL_EVENT(CConsoleCtrl)
			[id(1)] void ClickMGAID(BSTR objid);
			//}}AFX_ODL_EVENT
	};

	//  Class information for CConsoleCtrl

	[ uuid(E4EB8324-13F0-46CB-96A3-F539DF7F79D4),
	  helpstring("GME Console Control"), control ]
	coclass Console
	{
		[default] dispinterface _DConsole;
		[default, source] dispinterface _DConsoleEvents;
	};


	//{{AFX_APPEND_ODL}}
	//}}AFX_APPEND_ODL}}
};

--- NEW FILE: Console.rc ---
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE DISCARDABLE 
BEGIN
    "resource.h\0"
END

2 TEXTINCLUDE DISCARDABLE 
BEGIN
    "#include ""afxres.h""\r\n"
    "\0"
END

3 TEXTINCLUDE DISCARDABLE 
BEGIN
    "1 TYPELIB ""Console.tlb""\r\n"
    "\0"
END

#endif    // APSTUDIO_INVOKED


#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//

VS_VERSION_INFO VERSIONINFO
 FILEVERSION 1,0,0,1
 PRODUCTVERSION 1,0,0,1
 FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x4L
 FILETYPE 0x2L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904B0"
        BEGIN
            VALUE "CompanyName", "Budapest University of Technology and Economics\0"
            VALUE "FileDescription", "Console ActiveX Control Module\0"
            VALUE "FileVersion", "1, 0, 0, 1\0"
            VALUE "InternalName", "Console\0"
            VALUE "LegalCopyright", "Copyright (C) 2004\0"
            VALUE "LegalTrademarks", "\0"
            VALUE "OriginalFilename", "Console.OCX\0"
            VALUE "ProductName", "Console ActiveX Control Module\0"
            VALUE "ProductVersion", "1, 0, 0, 1\0"
            VALUE "OLESelfRegister", "\0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1200
    END
END

#endif    // !_MAC


/////////////////////////////////////////////////////////////////////////////
//
// Icon
//

// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ABOUTDLL            ICON    DISCARDABLE     "Console.ico"

/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//

IDB_CONSOLE             BITMAP  DISCARDABLE     "ConsoleCtl.bmp"

/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//

IDD_ABOUTBOX_CONSOLE DIALOG DISCARDABLE  34, 22, 260, 55
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About GME Console Control"
FONT 8, "MS Sans Serif"
BEGIN
    ICON            IDI_ABOUTDLL,IDC_STATIC,10,10,20,20
    LTEXT           "GME Console Control, Version 1.0",IDC_STATIC,40,10,170,
                    8
    LTEXT           "Copyright (C) 2004, Vanderbilt University, ISIS",
                    IDC_STATIC,40,25,170,8
    DEFPUSHBUTTON   "OK",IDOK,221,7,32,14,WS_GROUP
END

IDD_PROPPAGE_CONSOLE DIALOG DISCARDABLE  0, 0, 250, 62
STYLE WS_CHILD
FONT 8, "MS Sans Serif"
BEGIN
    CTEXT           "No properties are available.",IDC_STATIC,7,25,229,16
END


/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE 
BEGIN
    IDD_ABOUTBOX_CONSOLE, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 253
        TOPMARGIN, 7
        BOTTOMMARGIN, 48
    END

    IDD_PROPPAGE_CONSOLE, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 243
        TOPMARGIN, 7
        BOTTOMMARGIN, 55
    END
END
#endif    // APSTUDIO_INVOKED


/////////////////////////////////////////////////////////////////////////////
//
// HTML
//

BLANK.HTML              HTML    DISCARDABLE     "res\\blank.html"
WARNING.GIF             HTML    DISCARDABLE     "res\\warning.gif"
ERROR.GIF               HTML    DISCARDABLE     "res\\error.gif"
INFO.GIF                HTML    DISCARDABLE     "res\\info.gif"
NORMAL.GIF              HTML    DISCARDABLE     "res\\normal.gif"

/////////////////////////////////////////////////////////////////////////////
//
// String Table
//

STRINGTABLE DISCARDABLE 
BEGIN
    IDS_CONSOLE             "GME Console Control"
    IDS_CONSOLE_PPG         "GME Console Property Page"
END

STRINGTABLE DISCARDABLE 
BEGIN
    IDS_CONSOLE_PPG_CAPTION "General"
END

#endif    // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
1 TYPELIB "Console.tlb"

/////////////////////////////////////////////////////////////////////////////
#endif    // not APSTUDIO_INVOKED


--- NEW FILE: ConsoleCtl.bmp ---
(This appears to be a binary file; contents omitted.)

--- NEW FILE: ConsoleCtl.cpp ---
// ConsoleCtl.cpp : Implementation of the CConsoleCtrl ActiveX Control class.

#include "stdafx.h"
#include "Console.h"
#include "Console_i.h"
#include "ConsoleCtl.h"
#include "ConsolePpg.h"
#include "GME.h"
#include <mshtml.h>         //IWeb objects
#include <limits.h>



#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


IMPLEMENT_DYNCREATE(CConsoleCtrl, COleControl)


/////////////////////////////////////////////////////////////////////////////
// Message map

BEGIN_MESSAGE_MAP(CConsoleCtrl, COleControl)
	//{{AFX_MSG_MAP(CConsoleCtrl)
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
	ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties)
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// Dispatch map

BEGIN_DISPATCH_MAP(CConsoleCtrl, COleControl)
	//{{AFX_DISPATCH_MAP(CConsoleCtrl)
	DISP_PROPERTY_EX(CConsoleCtrl, "Contents", GetContents, SetContents, VT_BSTR)
	DISP_FUNCTION(CConsoleCtrl, "Message", Message, VT_EMPTY, VTS_BSTR VTS_I2)
	DISP_FUNCTION(CConsoleCtrl, "Clear", Clear, VT_EMPTY, VTS_NONE)
	DISP_DEFVALUE(CConsoleCtrl, "Contents")
	//}}AFX_DISPATCH_MAP
	DISP_FUNCTION_ID(CConsoleCtrl, "AboutBox", DISPID_ABOUTBOX, AboutBox, VT_EMPTY, VTS_NONE)
END_DISPATCH_MAP()


/////////////////////////////////////////////////////////////////////////////
// Event map

BEGIN_EVENT_MAP(CConsoleCtrl, COleControl)
	//{{AFX_EVENT_MAP(CConsoleCtrl)
	EVENT_CUSTOM("ClickMGAID", FireClickMGAID, VTS_BSTR)
	//}}AFX_EVENT_MAP
END_EVENT_MAP()


/////////////////////////////////////////////////////////////////////////////
// Property pages

// TODO: Add more property pages as needed.  Remember to increase the count!
BEGIN_PROPPAGEIDS(CConsoleCtrl, 1)
	PROPPAGEID(CConsolePropPage::guid)
END_PROPPAGEIDS(CConsoleCtrl)


/////////////////////////////////////////////////////////////////////////////
// Initialize class factory and guid

IMPLEMENT_OLECREATE_EX(CConsoleCtrl, "GME.Console.1",
	0xe4eb8324, 0x13f0, 0x46cb, 0x96, 0xa3, 0xf5, 0x39, 0xdf, 0x7f, 0x79, 0xd4)


/////////////////////////////////////////////////////////////////////////////
// Type library ID and version

IMPLEMENT_OLETYPELIB(CConsoleCtrl, _tlid, _wVerMajor, _wVerMinor)


/////////////////////////////////////////////////////////////////////////////
// Interface IDs

const IID BASED_CODE IID_DConsole =
		{ 0x71655c2b, 0xd6dd, 0x4345, { 0xb2, 0x73, 0x5b, 0xd1, 0x42, 0x23, 0x70, 0xcb } };
const IID BASED_CODE IID_DConsoleEvents =
		{ 0x39f56b4c, 0xe7db, 0x4a54, { 0x86, 0x8c, 0xca, 0xa7, 0xeb, 0xe2, 0x32, 0x33 } };


/////////////////////////////////////////////////////////////////////////////
// Control type information

static const DWORD BASED_CODE _dwConsoleOleMisc =
	OLEMISC_ACTIVATEWHENVISIBLE |
	OLEMISC_SETCLIENTSITEFIRST |
	OLEMISC_INSIDEOUT |
	OLEMISC_CANTLINKINSIDE |
	OLEMISC_RECOMPOSEONRESIZE;

IMPLEMENT_OLECTLTYPE(CConsoleCtrl, IDS_CONSOLE, _dwConsoleOleMisc)


/////////////////////////////////////////////////////////////////////////////
// CConsoleCtrl::CConsoleCtrlFactory::UpdateRegistry -
// Adds or removes system registry entries for CConsoleCtrl

BOOL CConsoleCtrl::CConsoleCtrlFactory::UpdateRegistry(BOOL bRegister)
{
	// TODO: Verify that your control follows apartment-model threading rules.
	// Refer to MFC TechNote 64 for more information.
	// If your control does not conform to the apartment-model rules, then
	// you must modify the code below, changing the 6th parameter from
	// afxRegApartmentThreading to 0.

	if (bRegister)
		return AfxOleRegisterControlClass(
			AfxGetInstanceHandle(),
			m_clsid,
			m_lpszProgID,
			IDS_CONSOLE,
			IDB_CONSOLE,
			afxRegApartmentThreading,
			_dwConsoleOleMisc,
			_tlid,
			_wVerMajor,
			_wVerMinor);
	else
		return AfxOleUnregisterClass(m_clsid, m_lpszProgID);
}


/////////////////////////////////////////////////////////////////////////////
// CConsoleCtrl::CConsoleCtrl - Constructor

CConsoleCtrl::CConsoleCtrl()
{
	InitializeIIDs(&IID_DConsole, &IID_DConsoleEvents);

	// TODO: Initialize your control's instance data here.
}


/////////////////////////////////////////////////////////////////////////////
// CConsoleCtrl::~CConsoleCtrl - Destructor

CConsoleCtrl::~CConsoleCtrl()
{
	// TODO: Cleanup your control's instance data here.
}


/////////////////////////////////////////////////////////////////////////////
// CConsoleCtrl::OnDraw - Drawing function

void CConsoleCtrl::OnDraw(
			CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
	if (m_browser.GetSafeHwnd()) {
		m_browser.MoveWindow(rcBounds, TRUE);
	}
	else {
		AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
		CBrush brush (RGB(255,255,255));
		pdc->FillRect (rcBounds, &brush);

		CRect edge(rcBounds);
		pdc->DrawEdge(&edge, EDGE_BUMP, BF_RECT);
		
		CString label("GME Console OCX");

		BITMAP bm;
		CBitmap bitmap;
		bitmap.LoadBitmap(IDB_CONSOLE);
		bitmap.GetBitmap(&bm);
		CSize size(bm.bmWidth, bm.bmHeight);
		pdc->DPtoLP(&size);
		CPoint org(0,0);
		pdc->DPtoLP(&org);
		CPoint pos(rcBounds.Width()/2, rcBounds.Height()/2 - (pdc->GetTextExtent(label).cy) );
		CDC dcMem;
		dcMem.CreateCompatibleDC(pdc);
		CBitmap *oldbitmap = dcMem.SelectObject(&bitmap);
		dcMem.SetMapMode (pdc->GetMapMode());
		pdc->BitBlt(pos.x, pos.y, size.cx, size.cy, &dcMem, org.x, org.y, SRCCOPY);
		dcMem.SelectObject(oldbitmap);
		
		pdc->SetTextAlign(TA_CENTER);
		pdc->TextOut(rcBounds.Width()/2, rcBounds.Height()/2, CString("ObjectInspector ActiveX Control"));
	}
}


/////////////////////////////////////////////////////////////////////////////
// CConsoleCtrl::DoPropExchange - Persistence support

void CConsoleCtrl::DoPropExchange(CPropExchange* pPX)
{
	ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
	COleControl::DoPropExchange(pPX);

	// TODO: Call PX_ functions for each persistent custom property.

}


/////////////////////////////////////////////////////////////////////////////
// CConsoleCtrl::OnResetState - Reset control to default state

void CConsoleCtrl::OnResetState()
{
	COleControl::OnResetState();  // Resets defaults found in DoPropExchange

	// TODO: Reset any other control state here.
}


/////////////////////////////////////////////////////////////////////////////
// CConsoleCtrl::AboutBox - Display an "About" box to the user

void CConsoleCtrl::AboutBox()
{
	CDialog dlgAbout(IDD_ABOUTBOX_CONSOLE);
	dlgAbout.DoModal();
}


/////////////////////////////////////////////////////////////////////////////
// CConsoleCtrl message handlers

int CConsoleCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (COleControl::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	CRect rect(0,0,0,0);
	m_browser.Create(NULL, 
		_T("GME Console"), 
		(WS_VISIBLE | WS_CHILD), 
		rect, 
		this, 
		IDD_BROWSER);

	m_browser.LoadFromResource("BLANK.HTML");


	return 0;
}


static const TCHAR* icons[] = {
	_T("NORMAL.GIF"),
	_T("INFO.GIF"),
	_T("WARNING.GIF"),
	_T("ERROR.GIF")
};

void CConsoleCtrl::Message(LPCTSTR str, short type) 
{
	if (type < MSG_NORMAL || type > MSG_ERROR) {
		type = MSG_ERROR;
	}
    CComPtr<IDispatch> pDispatch = m_browser.GetHtmlDocument();
    if( pDispatch != NULL )
    {
		CString line;
		line.Format("<IMG SRC=\"%s\" ALIGN=MIDDLE > %s<BR>", icons[type], str);
		try {
			CComPtr<IHTMLDocument2> pHtmlDoc;
			COMTHROW(pDispatch.QueryInterface(&pHtmlDoc));
			ASSERT(pHtmlDoc != NULL);
			CComPtr<IHTMLElement> pElement;
			COMTHROW(pHtmlDoc->get_body( &pElement ));
			ASSERT(pElement != NULL);
			CComBSTR where("BeforeEnd");
			CComBSTR text(line);
			COMTHROW(pElement->insertAdjacentHTML(where, text));
			
			// Scroll
			CComPtr<IHTMLWindow2> parentWindow;
			COMTHROW(pHtmlDoc->get_parentWindow( &parentWindow ));
			ASSERT(parentWindow != NULL);
			COMTHROW(parentWindow->scrollTo( 0,  LONG_MAX));
		}
		catch (hresult_exception &)
		{
		}
    }

}

void CConsoleCtrl::Clear() 
{
	m_browser.LoadFromResource("BLANK.HTML");
}

BSTR CConsoleCtrl::GetContents() 
{
	CComBSTR contents;
	
    CComPtr<IDispatch> pDispatch = m_browser.GetHtmlDocument();
    if( pDispatch != NULL )
    {
		try {
			CComPtr<IHTMLDocument2> pHtmlDoc;
			COMTHROW(pDispatch.QueryInterface(&pHtmlDoc));
			ASSERT(pHtmlDoc != NULL);
			CComPtr<IHTMLElement> pElement;
			COMTHROW(pHtmlDoc->get_body( &pElement ));
			ASSERT(pElement != NULL);
			COMTHROW(pElement->get_innerHTML(&contents));
		}
		catch (hresult_exception &)
		{
		}
    }

	return contents;
}

void CConsoleCtrl::SetContents(LPCTSTR lpszNewValue) 
{
	CComBSTR contents(lpszNewValue);
	
    CComPtr<IDispatch> pDispatch = m_browser.GetHtmlDocument();
    if( pDispatch != NULL )
    {
		try {
			CComPtr<IHTMLDocument2> pHtmlDoc;
			COMTHROW(pDispatch.QueryInterface(&pHtmlDoc));
			ASSERT(pHtmlDoc != NULL);
			CComPtr<IHTMLElement> pElement;
			COMTHROW(pHtmlDoc->get_body( &pElement ));
			ASSERT(pElement != NULL);
			COMTHROW(pElement->put_innerHTML(contents));
		}
		catch (hresult_exception &)
		{
		}
    }

	SetModifiedFlag();
}

--- NEW FILE: ConsoleCtl.h ---
#if !defined(AFX_CONSOLECTL_H__06A2BBCD_6B16_4C6F_A339_6685CEC1DF65__INCLUDED_)
#define AFX_CONSOLECTL_H__06A2BBCD_6B16_4C6F_A339_6685CEC1DF65__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "HtmlCtrl.h"

// ConsoleCtl.h : Declaration of the CConsoleCtrl ActiveX Control class.

/////////////////////////////////////////////////////////////////////////////
// CConsoleCtrl : See ConsoleCtl.cpp for implementation.

class CConsoleCtrl : public COleControl
{
	friend class CHtmlCtrl;
	DECLARE_DYNCREATE(CConsoleCtrl)

// Constructor
public:
	CConsoleCtrl();

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CConsoleCtrl)
	public:
	virtual void OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid);
	virtual void DoPropExchange(CPropExchange* pPX);
	virtual void OnResetState();
	//}}AFX_VIRTUAL

// Implementation
protected:
	~CConsoleCtrl();

	CHtmlCtrl   m_browser;

	DECLARE_OLECREATE_EX(CConsoleCtrl)    // Class factory and guid
	DECLARE_OLETYPELIB(CConsoleCtrl)      // GetTypeInfo
	DECLARE_PROPPAGEIDS(CConsoleCtrl)     // Property page IDs
	DECLARE_OLECTLTYPE(CConsoleCtrl)		// Type name and misc status

// Message maps
	//{{AFX_MSG(CConsoleCtrl)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

// Dispatch maps
	//{{AFX_DISPATCH(CConsoleCtrl)
	afx_msg BSTR GetContents();
	afx_msg void SetContents(LPCTSTR lpszNewValue);
	afx_msg void Message(LPCTSTR str, short type);
	afx_msg void Clear();
	//}}AFX_DISPATCH
	DECLARE_DISPATCH_MAP()

	afx_msg void AboutBox();

// Event maps
	//{{AFX_EVENT(CConsoleCtrl)
	void FireClickMGAID(LPCTSTR objid)
		{FireEvent(eventidClickMGAID,EVENT_PARAM(VTS_BSTR), objid);}
	//}}AFX_EVENT
	DECLARE_EVENT_MAP()

// Dispatch and event IDs
public:
	enum {
	//{{AFX_DISP_ID(CConsoleCtrl)
	dispidContents = 1L,
	dispidMessage = 2L,
	dispidClear = 3L,
	eventidClickMGAID = 1L,
	//}}AFX_DISP_ID
	};
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CONSOLECTL_H__06A2BBCD_6B16_4C6F_A339_6685CEC1DF65__INCLUDED)

--- NEW FILE: ConsolePpg.cpp ---
// ConsolePpg.cpp : Implementation of the CConsolePropPage property page class.

#include "stdafx.h"
#include "Console.h"
#include "ConsolePpg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


IMPLEMENT_DYNCREATE(CConsolePropPage, COlePropertyPage)


/////////////////////////////////////////////////////////////////////////////
// Message map

BEGIN_MESSAGE_MAP(CConsolePropPage, COlePropertyPage)
	//{{AFX_MSG_MAP(CConsolePropPage)
	// NOTE - ClassWizard will add and remove message map entries
	//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// Initialize class factory and guid

IMPLEMENT_OLECREATE_EX(CConsolePropPage, "GME.ConsolePropPage.1",
	0xa9b2b82a, 0xb753, 0x4fb0, 0x8f, 0xb, 0x36, 0x61, 0xbc, 0x30, 0x70, 0x53)


/////////////////////////////////////////////////////////////////////////////
// CConsolePropPage::CConsolePropPageFactory::UpdateRegistry -
// Adds or removes system registry entries for CConsolePropPage

BOOL CConsolePropPage::CConsolePropPageFactory::UpdateRegistry(BOOL bRegister)
{
	if (bRegister)
		return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(),
			m_clsid, IDS_CONSOLE_PPG);
	else
		return AfxOleUnregisterClass(m_clsid, NULL);
}


/////////////////////////////////////////////////////////////////////////////
// CConsolePropPage::CConsolePropPage - Constructor

CConsolePropPage::CConsolePropPage() :
	COlePropertyPage(IDD, IDS_CONSOLE_PPG_CAPTION)
{
	//{{AFX_DATA_INIT(CConsolePropPage)
	// NOTE: ClassWizard will add member initialization here
	//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_DATA_INIT
}


/////////////////////////////////////////////////////////////////////////////
// CConsolePropPage::DoDataExchange - Moves data between page and properties

void CConsolePropPage::DoDataExchange(CDataExchange* pDX)
{
	//{{AFX_DATA_MAP(CConsolePropPage)
	// NOTE: ClassWizard will add DDP, DDX, and DDV calls here
	//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_DATA_MAP
	DDP_PostProcessing(pDX);
}


/////////////////////////////////////////////////////////////////////////////
// CConsolePropPage message handlers

--- NEW FILE: ConsolePpg.h ---
#if !defined(AFX_CONSOLEPPG_H__C9DDB515_3A8D_436A_9D77_B16D256C638D__INCLUDED_)
#define AFX_CONSOLEPPG_H__C9DDB515_3A8D_436A_9D77_B16D256C638D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

// ConsolePpg.h : Declaration of the CConsolePropPage property page class.

////////////////////////////////////////////////////////////////////////////
// CConsolePropPage : See ConsolePpg.cpp.cpp for implementation.

class CConsolePropPage : public COlePropertyPage
{
	DECLARE_DYNCREATE(CConsolePropPage)
	DECLARE_OLECREATE_EX(CConsolePropPage)

// Constructor
public:
	CConsolePropPage();

// Dialog Data
	//{{AFX_DATA(CConsolePropPage)
	enum { IDD = IDD_PROPPAGE_CONSOLE };
		// NOTE - ClassWizard will add data members here.
		//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_DATA

// Implementation
protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

// Message maps
protected:
	//{{AFX_MSG(CConsolePropPage)
		// NOTE - ClassWizard will add and remove member functions here.
		//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CONSOLEPPG_H__C9DDB515_3A8D_436A_9D77_B16D256C638D__INCLUDED)

--- NEW FILE: HtmlCtrl.cpp ---
// HtmlCtrl.cpp : implementation file
//

#include "stdafx.h"
#include "console.h"
#include "HtmlCtrl.h"
#include "ConsoleCtl.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CHtmlCtrl

IMPLEMENT_DYNAMIC(CHtmlCtrl, CHtmlView)


CHtmlCtrl::CHtmlCtrl()
{
	//{{AFX_DATA_INIT(CHtmlCtrl)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CHtmlCtrl::DoDataExchange(CDataExchange* pDX)
{
	CHtmlView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CHtmlCtrl)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CHtmlCtrl, CHtmlView)
	//{{AFX_MSG_MAP(CHtmlCtrl)
	ON_WM_DESTROY()
	ON_WM_MOUSEACTIVATE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CHtmlCtrl diagnostics

#ifdef _DEBUG
void CHtmlCtrl::AssertValid() const
{
	CHtmlView::AssertValid();
}

void CHtmlCtrl::Dump(CDumpContext& dc) const
{
	CHtmlView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CHtmlCtrl message handlers

//////////////////
// Create control in same position as an existing static control with
// the same ID (could be any kind of control, really)
//
BOOL CHtmlCtrl::CreateFromStatic(UINT nID, CWnd* pParent)
{
	CStatic wndStatic;
	if (!wndStatic.SubclassDlgItem(nID, pParent))
		return FALSE;

	// Get static control rect, convert to parent's client coords.
	CRect rc;
	wndStatic.GetWindowRect(&rc);
	pParent->ScreenToClient(&rc);
	wndStatic.DestroyWindow();

	// create HTML control (CHtmlView)
	return Create(NULL,                  // class name
		NULL,                             // title
		(WS_CHILD | WS_VISIBLE ),         // style
		rc,                               // rectangle
		pParent,                          // parent
		nID,                              // control ID
		NULL);                            // frame/doc context not used
}

////////////////
// Override to avoid CView stuff that assumes a frame.
//
void CHtmlCtrl::OnDestroy()
{
	// This is probably unecessary since ~CHtmlView does it, but
	// safer to mimic CHtmlView::OnDestroy.
	if (m_pBrowserApp) {
		m_pBrowserApp->Release();
		m_pBrowserApp = NULL;
	}
	CWnd::OnDestroy(); // bypass CView doc/frame stuff
}

////////////////
// Override to avoid CView stuff that assumes a frame.
//
int CHtmlCtrl::OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT msg)
{
	// bypass CView doc/frame stuff
	return CWnd::OnMouseActivate(pDesktopWnd, nHitTest, msg);
}

//////////////////
// Override navigation handler to pass to "app:" links to virtual handler.
// Cancels the navigation in the browser, since app: is a pseudo-protocol.
//
void CHtmlCtrl::OnBeforeNavigate2( LPCTSTR lpszURL,
	DWORD nFlags,
	LPCTSTR lpszTargetFrameName,
	CByteArray& baPostedData,
	LPCTSTR lpszHeaders,
	BOOL* pbCancel )
{
	const char MGA_PROTOCOL[] = "mga:";
	int len = _tcslen(MGA_PROTOCOL);
	if (_tcsnicmp(lpszURL, MGA_PROTOCOL, len)==0) {
		OnMgaURL(lpszURL + len);
		*pbCancel = TRUE;
	}
}

void CHtmlCtrl::OnMgaURL(LPCTSTR lpszWhere)
{
	CWnd *wnd = GetParent();
	if (wnd->IsKindOf(RUNTIME_CLASS(CConsoleCtrl))) {
		CConsoleCtrl *ctrl = STATIC_DOWNCAST(CConsoleCtrl, wnd);
		ctrl->FireClickMGAID(lpszWhere);
	}
}

--- NEW FILE: HtmlCtrl.h ---
#if !defined(AFX_HTMLCTRL_H__24472601_5F31_49E1_A4BC_D5855C8786D7__INCLUDED_)
#define AFX_HTMLCTRL_H__24472601_5F31_49E1_A4BC_D5855C8786D7__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// HtmlCtrl.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CHtmlCtrl html view

#ifndef __AFXEXT_H__
#include <afxext.h>
#endif
#include <afxhtml.h>

class CConsoleCtl;

class CHtmlCtrl : public CHtmlView
{
public:
	CHtmlCtrl();
	~CHtmlCtrl() { }

// html Data
public:
	//{{AFX_DATA(CHtmlCtrl)
		// NOTE: the ClassWizard will add data members here
	//}}AFX_DATA

// Attributes
public:

// Operations
public:
	BOOL CreateFromStatic(UINT nID, CWnd* pParent);
 
	// Normally, CHtmlView destroys itself in PostNcDestroy,
    // but we don't want to do that for a control since a control
    // is usually implemented as a stack object in a dialog.
    //
    virtual void PostNcDestroy() {  }


// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CHtmlCtrl)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

    // override to trap "app:" pseudo protocol
    virtual void OnBeforeNavigate2( LPCTSTR lpszURL,
       DWORD nFlags,
       LPCTSTR lpszTargetFrameName,
       CByteArray& baPostedData,
       LPCTSTR lpszHeaders,
       BOOL* pbCancel );

	// override to handle links to "app:mumble...". lpszWhere will be "mumble"
    virtual void OnMgaURL(LPCTSTR lpszWhere);




// Implementation
protected:

#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

	const CConsoleCtl *m_control;

	// Generated message map functions
	//{{AFX_MSG(CHtmlCtrl)
	afx_msg void OnDestroy();
	afx_msg int  OnMouseActivate(CWnd* pDesktopWnd,UINT nHitTest,UINT message);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
	DECLARE_DYNAMIC(CHtmlCtrl)
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_HTMLCTRL_H__24472601_5F31_49E1_A4BC_D5855C8786D7__INCLUDED_)

--- NEW FILE: Resource.h ---
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by Console.rc
//
#define IDS_CONSOLE                     1
#define IDD_ABOUTBOX_CONSOLE            1
#define IDB_CONSOLE                     1
#define IDI_ABOUTDLL                    1
#define IDS_CONSOLE_PPG                 2
#define IDD_BROWSER                     101
#define IDS_CONSOLE_PPG_CAPTION         200
#define IDD_PROPPAGE_CONSOLE            200

// Next default values for new objects
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        207
#define _APS_NEXT_COMMAND_VALUE         32768
#define _APS_NEXT_CONTROL_VALUE         201
#define _APS_NEXT_SYMED_VALUE           102
#endif
#endif

--- NEW FILE: StdAfx.cpp ---
// stdafx.cpp : source file that includes just the standard includes
//  stdafx.pch will be the pre-compiled header
//  stdafx.obj will contain the pre-compiled type information

#include "stdafx.h"

--- NEW FILE: StdAfx.h ---
#if !defined(AFX_STDAFX_H__237E732C_5B4E_4D36_94D1_25CD9EEC33AB__INCLUDED_)
#define AFX_STDAFX_H__237E732C_5B4E_4D36_94D1_25CD9EEC33AB__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

// stdafx.h : include file for standard system include files,
//      or project specific include files that are used frequently,
//      but are changed infrequently

#define VC_EXTRALEAN		// Exclude rarely-used stuff from Windows headers

#include <afxctl.h>         // MFC support for ActiveX Controls
#include <afxext.h>         // MFC extensions
#include <afxdtctl.h>		// MFC support for Internet Explorer 4 Comon Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>			// MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT

// Delete the two includes below if you do not wish to use the MFC
//  database classes
#include <afxdb.h>			// MFC database classes
#include <afxdao.h>			// MFC DAO database classes

#include "..\Common\CommonError.h"
#include "..\Common\CommonSmart.h"
#include "..\Common\CommonMfc.h"
#include "..\Common\CommonMgaTrukk.h"

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STDAFX_H__237E732C_5B4E_4D36_94D1_25CD9EEC33AB__INCLUDED_)



More information about the GME-commit mailing list