Code:
/ DotNET / DotNET / 8.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
- PropertyFilterAttribute.cs
- ObjectListCommandCollection.cs
- XmlILConstructAnalyzer.cs
- SmiConnection.cs
- ImmutableDispatchRuntime.cs
- AliasedExpr.cs
- SiteMapHierarchicalDataSourceView.cs
- TransformDescriptor.cs
- SynchronizedInputPattern.cs
- ClientTargetCollection.cs
- UriTemplateTable.cs
- TabItemAutomationPeer.cs
- CommonDialog.cs
- _SslStream.cs
- VariableQuery.cs
- SiteMapNodeItem.cs
- ElementHostAutomationPeer.cs
- LinqDataSource.cs
- ILGenerator.cs
- WebPartDisplayMode.cs
- FileDialogPermission.cs
- PageCatalogPart.cs
- ClientTargetSection.cs
- ExpressionBuilderCollection.cs
- BamlLocalizationDictionary.cs
- OpCodes.cs
- TableItemPattern.cs
- MessageSecurityOverHttpElement.cs
- SoundPlayerAction.cs
- CurrencyWrapper.cs
- Matrix3D.cs
- NetWebProxyFinder.cs
- AmbiguousMatchException.cs
- XpsFixedDocumentReaderWriter.cs
- WsatProxy.cs
- shaper.cs
- Rotation3D.cs
- SqlCommandSet.cs
- DbConnectionPool.cs
- DetailsViewPageEventArgs.cs
- ReadOnlyCollection.cs
- SmtpFailedRecipientsException.cs
- SqlDataSourceCommandParser.cs
- DesignerUtility.cs
- GridSplitterAutomationPeer.cs
- TraceListeners.cs
- XPathNavigator.cs
- Parser.cs
- ProcessModuleCollection.cs
- DatePickerTextBox.cs
- BindingContext.cs
- UTF32Encoding.cs
- StreamDocument.cs
- GlobalItem.cs
- BCLDebug.cs
- EventPropertyMap.cs
- DataGridViewCellPaintingEventArgs.cs
- AttributeEmitter.cs
- CheckoutException.cs
- PngBitmapDecoder.cs
- Peer.cs
- ProcessingInstructionAction.cs
- PropertyMapper.cs
- OracleRowUpdatingEventArgs.cs
- WeakRefEnumerator.cs
- DataViewManager.cs
- ContainerSelectorActiveEvent.cs
- EntityModelBuildProvider.cs
- SHA256Cng.cs
- MediaContext.cs
- Attribute.cs
- Point3DAnimationBase.cs
- RouteItem.cs
- TemplateLookupAction.cs
- newinstructionaction.cs
- DbLambda.cs
- SmiRequestExecutor.cs
- ReaderWriterLock.cs
- UnsafeNativeMethods.cs
- EditingCoordinator.cs
- ModelPropertyCollectionImpl.cs
- SwitchLevelAttribute.cs
- SharedConnectionInfo.cs
- TransformedBitmap.cs
- XmlMapping.cs
- Fonts.cs
- filewebresponse.cs
- Color.cs
- MasterPageBuildProvider.cs
- WindowClosedEventArgs.cs
- XamlContextStack.cs
- SelectManyQueryOperator.cs
- Variable.cs
- ShaderEffect.cs
- SoapTypeAttribute.cs
- TextDpi.cs
- SecureStringHasher.cs
- WebPartDisplayModeCancelEventArgs.cs
- HttpCachePolicyWrapper.cs
- BevelBitmapEffect.cs