Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / OleDb / PropertyIDSet.cs / 1305376 / 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.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ControlValuePropertyAttribute.cs
- FileIOPermission.cs
- ReferenceService.cs
- ZipIOExtraField.cs
- SourceItem.cs
- TypeToken.cs
- DESCryptoServiceProvider.cs
- __ComObject.cs
- CancelEventArgs.cs
- CodeBlockBuilder.cs
- ColorContext.cs
- DataListItemCollection.cs
- DataGridHeaderBorder.cs
- HtmlInputImage.cs
- ZipIOFileItemStream.cs
- SerialPinChanges.cs
- SoapElementAttribute.cs
- DataServiceQueryOfT.cs
- JapaneseLunisolarCalendar.cs
- _TransmitFileOverlappedAsyncResult.cs
- SQLMoneyStorage.cs
- XmlSchemaAttribute.cs
- EventLogReader.cs
- ChangesetResponse.cs
- AttributeTable.cs
- ServerValidateEventArgs.cs
- EventProviderBase.cs
- ServiceBusyException.cs
- Parameter.cs
- BitmapVisualManager.cs
- TraceLevelStore.cs
- LayoutExceptionEventArgs.cs
- MSAANativeProvider.cs
- XmlWellformedWriter.cs
- DataServiceExpressionVisitor.cs
- ImageCreator.cs
- BlockUIContainer.cs
- LineGeometry.cs
- SerialReceived.cs
- OverloadGroupAttribute.cs
- RelationshipEnd.cs
- MetadataExporter.cs
- ViewBox.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- ColumnResizeUndoUnit.cs
- AdRotatorDesigner.cs
- COM2Enum.cs
- VarRemapper.cs
- ReferenceList.cs
- WarningException.cs
- PreProcessor.cs
- TabItem.cs
- HtmlTableRowCollection.cs
- SplineQuaternionKeyFrame.cs
- OutputScopeManager.cs
- ExtensionQuery.cs
- KeyMatchBuilder.cs
- ReadOnlyNameValueCollection.cs
- PropertyGridCommands.cs
- CurrentTimeZone.cs
- BreakRecordTable.cs
- StreamReader.cs
- DurationConverter.cs
- X509Certificate2Collection.cs
- MissingFieldException.cs
- webbrowsersite.cs
- HyperlinkAutomationPeer.cs
- LocalizabilityAttribute.cs
- Vector3DCollectionConverter.cs
- Win32Native.cs
- SortableBindingList.cs
- SqlInternalConnectionTds.cs
- XmlExceptionHelper.cs
- ToolStripHighContrastRenderer.cs
- WeakEventTable.cs
- Stacktrace.cs
- DataGridTextBoxColumn.cs
- InstanceNotReadyException.cs
- DBProviderConfigurationHandler.cs
- CheckBoxField.cs
- AttributeCallbackBuilder.cs
- odbcmetadatafactory.cs
- IxmlLineInfo.cs
- ISFTagAndGuidCache.cs
- SessionStateContainer.cs
- OleDragDropHandler.cs
- EventlogProvider.cs
- SspiNegotiationTokenProviderState.cs
- Barrier.cs
- DbParameterHelper.cs
- ItemCheckedEvent.cs
- MarkupCompiler.cs
- PointKeyFrameCollection.cs
- WebPartDisplayModeCollection.cs
- MatchSingleFxEngineOpcode.cs
- WebPartDisplayModeCollection.cs
- StaticExtension.cs
- MainMenu.cs
- BooleanKeyFrameCollection.cs
- InvokePatternIdentifiers.cs