Leaked source code of windows server 2003
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.
 
 
 
 
 
 

128 lines
2.1 KiB

/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
watch.h
Abstract:
Header file for watch.c
Author:
Chuck Lenzmeier (chuckl)
Revision History:
--*/
//
// Enumerated entry types.
//
#define WATCH_DIRECTORY 1
#define WATCH_FILE 2
#define WATCH_KEY 3
#define WATCH_VALUE 4
//
// Enumerated change types.
//
#define WATCH_CHANGED 1
#define WATCH_DELETED 2
#define WATCH_NEW 3
//
// Structure describing an enumerated change.
//
typedef struct _WATCH_ENTRY {
PWCH Name;
DWORD EntryType;
DWORD ChangeType;
} WATCH_ENTRY, *PWATCH_ENTRY;
//
// USERPROFILE is the name of the environment variable that contains
// the path the user's profile directory.
//
#define USERPROFILE TEXT("USERPROFILE")
//
// Macros for mask manipulation.
//
#define FlagOn(_mask,_flag) (((_mask) & (_flag)) != 0)
#define FlagOff(_mask,_flag) (((_mask) & (_flag)) == 0)
#define SetFlag(_mask,_flag) ((_mask) |= (_flag))
#define ClearFlag(_mask,_flag) ((_mask) &= ~(_flag))
//
// Routines exported by watch.c
//
DWORD
WatchStart (
OUT PVOID *WatchHandle
);
DWORD
WatchStop (
IN PVOID WatchHandle
);
VOID
WatchFree (
IN PVOID WatchHandle
);
typedef
DWORD
(* PWATCH_ENUM_ROUTINE) (
IN PVOID Context,
IN PWATCH_ENTRY Entry
);
DWORD
WatchEnum (
IN PVOID WatchHandle,
IN PVOID Context,
IN PWATCH_ENUM_ROUTINE EnumRoutine
);
typedef
DWORD
(* PVALUE_ENUM_ROUTINE) (
IN PVOID Context,
IN DWORD ValueNameLength,
IN PWCH ValueName,
IN DWORD ValueType,
IN PVOID ValueData,
IN DWORD ValueDataLength
);
typedef
DWORD
(* PKEY_ENUM_ROUTINE) (
IN PVOID Context,
IN DWORD KeyNameLength,
IN PWCH KeyName
);
DWORD
EnumerateKey (
IN HKEY KeyHandle,
IN PVOID Context,
IN PVALUE_ENUM_ROUTINE ValueEnumRoutine OPTIONAL,
IN PKEY_ENUM_ROUTINE KeyEnumRoutine OPTIONAL
);
BOOL
GetSpecialFolderPath (
IN INT csidl,
IN LPWSTR lpPath
);