Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Data / System / Data / OleDb / PropertyIDSet.cs / 1 / 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
- KnownAssembliesSet.cs
- UriTemplateVariableQueryValue.cs
- TimeSpanSecondsConverter.cs
- EventLogger.cs
- OrderedEnumerableRowCollection.cs
- CompositeFontParser.cs
- TextBounds.cs
- HtmlInputText.cs
- DefaultSerializationProviderAttribute.cs
- SettingsPropertyIsReadOnlyException.cs
- WindowsFormsLinkLabel.cs
- TabletDevice.cs
- IPAddressCollection.cs
- XPathDocumentNavigator.cs
- FontStyle.cs
- PaintValueEventArgs.cs
- ApplicationFileParser.cs
- httpstaticobjectscollection.cs
- Util.cs
- TextBox.cs
- ProxyWebPartConnectionCollection.cs
- TreeNodeCollection.cs
- ArrayConverter.cs
- SpStreamWrapper.cs
- WindowCollection.cs
- TextDecorationCollectionConverter.cs
- NameValuePermission.cs
- SimpleType.cs
- TextEndOfLine.cs
- TextLineBreak.cs
- RegexCompilationInfo.cs
- FieldDescriptor.cs
- TypeUtils.cs
- ModelVisual3D.cs
- ToolStripTextBox.cs
- DecimalConstantAttribute.cs
- SingleObjectCollection.cs
- Object.cs
- TranslateTransform.cs
- DataGridViewColumnStateChangedEventArgs.cs
- StringConverter.cs
- MembershipUser.cs
- IArgumentProvider.cs
- EmbossBitmapEffect.cs
- CookieParameter.cs
- DragDeltaEventArgs.cs
- DataGridViewRowCancelEventArgs.cs
- ToolStripItemClickedEventArgs.cs
- AvTraceDetails.cs
- DirectoryNotFoundException.cs
- PrincipalPermission.cs
- ToolStripDropDownClosingEventArgs.cs
- StringSorter.cs
- LookupBindingPropertiesAttribute.cs
- GeometryHitTestResult.cs
- WebPartVerbCollection.cs
- AsyncStreamReader.cs
- BrowserDefinitionCollection.cs
- XXXOnTypeBuilderInstantiation.cs
- StorageComplexPropertyMapping.cs
- CustomPopupPlacement.cs
- Hash.cs
- NameValueConfigurationElement.cs
- DeclarationUpdate.cs
- SchemaContext.cs
- RootBrowserWindow.cs
- ToolStripPanelRenderEventArgs.cs
- RowCache.cs
- RtfFormatStack.cs
- CheckBoxStandardAdapter.cs
- AssemblyName.cs
- Error.cs
- UnmanagedMemoryStream.cs
- JsonDeserializer.cs
- EventlogProvider.cs
- UnauthorizedWebPart.cs
- FormatConvertedBitmap.cs
- InstancePersistenceEvent.cs
- ProxyWebPartManagerDesigner.cs
- SequenceFullException.cs
- AtomServiceDocumentSerializer.cs
- EncoderParameter.cs
- HttpModuleCollection.cs
- CommonDialog.cs
- UrlPath.cs
- PointHitTestParameters.cs
- Int32CAMarshaler.cs
- HostProtectionException.cs
- InfoCardKeyedHashAlgorithm.cs
- XhtmlMobileTextWriter.cs
- Tile.cs
- EmptyControlCollection.cs
- _TransmitFileOverlappedAsyncResult.cs
- MatrixAnimationBase.cs
- QueuePropertyVariants.cs
- TextBox.cs
- BitmapSourceSafeMILHandle.cs
- UriTemplatePathPartiallyEquivalentSet.cs
- base64Transforms.cs
- AccessDataSourceView.cs