Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- EpmSyndicationContentDeSerializer.cs
- EncodingInfo.cs
- PropertyMappingExceptionEventArgs.cs
- AsynchronousChannel.cs
- ThumbButtonInfo.cs
- IRCollection.cs
- Int32.cs
- DetailsViewInsertEventArgs.cs
- HeaderUtility.cs
- UpdatePanelTriggerCollection.cs
- QilGenerator.cs
- DeviceOverridableAttribute.cs
- DispatcherExceptionEventArgs.cs
- XsltException.cs
- TemplatePartAttribute.cs
- SecurityRuntime.cs
- PackageRelationshipCollection.cs
- TokenBasedSet.cs
- SettingsPropertyIsReadOnlyException.cs
- SiteMapNode.cs
- HwndTarget.cs
- Label.cs
- Blend.cs
- CustomAssemblyResolver.cs
- MenuEventArgs.cs
- InteropAutomationProvider.cs
- EventTrigger.cs
- SqlConnectionFactory.cs
- ProcessModelSection.cs
- WpfXamlLoader.cs
- SqlUnionizer.cs
- PrintDialog.cs
- EventDescriptor.cs
- LineGeometry.cs
- TextDocumentView.cs
- RepeatButtonAutomationPeer.cs
- AttributeCollection.cs
- SchemaManager.cs
- TickBar.cs
- TextEditorTyping.cs
- SqlDataRecord.cs
- TransactionFlowBindingElement.cs
- SqlConnectionHelper.cs
- MgmtConfigurationRecord.cs
- ToolZone.cs
- ListControlDesigner.cs
- SecurityHeaderTokenResolver.cs
- PenContexts.cs
- MessageFilterTable.cs
- UserControlBuildProvider.cs
- NameValueSectionHandler.cs
- nulltextcontainer.cs
- MarshalByRefObject.cs
- InternalConfigEventArgs.cs
- PolicyStatement.cs
- WmlPhoneCallAdapter.cs
- SiteMapPath.cs
- ObjectAnimationBase.cs
- SecurityUtils.cs
- BindingValueChangedEventArgs.cs
- FontUnit.cs
- DataGridViewColumnTypeEditor.cs
- SelectionGlyphBase.cs
- ToolStripDropDownItem.cs
- SecurityTokenRequirement.cs
- CopyEncoder.cs
- EditingScopeUndoUnit.cs
- Visitor.cs
- ParentQuery.cs
- SaveFileDialog.cs
- DetailsViewRow.cs
- Span.cs
- HttpSessionStateWrapper.cs
- JsonWriterDelegator.cs
- Input.cs
- FormViewDeleteEventArgs.cs
- XmlSchemaFacet.cs
- BinaryFormatterWriter.cs
- ToolStripPanelRenderEventArgs.cs
- SecurityPolicySection.cs
- FormViewUpdatedEventArgs.cs
- BitmapEffectGroup.cs
- DecoderBestFitFallback.cs
- AttributeEmitter.cs
- DownloadProgressEventArgs.cs
- SharedUtils.cs
- NaturalLanguageHyphenator.cs
- TextFormatter.cs
- DefaultDialogButtons.cs
- RefreshPropertiesAttribute.cs
- webbrowsersite.cs
- TraceContext.cs
- ContentPosition.cs
- XmlWhitespace.cs
- Assert.cs
- Compiler.cs
- FormCollection.cs
- QilDataSource.cs
- Int32Converter.cs
- Matrix3DStack.cs