Microsoft.Protocols.TestSuites.MS_OXORULE.MS_OXORULEAdapter.RopModifyRules C# (CSharp) Method

RopModifyRules() public method

This ROP modifies the rules associated with a folder.
public RopModifyRules ( uint objHandle, ModifyRuleFlag modifyRulesFlags, RuleData ruleData ) : RopModifyRulesResponse
objHandle uint This index refers to the handle in the Server object handle table used as input for this operation.
modifyRulesFlags ModifyRuleFlag The possible values are specified in [MS-OXORULE]. These Flags specify behavior of this operation.
ruleData Microsoft.Protocols.TestSuites.Common.RuleData An array of RuleData structures, each of which specifies details about a standard rule.
return Microsoft.Protocols.TestSuites.Common.RopModifyRulesResponse
        public RopModifyRulesResponse RopModifyRules(uint objHandle, ModifyRuleFlag modifyRulesFlags, RuleData[] ruleData)
        {
            this.rawData = null;
            this.response = null;
            this.responseSOHs = null;

            RopModifyRulesRequest modifyRulesRequest;
            RopModifyRulesResponse modifyRulesResponse;

            modifyRulesRequest.RopId = 0x41;
            modifyRulesRequest.LogonId = 0x0;
            modifyRulesRequest.InputHandleIndex = 0x00;
            modifyRulesRequest.ModifyRulesFlags = (byte)modifyRulesFlags;
            modifyRulesRequest.RulesCount = 0;
            if (ruleData != null)
            {
                modifyRulesRequest.RulesCount = (ushort)ruleData.Length;
            }

            modifyRulesRequest.RulesData = ruleData;

            this.responseSOHs = this.DoRPCCall(modifyRulesRequest, objHandle, ref this.response, ref this.rawData);
            modifyRulesResponse = (RopModifyRulesResponse)this.response;
            
            // Verify the response of RopModifyRules
            this.VerifyRopModifyRules(modifyRulesResponse, modifyRulesRequest);

            // modifyRulesResponse.ReturnValue equals 0 means that RopModifyRules is successful.
            // So the ruleDatas in modifyRulesRequest is correct.
            if (modifyRulesResponse.ReturnValue == 0)
            {
                this.VerifyPropertiesInRuleData(ruleData[0]);
            }

            return modifyRulesResponse;
        }
        #endregion