Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ReadOnlyDataSource.cs
- LayoutInformation.cs
- ApplicationActivator.cs
- MailMessage.cs
- DoubleIndependentAnimationStorage.cs
- NativeMethods.cs
- DataTemplateSelector.cs
- SignedXml.cs
- VirtualStackFrame.cs
- PeerCollaboration.cs
- HttpListenerContext.cs
- EntityDataSourceContextDisposingEventArgs.cs
- MarshalDirectiveException.cs
- SoapHelper.cs
- FileDialogCustomPlacesCollection.cs
- XPathException.cs
- StateMachineWorkflowDesigner.cs
- CodeVariableDeclarationStatement.cs
- InvalidOperationException.cs
- LogReservationCollection.cs
- GifBitmapDecoder.cs
- TypeToken.cs
- SubpageParagraph.cs
- SQLCharsStorage.cs
- XmlSerializerNamespaces.cs
- IImplicitResourceProvider.cs
- QueryAsyncResult.cs
- WebPartConnectionsCancelVerb.cs
- TCEAdapterGenerator.cs
- MenuBindingsEditor.cs
- PolyBezierSegment.cs
- HttpProtocolImporter.cs
- DoubleCollectionConverter.cs
- ProtocolsConfiguration.cs
- Connector.cs
- DataGridRowsPresenter.cs
- Int32CAMarshaler.cs
- Journaling.cs
- ReadOnlyMetadataCollection.cs
- cache.cs
- GC.cs
- SqlCommandSet.cs
- TraceXPathNavigator.cs
- ColumnMapProcessor.cs
- ExpandCollapseProviderWrapper.cs
- ToolStripSystemRenderer.cs
- DropSourceBehavior.cs
- DBDataPermissionAttribute.cs
- RegionIterator.cs
- CroppedBitmap.cs
- MetadataStore.cs
- control.ime.cs
- ObjectParameterCollection.cs
- UriTemplateCompoundPathSegment.cs
- xamlnodes.cs
- GlobalizationSection.cs
- xml.cs
- NodeCounter.cs
- NativeMethods.cs
- LabelAutomationPeer.cs
- IdentityHolder.cs
- DataGridViewRow.cs
- basevalidator.cs
- UpDownBaseDesigner.cs
- PrincipalPermission.cs
- PanelDesigner.cs
- FontEditor.cs
- UpdateCommand.cs
- ListViewGroup.cs
- SharedUtils.cs
- versioninfo.cs
- BooleanProjectedSlot.cs
- XmlCharCheckingReader.cs
- CodeTypeParameter.cs
- SizeChangedInfo.cs
- AliasedExpr.cs
- KeyNotFoundException.cs
- SqlCommand.cs
- CategoryNameCollection.cs
- EndGetFileNameFromUserRequest.cs
- CommandLibraryHelper.cs
- ClickablePoint.cs
- ObjectReaderCompiler.cs
- ExpressionUtilities.cs
- InvokeHandlers.cs
- FusionWrap.cs
- ObjectDataSourceMethodEditor.cs
- VectorKeyFrameCollection.cs
- XmlSchemas.cs
- NumberFormatInfo.cs
- PtsHelper.cs
- ObfuscateAssemblyAttribute.cs
- WCFModelStrings.Designer.cs
- CroppedBitmap.cs
- DbProviderSpecificTypePropertyAttribute.cs
- Win32.cs
- TimeSpanStorage.cs
- MaterializeFromAtom.cs
- TraceContextEventArgs.cs
- DesignerCapabilities.cs