|
|
Microsoft Windows NT Build 297 06-28-1992
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and Microsoft
// QuickHelp documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.
#include "minsvrMI.h"
// Main application parts and OLE server parts
// see 'mainwnd.cpp' for main window parts and item UI
/////////////////////////////////////////////////////////////////////////////
// single object for the app
CMiApp app;
CMiApp::CMiApp()
: CWinApp(SERVER_NAME), COleServer(TRUE)
{
m_data = "sample data (MI version)";
}
/////////////////////////////////////////////////////////////////////////////
// Main app processing
BOOL CMiApp::InitInstance()
{
BOOL bEmbedded = FALSE;
// check if run with /Embedding
LPCSTR lpsz = m_lpCmdLine;
while (*lpsz == ' ')
lpsz++;
if ((*lpsz == '-' || *lpsz == '/') &&
_fstrncmp("Embedding", lpsz+1, 9) == 0)
{
lpsz += 10;
bEmbedded = TRUE;
}
if (!bEmbedded)
{
// register as a server
if (AfxOleRegisterServerName(SERVER_NAME, SERVER_LOCAL_NAME))
{
MessageBox("Server Registered,"
" please run from within host application.",
AfxGetAppName());
}
else
{
MessageBox("Server failed to register, try using REGEDIT.",
AfxGetAppName());
}
return FALSE;
}
// Server Init
if (!COleServer::Register(SERVER_NAME, TRUE)) // multi-instance server
{
MessageBox("Could not register server", AfxGetAppName(), MB_OK);
return FALSE;
}
// MiApp ignores rest of command line - normally use this as a
// document file name
// Window init
CRect rect(0, 200, 200, 400);
Create(NULL, SERVER_LOCAL_NAME, WS_OVERLAPPEDWINDOW,
rect, NULL, "MainMenu");
ShowWindow(m_nCmdShow);
UpdateWindow();
m_pMainWnd = this; // we are a main window !
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// OLE Server functionality
COleServerDoc*
CMiApp::OnOpenDoc(LPCSTR)
{
return this;
}
COleServerDoc*
CMiApp::OnCreateDoc(LPCSTR, LPCSTR)
{
return this;
}
COleServerDoc*
CMiApp::OnEditDoc(LPCSTR, LPCSTR)
{
return this;
}
/////////////////////////////////////////////////////////////////////////////
// OLE Server Doc functionality
COleServerItem* CMiApp::OnGetDocument()
{
return this;
}
COleServerItem* CMiApp::OnGetItem(LPCSTR)
{
return this;
}
COleServerItem* CMiApp::GetNextItem(POSITION& rPosition)
{
if (rPosition != NULL)
return NULL;
rPosition = (POSITION) 1;
return this;
}
/////////////////////////////////////////////////////////////////////////////
// OLE Server Item functionality
void
CMiApp::Serialize(CArchive& ar)
{
// Customize this to store real data
if (ar.IsStoring())
{
ar << m_data;
}
else
{
ar >> m_data;
}
}
BOOL
CMiApp::OnGetTextData(CString& rStringReturn)
{
rStringReturn = m_data;
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.