Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / MS / Internal / CheckedPointers.cs / 1 / CheckedPointers.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // Description: Checked pointers for various types // // History: // 05/09/2005: [....] Created the file // //--------------------------------------------------------------------------- using System; using System.Security; using MS.Internal.Shaping; using MS.Internal.FontCache; // // The file contains wrapper structs for various pointer types. // This is to allow us passing these pointers safely in layout code and provides // some bound checking. Only construction and probing into these pointers are security critical. // namespace MS.Internal { ////// Checked pointer for (Char*) /// internal struct CheckedCharPointer { ////// Critical - The method takes unsafe pointer /// [SecurityCritical] internal unsafe CheckedCharPointer(char * pointer, int length) { _checkedPointer = new CheckedPointer(pointer, length * sizeof(char)); } ////// Critical - The method returns unsafe pointer /// [SecurityCritical] internal unsafe char * Probe(int offset, int length) { return (char*) _checkedPointer.Probe(offset * sizeof(char), length * sizeof(char)); } private CheckedPointer _checkedPointer; } ////// Checked pointer for (int*) /// internal struct CheckedIntPointer { ////// Critical - The method takes unsafe pointer /// [SecurityCritical] internal unsafe CheckedIntPointer(int * pointer, int length) { _checkedPointer = new CheckedPointer(pointer, length * sizeof(int)); } ////// Critical - The method returns unsafe pointer /// [SecurityCritical] internal unsafe int * Probe(int offset, int length) { return (int *) _checkedPointer.Probe(offset * sizeof(int), length * sizeof(int)); } private CheckedPointer _checkedPointer; } ////// Checked pointer for (ushort*) /// internal struct CheckedUShortPointer { ////// Critical - The method takes unsafe pointer /// [SecurityCritical] internal unsafe CheckedUShortPointer(ushort * pointer, int length) { _checkedPointer = new CheckedPointer(pointer, length * sizeof(ushort)); } ////// Critical - The method returns unsafe pointer /// [SecurityCritical] internal unsafe ushort * Probe(int offset, int length) { return (ushort *) _checkedPointer.Probe(offset * sizeof(ushort), length * sizeof(ushort)); } private CheckedPointer _checkedPointer; } ////// Checked pointer for (GlyphOffset*) /// internal struct CheckedGlyphOffsetPointer { ////// Critical - The method takes unsafe pointer /// [SecurityCritical] internal unsafe CheckedGlyphOffsetPointer(GlyphOffset* pointer, int length) { _checkedPointer = new CheckedPointer(pointer, length * sizeof(GlyphOffset)); } ////// Critical - The method returns unsafe pointer /// [SecurityCritical] internal unsafe GlyphOffset * Probe(int offset, int length) { return (GlyphOffset *) _checkedPointer.Probe(offset * sizeof(GlyphOffset), length * sizeof(GlyphOffset)); } private CheckedPointer _checkedPointer; } ////// Checked pointer for (GlyphShapingProperties*) /// internal struct CheckedGlyphShapingPropertiesPointer { ////// Critical - The method takes unsafe pointer /// [SecurityCritical] internal unsafe CheckedGlyphShapingPropertiesPointer(GlyphShapingProperties* pointer, int length) { _checkedPointer = new CheckedPointer(pointer, length * sizeof(GlyphShapingProperties)); } ////// Critical - The method takes unsafe pointer /// [SecurityCritical] internal unsafe CheckedGlyphShapingPropertiesPointer(uint* pointer, int length) { _checkedPointer = new CheckedPointer(pointer, length * sizeof(GlyphShapingProperties)); } ////// Critical - The method returns unsafe pointer /// [SecurityCritical] internal unsafe GlyphShapingProperties * Probe(int offset, int length) { return (GlyphShapingProperties *) _checkedPointer.Probe(offset * sizeof(GlyphShapingProperties), length * sizeof(GlyphShapingProperties)); } private CheckedPointer _checkedPointer; } ////// Checked pointer for (CharacterShapingProperties*) /// internal struct CheckedCharacterShapingPropertiesPointer { ////// Critical - The method takes unsafe pointer /// [SecurityCritical] internal unsafe CheckedCharacterShapingPropertiesPointer(CharacterShapingProperties* pointer, int length) { _checkedPointer = new CheckedPointer(pointer, length * sizeof(CharacterShapingProperties)); } ////// Critical - The method returns unsafe pointer /// [SecurityCritical] internal unsafe CharacterShapingProperties * Probe(int offset, int length) { return (CharacterShapingProperties *) _checkedPointer.Probe(offset * sizeof(CharacterShapingProperties), length * sizeof(CharacterShapingProperties)); } private CheckedPointer _checkedPointer; } } // 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
- BCryptHashAlgorithm.cs
- TextElementCollection.cs
- SqlInternalConnectionTds.cs
- MediaContext.cs
- SetStoryboardSpeedRatio.cs
- ItemsControlAutomationPeer.cs
- KoreanLunisolarCalendar.cs
- UnicastIPAddressInformationCollection.cs
- KeyConstraint.cs
- MachinePropertyVariants.cs
- MarkupObject.cs
- GeneratedContractType.cs
- PositiveTimeSpanValidator.cs
- ChangeDirector.cs
- CalendarBlackoutDatesCollection.cs
- SoapAttributeAttribute.cs
- AspCompat.cs
- ColumnHeaderConverter.cs
- TextSerializer.cs
- ServiceThrottle.cs
- AdornedElementPlaceholder.cs
- SmiSettersStream.cs
- RegexRunnerFactory.cs
- SystemIcons.cs
- EventProviderTraceListener.cs
- DataBinding.cs
- JsonFormatReaderGenerator.cs
- DictionaryMarkupSerializer.cs
- TabletDevice.cs
- DashStyle.cs
- Size3D.cs
- SqlDataSourceStatusEventArgs.cs
- ParserHooks.cs
- NotifyParentPropertyAttribute.cs
- StickyNoteAnnotations.cs
- PageThemeParser.cs
- MaskedTextProvider.cs
- CalendarDay.cs
- MailMessage.cs
- HtmlTernaryTree.cs
- ElementUtil.cs
- AutomationPeer.cs
- ThemeDictionaryExtension.cs
- Emitter.cs
- SoapFault.cs
- DynamicResourceExtensionConverter.cs
- IteratorFilter.cs
- SByteStorage.cs
- C14NUtil.cs
- XmlSchemaSimpleTypeUnion.cs
- EditorPart.cs
- TreeNodeSelectionProcessor.cs
- KnownBoxes.cs
- rsa.cs
- Propagator.ExtentPlaceholderCreator.cs
- ScaleTransform3D.cs
- ActivityLocationReferenceEnvironment.cs
- EntityDataSourceReferenceGroup.cs
- WebPartZoneCollection.cs
- DecimalConstantAttribute.cs
- RelationalExpressions.cs
- StandardCommands.cs
- AsyncPostBackTrigger.cs
- FileClassifier.cs
- XmlFormatExtensionPointAttribute.cs
- OdbcFactory.cs
- PriorityChain.cs
- RtfToXamlReader.cs
- SiteOfOriginPart.cs
- XmlTextReader.cs
- CultureSpecificStringDictionary.cs
- SqlDataAdapter.cs
- DataRowComparer.cs
- PerformanceCounterPermissionAttribute.cs
- WindowsTitleBar.cs
- PageCodeDomTreeGenerator.cs
- DefaultEventAttribute.cs
- EventLogRecord.cs
- Vector3DCollectionConverter.cs
- SettingsBindableAttribute.cs
- AssemblyAttributesGoHere.cs
- MetadataUtil.cs
- TemplateAction.cs
- PackageRelationship.cs
- TransportManager.cs
- WebPartConnectionsDisconnectVerb.cs
- XhtmlBasicObjectListAdapter.cs
- XmlSchemaObject.cs
- BindingMemberInfo.cs
- DiffuseMaterial.cs
- Timer.cs
- Registry.cs
- DataFieldConverter.cs
- GraphicsPath.cs
- TreeWalker.cs
- HMACSHA1.cs
- JoinSymbol.cs
- SqlDataSourceView.cs
- StorageRoot.cs
- ScrollPatternIdentifiers.cs