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.
 
 
 
 
 
 

129 lines
4.7 KiB

#ifndef __RSOP_QUERY_H__
#define __RSOP_QUERY_H__
//+--------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1994 - 1997.
//
// File: RSOPQuery.h
//
// Contents: Definitions for the RSOP query API
//
// Functions:
// CreateRSOPQuery
// RunRSOPQuery
// FreeRSOPQuery
// FreeRSOPQueryResults
//
// History: 07-30-2001 rhynierm Created
//
//---------------------------------------------------------------------------
#if _MSC_VER > 1000
#pragma once
#endif
#ifdef __cplusplus
extern "C" {
#endif
// Defines what kind of user interaction we want.
typedef enum tagRSOP_UI_MODE
{
RSOP_UI_NONE,
RSOP_UI_REFRESH,
RSOP_UI_WIZARD,
RSOP_UI_CHOOSE
} RSOP_UI_MODE;
// Defines what kind of query we want to run.
typedef enum tagRSOP_QUERY_TYPE
{
RSOP_UNKNOWN_MODE,
RSOP_PLANNING_MODE,
RSOP_LOGGING_MODE
} RSOP_QUERY_TYPE;
// Defines the planning mode loopback mode
typedef enum tagRSOP_LOOPBACK_MODE
{
RSOP_LOOPBACK_NONE,
RSOP_LOOPBACK_REPLACE,
RSOP_LOOPBACK_MERGE
} RSOP_LOOPBACK_MODE;
// Flags that can be set in RSOPQuery
#define RSOP_NO_USER_POLICY 0x1 // Don't run query for user policy
#define RSOP_NO_COMPUTER_POLICY 0x2 // Don't run query for computer policy
#define RSOP_FIX_USER 0x4 // User is prespecified and cannot be changed
#define RSOP_FIX_COMPUTER 0x8 // Computer is prespecified and cannot be changed
#define RSOP_FIX_DC 0x10 // DC is prespecified and cannot be changed
#define RSOP_FIX_SITENAME 0x20 // Site name is prespecified and cannot be changed
#define RSOP_FIX_QUERYTYPE 0x40 // Fix the query type - this hides the choice page
#define RSOP_NO_WELCOME 0x100 // Do not display a welcome message
// Information identifying the target in the RSOP query.
typedef struct tagRSOP_QUERY_TARGET
{
LPTSTR szName;
LPTSTR szSOM;
DWORD dwSecurityGroupCount;
LPTSTR* aszSecurityGroups; // See dwSecurityGroupCount for # of items
DWORD* adwSecurityGroupsAttr; // See dwSecurityGroupCount for # of items
BOOL bAssumeWQLFiltersTrue;
DWORD dwWQLFilterCount;
LPTSTR* aszWQLFilters; // See dwWQLFilterCount for # of items
LPTSTR* aszWQLFilterNames; // See dwWQLFilterCount for # of items
} RSOP_QUERY_TARGET, *LPRSOP_QUERY_TARGET;
// Results returned from calling RSOPRunQuery
typedef struct tagRSOP_QUERY_RESULTS
{
LPTSTR szWMINameSpace;
BOOL bUserDeniedAccess;
BOOL bNoUserPolicyData;
BOOL bComputerDeniedAccess;
BOOL bNoComputerPolicyData;
ULONG ulErrorInfo;
} RSOP_QUERY_RESULTS, *LPRSOP_QUERY_RESULTS;
// Structure containing all the information used by the RSOP query API.
typedef struct tagRSOP_QUERY
{
RSOP_QUERY_TYPE QueryType; // Type of query to run
RSOP_UI_MODE UIMode; // TRUE if wizard must show
DWORD dwFlags;
union
{
struct // QueryType == RSOP_PLANNING_MODE
{
LPRSOP_QUERY_TARGET pUser; // Target user (SAM style name)
LPRSOP_QUERY_TARGET pComputer; // Target computer (SAM style name)
BOOL bSlowNetworkConnection;
RSOP_LOOPBACK_MODE LoopbackMode; // Loopback processing
LPTSTR szSite;
LPTSTR szDomainController;
};
struct // QueryType == (any other option)
{
LPTSTR szUserName; // SAM style user object name (Ignored in query - just used for display purposes)
LPTSTR szUserSid; // User's SID (is actually used for logging mode query)
LPTSTR szComputerName; // SAM style computer object name
};
};
} RSOP_QUERY, *LPRSOP_QUERY;
// RSOP Query API
BOOL WINAPI CreateRSOPQuery( LPRSOP_QUERY* ppQuery, RSOP_QUERY_TYPE QueryType );
HRESULT WINAPI RunRSOPQuery( HWND hParent, LPRSOP_QUERY pQuery, LPRSOP_QUERY_RESULTS* ppResults );
BOOL WINAPI FreeRSOPQuery( LPRSOP_QUERY pQuery );
BOOL WINAPI FreeRSOPQueryResults( LPRSOP_QUERY pQuery, LPRSOP_QUERY_RESULTS pResults );
BOOL WINAPI CopyRSOPQuery( LPRSOP_QUERY pQuery, LPRSOP_QUERY* ppNewQuery );
BOOL WINAPI ChangeRSOPQueryType( LPRSOP_QUERY pQuery, RSOP_QUERY_TYPE NewQueryType );
#ifdef __cplusplus
}
#endif
#endif