Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Ink / InkSerializedFormat / MultiByteCodec.cs / 1305600 / MultiByteCodec.cs
using MS.Utility; using System; using System.Runtime.InteropServices; using System.Security; using System.Globalization; using System.Windows; using System.Windows.Input; using System.Windows.Ink; using System.Collections.Generic; using MS.Internal.Ink.InkSerializedFormat; using System.Diagnostics; using SR = MS.Internal.PresentationCore.SR; using SRID = MS.Internal.PresentationCore.SRID; namespace MS.Internal.Ink.InkSerializedFormat { ////// MultiByteCodec /// internal class MultiByteCodec { ////// MultiByteCodec /// internal MultiByteCodec() { } ////// Encode /// /// /// internal void Encode(uint data, Listoutput) { if (output == null) { throw new ArgumentNullException("output"); } while (data > 0x7f) { byte byteToAdd = (byte)(0x80 | (byte)data & 0x7f); output.Add(byteToAdd); data >>= 7; } byte finalByteToAdd = (byte)(data & 0x7f); output.Add(finalByteToAdd); } /// /// SignEncode /// /// /// internal void SignEncode(int data, Listoutput) { uint xfData = 0; if (data < 0) { xfData = (uint)( (-data << 1) | 0x01 ); } else { xfData = (uint)data << 1; } Encode(xfData, output); } /// /// Decode /// /// /// /// ///internal uint Decode(byte[] input, int inputIndex, ref uint data) { Debug.Assert(input != null); Debug.Assert(inputIndex < input.Length); // We care about first 5 bytes uint cb = (input.Length - inputIndex > 5) ? 5 : (uint)(input.Length - inputIndex); uint index = 0; data = 0; while ((index < cb) && (input[index] > 0x7f)) { int leftShift = (int)(index * 7); data |= (uint)((input[index] & 0x7f) << leftShift); ++index; } if (index < cb) { int leftShift = (int)(index * 7); data |= (uint)((input[index] & 0x7f) << leftShift); } else { throw new ArgumentException(StrokeCollectionSerializer.ISFDebugMessage("invalid input in MultiByteCodec.Decode")); } return (index + 1); } /// /// SignDecode /// /// /// /// ///internal uint SignDecode(byte[] input, int inputIndex, ref int data) { Debug.Assert(input != null); //already validated at the AlgoModule level if (inputIndex >= input.Length) { throw new ArgumentOutOfRangeException("inputIndex"); } uint xfData = 0; uint cb = Decode(input, inputIndex, ref xfData); data = (0 != (0x01 & xfData)) ? -(int)(xfData >> 1) : (int)(xfData >> 1); return cb; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ValidatorUtils.cs
- LabelEditEvent.cs
- XhtmlBasicValidationSummaryAdapter.cs
- StringSource.cs
- __Filters.cs
- HttpRequestTraceRecord.cs
- SingleObjectCollection.cs
- RootBuilder.cs
- SerializationInfoEnumerator.cs
- HTMLTagNameToTypeMapper.cs
- OperatorExpressions.cs
- SimpleTableProvider.cs
- GuidConverter.cs
- ManifestSignatureInformation.cs
- CodeDirectoryCompiler.cs
- TextClipboardData.cs
- ConfigurationValues.cs
- XPathEmptyIterator.cs
- CacheHelper.cs
- TypeExtensions.cs
- StopStoryboard.cs
- ReversePositionQuery.cs
- KeyValuePair.cs
- FullTrustAssemblyCollection.cs
- ObjRef.cs
- Column.cs
- ProjectionRewriter.cs
- RenderTargetBitmap.cs
- XPathPatternBuilder.cs
- PersonalizableAttribute.cs
- ProcessHost.cs
- OleDbException.cs
- XmlComplianceUtil.cs
- DateTimeOffsetConverter.cs
- Timer.cs
- DataPagerFieldCollection.cs
- Identity.cs
- Run.cs
- DataGridViewComboBoxCell.cs
- RootBuilder.cs
- NativeMethods.cs
- DependencyObject.cs
- DependencyPropertyKind.cs
- BoundPropertyEntry.cs
- LogRecordSequence.cs
- ToolBarPanel.cs
- PropertyGridEditorPart.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- SystemResources.cs
- FormsAuthenticationUser.cs
- EntityProviderFactory.cs
- SoapSchemaMember.cs
- DesignerSelectionListAdapter.cs
- DataGridViewToolTip.cs
- DecimalConverter.cs
- Win32.cs
- DataGridPagerStyle.cs
- Timer.cs
- ImagingCache.cs
- TypeListConverter.cs
- MetafileHeader.cs
- NamespaceEmitter.cs
- Slider.cs
- KnownTypeAttribute.cs
- PtsContext.cs
- XamlPoint3DCollectionSerializer.cs
- altserialization.cs
- TemplateApplicationHelper.cs
- CancellationHandlerDesigner.cs
- RelatedCurrencyManager.cs
- DecoderExceptionFallback.cs
- BooleanAnimationBase.cs
- PlainXmlDeserializer.cs
- InvokeHandlers.cs
- OleDbInfoMessageEvent.cs
- PermissionAttributes.cs
- _ConnectionGroup.cs
- SystemIcons.cs
- Accessors.cs
- DoWorkEventArgs.cs
- altserialization.cs
- DesignerVerbCollection.cs
- XpsPartBase.cs
- ExpressionPrinter.cs
- BaseValidator.cs
- RoleGroupCollectionEditor.cs
- FigureParaClient.cs
- XmlSchemaGroupRef.cs
- RequestResponse.cs
- AxisAngleRotation3D.cs
- SourceFileBuildProvider.cs
- NamespaceEmitter.cs
- Size.cs
- HitTestParameters3D.cs
- XhtmlTextWriter.cs
- ImageResources.Designer.cs
- Adorner.cs
- EmptyControlCollection.cs
- WinFormsComponentEditor.cs
- TabControl.cs