72 lines
1.3 KiB
C++
72 lines
1.3 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (c) 1999, Microsoft Corp. All rights reserved.
|
|
//
|
|
// FILE
|
|
//
|
|
// realm.h
|
|
//
|
|
// SYNOPSIS
|
|
//
|
|
// Declares the class Realms.
|
|
//
|
|
// MODIFICATION HISTORY
|
|
//
|
|
// 09/08/1998 Original version.
|
|
// 03/03/1999 Rewritten to use the VBScript RegExp object.
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef REALM_H
|
|
#define REALM_H
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
#include <perimeter.h>
|
|
#include <regex.h>
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// CLASS
|
|
//
|
|
// Realms
|
|
//
|
|
// DESCRIPTION
|
|
//
|
|
// Manages a sequence of realm stripping rules.
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
class Realms
|
|
{
|
|
public:
|
|
Realms() throw ();
|
|
~Realms() throw ();
|
|
|
|
HRESULT setRealms(VARIANT* pValue) throw ();
|
|
|
|
bool empty() const throw ()
|
|
{ return begin == end; }
|
|
|
|
HRESULT process(PCWSTR in, BSTR* out) const throw ();
|
|
|
|
protected:
|
|
struct Rule
|
|
{
|
|
RegularExpression regexp;
|
|
BSTR replace;
|
|
|
|
Rule() throw ();
|
|
~Rule() throw ();
|
|
};
|
|
|
|
void setRules(Rule* rules, ULONG numRules) throw ();
|
|
|
|
private:
|
|
mutable Perimeter monitor;
|
|
Rule* begin;
|
|
Rule* end;
|
|
};
|
|
|
|
#endif // REALM_H
|