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
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PenThreadWorker.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- WorkflowTransactionOptions.cs
- peersecuritysettings.cs
- TransformerInfoCollection.cs
- Screen.cs
- SplashScreen.cs
- PersistChildrenAttribute.cs
- NamespaceList.cs
- SafeSecurityHandles.cs
- CapabilitiesUse.cs
- CellParaClient.cs
- DrawingContextDrawingContextWalker.cs
- NetworkInterface.cs
- XamlToRtfParser.cs
- TrackingServices.cs
- DataGridColumnCollection.cs
- DomNameTable.cs
- StrongTypingException.cs
- RegexCharClass.cs
- ManagedIStream.cs
- DependencyPropertyKey.cs
- AnnotationResource.cs
- WinHttpWebProxyFinder.cs
- Privilege.cs
- PeerCollaborationPermission.cs
- WebEncodingValidatorAttribute.cs
- ServiceHttpHandlerFactory.cs
- SingleSelectRootGridEntry.cs
- AdapterDictionary.cs
- ExpressionPrefixAttribute.cs
- ParamArrayAttribute.cs
- AmbiguousMatchException.cs
- RequestStatusBarUpdateEventArgs.cs
- WsatConfiguration.cs
- GlyphRunDrawing.cs
- ActiveDocumentEvent.cs
- BinHexEncoding.cs
- XmlDataSource.cs
- Annotation.cs
- DataPagerCommandEventArgs.cs
- recordstatefactory.cs
- COM2ExtendedUITypeEditor.cs
- AuthenticationService.cs
- SafeEventHandle.cs
- HMACSHA384.cs
- CriticalFinalizerObject.cs
- WhitespaceRuleLookup.cs
- TabPageDesigner.cs
- HttpStreamMessage.cs
- DataSourceControl.cs
- SqlXmlStorage.cs
- XmlToDatasetMap.cs
- CodeSubDirectory.cs
- XmlCharCheckingReader.cs
- COSERVERINFO.cs
- DragDeltaEventArgs.cs
- SrgsGrammarCompiler.cs
- HttpCapabilitiesEvaluator.cs
- Preprocessor.cs
- PageSetupDialog.cs
- HttpListener.cs
- UnderstoodHeaders.cs
- EntityParameter.cs
- VirtualPathData.cs
- CharEnumerator.cs
- GridViewItemAutomationPeer.cs
- RefType.cs
- TextChangedEventArgs.cs
- ComUdtElementCollection.cs
- XmlUnspecifiedAttribute.cs
- SQLDateTime.cs
- AgileSafeNativeMemoryHandle.cs
- ItemChangedEventArgs.cs
- RelationHandler.cs
- ObjectNavigationPropertyMapping.cs
- TailCallAnalyzer.cs
- StatementContext.cs
- Command.cs
- SingleAnimation.cs
- CacheEntry.cs
- ChannelSinkStacks.cs
- XmlParserContext.cs
- TableLayoutPanelCellPosition.cs
- DesignerDataRelationship.cs
- AnimationException.cs
- PrintDialog.cs
- CodeTypeReferenceCollection.cs
- GcSettings.cs
- Stack.cs
- IconBitmapDecoder.cs
- SapiInterop.cs
- MessageFilterTable.cs
- ListViewGroupConverter.cs
- PropertyCondition.cs
- SamlAuthorizationDecisionStatement.cs
- ReadOnlyAttribute.cs
- TemplatedWizardStep.cs
- UnsafeNativeMethods.cs
- DocumentViewerAutomationPeer.cs