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
- Menu.cs
- UriWriter.cs
- WhitespaceSignificantCollectionAttribute.cs
- MemberMaps.cs
- Comparer.cs
- RemoteArgument.cs
- x509utils.cs
- WebEventCodes.cs
- MetadataProperty.cs
- ChangeBlockUndoRecord.cs
- ReadOnlyPermissionSet.cs
- WorkflowInstanceExtensionCollection.cs
- FileEnumerator.cs
- PageThemeParser.cs
- LogEntryHeaderv1Deserializer.cs
- ResourceAttributes.cs
- MemberMaps.cs
- SimpleType.cs
- RequestCacheEntry.cs
- BindingOperations.cs
- ValueSerializer.cs
- JsonDeserializer.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- XPathExpr.cs
- MissingManifestResourceException.cs
- Simplifier.cs
- TableLayoutPanelBehavior.cs
- DataControlPagerLinkButton.cs
- GridErrorDlg.cs
- XmlTypeMapping.cs
- SHA384Managed.cs
- SqlTransaction.cs
- DbConnectionClosed.cs
- ModelUIElement3D.cs
- InvalidEnumArgumentException.cs
- WebExceptionStatus.cs
- InputReferenceExpression.cs
- DateTimeFormat.cs
- EntityDataSourceStatementEditorForm.cs
- OracleTimeSpan.cs
- ActivationProxy.cs
- FastPropertyAccessor.cs
- LookupBindingPropertiesAttribute.cs
- EventLogPermissionEntry.cs
- ValidationUtility.cs
- ValueSerializer.cs
- RequestQueue.cs
- ReadOnlyDictionary.cs
- ImageConverter.cs
- SuppressMessageAttribute.cs
- TextOutput.cs
- InheritedPropertyDescriptor.cs
- Model3DCollection.cs
- DataControlButton.cs
- HttpDebugHandler.cs
- ContextCorrelationInitializer.cs
- ContentType.cs
- Merger.cs
- ConnectionsZoneAutoFormat.cs
- DataGridViewColumnConverter.cs
- DispatcherSynchronizationContext.cs
- DateTimeValueSerializer.cs
- wgx_sdk_version.cs
- PenThreadPool.cs
- Viewport3DAutomationPeer.cs
- WebBrowserDocumentCompletedEventHandler.cs
- InternalTransaction.cs
- RangeBaseAutomationPeer.cs
- OleCmdHelper.cs
- XsltInput.cs
- ClosureBinding.cs
- OracleFactory.cs
- RoleService.cs
- ValidationPropertyAttribute.cs
- ErrorWebPart.cs
- OutputCache.cs
- SymbolMethod.cs
- WebPartConnectionsCancelEventArgs.cs
- FirstMatchCodeGroup.cs
- NonClientArea.cs
- IndexedEnumerable.cs
- ColorInterpolationModeValidation.cs
- StrokeSerializer.cs
- RichTextBox.cs
- SettingsPropertyValue.cs
- DataService.cs
- GifBitmapEncoder.cs
- entityreference_tresulttype.cs
- nulltextnavigator.cs
- XmlExceptionHelper.cs
- DesignerDataStoredProcedure.cs
- DataGridViewCellStyleConverter.cs
- DbDataRecord.cs
- GACIdentityPermission.cs
- CurrencyWrapper.cs
- SimpleTypeResolver.cs
- CodeMemberProperty.cs
- TransactionScopeDesigner.cs
- QueryContinueDragEvent.cs
- ClientWindowsAuthenticationMembershipProvider.cs