Microsoft.Protocols.TestTools.StackSdk.RemoteDesktop.Rdpbcgr.RdpbcgrServerDecoder.ParseTsCapsSet C# (CSharp) Method

ParseTsCapsSet() private method

Parse ITsCapsSet (parser index is updated according to parsed length)
private ParseTsCapsSet ( byte data, int &currentIndex ) : ITsCapsSet
data byte data to be parsed
currentIndex int current parser index
return ITsCapsSet
        private ITsCapsSet ParseTsCapsSet(byte[] data, ref int currentIndex)
        {
            ITsCapsSet set = null;
            int tempIndex = currentIndex;

            // TS_CAPS_SET: capabilitySetType
            capabilitySetType_Values capSetType = (capabilitySetType_Values)ParseUInt16(data, ref tempIndex, false);

            // TS_CAPS_SET: lengthCapability
            ushort length = ParseUInt16(data, ref tempIndex, false);

            // TS_CAPS_SET: capabilityData
            byte[] capabilityData = GetBytes(data, ref currentIndex, length);

            switch (capSetType)
            {
                // General Capability Set
                case capabilitySetType_Values.CAPSTYPE_GENERAL:
                    set = ParseCapsTypeGeneral(capabilityData);
                    break;

                // Revision 1 Bitmap Cache Capability Set.
                case capabilitySetType_Values.CAPSTYPE_BITMAPCACHE:
                    set = ParseCapsTypeBitmapCache(capabilityData);
                    break;

                // Window Activation Capability Set
                case capabilitySetType_Values.CAPSTYPE_ACTIVATION:
                    set = ParseCapsTypeActivation(capabilityData);
                    break;

                // Bitmap Capability Set
                case capabilitySetType_Values.CAPSTYPE_BITMAP:
                    set = ParseCapsTypeBitmap(capabilityData);
                    break;

                // Order Capability Set
                case capabilitySetType_Values.CAPSTYPE_ORDER:
                    set = ParseCapsTypeOrder(capabilityData);
                    break;

                // Pointer Capability Set
                case capabilitySetType_Values.CAPSTYPE_POINTER:
                    set = ParseCapsTypePointer(capabilityData);
                    break;

                // Share Capability Set
                case capabilitySetType_Values.CAPSTYPE_SHARE:
                    set = ParseCapsTypeShare(capabilityData);
                    break;

                // Color Table Cache Capability Set
                case capabilitySetType_Values.CAPSTYPE_COLORCACHE:
                    set = ParseCapsTypeColorCache(capabilityData);
                    break;

                // Input Capability Set
                case capabilitySetType_Values.CAPSTYPE_INPUT:
                    set = ParseCapsTypeInput(capabilityData);
                    break;

                // Font Capability Set
                case capabilitySetType_Values.CAPSTYPE_FONT:
                    set = ParseCapsTypeFont(capabilityData);
                    break;

                // Bitmap Cache Host Support Capability Set
                case capabilitySetType_Values.CAPSTYPE_BITMAPCACHE_HOSTSUPPORT:
                    set = ParseCapsTypeBitmapCacheHostSupport(capabilityData);
                    break;

                // Virtual Channel Capability Set
                case capabilitySetType_Values.CAPSTYPE_VIRTUALCHANNEL:
                    set = ParseCapsTypeVirtualChannel(capabilityData);
                    break;

                // DrawNineGrid Cache Capability Set
                case capabilitySetType_Values.CAPSTYPE_DRAWNINEGRIDCACHE:
                    set = ParseCapsTypeDrawNineGridCache(capabilityData);
                    break;

                // Draw GDI+ Cache Capability Set
                case capabilitySetType_Values.CAPSTYPE_DRAWGDIPLUS:
                    set = ParseCapsTypeDrawGdiPlus(capabilityData);
                    break;

                // Remote Programs Capability Set
                case capabilitySetType_Values.CAPSTYPE_RAIL:
                    set = ParseCapsTypeRail(capabilityData);
                    break;

                // Window List Capability Set
                case capabilitySetType_Values.CAPSTYPE_WINDOW:
                    set = ParseCapsTypeWindow(capabilityData);
                    break;

                // Desktop Composition Extension Capability Set
                case capabilitySetType_Values.CAPSETTYPE_COMPDESK:
                    set = ParseCapsTypeCompDesk(capabilityData);
                    break;

                // Multifragment Update Capability Set
                case capabilitySetType_Values.CAPSETTYPE_MULTIFRAGMENTUPDATE:
                    set = ParseCapsTypeMultiFragmentUpdate(capabilityData);
                    break;

                // Large Pointer Capability Set
                case capabilitySetType_Values.CAPSETTYPE_LARGE_POINTER:
                    set = ParseCapsTypeLargePointer(capabilityData);
                    break;

                // Surface Commands Capability Set
                case capabilitySetType_Values.CAPSETTYPE_SURFACE_COMMANDS:
                    set = ParseCapsTypeSurfaceCommands(capabilityData);
                    break;

                // Bitmap Codecs Capability Set
                case capabilitySetType_Values.CAPSETTYPE_BITMAP_CODECS:
                    set = ParseCapsTypeBitmapCodecs(capabilityData);
                    break;

                // Revision 2 Bitmap Cache Capability Set.
                case capabilitySetType_Values.CAPSTYPE_BITMAPCACHE_REV2:
                    set = ParseCapsTypeBitmapCacheRev2(capabilityData);
                    break;

                // Brush Capability Set.
                case capabilitySetType_Values.CAPSTYPE_BRUSH:
                    set = ParseCapsTypeBrush(capabilityData);
                    break;

                // Glyph Cache Capability Set.
                case capabilitySetType_Values.CAPSTYPE_GLYPHCACHE:
                    set = ParseCapsTypeGlyphCache(capabilityData);
                    break;

                // Offscreen Bitmap Cache Capability Set.
                case capabilitySetType_Values.CAPSTYPE_OFFSCREENCACHE:
                    set = ParseCapsTypeOffScreenCache(capabilityData);
                    break;

                // Sound Capability Set.
                case capabilitySetType_Values.CAPSTYPE_SOUND:
                    set = ParseCapsTypeSound(capabilityData);
                    break;

                // Control Capability Set.
                case capabilitySetType_Values.CAPSTYPE_CONTROL:
                    set = PaseCapsTypeControl(capabilityData);
                    break;

                // TS_FRAME_ACKNOWLEDGE_CAPABILITYSET.
                case capabilitySetType_Values.CAPSETTYPE_FRAME_ACKNOWLEDGE:
                    set = PaseCapsTypeFrameAcknowledge(capabilityData);
                    break;

                default:
                    throw new FormatException(ConstValue.ERROR_MESSAGE_ENUM_UNRECOGNIZED);
            }
            return set;
        }
RdpbcgrServerDecoder