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
- MarkupCompilePass1.cs
- NumericUpDownAccelerationCollection.cs
- PropertyChangingEventArgs.cs
- StaticFileHandler.cs
- DataControlFieldCollection.cs
- XmlDataDocument.cs
- StylusOverProperty.cs
- SqlClientFactory.cs
- WrapperEqualityComparer.cs
- StringPropertyBuilder.cs
- CellTreeNodeVisitors.cs
- SingleSelectRootGridEntry.cs
- SymLanguageType.cs
- TypeTypeConverter.cs
- DocumentViewerHelper.cs
- NetworkInformationPermission.cs
- HttpHeaderCollection.cs
- Vector3DCollectionConverter.cs
- PeerSecurityHelpers.cs
- ZoneIdentityPermission.cs
- PlainXmlDeserializer.cs
- PermissionAttributes.cs
- JumpList.cs
- Screen.cs
- ClickablePoint.cs
- FuncCompletionCallbackWrapper.cs
- PathTooLongException.cs
- PropertyGeneratedEventArgs.cs
- SqlRowUpdatedEvent.cs
- MetadataAssemblyHelper.cs
- IgnoreSection.cs
- ItemDragEvent.cs
- SizeKeyFrameCollection.cs
- ReferenceService.cs
- Listbox.cs
- DataGridViewCellCollection.cs
- BooleanKeyFrameCollection.cs
- ZipIOFileItemStream.cs
- DataBoundLiteralControl.cs
- SoapIncludeAttribute.cs
- DbRetry.cs
- FontStyle.cs
- SettingsPropertyWrongTypeException.cs
- ExpressionBuilderContext.cs
- KeyConstraint.cs
- Pkcs7Recipient.cs
- EventSetter.cs
- StandardBindingOptionalReliableSessionElement.cs
- FamilyCollection.cs
- NamedPipeWorkerProcess.cs
- UnsafeNativeMethods.cs
- TraceUtils.cs
- PlaceHolder.cs
- IOException.cs
- ListenerConfig.cs
- MetadataItemSerializer.cs
- SafeNativeMethodsCLR.cs
- SafeUserTokenHandle.cs
- BaseDataListActionList.cs
- PrintingPermission.cs
- DataGridViewCheckBoxCell.cs
- RegistryKey.cs
- Msec.cs
- ByteStack.cs
- TypeBuilderInstantiation.cs
- SafeNativeMethodsOther.cs
- RawAppCommandInputReport.cs
- DataGridViewTopLeftHeaderCell.cs
- LiteralDesigner.cs
- ProxyAttribute.cs
- SHA256.cs
- MatrixIndependentAnimationStorage.cs
- DataGridViewRowCancelEventArgs.cs
- DesignObjectWrapper.cs
- DataGridViewColumnStateChangedEventArgs.cs
- EventMappingSettings.cs
- CookielessHelper.cs
- SubMenuStyle.cs
- FlowSwitchDesigner.xaml.cs
- EntityCommandDefinition.cs
- MimePart.cs
- initElementDictionary.cs
- _Win32.cs
- Stream.cs
- SessionState.cs
- InstalledVoice.cs
- CodeIdentifier.cs
- GlobalProxySelection.cs
- BulletChrome.cs
- AutomationPeer.cs
- HotSpot.cs
- OleDbEnumerator.cs
- StateDesigner.cs
- GroupBox.cs
- ConfigurationPropertyCollection.cs
- WorkflowApplicationException.cs
- InputBinding.cs
- ValidatedControlConverter.cs
- DataListItemEventArgs.cs
- GroupDescription.cs