ReactOS  0.4.13-dev-242-g611e6d7
objsel.h
Go to the documentation of this file.
1 /*
2  * objsel.h
3  *
4  * Object Picker Dialog
5  *
6  * THIS SOFTWARE IS NOT COPYRIGHTED
7  *
8  * This source code is offered for use in the public domain. You may
9  * use, modify or distribute it freely.
10  *
11  * This code is distributed in the hope that it will be useful but
12  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
13  * DISCLAIMED. This includes but is not limited to warranties of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15  *
16  */
17 #ifndef __OBJSEL_H_
18 #define __OBJSEL_H_
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 DEFINE_GUID(CLSID_DsObjectPicker, 0x17d6ccd8, 0x3b7b, 0x11d2, 0x00b9, 0xe0,0x00,0xc0,0x4f,0xd8,0xdb,0xf7);
25 DEFINE_GUID(IID_IDsObjectPicker, 0x0c87e64e, 0x3b7a, 0x11d2, 0x00b9, 0xe0,0x00,0xc0,0x4f,0xd8,0xdb,0xf7);
26 
27 #define CFSTR_DSOP_DS_SELECTION_LIST TEXT("CFSTR_DSOP_DS_SELECTION_LIST")
28 
29 /* up-level scope filters in the DSOP_UPLEVEL_FILTER_FLAGS structure */
30 #define DSOP_FILTER_INCLUDE_ADVANCED_VIEW (0x1)
31 #define DSOP_FILTER_USERS (0x2)
32 #define DSOP_FILTER_BUILTIN_GROUPS (0x4)
33 #define DSOP_FILTER_WELL_KNOWN_PRINCIPALS (0x8)
34 #define DSOP_FILTER_UNIVERSAL_GROUPS_DL (0x10)
35 #define DSOP_FILTER_UNIVERSAL_GROUPS_SE (0x20)
36 #define DSOP_FILTER_GLOBAL_GROUPS_DL (0x40)
37 #define DSOP_FILTER_GLOBAL_GROUPS_SE (0x80)
38 #define DSOP_FILTER_DOMAIN_LOCAL_GROUPS_DL (0x100)
39 #define DSOP_FILTER_DOMAIN_LOCAL_GROUPS_SE (0x200)
40 #define DSOP_FILTER_CONTACTS (0x400)
41 #define DSOP_FILTER_COMPUTERS (0x800)
42 
44 {
49 
50 /* down-level scope filters in the DSOP_FILTER_FLAGS structure */
51 #define DSOP_DOWNLEVEL_FILTER_USERS (0x80000001)
52 #define DSOP_DOWNLEVEL_FILTER_LOCAL_GROUPS (0x80000002)
53 #define DSOP_DOWNLEVEL_FILTER_GLOBAL_GROUPS (0x80000004)
54 #define DSOP_DOWNLEVEL_FILTER_COMPUTERS (0x80000008)
55 #define DSOP_DOWNLEVEL_FILTER_WORLD (0x80000010)
56 #define DSOP_DOWNLEVEL_FILTER_AUTHENTICATED_USER (0x80000020)
57 #define DSOP_DOWNLEVEL_FILTER_ANONYMOUS (0x80000040)
58 #define DSOP_DOWNLEVEL_FILTER_BATCH (0x80000080)
59 #define DSOP_DOWNLEVEL_FILTER_CREATOR_OWNER (0x80000100)
60 #define DSOP_DOWNLEVEL_FILTER_CREATOR_GROUP (0x80000200)
61 #define DSOP_DOWNLEVEL_FILTER_DIALUP (0x80000400)
62 #define DSOP_DOWNLEVEL_FILTER_INTERACTIVE (0x80000800)
63 #define DSOP_DOWNLEVEL_FILTER_NETWORK (0x80001000)
64 #define DSOP_DOWNLEVEL_FILTER_SERVICE (0x80002000)
65 #define DSOP_DOWNLEVEL_FILTER_SYSTEM (0x80004000)
66 #define DSOP_DOWNLEVEL_FILTER_EXCLUDE_BUILTIN_GROUPS (0x80008000)
67 #define DSOP_DOWNLEVEL_FILTER_TERMINAL_SERVER (0x80010000)
68 #define DSOP_DOWNLEVEL_FILTER_ALL_WELLKNOWN_SIDS (0x80020000)
69 #define DSOP_DOWNLEVEL_FILTER_LOCAL_SERVICE (0x80040000)
70 #define DSOP_DOWNLEVEL_FILTER_NETWORK_SERVICE (0x80080000)
71 #define DSOP_DOWNLEVEL_FILTER_REMOTE_LOGON (0x80100000)
72 
73 typedef struct _DSOP_FILTER_FLAGS
74 {
78 
79 /* ADsPath format flags in the DSOP_SCOPE_INIT_INFO structure */
80 #define DSOP_SCOPE_FLAG_STARTING_SCOPE (0x1)
81 #define DSOP_SCOPE_FLAG_WANT_PROVIDER_WINNT (0x2)
82 #define DSOP_SCOPE_FLAG_WANT_PROVIDER_LDAP (0x4)
83 #define DSOP_SCOPE_FLAG_WANT_PROVIDER_GC (0x8)
84 #define DSOP_SCOPE_FLAG_WANT_SID_PATH (0x10)
85 #define DSOP_SCOPE_FLAG_WANT_DOWNLEVEL_BUILTIN_PATH (0x20)
86 #define DSOP_SCOPE_FLAG_DEFAULT_FILTER_USERS (0x40)
87 #define DSOP_SCOPE_FLAG_DEFAULT_FILTER_GROUPS (0x80)
88 #define DSOP_SCOPE_FLAG_DEFAULT_FILTER_COMPUTERS (0x100)
89 #define DSOP_SCOPE_FLAG_DEFAULT_FILTER_CONTACTS (0x200)
90 
91 typedef struct _DSOP_SCOPE_INIT_INFO
92 {
102 
103 /* object picker options in the DSOP_INIT_INFO structure */
104 #define DSOP_FLAG_MULTISELECT (0x1)
105 #define DSOP_FLAG_SKIP_TARGET_COMPUTER_DC_CHECK (0x2)
106 
107 typedef struct _DSOP_INIT_INFO
108 {
117 
119 
120 /* selection scope types in the DS_SELECTION structure */
121 #define DSOP_SCOPE_TYPE_TARGET_COMPUTER (0x1)
122 #define DSOP_SCOPE_TYPE_UPLEVEL_JOINED_DOMAIN (0x2)
123 #define DSOP_SCOPE_TYPE_DOWNLEVEL_JOINED_DOMAIN (0x4)
124 #define DSOP_SCOPE_TYPE_ENTERPRISE_DOMAIN (0x8)
125 #define DSOP_SCOPE_TYPE_GLOBAL_CATALOG (0x10)
126 #define DSOP_SCOPE_TYPE_EXTERNAL_UPLEVEL_DOMAIN (0x20)
127 #define DSOP_SCOPE_TYPE_EXTERNAL_DOWNLEVEL_DOMAIN (0x40)
128 #define DSOP_SCOPE_TYPE_WORKGROUP (0x80)
129 #define DSOP_SCOPE_TYPE_USER_ENTERED_UPLEVEL_SCOPE (0x100)
130 #define DSOP_SCOPE_TYPE_USER_ENTERED_DOWNLEVEL_SCOPE (0x200)
131 
132 typedef struct _DS_SELECTION
133 {
141 
142 typedef struct _DS_SELECTION_LIST
143 {
148 
149 /*****************************************************************************
150  * IDsObjectPicker interface
151  */
152 #define INTERFACE IDsObjectPicker
153 DECLARE_INTERFACE_(IDsObjectPicker,IUnknown)
154 {
155  /*** IUnknown methods ***/
159  /*** IDsObjectPicker methods ***/
161  STDMETHOD(InvokeDialog)(THIS_ HWND hwndParent, IDataObject** ppdoSelections) PURE;
162 };
163 #undef INTERFACE
164 
165 
166 #ifdef __cplusplus
167 }
168 #endif
169 #endif /* __OBJSEL_H_ */
const uint16_t * PCWSTR
Definition: typedefs.h:55
DSOP_UPLEVEL_FILTER_FLAGS Uplevel
Definition: objsel.h:75
struct _DSOP_UPLEVEL_FILTER_FLAGS DSOP_UPLEVEL_FILTER_FLAGS
#define REFIID
Definition: guiddef.h:113
struct _DSOP_INIT_INFO * PDSOP_INIT_INFO
ULONG flScopeType
Definition: objsel.h:139
DECLARE_INTERFACE_(IDsObjectPicker, IUnknown)
Definition: objsel.h:153
#define THIS_
Definition: basetyps.h:65
_In_ BOOLEAN Release
Definition: classpnp.h:929
struct _DS_SELECTION_LIST * PDS_SELECTION_LIST
#define THIS
Definition: basetyps.h:66
#define ANYSIZE_ARRAY
Definition: typedefs.h:45
PWSTR pwzADsPath
Definition: objsel.h:135
struct _DS_SELECTION DS_SELECTION
PWSTR pwzUPN
Definition: objsel.h:137
REFIID riid
Definition: precomp.h:44
uint16_t * PWSTR
Definition: typedefs.h:54
ULONG cAttributesToFetch
Definition: objsel.h:114
struct _DS_SELECTION * PDS_SELECTION
PCWSTR * apwzAttributeNames
Definition: objsel.h:115
NTSTATUS QueryInterface(IN PDEVICE_OBJECT DeviceObject, IN CONST GUID InterfaceType, IN LONG Size, IN LONG Version, OUT PVOID Interface)
Definition: fdo.c:532
PCWSTR pwzTargetComputer
Definition: objsel.h:110
#define STDMETHOD(m)
Definition: basetyps.h:62
ULONG cDsScopeInfos
Definition: objsel.h:111
struct _DS_SELECTION_LIST DS_SELECTION_LIST
PWSTR pwzClass
Definition: objsel.h:136
struct _DSOP_FILTER_FLAGS DSOP_FILTER_FLAGS
ULONG cbSize
Definition: objsel.h:109
struct _DSOP_FILTER_FLAGS * PDSOP_FILTER_FLAGS
struct _DSOP_SCOPE_INIT_INFO DSOP_SCOPE_INIT_INFO
static HWND hwndParent
Definition: cryptui.c:300
LONG HRESULT
Definition: typedefs.h:77
VARIANT * pvarFetchedAttributes
Definition: objsel.h:138
PDSOP_SCOPE_INIT_INFO aDsScopeInfos
Definition: objsel.h:112
struct _DSOP_INIT_INFO DSOP_INIT_INFO
DSOP_FILTER_FLAGS FilterFlags
Definition: objsel.h:96
DS_SELECTION aDsSelection[ANYSIZE_ARRAY]
Definition: objsel.h:146
REFIID LPVOID * ppvObject
Definition: precomp.h:44
ULONG flOptions
Definition: objsel.h:113
const DSOP_SCOPE_INIT_INFO * PCDSOP_SCOPE_INIT_INFO
Definition: objsel.h:101
const DSOP_INIT_INFO * PCDSOP_INIT_INFO
Definition: objsel.h:118
ULONG flDownlevel
Definition: objsel.h:76
BOOL Initialize(HINSTANCE hInstance)
Definition: msconfig.c:341
#define PURE
Definition: basetyps.h:64
ULONG cFetchedAttributes
Definition: objsel.h:145
static ULONG WINAPI AddRef(IStream *iface)
Definition: clist.c:90
DEFINE_GUID(CLSID_DsObjectPicker, 0x17d6ccd8, 0x3b7b, 0x11d2, 0x00b9, 0xe0, 0x00, 0xc0, 0x4f, 0xd8, 0xdb, 0xf7)
unsigned int ULONG
Definition: retypes.h:1
#define STDMETHOD_(t, m)
Definition: basetyps.h:63
struct _DSOP_UPLEVEL_FILTER_FLAGS * PDSOP_UPLEVEL_FILTER_FLAGS
PWSTR pwzName
Definition: objsel.h:134
struct _DSOP_SCOPE_INIT_INFO * PDSOP_SCOPE_INIT_INFO