master
 1/**
 2 * This file has no copyright assigned and is placed in the Public Domain.
 3 * This file is part of the mingw-w64 runtime package.
 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 5 */
 6#ifndef _INC_DSSEC
 7#define _INC_DSSEC
 8#include <aclui.h>
 9#if (_WIN32_WINNT >= 0x0600)
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14typedef HRESULT (WINAPI *PFNREADOBJECTSECURITY)(
15    LPCWSTR,               // Active Directory path of object
16    SECURITY_INFORMATION,  // the security information to read
17    PSECURITY_DESCRIPTOR*, // the returned security descriptor 
18    LPARAM                 // context parameter
19);
20
21typedef HRESULT (WINAPI *PFNWRITEOBJECTSECURITY)(
22    LPCWSTR,              // Active Directory path of object
23    SECURITY_INFORMATION, // the security information to write
24    PSECURITY_DESCRIPTOR, // the security descriptor to write
25    LPARAM                // context parameter
26);
27
28#define DSSI_READ_ONLY 0x00000001
29#define DSSI_NO_ACCESS_CHECK  0x00000002
30#define DSSI_NO_EDIT_SACL  0x00000004
31#define DSSI_NO_EDIT_OWNER  0x00000008
32#define DSSI_IS_ROOT  0x00000010
33#define DSSI_NO_FILTER  0x00000020
34#define DSSI_NO_READONLY_MESSAGE  0x00000040
35
36HRESULT WINAPI DSCreateISecurityInfoObject(
37  LPCWSTR pwszObjectPath,
38  LPCWSTR pwszObjectClass,
39  DWORD dwFlags,
40  LPSECURITYINFO *ppSI,
41  PFNREADOBJECTSECURITY pfnReadSD,
42  PFNWRITEOBJECTSECURITY pfnWriteSD,
43  LPARAM lpContext
44);
45
46HRESULT WINAPI DSCreateISecurityInfoObjectEx(
47  LPCWSTR pwszObjectPath,
48  LPCWSTR pwszObjectClass,
49  LPCWSTR pwszServer,
50  LPCWSTR pwszUserName,
51  LPCWSTR pwszPassword,
52  DWORD dwFlags,
53  LPSECURITYINFO *ppSI,
54  PFNREADOBJECTSECURITY pfnReadSD,
55  PFNWRITEOBJECTSECURITY pfnWriteSD,
56  LPARAM lpContext
57);
58
59HRESULT WINAPI DSEditSecurity(
60  HWND hwndOwner,
61  LPCWSTR pwszObjectPath,
62  LPCWSTR pwszObjectClass,
63  DWORD dwFlags,
64  LPCWSTR *pwszCaption,
65  PFNREADOBJECTSECURITY pfnReadSD,
66  PFNWRITEOBJECTSECURITY pfnWriteSD,
67  LPARAM lpContext
68);
69
70#ifdef __cplusplus
71}
72#endif
73#endif /*(_WIN32_WINNT >= 0x0600)*/
74#endif /*_INC_DSSEC*/