Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Messaging / System / Messaging / Interop / Columns.cs / 1305376 / Columns.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Messaging.Interop { using System.Runtime.InteropServices; using System.Diagnostics; using System; using System.ComponentModel; using System.Globalization; //for CultureInfo using Microsoft.Win32; internal class Columns { private int maxCount; private MQCOLUMNSET columnSet = new MQCOLUMNSET(); public Columns(int maxCount) { this.maxCount = maxCount; this.columnSet.columnIdentifiers = Marshal.AllocHGlobal(maxCount * 4); this.columnSet.columnCount = 0; } public virtual void AddColumnId(int columnId) { lock(this) { if (this.columnSet.columnCount >= this.maxCount) throw new InvalidOperationException(Res.GetString(Res.TooManyColumns, this.maxCount.ToString(CultureInfo.CurrentCulture))); ++ this.columnSet.columnCount; this.columnSet.SetId(columnId, this.columnSet.columnCount - 1); } } public virtual MQCOLUMNSET GetColumnsRef() { return this.columnSet; } [StructLayout(LayoutKind.Sequential)] public class MQCOLUMNSET{ public int columnCount; [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources")] public IntPtr columnIdentifiers; ~MQCOLUMNSET() { if (this.columnIdentifiers != (IntPtr)0) { Marshal.FreeHGlobal(this.columnIdentifiers); this.columnIdentifiers = (IntPtr)0; } } public virtual void SetId(int columnId, int index) { Marshal.WriteInt32((IntPtr)((long)this.columnIdentifiers + (index * 4)), columnId); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Messaging.Interop { using System.Runtime.InteropServices; using System.Diagnostics; using System; using System.ComponentModel; using System.Globalization; //for CultureInfo using Microsoft.Win32; internal class Columns { private int maxCount; private MQCOLUMNSET columnSet = new MQCOLUMNSET(); public Columns(int maxCount) { this.maxCount = maxCount; this.columnSet.columnIdentifiers = Marshal.AllocHGlobal(maxCount * 4); this.columnSet.columnCount = 0; } public virtual void AddColumnId(int columnId) { lock(this) { if (this.columnSet.columnCount >= this.maxCount) throw new InvalidOperationException(Res.GetString(Res.TooManyColumns, this.maxCount.ToString(CultureInfo.CurrentCulture))); ++ this.columnSet.columnCount; this.columnSet.SetId(columnId, this.columnSet.columnCount - 1); } } public virtual MQCOLUMNSET GetColumnsRef() { return this.columnSet; } [StructLayout(LayoutKind.Sequential)] public class MQCOLUMNSET{ public int columnCount; [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources")] public IntPtr columnIdentifiers; ~MQCOLUMNSET() { if (this.columnIdentifiers != (IntPtr)0) { Marshal.FreeHGlobal(this.columnIdentifiers); this.columnIdentifiers = (IntPtr)0; } } public virtual void SetId(int columnId, int index) { Marshal.WriteInt32((IntPtr)((long)this.columnIdentifiers + (index * 4)), columnId); } } } } // 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
- ArgIterator.cs
- ContentDisposition.cs
- ActivityCollectionMarkupSerializer.cs
- BamlTreeMap.cs
- ColumnWidthChangedEvent.cs
- XmlCharType.cs
- ExceptionUtil.cs
- DataGridViewCellStyleConverter.cs
- XmlNodeReader.cs
- BrowserCapabilitiesFactory35.cs
- NativeMethods.cs
- ConfigurationConverterBase.cs
- CssClassPropertyAttribute.cs
- _ListenerAsyncResult.cs
- CodeSubDirectory.cs
- ReaderWriterLock.cs
- SaveFileDialog.cs
- TextWriterTraceListener.cs
- DataGridPageChangedEventArgs.cs
- HelpInfo.cs
- DropDownButton.cs
- Point3DCollectionConverter.cs
- KeySplineConverter.cs
- EmptyElement.cs
- ObjectComplexPropertyMapping.cs
- DecimalStorage.cs
- RuntimeHelpers.cs
- SizeAnimationClockResource.cs
- SerializationFieldInfo.cs
- SchemaNamespaceManager.cs
- SqlDataSourceStatusEventArgs.cs
- XmlToDatasetMap.cs
- WebPartConnectionsCloseVerb.cs
- ChtmlTextWriter.cs
- Dictionary.cs
- RbTree.cs
- SoapServerMessage.cs
- TreeNodeBindingCollection.cs
- XmlSchemaSubstitutionGroup.cs
- MenuItemBinding.cs
- SingleResultAttribute.cs
- Boolean.cs
- VideoDrawing.cs
- XmlNodeReader.cs
- SimpleTypeResolver.cs
- SqlTypeSystemProvider.cs
- DynamicResourceExtensionConverter.cs
- ChannelSinkStacks.cs
- StorageBasedPackageProperties.cs
- SingleAnimationBase.cs
- __Filters.cs
- DataGridComponentEditor.cs
- CollectionViewSource.cs
- EventArgs.cs
- TextCharacters.cs
- TypeConverterHelper.cs
- PointLightBase.cs
- _NestedMultipleAsyncResult.cs
- TripleDESCryptoServiceProvider.cs
- XmlEnumAttribute.cs
- WebPartZoneBase.cs
- QuestionEventArgs.cs
- BitmapImage.cs
- WindowsSpinner.cs
- PersonalizableTypeEntry.cs
- DtrList.cs
- MenuItemCollectionEditorDialog.cs
- RenderDataDrawingContext.cs
- DataFieldEditor.cs
- PageRouteHandler.cs
- NullExtension.cs
- ServiceThrottle.cs
- AlgoModule.cs
- SocketInformation.cs
- ParameterCollection.cs
- TextSelectionHighlightLayer.cs
- WebHttpBehavior.cs
- Helpers.cs
- FormsAuthenticationTicket.cs
- WsiProfilesElementCollection.cs
- AssertSection.cs
- Debug.cs
- EntityTypeEmitter.cs
- RawStylusInput.cs
- ClientScriptItem.cs
- CatalogZoneBase.cs
- DropDownButton.cs
- UserControlParser.cs
- CoTaskMemUnicodeSafeHandle.cs
- AssertHelper.cs
- CommandBinding.cs
- DataTableClearEvent.cs
- Selector.cs
- Transactions.cs
- IisTraceListener.cs
- WebSysDefaultValueAttribute.cs
- CompiledQueryCacheEntry.cs
- IncomingWebResponseContext.cs
- Icon.cs
- WebPartUserCapability.cs