windows-nt/Source/XPSP1/NT/com/ole32/oleui/olecnfg.cpp
2020-09-26 16:20:57 +08:00

118 lines
3.2 KiB
C++

//+---------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1993 - 1997.
//
// File: olecnfg.cpp
//
// Contents: Implements the class COlecnfgApp - the top level class
// for dcomcnfg.exe
//
// Classes:
//
// Methods: COlecnfgApp::COlecnfgApp
// COlecnfgApp::InitInstance
//
// History: 23-Apr-96 BruceMa Created.
//
//----------------------------------------------------------------------
#include "stdafx.h"
#include "afxtempl.h"
#include "olecnfg.h"
#include "CStrings.h"
#include "CReg.h"
#include "types.h"
#include "datapkt.h"
#include "virtreg.h"
#include "CnfgPSht.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// COlecnfgApp
BEGIN_MESSAGE_MAP(COlecnfgApp, CWinApp)
//{{AFX_MSG_MAP(COlecnfgApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
ON_COMMAND(ID_CONTEXT_HELP, CWinApp::OnContextHelp)
//}}AFX_MSG
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COlecnfgApp construction
COlecnfgApp::COlecnfgApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
/////////////////////////////////////////////////////////////////////////////
// The one and only COlecnfgApp object
COlecnfgApp theApp;
/////////////////////////////////////////////////////////////////////////////
// COlecnfgApp initialization
BOOL COlecnfgApp::InitInstance()
{
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.
#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
// This tool really so only be run by administrators. We check this
// by trying to get KEY_ALL_ACCESS rights to
// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLE
HKEY hKey;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\OLE"),
0, KEY_ALL_ACCESS, &hKey)
!= ERROR_SUCCESS)
{
CString sCaption;
CString sMessage;
sCaption.LoadString(IDS_SYSTEMMESSAGE);
sMessage.LoadString(IDS_ADMINSONLY);
MessageBox(NULL, sMessage, sCaption, MB_OK);
return FALSE;
}
// The main body of oleui
COlecnfgPropertySheet psht;
m_pMainWnd = &psht;
INT_PTR nResponse = psht.DoModal();
if (nResponse == IDOK)
{
g_virtreg.Ok(0);
}
else if (nResponse == IDCANCEL)
{
g_virtreg.Cancel(0);
}
// Remove the virtual registry
g_virtreg.RemoveAll();
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}