func init // adds using namespace sys.add_use('System.Security.Principal') // initialize instance params = this.props('Constructor').value if(params == 'Constructor') params = '' + d("pointer") elseif(params == 'Constructor2') params = '' + d("SddlForm") elseif(params == 'Constructor3') params = '' + d("binaryForm") + ', ' + d("offset") elseif(params == 'Constructor4') params = '' + sys.get_typed_field('WellKnownSidType.AccountDomainUsersSid', 'SidType', 20) + ', ' + sys.get_typed_field('WindowsIdentity.GetCurrent().User.AccountDomainSid', 'Sid', 20) end sys.add_object(this.codename, 'SecurityIdentifier', params) // makes implementation methods for properties sys._prop_init('AccountDomainSid', 1, 0, 0) sys._prop_init('BinaryLength', 1, 0, 1) // makes implementation of methods as properties sys._mtd_as_prop_init('IsAccountSid()') sys._mtd_as_prop_init('SecurityIdentifier') end func doConstructor(data) blk.println(this.codename, ' = new SecurityIdentifier(', d("pointer"), ');') end func doConstructor2(data) blk.println(this.codename, ' = new SecurityIdentifier(', d("SddlForm"), ');') end func doConstructor3(data) blk.println(this.codename, ' = new SecurityIdentifier(', d("binaryForm"), ', ', d("offset"), ');') end func doConstructor4(data) blk.println(this.codename, ' = new SecurityIdentifier(', sys.get_typed_field(data, 'SidType', 20), ', ', sys.get_typed_field(data, 'Sid', 20), ');') end func MaxBinaryLength return('SecurityIdentifier.MaxBinaryLength') end func MinBinaryLength return('SecurityIdentifier.MinBinaryLength') end func doCompareTo(data) if(linked("onCompareTo")) event("onCompareTo", this.codename + '.CompareTo(' + sys.get_typed_field(data, 'Sid', 20) + ')') else blk.println(this.codename, '.CompareTo(', sys.get_typed_field(data, 'Sid', 20), ');') end end func doGetBinaryForm(data) blk.println(this.codename, '.GetBinaryForm(', d("binaryForm"), ', ', d("offset"), ');') end func doIsEqualDomainSid(data) if(linked("onIsEqualDomainSid")) event("onIsEqualDomainSid", this.codename + '.IsEqualDomainSid(' + sys.get_typed_field(data, 'Sid', 20) + ')') else blk.println(this.codename, '.IsEqualDomainSid(', sys.get_typed_field(data, 'Sid', 20), ');') end end func doIsWellKnown(data) if(linked("onIsWellKnown")) event("onIsWellKnown", this.codename + '.IsWellKnown(' + sys.get_typed_field(data, 'SidType', 20) + ')') else blk.println(this.codename, '.IsWellKnown(', sys.get_typed_field(data, 'SidType', 20), ');') end end include("IdentityReference")