windows-nt/Source/XPSP1/NT/admin/display/loghours/loghrapi.h
2020-09-26 16:20:57 +08:00

145 lines
6.1 KiB
C

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997-2001.
//
// File: LogHrAPI.h
//
// Contents:
//
//----------------------------------------------------------------------------
// loghours.h : header file
#if !defined(_LOGHOURS_H_)
#define _LOGHOURS_H_
#define cbScheduleArrayLength 21 // Number of bytes in the schedule array
#define cbDsScheduleArrayLength 84 // Number of bytes in the schedule array
/////////////////////////////////////////////////////////////////////////////
//
// Exported Functions
//
// UiScheduleDialog()
//
// Invoke a dialog to set/modify a schedule, for example
// -- the logon hours for a particular user
// -- the schedule for a connection
//
// RETURNS
// Return S_OK if the user clicked on the OK button.
// Return S_FALSE if the user clicked on the Cancel button.
// Return E_OUTOFMEMORY if there is not enough memory.
/// Return E_UNEXPECTED if an expected error occured (eg: bad parameter)
//
// INTERFACE NOTES
// Each bit in the array represents one hour. As a result, the
// expected length of the array should be (24 / 8) * 7 = 21 bytes.
// For convenience, the first day of the week is Sunday and
// the last day is Saturday.
// Consequently, the first bit of the array represents the schedule
// for Sunday during period 12 AM to 1 AM.
// - If *pprgbData is NULL, then the routine will allocate
// an array of 21 bytes using LocalAlloc(). The caller
// is responsible of releasing the memory using LocalFree().
// - If *pprgbData is not NULL, the routine expect the array to contain
// 21 bytes of data and re-uses the array as its output parameter.
//
// HISTORY
// 17-Jul-97 t-danm Creation.
// 16-Sep-97 jonn Changed to UiScheduleDialog
// 26-Mar-98 bryanwal Changed to ConnectionScheduleDialog
//
///////////////////////////////////////////////////////////////////////////////
// Flags for LogonScheduleDialogEx, DialinHoursDialogEx,
// ConnectionScheduleDialogEx, ReplicationScheduleDialogEx
///////////////////////////////////////////////////////////////////////////////
// The input data is in GMT
#define SCHED_FLAG_INPUT_GMT 0x00000000 // default
// The input data is in local time.
#define SCHED_FLAG_INPUT_LOCAL_TIME 0x00000001 // supported only in
// LogonScheduleDialogEx and
// DialinHoursDialogEx
#define SCHED_FLAG_READ_ONLY 0x00000002 // the dialog is read-only
// This version accepts data only in GMT
HRESULT LogonScheduleDialog(HWND hwndParent, // parent window
BYTE ** pprgbData, // pointer to pointer to array of 21 bytes
LPCTSTR pszTitle); // dialog title
// This version allows the caller to specify if the data is in GMT or local time
HRESULT LogonScheduleDialogEx (HWND hwndParent, // parent window
BYTE ** pprgbData, // pointer to pointer to array of 21 bytes
LPCTSTR pszTitle, // dialog title
DWORD dwFlags);
// 13-May-98 weijiang
// clone of LogScheduleDialog, using different dialog template -- IDD_DIALINHOUR
// to set hours for dialin
// This version accepts data only in GMT
HRESULT DialinHoursDialog(HWND hwndParent, // parent window
BYTE ** pprgbData, // pointer to pointer to array of 21 bytes
LPCTSTR pszTitle); // dialog title
// This version allows the caller to specify if the data is in GMT or local time
HRESULT DialinHoursDialogEx (HWND hwndParent, // parent window
BYTE ** pprgbData, // pointer to pointer to array of 21 bytes
LPCTSTR pszTitle, // dialog title
DWORD dwFlags);
// ConnectionScheduleDialog()
//
// This function takes the same form as LogonScheduleDialog(), but it modifies
// the schedule for DS replication. This schedule has 4 bits per hours,
// one for each 15-minute period, so the array contains 84 bytes instead of 21.
//
// NOTE: ConnectionScheduleDialog takes the schedule in GMT
//
// HISTORY
// 02-Jan-98 jonn Creation.
// 26-Mar-98 bryanwal Changed to ConnectionScheduleDialog
//
HRESULT ConnectionScheduleDialog(HWND hwndParent, // parent window
BYTE ** pprgbData, // pointer to pointer to array of 84 bytes
LPCTSTR pszTitle); // dialog title
HRESULT ConnectionScheduleDialogEx(HWND hwndParent, // parent window
BYTE ** pprgbData, // pointer to pointer to array of 84 bytes
LPCTSTR pszTitle, // dialog title
DWORD dwFlags);
// Same as ConnectionScheduleDialog, but 2 states are shown
HRESULT ReplicationScheduleDialog(HWND hwndParent, // parent window
BYTE ** pprgbData, // pointer to pointer to array of 84 bytes
LPCTSTR pszTitle); // dialog title
HRESULT ReplicationScheduleDialogEx(HWND hwndParent, // parent window
BYTE ** pprgbData, // pointer to pointer to array of 84 bytes
LPCTSTR pszTitle, // dialog title
DWORD dwFlags); // option flags
// DirSyncScheduleDialog()
//
// This function takes the same form as LogonScheduleDialog(), but it modifies
// the schedule for Directory Synchronization.
//
// HISTORY
// 11-Sep-98 bryanwal Added DirSyncScheduleDialog
//
HRESULT DirSyncScheduleDialog(HWND hwndParent, // parent window
BYTE ** pprgbData, // pointer to pointer to array of 84 bytes
LPCTSTR pszTitle); // dialog title
HRESULT DirSyncScheduleDialogEx(HWND hwndParent, // parent window
BYTE ** pprgbData, // pointer to pointer to array of 84 bytes
LPCTSTR pszTitle, // dialog title
DWORD dwFlags); // option flags
#endif // !defined(_LOGHOURS_H_)