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.
71 lines
1.7 KiB
71 lines
1.7 KiB
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (c) Microsoft Corporation
|
|
//
|
|
// SYNOPSIS
|
|
//
|
|
// Declares the class TimeOfDay and functions for manipulating hour maps.
|
|
//
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef TIMEOFDAY_H
|
|
#define TIMEOFDAY_H
|
|
#pragma once
|
|
|
|
#include "Condition.h"
|
|
#include "textmap.h"
|
|
|
|
// Returns true if the hour indicated by 'now' is set in the hour map.
|
|
bool IsHourSet(
|
|
const SYSTEMTIME& now,
|
|
const BYTE* hourMap
|
|
) throw ();
|
|
|
|
// Computes the number of seconds from 'now' until the first unset hour. If
|
|
// 'currentHourOnly' is true, it only checks the current hour block. Otherwise,
|
|
// it checks the entire map.
|
|
DWORD ComputeTimeout(
|
|
const SYSTEMTIME& now,
|
|
const BYTE* hourMap
|
|
) throw ();
|
|
|
|
|
|
// Imposes a Time of Day contraint for network policies.
|
|
class ATL_NO_VTABLE TimeOfDay
|
|
: public Condition,
|
|
public CComCoClass<TimeOfDay, &__uuidof(TimeOfDay)>
|
|
{
|
|
public:
|
|
|
|
IAS_DECLARE_REGISTRY(TimeOfDay, 1, IAS_REGISTRY_AUTO, NetworkPolicy)
|
|
|
|
TimeOfDay() throw ();
|
|
|
|
// Use compiler-generated version.
|
|
// ~TimeOfDay() throw ();
|
|
|
|
// ICondition
|
|
STDMETHOD(IsTrue)(
|
|
IRequest* pRequest,
|
|
VARIANT_BOOL* pVal
|
|
);
|
|
|
|
// IConditionText
|
|
STDMETHOD(put_ConditionText)(BSTR newVal);
|
|
|
|
private:
|
|
// Hour map being enforced.
|
|
BYTE hourMap[IAS_HOUR_MAP_LENGTH];
|
|
|
|
// Not implemented.
|
|
TimeOfDay(const TimeOfDay&);
|
|
TimeOfDay& operator=(const TimeOfDay&);
|
|
};
|
|
|
|
|
|
inline TimeOfDay::TimeOfDay() throw ()
|
|
{
|
|
memset(hourMap, 0, sizeof(hourMap));
|
|
}
|
|
|
|
#endif // TIMEOFDAY_H
|