Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- UnknownWrapper.cs
- CompilationPass2TaskInternal.cs
- cookiecollection.cs
- ComponentResourceKey.cs
- DataSourceControl.cs
- ReadOnlyCollection.cs
- GiveFeedbackEventArgs.cs
- OleDbErrorCollection.cs
- DataGridState.cs
- PathGeometry.cs
- InputMethodStateTypeInfo.cs
- DataPagerCommandEventArgs.cs
- EnumValAlphaComparer.cs
- FragmentNavigationEventArgs.cs
- ByteStreamMessageEncoder.cs
- PrincipalPermissionMode.cs
- WindowsStatusBar.cs
- TagMapInfo.cs
- DataControlPagerLinkButton.cs
- QilInvokeLateBound.cs
- TabItem.cs
- MethodToken.cs
- PocoEntityKeyStrategy.cs
- TargetException.cs
- FloaterBaseParagraph.cs
- SegmentTree.cs
- HashHelpers.cs
- TemplateBamlRecordReader.cs
- MasterPage.cs
- HttpProfileBase.cs
- TabControlDesigner.cs
- EngineSiteSapi.cs
- InvalidOleVariantTypeException.cs
- DataGridViewCheckBoxCell.cs
- FamilyMap.cs
- FlowDocumentPaginator.cs
- SecurityUtils.cs
- ColorConverter.cs
- SqlEnums.cs
- RadioButton.cs
- EdmItemError.cs
- AttributeCollection.cs
- FilteredReadOnlyMetadataCollection.cs
- AuthenticateEventArgs.cs
- DisplayMemberTemplateSelector.cs
- SqlProviderServices.cs
- Application.cs
- SerializerProvider.cs
- DiscriminatorMap.cs
- Operand.cs
- HttpRequestCacheValidator.cs
- WebBrowserUriTypeConverter.cs
- PageTheme.cs
- PeerToPeerException.cs
- MetaType.cs
- ElapsedEventArgs.cs
- ComboBox.cs
- MessageFormatterConverter.cs
- PreparingEnlistment.cs
- HiddenField.cs
- TableRowGroup.cs
- EventWaitHandleSecurity.cs
- Memoizer.cs
- XmlElementAttribute.cs
- SafeArrayRankMismatchException.cs
- HostedElements.cs
- CookieProtection.cs
- SetIndexBinder.cs
- Trigger.cs
- XmlElement.cs
- CookieParameter.cs
- ClientConfigurationSystem.cs
- DocumentViewerAutomationPeer.cs
- ColorInterpolationModeValidation.cs
- XmlConverter.cs
- NativeWindow.cs
- WebPartTransformerAttribute.cs
- CFStream.cs
- XmlNodeComparer.cs
- PeerContact.cs
- TextEditorTables.cs
- ToolboxItemAttribute.cs
- TypedElement.cs
- SchemaImporterExtension.cs
- ByteKeyFrameCollection.cs
- TextEvent.cs
- entityreference_tresulttype.cs
- NominalTypeEliminator.cs
- XPathSelfQuery.cs
- BitVec.cs
- MeshGeometry3D.cs
- SizeChangedInfo.cs
- CompilerParameters.cs
- PropertyMap.cs
- ClientRuntimeConfig.cs
- DrawingContextWalker.cs
- followingquery.cs
- InputProcessorProfiles.cs
- UniqueIdentifierService.cs
- ObjectDataSourceFilteringEventArgs.cs