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
- TimersDescriptionAttribute.cs
- DataGridViewCellParsingEventArgs.cs
- RotateTransform.cs
- UntypedNullExpression.cs
- SystemNetworkInterface.cs
- LinearKeyFrames.cs
- PriorityQueue.cs
- RuntimeHelpers.cs
- InstanceLockException.cs
- Request.cs
- ListViewItemEventArgs.cs
- ImageMapEventArgs.cs
- WindowsListViewGroupHelper.cs
- base64Transforms.cs
- InputScopeManager.cs
- MessageQuerySet.cs
- TaiwanLunisolarCalendar.cs
- BmpBitmapEncoder.cs
- Calendar.cs
- CompoundFileReference.cs
- HttpApplication.cs
- EventSinkHelperWriter.cs
- TypeReference.cs
- ColumnClickEvent.cs
- Compilation.cs
- NullableFloatSumAggregationOperator.cs
- ListControlBoundActionList.cs
- ResXDataNode.cs
- PersonalizationProviderHelper.cs
- WindowExtensionMethods.cs
- FixedSOMTableRow.cs
- HttpListenerRequest.cs
- WebPartDisplayMode.cs
- GlobalAllocSafeHandle.cs
- TrackingParameters.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- DebugHandleTracker.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- SlipBehavior.cs
- HttpBrowserCapabilitiesWrapper.cs
- counter.cs
- ContextProperty.cs
- SoapFormatExtensions.cs
- DocumentPageViewAutomationPeer.cs
- SocketPermission.cs
- NavigatorInput.cs
- DataBinding.cs
- PartitionedDataSource.cs
- KeyEvent.cs
- MdImport.cs
- BoundPropertyEntry.cs
- IPEndPoint.cs
- RestHandlerFactory.cs
- ByteStreamMessageEncodingElement.cs
- DataGridViewColumnHeaderCell.cs
- TlsSspiNegotiation.cs
- SqlNodeAnnotations.cs
- AsymmetricKeyExchangeFormatter.cs
- CachedTypeface.cs
- IISMapPath.cs
- RoleService.cs
- XmlFileEditor.cs
- TimeSpanStorage.cs
- CapabilitiesRule.cs
- FileAuthorizationModule.cs
- ApplicationCommands.cs
- TableRow.cs
- NavigationService.cs
- Resources.Designer.cs
- ComponentDispatcherThread.cs
- ConnectionManagementSection.cs
- CallTemplateAction.cs
- RepeatButton.cs
- TraceRecord.cs
- IPEndPointCollection.cs
- ResourceReader.cs
- RequestQueryProcessor.cs
- DataGridView.cs
- ExtractorMetadata.cs
- ADConnectionHelper.cs
- ThreadAttributes.cs
- SafeNativeMethods.cs
- ControlAdapter.cs
- Canvas.cs
- ScaleTransform.cs
- DbBuffer.cs
- GetReadStreamResult.cs
- Geometry.cs
- EdmToObjectNamespaceMap.cs
- XPathMessageFilter.cs
- CheckableControlBaseAdapter.cs
- FontFamily.cs
- Int32.cs
- OutOfMemoryException.cs
- Rss20ItemFormatter.cs
- TemplateBindingExpression.cs
- RepeatBehaviorConverter.cs
- XmlNodeChangedEventArgs.cs
- SQLString.cs
- NavigationEventArgs.cs