Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Runtime / InteropServices / ComEventsInfo.cs / 1305376 / ComEventsInfo.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== /*============================================================ ** ** Class: ComEventsInfo ** ** Purpose: part of ComEventHelpers APIs which allow binding ** managed delegates to COM's connection point based events. ** ** Date: April 2008 **/ #if FEATURE_COMINTEROP namespace System.Runtime.InteropServices { using System; using ComTypes = System.Runtime.InteropServices.ComTypes; // see code:ComEventsHelper#ComEventsArchitecture [System.Security.SecurityCritical] internal class ComEventsInfo { #region fields private ComEventsSink _sinks; private object _rcw; #endregion #region ctor/dtor ComEventsInfo(object rcw) { _rcw = rcw; } [System.Security.SecuritySafeCritical] ~ComEventsInfo() { // see code:ComEventsHelper#ComEventsFinalization _sinks = ComEventsSink.RemoveAll(_sinks); } #endregion #region static methods [System.Security.SecurityCritical] internal static ComEventsInfo Find(object rcw) { return (ComEventsInfo)Marshal.GetComObjectData(rcw, typeof(ComEventsInfo)); } // it is caller's responsibility to call this method under lock(rcw) [System.Security.SecurityCritical] internal static ComEventsInfo FromObject(object rcw) { ComEventsInfo eventsInfo = Find(rcw); if (eventsInfo == null) { eventsInfo = new ComEventsInfo(rcw); Marshal.SetComObjectData(rcw, typeof(ComEventsInfo), eventsInfo); } return eventsInfo; } #endregion #region internal methods internal ComEventsSink FindSink(ref Guid iid) { return ComEventsSink.Find(_sinks, ref iid); } // it is caller's responsibility to call this method under lock(rcw) internal ComEventsSink AddSink(ref Guid iid) { ComEventsSink sink = new ComEventsSink(_rcw, iid); _sinks = ComEventsSink.Add(_sinks, sink); return _sinks; } // it is caller's responsibility to call this method under lock(rcw) [System.Security.SecurityCritical] internal ComEventsSink RemoveSink(ComEventsSink sink) { _sinks = ComEventsSink.Remove(_sinks, sink); return _sinks; } #endregion } } #endif // 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
- SerialPinChanges.cs
- PropertyChangedEventArgs.cs
- WebPartEditorCancelVerb.cs
- Vector3DValueSerializer.cs
- _ConnectOverlappedAsyncResult.cs
- UnsafeCollabNativeMethods.cs
- tibetanshape.cs
- TableLayoutSettings.cs
- CodeIterationStatement.cs
- NumericUpDownAcceleration.cs
- StateItem.cs
- ToolStripItemTextRenderEventArgs.cs
- KoreanLunisolarCalendar.cs
- TableCellCollection.cs
- XhtmlBasicSelectionListAdapter.cs
- FaultImportOptions.cs
- TextServicesCompartmentContext.cs
- EventListener.cs
- Switch.cs
- PrintDialogException.cs
- SharedDp.cs
- DrawingBrush.cs
- SettingsContext.cs
- AppDomain.cs
- PenLineJoinValidation.cs
- CodeGeneratorOptions.cs
- X500Name.cs
- DataGridColumnStyleMappingNameEditor.cs
- PeerEndPoint.cs
- DbConnectionOptions.cs
- CorePropertiesFilter.cs
- TypeDelegator.cs
- DocumentPage.cs
- IteratorDescriptor.cs
- DateTimeSerializationSection.cs
- CompareInfo.cs
- BorderGapMaskConverter.cs
- PerformanceCounterScope.cs
- ToolStripItem.cs
- UInt32Storage.cs
- FrugalMap.cs
- StrongTypingException.cs
- ResourceExpressionEditor.cs
- XmlSchemaSimpleContent.cs
- BulletChrome.cs
- ToolStripDropDownItem.cs
- WebPartRestoreVerb.cs
- SoapObjectReader.cs
- IndexedSelectQueryOperator.cs
- Decorator.cs
- MatrixTransform.cs
- CompareValidator.cs
- AnnotationComponentManager.cs
- _OverlappedAsyncResult.cs
- PtsPage.cs
- MergeFilterQuery.cs
- DesignParameter.cs
- ExtenderProvidedPropertyAttribute.cs
- ResourceType.cs
- TextTreeUndo.cs
- RegistrationServices.cs
- StateRuntime.cs
- OdbcEnvironmentHandle.cs
- MD5CryptoServiceProvider.cs
- oledbconnectionstring.cs
- ColorDialog.cs
- ThrowHelper.cs
- SmiEventSink_Default.cs
- DesignerLinkAdapter.cs
- Rotation3DKeyFrameCollection.cs
- ChtmlImageAdapter.cs
- CacheManager.cs
- OutputWindow.cs
- XsltCompileContext.cs
- DocumentGrid.cs
- ImageDrawing.cs
- BufferedGraphicsContext.cs
- ColumnResizeAdorner.cs
- Bits.cs
- DesignerDataView.cs
- LocalizationParserHooks.cs
- TripleDESCryptoServiceProvider.cs
- ToggleProviderWrapper.cs
- ServiceReference.cs
- ContentOperations.cs
- ToolStripPanelCell.cs
- IntegerFacetDescriptionElement.cs
- MulticastNotSupportedException.cs
- ErrorFormatterPage.cs
- ImageCreator.cs
- AccessDataSourceView.cs
- SqlBooleanMismatchVisitor.cs
- EventMappingSettingsCollection.cs
- ExecutionEngineException.cs
- KoreanLunisolarCalendar.cs
- ReliabilityContractAttribute.cs
- Int64.cs
- CreateRefExpr.cs
- XPathMessageFilterElementComparer.cs
- SoapEnumAttribute.cs