private void ProcessSearchResult(string uin, MetaResponseSubType responseType, ByteStream data) { switch (responseType) { default: return; case MetaResponseSubType.SearchResult: case MetaResponseSubType.LastSearchResult: { // TODO Handle search result break; } } }
private void ProcessMetaDataReply(string uin, DataPacket dp, ByteStream data) { MetaResponseSubType responseSubType = (MetaResponseSubType)data.ReadUshortLE(); switch (responseSubType) { case MetaResponseSubType.MetaProcessError: data.AdvanceOffset(1); // skip status byte // get error message string errorDesc = data.ReadNullTerminatedString(data.GetByteCount() - data.CurrentPosition); SmsMessageError(this, "46", errorDesc); break; case MetaResponseSubType.ServerSmsResponse: this.ProcessServerSmsResponse(data); break; case MetaResponseSubType.SetPasswordAck: this.ProcessSetPasswordAck(dp, data); break; case MetaResponseSubType.ShortUserInfoResponse: this.ProcessShortUserInfoResponse(dp, data); break; case MetaResponseSubType.DirectoryQueryData: case MetaResponseSubType.DirectoryQueryResponse: this.ProcessDirectoryQueryResponse(dp, data); break; case MetaResponseSubType.DirectoryUpdateAck: this.ProcessDirectoryUpdateAck(dp, data); break; default: this.ProcessSearchResult(uin, responseSubType, data); break; } }