94 lines
2.6 KiB
C++
94 lines
2.6 KiB
C++
//+---------------------------------------------------------------------------
|
|
//
|
|
// Copyright (C) 1996, Microsoft Corporation.
|
|
//
|
|
// File: ida.hxx
|
|
//
|
|
// Contents: Parser for an IDA file
|
|
//
|
|
// History: 13-Apr-96 KyleP Created
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
class CVariableSet;
|
|
class COutputFormat;
|
|
|
|
WCHAR const wcsOpGetState[] = L"GetState";
|
|
WCHAR const wcsOpForceMerge[] = L"ForceMerge";
|
|
WCHAR const wcsOpScanRoots[] = L"ScanRoots";
|
|
WCHAR const wcsOpUpdateCache[] = L"UpdateCache";
|
|
|
|
//+---------------------------------------------------------------------------
|
|
//
|
|
// Class: CIDAFile
|
|
//
|
|
// Purpose: Scans and parses an IDA file.
|
|
//
|
|
// History: 96/Jan/23 DwightKr Created
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
class CIDAFile
|
|
{
|
|
public:
|
|
|
|
CIDAFile( WCHAR const * wcsFileName, UINT codePage );
|
|
~CIDAFile();
|
|
|
|
void ParseFile();
|
|
|
|
WCHAR const * GetIDAFileName() const { return _wcsIDAFileName; }
|
|
WCHAR const * GetCatalog() const { return _wcsCatalog; }
|
|
WCHAR const * GetHTXFileName() const { return _wcsHTXFileName; }
|
|
|
|
enum eOperation
|
|
{
|
|
CiState,
|
|
ForceMerge,
|
|
ScanRoots,
|
|
UpdateCache
|
|
};
|
|
|
|
eOperation Operation() const { return _eOperation; }
|
|
|
|
void LokAddRef() { InterlockedIncrement(&_refCount); }
|
|
void Release()
|
|
{
|
|
InterlockedDecrement(&_refCount);
|
|
Win4Assert( _refCount >= 0 );
|
|
}
|
|
|
|
LONG LokGetRefCount() { return _refCount; }
|
|
|
|
WCHAR const * GetLocale() const { return _wcsLocale; }
|
|
|
|
private:
|
|
|
|
void ParseOneLine( CQueryScanner & scan, unsigned iLine );
|
|
void GetStringValue( CQueryScanner & scan, unsigned iLine, WCHAR ** pwcsStringValue );
|
|
|
|
eOperation _eOperation; // Type of admin activity
|
|
WCHAR * _wcsCatalog; // Location of the catalog
|
|
WCHAR * _wcsHTXFileName; // The name of the template file
|
|
WCHAR * _wcsLocale; // Locale specified for IDA file
|
|
ULONG _cReplaceableParameters; // # of replaceable parameters
|
|
LONG _refCount; // Refcount for this file
|
|
UINT _codePage; // codePage for this file
|
|
|
|
WCHAR _wcsIDAFileName[MAX_PATH]; // The IDQ file name
|
|
};
|
|
|
|
//
|
|
// Global functions.
|
|
//
|
|
|
|
void DoAdmin( WCHAR const * wcsIDAFile,
|
|
CVariableSet & VarSet,
|
|
COutputFormat & OutputFormat,
|
|
CVirtualString & vsResults );
|
|
|
|
void CheckAdminSecurity( WCHAR const * pwszMachine );
|
|
|