3 #define WIN32_NO_STATUS
5 #define COM_NO_WINDOWS_H
12 #define NTOS_MODE_USER
13 #include <ndk/rtlfuncs.h>
19 #ifdef SUPPORT_UXTHEME
26 #define EnableRedrawWindow(hwnd) \
27 SendMessage((hwnd), WM_SETREDRAW, TRUE, 0)
29 #define DisableRedrawWindow(hwnd) \
30 SendMessage((hwnd), WM_SETREDRAW, FALSE, 0)
32 extern HINSTANCE hDllInstance
;
34 typedef struct _ACE_ENTRY
36 struct _ACE_ENTRY
*Next
;
37 } ACE_ENTRY
, *PACE_ENTRY
;
39 typedef struct _PRINCIPAL_LISTITEM
41 struct _PRINCIPAL_LISTITEM
*Next
;
42 struct _SIDREQRESULT
*SidReqResult
;
45 } PRINCIPAL_LISTITEM
, *PPRINCIPAL_LISTITEM
;
47 typedef struct _SECURITY_PAGE
54 HWND hPermissionsForLabel
;
56 /* Main Principals List */
57 HWND hWndPrincipalsList
;
58 PPRINCIPAL_LISTITEM PrincipalsListHead
;
65 INT SpecialPermCheckIndex
;
67 HIMAGELIST hiPrincipals
;
70 SI_OBJECT_INFO ObjectInfo
;
71 IDsObjectPicker
*pDsObjectPicker
;
73 SI_ACCESS DefaultAccess
;
76 LONG SidLookupsPending
;
77 UINT Initializing
: 1;
80 } SECURITY_PAGE
, *PSECURITY_PAGE
;
82 /* MISC ***********************************************************************/
85 LoadAndFormatString(IN HINSTANCE hInstance
,
91 ListViewGetSelectedItemData(IN HWND hwnd
);
94 ListViewSelectItem(IN HWND hwnd
,
98 InitializeObjectPicker(IN PCWSTR ServerName
,
99 IN PSI_OBJECT_INFO ObjectInfo
,
100 OUT IDsObjectPicker
**pDsObjectPicker
);
103 FreeObjectPicker(IN IDsObjectPicker
*pDsObjectPicker
);
105 typedef BOOL (*POBJPICK_SELECTED_SID
)(IN IDsObjectPicker
*pDsObjectPicker
,
106 IN HWND hwndParent OPTIONAL
,
108 IN PVOID Context OPTIONAL
);
111 InvokeObjectPickerDialog(IN IDsObjectPicker
*pDsObjectPicker
,
112 IN HWND hwndParent OPTIONAL
,
113 IN POBJPICK_SELECTED_SID SelectedSidCallback
,
114 IN PVOID Context OPTIONAL
);
116 /* CHECKLIST CONTROL **********************************************************/
118 #define CIS_DENYDISABLED (0x8)
119 #define CIS_DENYENABLED (0x0)
120 #define CIS_ALLOWDISABLED (0x4)
121 #define CIS_ALLOWENABLED (0x0)
122 #define CIS_ALLOW (0x2)
123 #define CIS_DENY (0x1)
124 #define CIS_NONE (0x0)
125 #define CIS_DISABLED (CIS_ALLOWDISABLED | CIS_DENYDISABLED)
127 #define CLB_ALLOW (0x1)
128 #define CLB_DENY (0x0)
130 #define CIS_MASK (CIS_DISABLED | CIS_ALLOW | CIS_DENY)
132 #define CLM_ADDITEM (WM_USER + 1)
133 #define CLM_DELITEM (WM_USER + 2)
134 #define CLM_GETITEMCOUNT (WM_USER + 3)
135 #define CLM_CLEAR (WM_USER + 4)
136 #define CLM_SETCHECKBOXCOLUMN (WM_USER + 5)
137 #define CLM_GETCHECKBOXCOLUMN (WM_USER + 6)
138 #define CLM_CLEARCHECKBOXES (WM_USER + 7)
139 #define CLM_SETITEMSTATE (WM_USER + 8)
140 #define CLM_ENABLEQUICKSEARCH (WM_USER + 9)
141 #define CLM_SETQUICKSEARCH_TIMEOUT_RESET (WM_USER + 10)
142 #define CLM_SETQUICKSEARCH_TIMEOUT_SETFOCUS (WM_USER + 11)
143 #define CLM_FINDITEMBYACCESSMASK (WM_USER + 12)
145 #define CLN_CHANGINGITEMCHECKBOX (101)
147 typedef struct _NMCHANGEITEMCHECKBOX
154 } NMCHANGEITEMCHECKBOX
, *PNMCHANGEITEMCHECKBOX
;
157 RegisterCheckListControl(HINSTANCE hInstance
);
160 UnregisterCheckListControl(HINSTANCE hInstance
);
162 /* DLLMAIN ********************************************************************/
166 DllMain(IN HINSTANCE hinstDLL
,
168 IN LPVOID lpvReserved
);
170 /* SIDCACHE *******************************************************************/
172 typedef struct _SIDREQRESULT
175 SID_NAME_USE SidNameUse
;
178 } SIDREQRESULT
, *PSIDREQRESULT
;
180 typedef VOID (*PSIDREQCOMPLETIONPROC
)(IN HANDLE SidCacheMgr
,
182 IN PSIDREQRESULT SidRequestResult
,
186 CreateSidCacheMgr(IN HANDLE Heap
,
187 IN LPCWSTR SystemName
);
190 DestroySidCacheMgr(IN HANDLE SidCacheMgr
);
193 DequeueSidLookup(IN HANDLE SidCacheMgr
,
197 LookupSidCache(IN HANDLE SidCacheMgr
,
199 IN PSIDREQCOMPLETIONPROC CompletionProc
,
203 ReferenceSidReqResult(IN HANDLE SidCacheMgr
,
204 IN PSIDREQRESULT ReqResult
);
207 DereferenceSidReqResult(IN HANDLE SidCacheMgr
,
208 IN PSIDREQRESULT ReqResult
);