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
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
|