Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EmptyCollection.cs
- XmlAttributeAttribute.cs
- HtmlInputControl.cs
- Transform.cs
- Point3DCollection.cs
- TitleStyle.cs
- DrawListViewItemEventArgs.cs
- Popup.cs
- SmtpCommands.cs
- MissingManifestResourceException.cs
- DataSourceSelectArguments.cs
- DbParameterHelper.cs
- SiteMapNodeItem.cs
- DelegateCompletionCallbackWrapper.cs
- DrawingBrush.cs
- RichTextBox.cs
- ChangePasswordAutoFormat.cs
- TextureBrush.cs
- WindowHelperService.cs
- Page.cs
- DiscoveryServerProtocol.cs
- ResourceDictionary.cs
- ValidatedMobileControlConverter.cs
- LiteralControl.cs
- EventPrivateKey.cs
- XamlTreeBuilder.cs
- TimeSpanSecondsConverter.cs
- CorrelationResolver.cs
- InstanceDescriptor.cs
- XmlSchemaInfo.cs
- MasterPageCodeDomTreeGenerator.cs
- InputReport.cs
- ActivityValidator.cs
- RecognizerInfo.cs
- PieceDirectory.cs
- SettingsBase.cs
- IfJoinedCondition.cs
- GetPageNumberCompletedEventArgs.cs
- ExpressionNormalizer.cs
- HttpWebResponse.cs
- ClientProxyGenerator.cs
- Metadata.cs
- ProxyFragment.cs
- AbstractSvcMapFileLoader.cs
- XmlQueryContext.cs
- LinkArea.cs
- TextSelectionHelper.cs
- MaskedTextProvider.cs
- GroupDescription.cs
- CategoryAttribute.cs
- EngineSiteSapi.cs
- MdbDataFileEditor.cs
- BrowserTree.cs
- SchemaType.cs
- AutoResetEvent.cs
- TextEditor.cs
- SHA384.cs
- ByteStreamGeometryContext.cs
- ImageMetadata.cs
- XamlInterfaces.cs
- CleanUpVirtualizedItemEventArgs.cs
- PropertyPathConverter.cs
- Timer.cs
- BitmapFrameEncode.cs
- ListControl.cs
- DbConvert.cs
- ToolStripRenderer.cs
- TcpClientSocketManager.cs
- XmlAnyElementAttributes.cs
- KeyTimeConverter.cs
- TemplateManager.cs
- LinqDataView.cs
- DiscoveryRequestHandler.cs
- _ProxyRegBlob.cs
- DbProviderFactory.cs
- BindingExpressionUncommonField.cs
- PanelStyle.cs
- MemberDescriptor.cs
- AlignmentYValidation.cs
- HtmlImage.cs
- Root.cs
- KerberosReceiverSecurityToken.cs
- UInt64.cs
- EmbeddedObject.cs
- PointLight.cs
- KerberosSecurityTokenParameters.cs
- QueryTreeBuilder.cs
- oledbmetadatacolumnnames.cs
- SelectionPatternIdentifiers.cs
- PropertyOrder.cs
- WinEventHandler.cs
- ConfigXmlReader.cs
- SmtpNegotiateAuthenticationModule.cs
- StateItem.cs
- BoolExpr.cs
- CompressStream.cs
- ListViewCancelEventArgs.cs
- WriteStateInfoBase.cs
- ReflectionTypeLoadException.cs
- XpsPackagingException.cs