The GUID structure contains 128 bits that represent a globally unique identifier that can be used to provide a distinctive reference number.
        /// <summary>
        /// Parse TS_BITMAPCODEC_GUID
        /// (parser index is updated according to parsed length)
        /// </summary>
        /// <param name="data">data to be parse</param>
        /// <param name="currentIndex">current parser index</param>
        /// <returns>TS_BITMAPCODEC_GUID</returns>
        private TS_BITMAPCODEC_GUID ParseTsBitmapCodecGuid(byte[] data, ref int currentIndex)
        {
            // Get TS_BITMAPCODEC_GUID data (16 bytes)
            TS_BITMAPCODEC_GUID guid = new TS_BITMAPCODEC_GUID();
            byte[] guidData = GetBytes(data, ref currentIndex, Marshal.SizeOf(guid));

            // Get TS_BITMAPCODEC_GUID
            guid = RdpbcgrUtility.ToStruct<TS_BITMAPCODEC_GUID>(guidData);
            return guid;
        }
        private bool is_REMOTEFX_CODEC_GUID(TS_BITMAPCODEC_GUID guidObj)
        {
            //CODEC_GUID_REMOTEFX
            //0x76772F12 BD72 4463 AF B3 B7 3C 9C 6F 78 86
            bool rtnValue;
            rtnValue = (guidObj.codecGUID1 == 0x76772F12) &&
                (guidObj.codecGUID2 == 0xBD72) &&
                (guidObj.codecGUID3 == 0x4463) &&
                (guidObj.codecGUID4 == 0xAF) &&
                (guidObj.codecGUID5 == 0xB3) &&
                (guidObj.codecGUID6 == 0xB7) &&
                (guidObj.codecGUID7 == 0x3C) &&
                (guidObj.codecGUID8 == 0x9C) &&
                (guidObj.codecGUID9 == 0x6F) &&
                (guidObj.codecGUID10 == 0x78) &&
                (guidObj.codecGUID11== 0x86);

            return rtnValue;
        }