windows-nt/Source/XPSP1/NT/ds/adsi/oledsvw/viewex.cpp
2020-09-26 16:20:57 +08:00

195 lines
4.8 KiB
C++

// viewex.cpp : Defines the class behaviors for the application.
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1995 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.
#include "stdafx.h"
#include "adsqdoc.h"
#include "viewex.h"
#include "schemavw.h"
#include "adsqview.h"
#include "bwsview.h"
#include "splitter.h"
#include "schclss.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
IDispatch* pACEClipboard;
IDispatch* pACLClipboard;
IDispatch* pSDClipboard;
/////////////////////////////////////////////////////////////////////////////
// CViewExApp
BEGIN_MESSAGE_MAP(CViewExApp, CWinApp)
//{{AFX_MSG_MAP(CViewExApp)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
//}}AFX_MSG_MAP
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CViewExApp construction
// Place all significant initialization in InitInstance
/***********************************************************
Function:
Arguments:
Return:
Purpose:
Author(s):
Revision:
Date:
***********************************************************/
CViewExApp::CViewExApp()
{
//afxMemDF |= delayFreeMemDF | checkAlwaysMemDF;
}
/***********************************************************
Function:
Arguments:
Return:
Purpose:
Author(s):
Revision:
Date:
***********************************************************/
CViewExApp::~CViewExApp()
{
// DUMP_TRACKING_INFO();
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CViewExApp object
CViewExApp NEAR theApp;
/////////////////////////////////////////////////////////////////////////////
// CViewExApp initialization
/***********************************************************
Function:
Arguments:
Return:
Purpose:
Author(s):
Revision:
Date:
***********************************************************/
BOOL CViewExApp::InitInstance()
{
// Standard initialization
Enable3dControls();
if( FAILED(OleInitialize( NULL )) )
{
TRACE0( "OleInitialize failed" );
return 0;
}
// splitter frame with both simple text output and form input view
AddDocTemplate(new CMultiDocTemplate(IDR_SPLIT2TYPE,
RUNTIME_CLASS(CMainDoc),
RUNTIME_CLASS(CSplitterFrame),
RUNTIME_CLASS(CBrowseView)));
AddDocTemplate( new CMultiDocTemplate(
IDR_QUERYVIEW,
RUNTIME_CLASS(CAdsqryDoc),
RUNTIME_CLASS(CMDIChildWnd), // custom MDI child frame
RUNTIME_CLASS(CAdsqryView)) );
// create main MDI Frame window
// Please note that for simple MDI Frame windows with no toolbar,
// status bar or other special behavior, the CMDIFrameWnd class
// can be used directly for the main frame window just as the
// CMDIChildWnd can be use for a document frame window.
CMDIFrameWnd* pMainFrame = new CMDIFrameWnd;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
// Also in this example, there is only one menubar shared between
// all the views. The automatic menu enabling support of MFC
// will disable the menu items that don't apply based on the
// currently active view. The one MenuBar is used for all
// document types, including when there are no open documents.
// Now finally show the main menu
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
m_pMainWnd = pMainFrame;
#ifndef _MAC
// command line arguments are ignored, create a new (empty) document
OnFileNew();
#endif
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CViewExApp commands
/***********************************************************
Function:
Arguments:
Return:
Purpose:
Author(s):
Revision:
Date:
***********************************************************/
void CViewExApp::OnAppAbout()
{
CDialog(IDD_ABOUTBOX).DoModal();
}
/***********************************************************
Function:
Arguments:
Return:
Purpose:
Author(s):
Revision:
Date:
***********************************************************/
int CViewExApp::ExitInstance()
{
if( NULL != pACEClipboard )
{
pACEClipboard->Release( );
}
if( NULL != pACLClipboard )
{
pACLClipboard->Release( );
}
if( NULL != pSDClipboard )
{
pSDClipboard->Release( );
}
OleUninitialize( );
return CWinApp::ExitInstance( );
}