windows-nt/Source/XPSP1/NT/inetsrv/query/web/dll/ida.hxx
2020-09-26 16:20:57 +08:00

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 );