Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / OleDb / PropertyIDSet.cs / 1305376 / PropertyIDSet.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System; using System.Data; using System.Data.Common; using System.Data.ProviderBase; using System.Diagnostics; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Security; using System.Security.Permissions; namespace System.Data.OleDb { internal sealed class PropertyIDSet : DbBuffer { static private readonly int PropertyIDSetAndValueSize = ODB.SizeOf_tagDBPROPIDSET + ADP.PtrSize; // sizeof(tagDBPROPIDSET) + sizeof(int) static private readonly int PropertyIDSetSize = ODB.SizeOf_tagDBPROPIDSET; private int _count; // the PropertyID is stored at the end of the tagDBPROPIDSET structure // this way only a single memory allocation is required instead of two internal PropertyIDSet(Guid propertySet, int propertyID) : base(PropertyIDSetAndValueSize) { _count = 1; // rgPropertyIDs references where that PropertyID is stored // depending on IntPtr.Size, tagDBPROPIDSET is either 24 or 28 bytes long IntPtr ptr = ADP.IntPtrOffset(base.handle, PropertyIDSetSize); Marshal.WriteIntPtr(base.handle, 0, ptr); Marshal.WriteInt32(base.handle, ADP.PtrSize, /*propertyid count*/1); ptr = ADP.IntPtrOffset(base.handle, ODB.OffsetOf_tagDBPROPIDSET_PropertySet); Marshal.StructureToPtr(propertySet, ptr, false/*deleteold*/); // write the propertyID at the same offset Marshal.WriteInt32(base.handle, PropertyIDSetSize, propertyID); } // no propertyIDs, just the propertyset guids internal PropertyIDSet(Guid[] propertySets) : base(PropertyIDSetSize * propertySets.Length) { _count = propertySets.Length; for(int i = 0; i < propertySets.Length; ++i) { IntPtr ptr = ADP.IntPtrOffset(base.handle, (i * PropertyIDSetSize) + ODB.OffsetOf_tagDBPROPIDSET_PropertySet); Marshal.StructureToPtr(propertySets[i], ptr, false/*deleteold*/); } } internal int Count { get { return _count; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System; using System.Data; using System.Data.Common; using System.Data.ProviderBase; using System.Diagnostics; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using System.Security; using System.Security.Permissions; namespace System.Data.OleDb { internal sealed class PropertyIDSet : DbBuffer { static private readonly int PropertyIDSetAndValueSize = ODB.SizeOf_tagDBPROPIDSET + ADP.PtrSize; // sizeof(tagDBPROPIDSET) + sizeof(int) static private readonly int PropertyIDSetSize = ODB.SizeOf_tagDBPROPIDSET; private int _count; // the PropertyID is stored at the end of the tagDBPROPIDSET structure // this way only a single memory allocation is required instead of two internal PropertyIDSet(Guid propertySet, int propertyID) : base(PropertyIDSetAndValueSize) { _count = 1; // rgPropertyIDs references where that PropertyID is stored // depending on IntPtr.Size, tagDBPROPIDSET is either 24 or 28 bytes long IntPtr ptr = ADP.IntPtrOffset(base.handle, PropertyIDSetSize); Marshal.WriteIntPtr(base.handle, 0, ptr); Marshal.WriteInt32(base.handle, ADP.PtrSize, /*propertyid count*/1); ptr = ADP.IntPtrOffset(base.handle, ODB.OffsetOf_tagDBPROPIDSET_PropertySet); Marshal.StructureToPtr(propertySet, ptr, false/*deleteold*/); // write the propertyID at the same offset Marshal.WriteInt32(base.handle, PropertyIDSetSize, propertyID); } // no propertyIDs, just the propertyset guids internal PropertyIDSet(Guid[] propertySets) : base(PropertyIDSetSize * propertySets.Length) { _count = propertySets.Length; for(int i = 0; i < propertySets.Length; ++i) { IntPtr ptr = ADP.IntPtrOffset(base.handle, (i * PropertyIDSetSize) + ODB.OffsetOf_tagDBPROPIDSET_PropertySet); Marshal.StructureToPtr(propertySets[i], ptr, false/*deleteold*/); } } internal int Count { get { return _count; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FileBasedResourceGroveler.cs
- Converter.cs
- DelegatingTypeDescriptionProvider.cs
- DataGridViewCellStyleConverter.cs
- ListViewGroupCollectionEditor.cs
- ResourceReferenceExpressionConverter.cs
- PieceDirectory.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- SourceChangedEventArgs.cs
- CaseInsensitiveOrdinalStringComparer.cs
- IndicShape.cs
- WindowShowOrOpenTracker.cs
- DecoderExceptionFallback.cs
- OrderedDictionary.cs
- FileDataSourceCache.cs
- String.cs
- UIElementAutomationPeer.cs
- RouteValueDictionary.cs
- EntitySqlQueryBuilder.cs
- CrossSiteScriptingValidation.cs
- Formatter.cs
- TargetInvocationException.cs
- InfoCardProofToken.cs
- Point3DAnimationBase.cs
- ToolZone.cs
- CompensationDesigner.cs
- formatter.cs
- ColorContext.cs
- ManagementDateTime.cs
- EventPrivateKey.cs
- PersonalizationStateInfo.cs
- PageAsyncTask.cs
- WriteTimeStream.cs
- XamlReaderConstants.cs
- ColorContext.cs
- DesignBinding.cs
- WriteFileContext.cs
- SupportsEventValidationAttribute.cs
- AttachmentCollection.cs
- JournalNavigationScope.cs
- RequestBringIntoViewEventArgs.cs
- ConfigUtil.cs
- ObjectHandle.cs
- ConfigurationStrings.cs
- DataGridViewColumnStateChangedEventArgs.cs
- CompleteWizardStep.cs
- ArraySet.cs
- CodeArgumentReferenceExpression.cs
- CacheHelper.cs
- TableLayoutCellPaintEventArgs.cs
- CodeDelegateInvokeExpression.cs
- TreeNodeConverter.cs
- ButtonAutomationPeer.cs
- SystemIPGlobalStatistics.cs
- MissingSatelliteAssemblyException.cs
- ToolStripPanelSelectionBehavior.cs
- ImageAttributes.cs
- TagMapCollection.cs
- _ChunkParse.cs
- GreenMethods.cs
- X509CertificateInitiatorServiceCredential.cs
- XmlSchemaAnnotation.cs
- ProxyWebPartManager.cs
- ProtectedConfigurationProviderCollection.cs
- EntityDataSourceSelectedEventArgs.cs
- DrawingContextWalker.cs
- CodeAttributeArgument.cs
- GACMembershipCondition.cs
- Content.cs
- SessionMode.cs
- linebase.cs
- securitymgrsite.cs
- ADMembershipProvider.cs
- ColumnWidthChangingEvent.cs
- ProgressBar.cs
- HttpChannelHelper.cs
- OdbcConnectionString.cs
- SQLCharsStorage.cs
- Highlights.cs
- WinInetCache.cs
- ManagementEventWatcher.cs
- StringFunctions.cs
- FullTextState.cs
- TextComposition.cs
- TimeSpanValidator.cs
- BrowserTree.cs
- SafeSystemMetrics.cs
- TagMapInfo.cs
- ExecutedRoutedEventArgs.cs
- Collection.cs
- RawKeyboardInputReport.cs
- XmlSchemaProviderAttribute.cs
- ByteAnimation.cs
- RangeExpression.cs
- TypedTableBase.cs
- LicenseException.cs
- DataTemplateSelector.cs
- xsdvalidator.cs
- GifBitmapDecoder.cs