68 lines
3.2 KiB
C
68 lines
3.2 KiB
C
//****************************************************************************
|
|
//
|
|
// File: sempahor.h
|
|
//
|
|
// Content: This is the include file that contains the semaphore names
|
|
// used by the various ICW components to ensure that only
|
|
// one component is running at a time
|
|
// (with the following expections:
|
|
// -- with icwconn1 running, isignup and icwconn2 can execute.
|
|
// -- with isignup running, icwconn2 can execute.
|
|
//
|
|
// History:
|
|
// 12/3/96 jmazner Created for Normandy bugs 12140, 12088
|
|
//
|
|
//
|
|
// Copyright (c) Microsoft Corporation 1996
|
|
//
|
|
//****************************************************************************
|
|
|
|
|
|
#define ICWCONN1_SEMAPHORE TEXT("Internet Connection Wizard ICWCONN1.EXE")
|
|
#define ICW_ELSE_SEMAPHORE TEXT("Internet Connection Wizard Non ICWCONN1 Component")
|
|
|
|
#define DIALOG_CLASS_NAME TEXT("#32770")
|
|
|
|
BOOL IsAnotherComponentRunning32(BOOL bCreatedSemaphore);
|
|
|
|
|
|
/******
|
|
|
|
Allow this component to execute?
|
|
/------------------------------------------------------------\
|
|
| ICWCONN1 | ISIGNUP | ISIGN.INS | ICWCONN2 | INETWIZ
|
|
/ --------|-------------------------------------------------------------
|
|
| | | | | |
|
|
| ICWCONN1| no | _YES_ | _YES_ | _YES_ | no
|
|
| | | | | |
|
|
| --------|-----------|-----------|-----------|-----------|--------------
|
|
if this | | | | | |
|
|
component | ISIGNUP | no | no | _YES_ | _YES_ | no
|
|
is running | | | | | |
|
|
| --------|-----------|-----------|-----------|-----------|--------------
|
|
| | | | | |
|
|
| ISIGNUP | no | no | _YES_ | _YES_ | no
|
|
| .INS | | | | |
|
|
| --------|-----------|-----------|-----------|-----------|--------------
|
|
| | | | | |
|
|
| ICWCONN2| no | no | _YES_ | _YES_ | no
|
|
| | | | | |
|
|
| --------|-----------|-----------|-----------|-----------|--------------
|
|
| | | | | |
|
|
| INETWIZ | no | no | _YES_ | _YES_ | no
|
|
| | | | | |
|
|
\ --------|-----------|-----------|-----------|-----------|--------------
|
|
|
|
|
|
Implement this using two semaphores, one for ICWCONN1, and one for everything else (ICW_ELSE)
|
|
On startup, each component set its semaphore, then checks what other components are running.
|
|
|
|
Conn1: check for ICWCONN1, ICW_ELSE
|
|
Isignup: check for ICW_ELSE
|
|
Isignup .ins: no checks
|
|
ICWCONN2: no checks
|
|
Inetwiz: Check for ICWCONN1, ICW_ELSE
|
|
|
|
******/
|
|
|