+2003-09-26 Dimitri Papadopoulos <papadopo@users.sourceforge.net>
+
+ * include/aclapi.h [_WIN32_WINNT >= 0x0501] (GetInheritanceSource[AW]):
+ Add functions. Don't know what PFN_OBJECT_MGR_FUNCTS is so use
+ void* instead.
+
+ * include/accctrl.h [_WIN32_WINNT >= 0x0501] (INHERITED_FROM[AW],
+ PINHERITED_FROM[AW]): Add structures.
+
+ * lib/user32.def (GetInheritanceSource[AW]): Add functions.
+
2003-09-26 Corinna Vinschen <corinna@vinschen.de>
* include/winuser.h (FLASHWINFO, PFLASHWINFO): Define for 98/Me, too.
DWORD grfInheritance;
TRUSTEE_W Trustee;
} EXPLICIT_ACCESS_W, *PEXPLICIT_ACCESS_W, EXPLICIT_ACCESSW, *PEXPLICIT_ACCESSW;
-typedef struct _OBJECTS_AND_SID {
+typedef struct _OBJECTS_AND_SID {
DWORD ObjectsPresent;
GUID ObjectTypeGuid;
GUID InheritedObjectTypeGuid;
SID * pSid;
} OBJECTS_AND_SID, *POBJECTS_AND_SID;
-typedef struct _OBJECTS_AND_NAME_A {
+typedef struct _OBJECTS_AND_NAME_A {
DWORD ObjectsPresent;
SE_OBJECT_TYPE ObjectType;
LPSTR ObjectTypeName;
LPSTR InheritedObjectTypeName;
LPSTR ptstrName;
} OBJECTS_AND_NAME_A, *POBJECTS_AND_NAME_A;
-typedef struct _OBJECTS_AND_NAME_W {
+typedef struct _OBJECTS_AND_NAME_W {
DWORD ObjectsPresent;
SE_OBJECT_TYPE ObjectType;
LPWSTR ObjectTypeName;
LPWSTR InheritedObjectTypeName;
LPWSTR ptstrName;
} OBJECTS_AND_NAME_W, *POBJECTS_AND_NAME_W;
-
+#if (_WIN32_WINNT >= 0x0501)
+typedef struct {
+ LONG GenerationGap;
+ LPSTR AncestorName;
+} INHERITED_FROMA, *PINHERITED_FROMA;
+typedef struct {
+ LONG GenerationGap;
+ LPWSTR AncestorName;
+} INHERITED_FROMW, *PINHERITED_FROMW;
+#endif /* (_WIN32_WINNT >= 0x0501) */
#ifdef UNICODE
#define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERW
typedef EXPLICIT_ACCESSW EXPLICIT_ACCESS, *PEXPLICIT_ACCESS;
typedef TRUSTEE_ACCESSW TRUSTEE_ACCESS, *PTRUSTEE_ACCESS;
typedef OBJECTS_AND_NAME_W OBJECTS_AND_NAME_, *POBJECTS_AND_NAME_;
+#if (_WIN32_WINNT >= 0x0501)
+typedef INHERITED_FROMW INHERITED_FROM, *PINHERITED_FROM;
+#endif
#else
#define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERA
typedef TRUSTEE_A TRUSTEE_, *PTRUSTEE_;
typedef EXPLICIT_ACCESSA EXPLICIT_ACCESS, *PEXPLICIT_ACCESS;
typedef TRUSTEE_ACCESSA TRUSTEE_ACCESS, *PTRUSTEE_ACCESS;
typedef OBJECTS_AND_NAME_A OBJECTS_AND_NAME_, *POBJECTS_AND_NAME_;
+#if (_WIN32_WINNT >= 0x0501)
+typedef INHERITED_FROMA INHERITED_FROM, *PINHERITED_FROM;
#endif
+#endif /* UNICODE */
#ifdef __cplusplus
}
#endif
-
-#endif /* _ACCCTRL_H */
+#endif
#ifdef __cplusplus
extern "C" {
#endif
+
VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,DWORD,ACCESS_MODE,DWORD);
VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,DWORD,ACCESS_MODE,DWORD);
DWORD WINAPI BuildSecurityDescriptorA(PTRUSTEE_A,PTRUSTEE_A ,ULONG,PEXPLICIT_ACCESS_A,
DWORD WINAPI GetEffectiveRightsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK);
DWORD WINAPI GetExplicitEntriesFromAclA(PACL,PULONG,PEXPLICIT_ACCESS_A*);
DWORD WINAPI GetExplicitEntriesFromAclW(PACL,PULONG,PEXPLICIT_ACCESS_W*);
+#if (_WIN32_WINNT >= 0x0501)
+DWORD WINAPI GetInheritanceSourceA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMA);
+DWORD WINAPI GetInheritanceSourceW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMW);
+#endif
DWORD WINAPI GetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
DWORD WINAPI GetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
#define BuildImpersonateTrustee BuildImpersonateTrusteeA
#define GetMultipleTrustee GetMultipleTrusteeA
#define GetMultipleTrusteeOperation GetMultipleTrusteeOperationA
-#endif /* UNICODE */
+#endif /* UNICODE */
#ifdef __cplusplus
}
#endif
#endif
-
UINT uCount;
DWORD dwTimeout;
} FLASHWINFO, *PFLASHWINFO;
-#endif /* (WINVER >= 0x0500) */
+#endif /* (WINVER >= 0x0500 || _WIN32_WINDOWS >= 0x0410) */
#if (_WIN32_WINNT >= 0x0500 || _WIN32_WINDOWS >= 0x0490)
typedef struct tagMOUSEMOVEPOINT {
int x;
GetExplicitEntriesFromAclW@12
GetFileSecurityA@20
GetFileSecurityW@20
+GetInheritanceSourceA@40
+GetInheritanceSourceW@40
GetKernelObjectSecurity@20
GetLengthSid@4
GetLocalManagedApplications@12