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
- LabelEditEvent.cs
- _BaseOverlappedAsyncResult.cs
- SQLRoleProvider.cs
- WebZoneDesigner.cs
- TextRangeEdit.cs
- CheckBox.cs
- ObjectDataSourceMethodEventArgs.cs
- GetTokenRequest.cs
- DNS.cs
- SubclassTypeValidatorAttribute.cs
- Binding.cs
- RegexParser.cs
- BaseParagraph.cs
- CatalogZone.cs
- ItemDragEvent.cs
- DynamicDataManager.cs
- ListBoxItemWrapperAutomationPeer.cs
- ResourceAssociationType.cs
- ModulesEntry.cs
- SamlAssertion.cs
- AdapterDictionary.cs
- ListItem.cs
- KeyInfo.cs
- WebColorConverter.cs
- ProtocolsSection.cs
- ColorConvertedBitmap.cs
- MSAAWinEventWrap.cs
- XmlSubtreeReader.cs
- ReturnType.cs
- ToolStripRenderer.cs
- AccessibleObject.cs
- FormViewInsertedEventArgs.cs
- TemplateParser.cs
- ClientSideQueueItem.cs
- XmlCDATASection.cs
- ArrayWithOffset.cs
- Type.cs
- RelationshipEndCollection.cs
- WebPartsSection.cs
- PersonalizableTypeEntry.cs
- CqlParser.cs
- SecurityException.cs
- CodeRemoveEventStatement.cs
- TaiwanLunisolarCalendar.cs
- WorkflowInstanceProvider.cs
- AnnotationMap.cs
- DesignTimeTemplateParser.cs
- GlobalAllocSafeHandle.cs
- PartialToken.cs
- M3DUtil.cs
- Group.cs
- DetailsViewPagerRow.cs
- ExtendedProperty.cs
- SafeIUnknown.cs
- StrongNameUtility.cs
- basenumberconverter.cs
- AdditionalEntityFunctions.cs
- NonDualMessageSecurityOverHttp.cs
- XmlSchemaSequence.cs
- FloatUtil.cs
- DataGridViewCellStyle.cs
- complextypematerializer.cs
- AudioBase.cs
- PageRanges.cs
- ProgramPublisher.cs
- BackgroundFormatInfo.cs
- UriParserTemplates.cs
- ProcessHostServerConfig.cs
- PropertyDescriptorGridEntry.cs
- ContainerTracking.cs
- WpfXamlType.cs
- DbSourceCommand.cs
- DbDataAdapter.cs
- DbDataRecord.cs
- CodeRegionDirective.cs
- ListParaClient.cs
- XmlTextWriter.cs
- Crypto.cs
- entityreference_tresulttype.cs
- SchemaComplexType.cs
- TreeViewEvent.cs
- CharUnicodeInfo.cs
- GenericIdentity.cs
- WizardStepBase.cs
- AnnotationResourceCollection.cs
- Screen.cs
- NavigateEvent.cs
- StatusBarDesigner.cs
- ClientType.cs
- TagPrefixCollection.cs
- SafePEFileHandle.cs
- ItemsControlAutomationPeer.cs
- MouseGestureConverter.cs
- ReadContentAsBinaryHelper.cs
- MenuItemBindingCollection.cs
- BinaryObjectWriter.cs
- EventSetter.cs
- WindowsComboBox.cs
- ComponentConverter.cs
- HitTestResult.cs