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
- BitmapFrameEncode.cs
- SqlLiftIndependentRowExpressions.cs
- DataMemberConverter.cs
- basecomparevalidator.cs
- TemplateBamlRecordReader.cs
- X509CertificateChain.cs
- AttachmentCollection.cs
- SoundPlayer.cs
- DataObjectSettingDataEventArgs.cs
- SafeRightsManagementHandle.cs
- Transactions.cs
- XmlSchemaSet.cs
- DiscardableAttribute.cs
- HtmlProps.cs
- RuntimeResourceSet.cs
- MetadataUtil.cs
- CalendarAutomationPeer.cs
- WindowsHyperlink.cs
- MaskedTextProvider.cs
- MultilineStringEditor.cs
- mda.cs
- EndpointNotFoundException.cs
- SQLDecimalStorage.cs
- HttpDigestClientElement.cs
- WebPartVerbsEventArgs.cs
- Missing.cs
- BindingMAnagerBase.cs
- RelationshipFixer.cs
- OperatingSystemVersionCheck.cs
- NumericUpDownAccelerationCollection.cs
- SettingsPropertyNotFoundException.cs
- BamlResourceContent.cs
- DynamicExpression.cs
- XmlSchemaAppInfo.cs
- brushes.cs
- SelectionWordBreaker.cs
- DataTableClearEvent.cs
- ContactManager.cs
- CompiledQuery.cs
- Events.cs
- TimeoutException.cs
- CaseInsensitiveComparer.cs
- System.Data.OracleClient_BID.cs
- RunClient.cs
- WebServiceClientProxyGenerator.cs
- RequestBringIntoViewEventArgs.cs
- HttpModuleCollection.cs
- LinqDataSourceContextData.cs
- TabletCollection.cs
- WorkflowInstanceTerminatedRecord.cs
- ConfigurationValidatorBase.cs
- ValidatorCollection.cs
- Sql8ConformanceChecker.cs
- DataControlField.cs
- LambdaCompiler.Statements.cs
- DataControlField.cs
- _ChunkParse.cs
- Command.cs
- ToolboxItemFilterAttribute.cs
- HttpWriter.cs
- ClientBuildManager.cs
- ValueUtilsSmi.cs
- HttpRuntimeSection.cs
- MarkupObject.cs
- FixedTextSelectionProcessor.cs
- ScrollChangedEventArgs.cs
- DataGridViewTextBoxEditingControl.cs
- X509CertificateInitiatorClientCredential.cs
- ConfigurationProperty.cs
- QueryConverter.cs
- KeyValuePairs.cs
- Vector3DCollectionValueSerializer.cs
- DataControlCommands.cs
- GradientBrush.cs
- WebZone.cs
- ObjectDataSource.cs
- CancellationTokenSource.cs
- SmtpCommands.cs
- Parameter.cs
- Section.cs
- CodeTypeReferenceCollection.cs
- CodeDomSerializerBase.cs
- MergeLocalizationDirectives.cs
- RangeExpression.cs
- XmlDocumentType.cs
- PerfService.cs
- WorkerProcess.cs
- SchemaTableColumn.cs
- StylusPoint.cs
- ImageMapEventArgs.cs
- NumericExpr.cs
- BamlBinaryWriter.cs
- WebBrowserDocumentCompletedEventHandler.cs
- XhtmlBasicValidationSummaryAdapter.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- sqlstateclientmanager.cs
- ConnectionManagementElementCollection.cs
- HttpModuleCollection.cs
- LinqDataSourceEditData.cs
- ContentElementAutomationPeer.cs