Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / 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. 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
- StateRuntime.cs
- SmiMetaData.cs
- LinkTarget.cs
- CharUnicodeInfo.cs
- HttpFormatExtensions.cs
- ActivationServices.cs
- HostedHttpRequestAsyncResult.cs
- ExceptionHelpers.cs
- ProviderUtil.cs
- DropDownHolder.cs
- DescendantQuery.cs
- VirtualizedItemProviderWrapper.cs
- ThreadStateException.cs
- PreProcessor.cs
- _SafeNetHandles.cs
- InstanceOwnerQueryResult.cs
- CardSpacePolicyElement.cs
- CodeMemberProperty.cs
- DesignerOptionService.cs
- RectangleGeometry.cs
- UpdateTranslator.cs
- BinaryReader.cs
- PerformanceCounterPermissionEntryCollection.cs
- WorkflowWebService.cs
- DirectionalLight.cs
- SimpleApplicationHost.cs
- XmlDocumentFieldSchema.cs
- DataServiceStreamProviderWrapper.cs
- AutomationPatternInfo.cs
- SchemaType.cs
- FrameworkElementFactory.cs
- UserControl.cs
- Transform3D.cs
- DocumentSequence.cs
- PersianCalendar.cs
- HasCopySemanticsAttribute.cs
- OleDbCommandBuilder.cs
- StateWorkerRequest.cs
- RegularExpressionValidator.cs
- FaultConverter.cs
- SoapSchemaExporter.cs
- TranslateTransform.cs
- XmlSequenceWriter.cs
- COM2ICategorizePropertiesHandler.cs
- ColorAnimationUsingKeyFrames.cs
- OverlappedAsyncResult.cs
- MaskedTextBox.cs
- SqlMethodCallConverter.cs
- CreateUserErrorEventArgs.cs
- SectionUpdates.cs
- StructuredTypeEmitter.cs
- SHA256Managed.cs
- DeclarativeCatalogPart.cs
- ReferenceEqualityComparer.cs
- MetabaseServerConfig.cs
- FontFaceLayoutInfo.cs
- Error.cs
- DotExpr.cs
- RangeValuePattern.cs
- FrameworkElement.cs
- ClonableStack.cs
- RemotingConfigParser.cs
- ReferenceConverter.cs
- ColorMatrix.cs
- HttpDictionary.cs
- TableParagraph.cs
- TableLayoutStyle.cs
- RadialGradientBrush.cs
- CodePageUtils.cs
- RepeaterItemCollection.cs
- GroupByQueryOperator.cs
- EventData.cs
- CssTextWriter.cs
- ObsoleteAttribute.cs
- DecoderFallbackWithFailureFlag.cs
- ErrorProvider.cs
- EventListener.cs
- DataConnectionHelper.cs
- SecurityPermission.cs
- Imaging.cs
- HttpCookie.cs
- TextDecorationLocationValidation.cs
- WebBrowserHelper.cs
- ManualResetEvent.cs
- ComplexPropertyEntry.cs
- DefaultHttpHandler.cs
- ColorKeyFrameCollection.cs
- TextMessageEncodingElement.cs
- DrawingAttributeSerializer.cs
- AuthorizationSection.cs
- SymbolType.cs
- MULTI_QI.cs
- HttpClientChannel.cs
- ExpressionStringBuilder.cs
- SQLCharsStorage.cs
- TypeKeyValue.cs
- sqlpipe.cs
- StickyNoteHelper.cs
- MeasurementDCInfo.cs
- AndCondition.cs