Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / MS / Internal / Ink / InkSerializedFormat / MultiByteCodec.cs / 1 / 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
- StandardBindingElementCollection.cs
- ObfuscateAssemblyAttribute.cs
- View.cs
- CharAnimationUsingKeyFrames.cs
- HtmlInputButton.cs
- EntityCommandExecutionException.cs
- EdmScalarPropertyAttribute.cs
- RecipientInfo.cs
- GiveFeedbackEvent.cs
- Polygon.cs
- DataGridLengthConverter.cs
- Int16AnimationUsingKeyFrames.cs
- Transform.cs
- KerberosSecurityTokenProvider.cs
- StrongNameMembershipCondition.cs
- SelectingProviderEventArgs.cs
- X509ThumbprintKeyIdentifierClause.cs
- UnsignedPublishLicense.cs
- FacetDescription.cs
- ClientOptions.cs
- MonthCalendar.cs
- ValidationSettings.cs
- Sequence.cs
- WindowsFormsSectionHandler.cs
- RegexRunner.cs
- TextParagraph.cs
- DataSourceDesigner.cs
- HtmlSelect.cs
- Vector3DAnimationBase.cs
- DataBinder.cs
- _TimerThread.cs
- ContentPropertyAttribute.cs
- WarningException.cs
- EventInfo.cs
- ColorBuilder.cs
- HttpContext.cs
- DoubleLink.cs
- CodeIdentifiers.cs
- ServicePointManagerElement.cs
- AbsoluteQuery.cs
- EntityModelBuildProvider.cs
- BamlTreeMap.cs
- MultiSelector.cs
- GenericAuthenticationEventArgs.cs
- HtmlInputHidden.cs
- Missing.cs
- TransformerTypeCollection.cs
- FileSystemWatcher.cs
- ImageListStreamer.cs
- CleanUpVirtualizedItemEventArgs.cs
- XmlBaseReader.cs
- OledbConnectionStringbuilder.cs
- BinaryCommonClasses.cs
- NestedContainer.cs
- SqlNodeAnnotation.cs
- ValueQuery.cs
- ErrorFormatterPage.cs
- SecuritySessionSecurityTokenProvider.cs
- EventSinkHelperWriter.cs
- TaskExtensions.cs
- GroupDescription.cs
- ScriptingSectionGroup.cs
- ImageFormat.cs
- XmlRootAttribute.cs
- ControlSerializer.cs
- FactoryMaker.cs
- FileFormatException.cs
- MinimizableAttributeTypeConverter.cs
- XmlSchemaException.cs
- __ComObject.cs
- TransformCollection.cs
- RoleGroup.cs
- ProjectionAnalyzer.cs
- XmlSchemaElement.cs
- MessageBox.cs
- StringBuilder.cs
- RenderContext.cs
- StringUtil.cs
- ProtocolsConfigurationEntry.cs
- CreateWorkflowOwnerCommand.cs
- XmlChildEnumerator.cs
- loginstatus.cs
- CornerRadius.cs
- ToolStripDropDownClosingEventArgs.cs
- CodeChecksumPragma.cs
- ClientEventManager.cs
- HideDisabledControlAdapter.cs
- NavigationHelper.cs
- FrameDimension.cs
- LayoutSettings.cs
- OracleConnection.cs
- ChameleonKey.cs
- IsolatedStorageFilePermission.cs
- RowToParametersTransformer.cs
- XmlSchemaSimpleContentRestriction.cs
- CreateUserWizard.cs
- ClientSettingsStore.cs
- GenericNameHandler.cs
- ContainerFilterService.cs
- ToolStripSeparator.cs