class System.Security.AccessControl.ObjectSecurity
   inherits System.Object
   abstract:

   def protected property OwnerModified as logical
      get.
      set.

   def protected property GroupModified as logical
      get.
      set.

   def protected property AuditRulesModified as logical
      get.
      set.

   def protected property AccessRulesModified as logical
      get.
      set.

   def protected property IsContainer as logical
      get.

   def protected property IsDS as logical
      get.

   def public property AreAccessRulesProtected as logical
      get.

   def public property AreAuditRulesProtected as logical
      get.

   def public property AreAccessRulesCanonical as logical
      get.

   def public property AreAuditRulesCanonical as logical
      get.

   def public abstract property AccessRightType as System.Type
      get.

   def public abstract property AccessRuleType as System.Type
      get.

   def public abstract property AuditRuleType as System.Type
      get.

   constructor protected ObjectSecurity():
   end constructor.

   constructor protected ObjectSecurity(input isContainer as logical, input isDS as logical):
   end constructor.

   constructor protected ObjectSecurity(input securityDescriptor as System.Security.AccessControl.CommonSecurityDescriptor):
   end constructor.

   method protected final void ReadLock():
   end method.

   method protected final void ReadUnlock():
   end method.

   method protected final void WriteLock():
   end method.

   method protected final void WriteUnlock():
   end method.

   method protected void Persist(input name as character, input includeSections as System.Security.AccessControl.AccessControlSections):
   end method.

   method protected void Persist(input enableOwnershipPrivilege as logical, input name as character, input includeSections as System.Security.AccessControl.AccessControlSections):
   end method.

   method protected void Persist(input handle as System.Runtime.InteropServices.SafeHandle, input includeSections as System.Security.AccessControl.AccessControlSections):
   end method.

   method public final System.Security.Principal.IdentityReference GetOwner(input targetType as System.Type):
   end method.

   method public final void SetOwner(input identity as System.Security.Principal.IdentityReference):
   end method.

   method public final System.Security.Principal.IdentityReference GetGroup(input targetType as System.Type):
   end method.

   method public final void SetGroup(input identity as System.Security.Principal.IdentityReference):
   end method.

   method public void PurgeAccessRules(input identity as System.Security.Principal.IdentityReference):
   end method.

   method public void PurgeAuditRules(input identity as System.Security.Principal.IdentityReference):
   end method.

   method public final void SetAccessRuleProtection(input isProtected as logical, input preserveInheritance as logical):
   end method.

   method public final void SetAuditRuleProtection(input isProtected as logical, input preserveInheritance as logical):
   end method.

   method public final static logical IsSddlConversionSupported():
   end method.

   method public final character GetSecurityDescriptorSddlForm(input includeSections as System.Security.AccessControl.AccessControlSections):
   end method.

   method public final void SetSecurityDescriptorSddlForm(input sddlForm as character):
   end method.

   method public final void SetSecurityDescriptorSddlForm(input sddlForm as character, input includeSections as System.Security.AccessControl.AccessControlSections):
   end method.

   method public final System.Byte extent GetSecurityDescriptorBinaryForm():
   end method.

   method public final void SetSecurityDescriptorBinaryForm(input binaryForm as System.Byte extent):
   end method.

   method public final void SetSecurityDescriptorBinaryForm(input binaryForm as System.Byte extent, input includeSections as System.Security.AccessControl.AccessControlSections):
   end method.

   method protected abstract logical ModifyAccess(input modification as System.Security.AccessControl.AccessControlModification, input rule as System.Security.AccessControl.AccessRule, input modified as logical).

   method protected abstract logical ModifyAudit(input modification as System.Security.AccessControl.AccessControlModification, input rule as System.Security.AccessControl.AuditRule, input modified as logical).

   method public logical ModifyAccessRule(input modification as System.Security.AccessControl.AccessControlModification, input rule as System.Security.AccessControl.AccessRule, input modified as logical):
   end method.

   method public logical ModifyAuditRule(input modification as System.Security.AccessControl.AccessControlModification, input rule as System.Security.AccessControl.AuditRule, input modified as logical):
   end method.

   method public abstract System.Security.AccessControl.AccessRule AccessRuleFactory(input identityReference as System.Security.Principal.IdentityReference, input accessMask as integer, input isInherited as logical, input inheritanceFlags as System.Security.AccessControl.InheritanceFlags, input propagationFlags as System.Security.AccessControl.PropagationFlags, input type as System.Security.AccessControl.AccessControlType).

   method public abstract System.Security.AccessControl.AuditRule AuditRuleFactory(input identityReference as System.Security.Principal.IdentityReference, input accessMask as integer, input isInherited as logical, input inheritanceFlags as System.Security.AccessControl.InheritanceFlags, input propagationFlags as System.Security.AccessControl.PropagationFlags, input flags as System.Security.AccessControl.AuditFlags).

end class.
