windows-nt/Source/XPSP1/NT/admin/pchealth/sysinfo/msconfig/exe/msconfig.h

128 lines
3.5 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
// MSConfig.h : main header file for the MSCONFIG application
//
#if !defined(AFX_MSCONFIG_H__E8C06876_EEE6_49C2_B461_07F39EECC0B8__INCLUDED_)
#define AFX_MSCONFIG_H__E8C06876_EEE6_49C2_B461_07F39EECC0B8__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
// #include "MSConfig_i.h"
//=============================================================================
// Constants used in MSConfig (done as defines since this include file might
// be included multiple times).
//=============================================================================
#define MSCONFIGDIR _T("%systemroot%\\pss")
#define MSCONFIGUNDOLOG _T("msconfig.log")
#define COMMANDLINE_AUTO _T("/auto")
/////////////////////////////////////////////////////////////////////////////
// CMSConfigApp:
// See MSConfig.cpp for the implementation of this class
//
class CMSConfigApp : public CWinApp
{
public:
CMSConfigApp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMSConfigApp)
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CMSConfigApp)
// NOTE - the 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()
public:
//---------------------------------------------------------------------------
// DoIExist is a way of detecting if another version of this app is
// running - it avoids the problem of rapid invocations succeeding before
// the window is created. It uses a semaphore to tell if we are already
// running somewhere else.
//---------------------------------------------------------------------------
BOOL DoIExist(LPCTSTR szSemName)
{
HANDLE hSem;
hSem = CreateSemaphore(NULL, 0, 1, szSemName);
if (hSem != NULL && GetLastError() == ERROR_ALREADY_EXISTS)
{
CloseHandle(hSem);
return TRUE;
}
return FALSE;
}
//---------------------------------------------------------------------------
// FirstInstance is used to keep the app from loading multiple times. If this
// is the first instance to run, this function returns TRUE. Otherwise it
// activates the previous instance and returns FALSE. It looks for the
// previous instance based on the window title.
//---------------------------------------------------------------------------
BOOL FirstInstance()
{
if (DoIExist(_T("MSConfigRunning")))
{
CString strCaption;
if (strCaption.LoadString(IDS_DIALOGCAPTION))
{
CWnd *PrevCWnd = CWnd::FindWindow(NULL, strCaption);
if (PrevCWnd)
{
CWnd *ChildCWnd = PrevCWnd->GetLastActivePopup();
PrevCWnd->SetForegroundWindow();
if (PrevCWnd->IsIconic())
PrevCWnd->ShowWindow(SW_RESTORE);
if (PrevCWnd != ChildCWnd)
ChildCWnd->SetForegroundWindow();
}
}
return (FALSE);
}
return (TRUE);
}
void InitializePages();
BOOL ShowPropertySheet(int nInitialTab);
void CleanupPages();
void SetAutoRun(BOOL fAutoRun);
void Reboot();
private:
BOOL m_bATLInited;
private:
BOOL InitATL();
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MSCONFIG_H__E8C06876_EEE6_49C2_B461_07F39EECC0B8__INCLUDED_)