Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

103 lines
2.6 KiB

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1997.
//
// File: shrdnam.hxx
//
// Classes: CSharedNameGen
//
// History: 2-21-97 dlee Created from dmnproxy.hxx
//
//----------------------------------------------------------------------------
#pragma once
#define DL_DAEMON_EXE_NAME L"cidaemon.exe"
#define DL_SHARED_MEM_NAME L"__ciSharedMem"
#define DL_CI_EVENT_NAME L"__ciEvent1"
#define DL_DAEMON_EVENT_NAME L"__ciEvent2"
#define DL_RESCAN_TC_EVENT_NAME L"__ciEvent3"
#define DL_MUTEX_NAME L"__ciMutexSem"
#define DL_DAEMON_ARG1 "DownLevelDaemon"
#define DL_DAEMON_ARG1_W L"DownLevelDaemon"
//+---------------------------------------------------------------------------
//
// Class: CSharedNameGen
//
// Purpose: A class to generate the names of the shared named objects.
//
// History: 2-15-96 srikants Created
//
// Notes:
//
//----------------------------------------------------------------------------
class CSharedNameGen
{
public:
CSharedNameGen( WCHAR const * pwszCat )
{
_iRootLen = wcslen( pwszCat );
Win4Assert( _iRootLen < sizeof(_wszBuf)/sizeof(WCHAR) );
RtlCopyMemory( _wszBuf, pwszCat, (_iRootLen+1) * sizeof(WCHAR) );
//
// Replace the backslashes with colons.
//
for ( unsigned i = 0; i < _iRootLen; i++ )
{
if ( L'\\' == _wszBuf[i] )
_wszBuf[i] = L':';
}
}
WCHAR const * GetMutexName()
{
return AppendName( DL_MUTEX_NAME );
}
WCHAR const * GetSharedMemName()
{
return AppendName( DL_SHARED_MEM_NAME );
}
WCHAR const * GetCiEventName()
{
return AppendName( DL_CI_EVENT_NAME );
}
WCHAR const * GetDaemonEventName()
{
return AppendName( DL_DAEMON_EVENT_NAME );
}
WCHAR const * GetRescanTCEventName()
{
return AppendName( DL_RESCAN_TC_EVENT_NAME );
}
private:
WCHAR const * AppendName( WCHAR const * wszName )
{
unsigned len = wcslen( wszName );
Win4Assert( len + _iRootLen < sizeof(_wszBuf)/sizeof(WCHAR) );
RtlCopyMemory( _wszBuf+_iRootLen, wszName, (len+1) * sizeof(WCHAR) );
// event names are case-sensitive
_wcslwr( _wszBuf );
return _wszBuf;
}
unsigned _iRootLen; // Length of the "catalog root" part
WCHAR _wszBuf[MAX_PATH]; // Buffer for generating shared object names.
};