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
- MemberDomainMap.cs
- SerTrace.cs
- SqlAliaser.cs
- DockAndAnchorLayout.cs
- CorrelationKey.cs
- ObjectRef.cs
- TypePropertyEditor.cs
- CodeDesigner.cs
- ConfigurationStrings.cs
- XPathPatternBuilder.cs
- StringInfo.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- Merger.cs
- ResourceKey.cs
- TypeSource.cs
- ClientSideQueueItem.cs
- SqlCommandBuilder.cs
- WebColorConverter.cs
- ExpressionBindingCollection.cs
- CreateRefExpr.cs
- ContentPresenter.cs
- XmlQualifiedName.cs
- AspNetSynchronizationContext.cs
- MatrixConverter.cs
- InputLanguageProfileNotifySink.cs
- GeneralTransformCollection.cs
- ButtonBase.cs
- BulletChrome.cs
- ReadContentAsBinaryHelper.cs
- followingquery.cs
- MaskPropertyEditor.cs
- WinEventWrap.cs
- HandleRef.cs
- ToolStripDropDownClosedEventArgs.cs
- RegexBoyerMoore.cs
- FilteredDataSetHelper.cs
- ParallelTimeline.cs
- ChoiceConverter.cs
- Compiler.cs
- Pair.cs
- ExceptionDetail.cs
- AuthenticatingEventArgs.cs
- PerfCounterSection.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- LayoutInformation.cs
- SqlOuterApplyReducer.cs
- XPathBinder.cs
- ConfigXmlCDataSection.cs
- CalloutQueueItem.cs
- FlowLayout.cs
- DependencyObjectProvider.cs
- TextParaLineResult.cs
- ReadWriteObjectLock.cs
- COM2AboutBoxPropertyDescriptor.cs
- NumberFunctions.cs
- CheckedPointers.cs
- WebHttpBindingElement.cs
- RIPEMD160.cs
- SelectedGridItemChangedEvent.cs
- SpellerError.cs
- ListViewItemSelectionChangedEvent.cs
- HotSpotCollection.cs
- QilParameter.cs
- TraceXPathNavigator.cs
- EventPrivateKey.cs
- DropSource.cs
- AnimationLayer.cs
- ShaderEffect.cs
- Propagator.JoinPropagator.cs
- ObjectStateFormatter.cs
- FileLoadException.cs
- typedescriptorpermissionattribute.cs
- XmlILOptimizerVisitor.cs
- AsymmetricSignatureDeformatter.cs
- XmlSchemaSimpleContentExtension.cs
- X509CertificateRecipientServiceCredential.cs
- ConnectorDragDropGlyph.cs
- MetadataFile.cs
- XmlSerializerAssemblyAttribute.cs
- DurationConverter.cs
- ServiceManager.cs
- ListItemParagraph.cs
- SerializerProvider.cs
- CultureInfo.cs
- SqlRemoveConstantOrderBy.cs
- PEFileEvidenceFactory.cs
- Simplifier.cs
- Collection.cs
- AutoGeneratedFieldProperties.cs
- SimpleWorkerRequest.cs
- MetafileHeaderEmf.cs
- SequentialActivityDesigner.cs
- GroupBoxAutomationPeer.cs
- Visual3D.cs
- ImpersonationContext.cs
- Calendar.cs
- securitycriticaldata.cs
- XPathBinder.cs
- RootBuilder.cs
- CustomCategoryAttribute.cs