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
- XPathAxisIterator.cs
- FieldTemplateUserControl.cs
- DataGridViewBand.cs
- StringStorage.cs
- HeaderUtility.cs
- ConfigurationElement.cs
- TokenBasedSetEnumerator.cs
- Connector.xaml.cs
- QueryCursorEventArgs.cs
- NavigatorInput.cs
- ParameterCollectionEditorForm.cs
- HttpAsyncResult.cs
- ImageBrush.cs
- ThicknessAnimation.cs
- AuthenticationService.cs
- GeneratedContractType.cs
- SqlDelegatedTransaction.cs
- ConfigurationValues.cs
- MethodAccessException.cs
- TextServicesContext.cs
- PageThemeBuildProvider.cs
- MeasurementDCInfo.cs
- XhtmlTextWriter.cs
- SiteMapNode.cs
- ActivityExecutorOperation.cs
- FrugalList.cs
- StrokeNodeEnumerator.cs
- DataSourceCache.cs
- PerfCounterSection.cs
- QilNode.cs
- FontEmbeddingManager.cs
- AssemblyInfo.cs
- DesignerGenericWebPart.cs
- DesignerFrame.cs
- QilPatternFactory.cs
- MediaPlayerState.cs
- DataViewManager.cs
- HtmlDocument.cs
- InplaceBitmapMetadataWriter.cs
- XmlDataSource.cs
- TcpSocketManager.cs
- QueryInterceptorAttribute.cs
- Message.cs
- ObjectStateEntry.cs
- Activation.cs
- DetailsViewAutoFormat.cs
- BamlCollectionHolder.cs
- StrokeCollection2.cs
- PartialCachingAttribute.cs
- UxThemeWrapper.cs
- RegexWriter.cs
- HandleDictionary.cs
- ContextMarshalException.cs
- SerializerWriterEventHandlers.cs
- Processor.cs
- WeakEventManager.cs
- SID.cs
- XmlSchemaRedefine.cs
- CroppedBitmap.cs
- DynamicRouteExpression.cs
- FlowNode.cs
- BaseTemplateCodeDomTreeGenerator.cs
- CacheMemory.cs
- PackWebRequest.cs
- DataSourceViewSchemaConverter.cs
- ExpandCollapsePattern.cs
- SqlCacheDependencyDatabaseCollection.cs
- RedirectionProxy.cs
- Error.cs
- CorrelationTokenInvalidatedHandler.cs
- HttpCapabilitiesBase.cs
- SqlCacheDependencyDatabaseCollection.cs
- DataGrid.cs
- TextEditorCharacters.cs
- UIInitializationException.cs
- DataTablePropertyDescriptor.cs
- TransportSecurityProtocol.cs
- InputMethodStateTypeInfo.cs
- OleDbReferenceCollection.cs
- UrlMapping.cs
- SigningCredentials.cs
- Geometry.cs
- PersonalizationStateInfoCollection.cs
- ClassValidator.cs
- CommonObjectSecurity.cs
- InertiaExpansionBehavior.cs
- Serializer.cs
- XamlVector3DCollectionSerializer.cs
- ResourceExpression.cs
- JoinGraph.cs
- CellTreeNodeVisitors.cs
- SqlCachedBuffer.cs
- DragDeltaEventArgs.cs
- Profiler.cs
- ListDesigner.cs
- FixedSOMPageElement.cs
- DNS.cs
- TypeUtil.cs
- SchemaImporterExtensionsSection.cs
- CodeNamespaceImportCollection.cs