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
- AppDomainGrammarProxy.cs
- DispatcherTimer.cs
- SystemUnicastIPAddressInformation.cs
- SystemColorTracker.cs
- SqlBuffer.cs
- ZipFileInfoCollection.cs
- MD5.cs
- Pipe.cs
- QilXmlReader.cs
- PolicyChain.cs
- EventMappingSettingsCollection.cs
- DeclarationUpdate.cs
- RawStylusInputReport.cs
- SizeAnimationBase.cs
- ByteStreamMessageEncodingElement.cs
- BitmapFrame.cs
- StringWriter.cs
- NullableIntMinMaxAggregationOperator.cs
- ToolStripDropTargetManager.cs
- MimeObjectFactory.cs
- FontWeightConverter.cs
- ImageMapEventArgs.cs
- SqlTopReducer.cs
- QueryPageSettingsEventArgs.cs
- InputLanguageCollection.cs
- Completion.cs
- SymbolTable.cs
- BuilderPropertyEntry.cs
- SystemParameters.cs
- _SSPISessionCache.cs
- ChannelManager.cs
- ColorConvertedBitmap.cs
- ContextQuery.cs
- Size3D.cs
- XhtmlBasicPhoneCallAdapter.cs
- Trace.cs
- ConfigXmlCDataSection.cs
- DockPattern.cs
- LogRecordSequence.cs
- DbConnectionInternal.cs
- GridPatternIdentifiers.cs
- FixedPageProcessor.cs
- SetStateDesigner.cs
- HotSpot.cs
- Interlocked.cs
- ChildrenQuery.cs
- ImpersonateTokenRef.cs
- QilBinary.cs
- PrivateFontCollection.cs
- WrappedIUnknown.cs
- WebSysDescriptionAttribute.cs
- SequenceFullException.cs
- XmlSchemaIdentityConstraint.cs
- RichTextBox.cs
- ToolBar.cs
- DependencyProperty.cs
- GenericEnumerator.cs
- ListViewTableRow.cs
- HtmlEmptyTagControlBuilder.cs
- KeyValuePairs.cs
- XmlSerializableWriter.cs
- EntityCommandCompilationException.cs
- PhysicalOps.cs
- WorkflowRuntimeBehavior.cs
- RectAnimationClockResource.cs
- Context.cs
- COM2PropertyPageUITypeConverter.cs
- SmtpTransport.cs
- UInt64.cs
- XmlIncludeAttribute.cs
- ToolboxItemFilterAttribute.cs
- KeyFrames.cs
- CanonicalizationDriver.cs
- IssuedTokenServiceCredential.cs
- ReaderOutput.cs
- SqlCacheDependencyDatabaseCollection.cs
- MobileControl.cs
- CodeCommentStatementCollection.cs
- Schema.cs
- XmlHierarchyData.cs
- EntityDataSourceUtil.cs
- SpeakInfo.cs
- designeractionbehavior.cs
- SplitterPanelDesigner.cs
- URI.cs
- SafeNativeMethods.cs
- CardSpaceShim.cs
- DbParameterHelper.cs
- MultiDataTrigger.cs
- UInt16.cs
- Thread.cs
- _ShellExpression.cs
- CompilationRelaxations.cs
- InputMethod.cs
- ImageAnimator.cs
- Queue.cs
- MessageDecoder.cs
- DebugView.cs
- StorageAssociationTypeMapping.cs
- StylusDownEventArgs.cs