Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- AspNetHostingPermission.cs
- ListBoxItem.cs
- XslTransform.cs
- SafeThreadHandle.cs
- DataGridRelationshipRow.cs
- WorkflowRuntimeServicesBehavior.cs
- BaseValidator.cs
- LocalValueEnumerator.cs
- HtmlTableCellCollection.cs
- BasicAsyncResult.cs
- CommonServiceBehaviorElement.cs
- ListViewGroupConverter.cs
- SamlAttributeStatement.cs
- Converter.cs
- TreeNodeStyleCollection.cs
- CommandPlan.cs
- Set.cs
- ListViewTableCell.cs
- PeerResolverMode.cs
- AnnotationResource.cs
- XmlAnyElementAttributes.cs
- ApplyTemplatesAction.cs
- HierarchicalDataBoundControl.cs
- OutOfMemoryException.cs
- Parser.cs
- OdbcConnectionPoolProviderInfo.cs
- NotFiniteNumberException.cs
- DataObjectMethodAttribute.cs
- DataGridSortCommandEventArgs.cs
- CaseStatement.cs
- RichTextBox.cs
- CultureMapper.cs
- JoinTreeNode.cs
- VariableDesigner.xaml.cs
- PolicyException.cs
- OleDbParameterCollection.cs
- CommentEmitter.cs
- ValueQuery.cs
- TableLayoutStyleCollection.cs
- StateRuntime.cs
- CheckBoxList.cs
- CodeDomComponentSerializationService.cs
- MenuItem.cs
- TextBoxBase.cs
- EmbeddedObject.cs
- BooleanKeyFrameCollection.cs
- CodeAttributeArgumentCollection.cs
- DemultiplexingClientMessageFormatter.cs
- HttpProfileGroupBase.cs
- ProcessProtocolHandler.cs
- WebControlsSection.cs
- CustomAttributeFormatException.cs
- oledbconnectionstring.cs
- KeyboardEventArgs.cs
- MsmqAuthenticationMode.cs
- Decimal.cs
- OutArgumentConverter.cs
- StringHelper.cs
- DataGridViewSortCompareEventArgs.cs
- PlanCompilerUtil.cs
- Mapping.cs
- TextChangedEventArgs.cs
- WizardDesigner.cs
- EndOfStreamException.cs
- ContextProperty.cs
- SerializerDescriptor.cs
- DiscreteKeyFrames.cs
- PasswordRecovery.cs
- HttpCapabilitiesEvaluator.cs
- BaseCodeDomTreeGenerator.cs
- CharEntityEncoderFallback.cs
- XmlSignatureProperties.cs
- MenuBindingsEditorForm.cs
- SByteConverter.cs
- SingleSelectRootGridEntry.cs
- TokenBasedSetEnumerator.cs
- NotificationContext.cs
- Typeface.cs
- StreamResourceInfo.cs
- TableFieldsEditor.cs
- SingletonChannelAcceptor.cs
- TaiwanLunisolarCalendar.cs
- ContextProperty.cs
- RegexTypeEditor.cs
- ColorPalette.cs
- SplitterPanel.cs
- MarshalDirectiveException.cs
- PagedDataSource.cs
- Span.cs
- LinkConverter.cs
- CdpEqualityComparer.cs
- SafeNativeMethods.cs
- ElementMarkupObject.cs
- QueryCacheKey.cs
- Collection.cs
- CodeExpressionStatement.cs
- FormViewUpdatedEventArgs.cs
- BufferedGraphicsManager.cs
- LinqDataView.cs
- SqlWebEventProvider.cs