/// <summary> /// Parse TS_SET_KEYBOARD_IME_STATUS_PDU /// (parser index is updated according to parsed length) /// </summary> /// <param name="data">data to be parsed</param> /// <param name="currentIndex">current parser index</param> /// <returns>TS_SET_KEYBOARD_IME_STATUS_PDU</returns> private TS_SET_KEYBOARD_IME_STATUS_PDU ParseTsSetKeyboardImeStatusPdu(byte[] data, ref int currentIndex) { TS_SET_KEYBOARD_IME_STATUS_PDU pdu = new TS_SET_KEYBOARD_IME_STATUS_PDU(); // TS_SET_KEYBOARD_IME_STATUS_PDU: shareDataHeader pdu.shareDataHeader = ParseTsShareDataHeader(data, ref currentIndex); // TS_SET_KEYBOARD_IME_STATUS_PDU: UnitId pdu.UnitId = ParseUInt16(data, ref currentIndex, false); // TS_SET_KEYBOARD_IME_STATUS_PDU: ImeOpen pdu.ImeState = ParseUInt32(data, ref currentIndex, false); // TS_SET_KEYBOARD_IME_STATUS_PDU: ImeConvMode pdu.ImeConvMode = ParseUInt32(data, ref currentIndex, false); return pdu; }
private byte[] EncodeKeyboardImeData(TS_SET_KEYBOARD_IME_STATUS_PDU setKeyBdImeStatusPduData) { List<byte> dataBuffer = new List<byte>(); RdpbcgrEncoder.EncodeStructure(dataBuffer, setKeyBdImeStatusPduData.shareDataHeader); RdpbcgrEncoder.EncodeStructure(dataBuffer, setKeyBdImeStatusPduData.UnitId); RdpbcgrEncoder.EncodeStructure(dataBuffer, setKeyBdImeStatusPduData.ImeState); RdpbcgrEncoder.EncodeStructure(dataBuffer, setKeyBdImeStatusPduData.ImeConvMode); return dataBuffer.ToArray(); }