Microsoft.Protocols.TestSuites.Common.Common.IsOutputHandleInRopRequest C# (CSharp) Method

IsOutputHandleInRopRequest() public static method

Identify whether the Rop request contains more than one server object handle. Refers to [MS-OXCROPS] for more details.
public static IsOutputHandleInRopRequest ( ISerializable ropRequest ) : bool
ropRequest ISerializable ROP request objects.
return bool
        public static bool IsOutputHandleInRopRequest(ISerializable ropRequest)
        {
            byte ropId = (byte)BitConverter.ToInt16(ropRequest.Serialize(), 0);

            switch (ropId)
            {
                case 0x01: // RopRelease ROP
                case 0x07: // RopGetPropertiesSpecific ROP
                case 0x08: // RopGetPropertiesAll ROP
                case 0x09: // RopGetPropertiesList ROP
                case 0x0A: // RopSetProperties ROP
                case 0x0B: // RopDeleteProperties ROP
                case 0x0D: // RopRemoveAllRecipients ROP
                case 0x0E: // RopModifyRecipients ROP
                case 0x0F: // RopReadRecipients ROP
                case 0x10: // RopReloadCachedInformation ROP
                case 0x12: // RopSetColumns ROP
                case 0x13: // RopSortTable ROP
                case 0x14: // RopRestrict ROP
                case 0x15: // RopQueryRows ROP
                case 0x16: // RopGetStatus ROP
                case 0x17: // RopQueryPosition ROP
                case 0x18: // RopSeekRow ROP
                case 0x19: // RopSeekRowBookmark ROP
                case 0x1A: // RopSeekRowFractional ROP
                case 0x1B: // RopCreateBookmark ROP
                case 0x1D: // RopDeleteFolder ROP
                case 0x1E: // RopDeleteMessages ROP
                case 0x1F: // RopGetMessageStatus ROP
                case 0x20: // RopSetMessageStatus ROP
                case 0x24: // RopDeleteAttachment ROP
                case 0x26: // RopSetReceiveFolder ROP
                case 0x27: // RopGetReceiveFolder ROP
                case 0x2A: // RopNotify ROP
                case 0x2C: // RopReadStream ROP
                case 0x2D: // RopWriteStream ROP
                case 0x2E: // RopSeekStream ROP
                case 0x2F: // RopSetStreamSize ROP
                case 0x30: // RopSetSearchCriteria ROP
                case 0x31: // RopGetSearchCriteria ROP
                case 0x32: // RopSubmitMessage ROP
                case 0x34: // RopAbortSubmit ROP
                case 0x37: // RopQueryColumnsAll ROP
                case 0x38: // RopAbort ROP
                case 0x40: // RopModifyPermissions ROP
                case 0x41: // RopModifyRules ROP
                case 0x42: // RopGetOwningServers ROP
                case 0x43: // RopLongTermIdFromId ROP
                case 0x44: // RopIdFromLongTermId ROP
                case 0x45: // RopPublicFolderIsGhosted ROP
                case 0x47: // RopSetSpooler ROP
                case 0x48: // RopSpoolerLockMessage ROP
                case 0x49: // RopGetAddressTypes ROP
                case 0x4A: // RopTransportSend ROP
                case 0x4E: // RopFastTransferSourceGetBuffer ROP
                case 0x4F: // RopFindRow ROP
                case 0x50: // RopProgress ROP
                case 0x51: // RopTransportNewMail ROP
                case 0x52: // RopGetValidAttachments ROP
                case 0x54: // RopFastTransferDestinationPutBuffer ROP
                case 0x55: // RopGetNamesFromPropertyIds ROP
                case 0x56: // RopGetPropertyIdsFromNames ROP
                case 0x57: // RopUpdateDeferredActionMessages ROP
                case 0x58: // RopEmptyFolder ROP
                case 0x59: // RopExpandRow ROP
                case 0x5A: // RopCollapseRow ROP
                case 0x5B: // RopLockRegionStream ROP
                case 0x5C: // RopUnlockRegionStream ROP
                case 0x5D: // RopCommitStream ROP
                case 0x5E: // RopGetStreamSize ROP
                case 0x5F: // RopQueryNamedProperties ROP
                case 0x60: // RopGetPerUserLongTermIds ROP
                case 0x61: // RopGetPerUserGuid ROP
                case 0x63: // RopReadPerUserInformation ROP
                case 0x64: // RopWritePerUserInformation ROP
                case 0x66: // RopSetReadFlags ROP
                case 0x68: // RopGetReceiveFolderTable ROP
                case 0x6B: // RopGetCollapseState ROP
                case 0x6C: // RopSetCollapseState ROP
                case 0x6D: // RopGetTransportFolder ROP
                case 0x6E: // RopPending ROP
                case 0x6F: // RopOptionsData ROP
                case 0x73: // RopSynchronizationImportHierarchyChange ROP
                case 0x74: // RopSynchronizationImportDeletes ROP
                case 0x75: // RopSynchronizationUploadStateStreamBegin ROP
                case 0x76: // RopSynchronizationUploadStateStreamContinue ROP
                case 0x77: // RopSynchronizationUploadStateStreamEnd ROP
                case 0x78: // RopSynchronizationImportMessageMove ROP
                case 0x79: // RopSetPropertiesNoReplicate ROP
                case 0x7A: // RopDeletePropertiesNoReplicate ROP
                case 0x7B: // RopGetStoreState ROP
                case 0x7F: // RopGetLocalReplicaIds ROP
                case 0x80: // RopSynchronizationImportReadStateChanges ROP
                case 0x81: // RopResetTable ROP
                case 0x86: // RopTellVersion ROP
                case 0x89: // RopFreeBookmark ROP
                case 0x90: // RopWriteAndCommitStream ROP
                case 0x91: // RopHardDeleteMessages ROP
                case 0x92: // RopHardDeleteMessagesAndSubfolders ROP
                case 0x93: // RopSetLocalReplicaMidsetDeleted ROP
                case 0xF9: // RopBackoff ROP
                case 0xFE: // RopLogon ROP
                    return false;
                
                case 0x02: // RopOpenFolder ROP
                case 0x03: // RopOpenMessage ROP
                case 0x04: // RopGetHierarchyTable ROP
                case 0x05: // RopGetContentsTable ROP
                case 0x06: // RopCreateMessage ROP
                case 0x0C: // RopSaveChangesMessage ROP
                case 0x11: // RopSetMessageReadFlag ROP
                case 0x1C: // RopCreateFolder ROP
                case 0x21: // RopGetAttachmentTable ROP
                case 0x22: // RopOpenAttachment ROP
                case 0x23: // RopCreateAttachment ROP
                case 0x25: // RopSaveChangesAttachment ROP
                case 0x29: // RopRegisterNotification ROP
                case 0x2B: // RopOpenStream ROP
                case 0x33: // RopMoveCopyMessages ROP
                case 0x35: // RopMoveFolder ROP
                case 0x36: // RopCopyFolder ROP
                case 0x39: // RopCopyTo ROP
                case 0x3A: // RopCopyToStream ROP
                case 0x3B: // RopCloneStream ROP
                case 0x3E: // RopGetPermissionsTable ROP
                case 0x3F: // RopGetRulesTable ROP
                case 0x46: // RopOpenEmbeddedMessage ROP
                case 0x4B: // RopFastTransferSourceCopyMessages ROP
                case 0x4C: // RopFastTransferSourceCopyFolder ROP
                case 0x4D: // RopFastTransferSourceCopyTo ROP
                case 0x53: // RopFastTransferDestinationConfigure ROP
                case 0x67: // RopCopyProperties ROP
                case 0x69: // RopFastTransferSourceCopyProperties ROP
                case 0x70: // RopSynchronizationConfigure ROP
                case 0x72: // RopSynchronizationImportMessageChange ROP
                case 0x7E: // RopSynchronizationOpenCollector ROP
                case 0x82: // RopSynchronizationGetTransferState ROP
                    return true;

                default:
                    return true;
            }
        }
Common