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
- DataGridViewRowsRemovedEventArgs.cs
- PseudoWebRequest.cs
- PaginationProgressEventArgs.cs
- ETagAttribute.cs
- KeyTimeConverter.cs
- ScalarType.cs
- RotateTransform3D.cs
- WebPartVerbCollection.cs
- SamlAudienceRestrictionCondition.cs
- _emptywebproxy.cs
- Buffer.cs
- ServiceContractViewControl.cs
- XmlException.cs
- CounterCreationData.cs
- DbExpressionRules.cs
- WebChannelFactory.cs
- RegexCapture.cs
- AttachmentService.cs
- MailWebEventProvider.cs
- HtmlLiteralTextAdapter.cs
- ClientUrlResolverWrapper.cs
- TableAdapterManagerMethodGenerator.cs
- Region.cs
- Pair.cs
- ActiveDocumentEvent.cs
- HttpCachePolicyElement.cs
- WmlControlAdapter.cs
- SoapIncludeAttribute.cs
- CodeTypeDeclarationCollection.cs
- EtwTrace.cs
- SqlNode.cs
- _KerberosClient.cs
- ResourceFallbackManager.cs
- MediaPlayer.cs
- Lease.cs
- ApplicationTrust.cs
- ControlCollection.cs
- ThreadStartException.cs
- PropertyGrid.cs
- XPathPatternBuilder.cs
- ColumnHeader.cs
- Point4D.cs
- DocumentAutomationPeer.cs
- DataGridViewSelectedColumnCollection.cs
- WebPartDescriptionCollection.cs
- DockPattern.cs
- BamlReader.cs
- ValidatorUtils.cs
- Label.cs
- QuotedPrintableStream.cs
- GeneralTransformGroup.cs
- ExpandSegmentCollection.cs
- Boolean.cs
- HtmlInputHidden.cs
- FrameworkContentElement.cs
- StrongNamePublicKeyBlob.cs
- CompilerResults.cs
- XmlSchemaNotation.cs
- DataServiceClientException.cs
- PaperSize.cs
- ToolStripRendererSwitcher.cs
- OAVariantLib.cs
- ResourcesChangeInfo.cs
- SelectionItemPattern.cs
- BuildProviderCollection.cs
- StyleCollectionEditor.cs
- HostingEnvironmentSection.cs
- DataSet.cs
- mediaeventshelper.cs
- WebConfigurationHost.cs
- HeaderUtility.cs
- ConditionValidator.cs
- DiscoveryClientBindingElement.cs
- ISAPIApplicationHost.cs
- SearchForVirtualItemEventArgs.cs
- ComponentDesigner.cs
- RegexParser.cs
- OutputCacheSection.cs
- BehaviorEditorPart.cs
- IteratorAsyncResult.cs
- ClrProviderManifest.cs
- BooleanStorage.cs
- DataGridDesigner.cs
- ActiveXHost.cs
- PresentationSource.cs
- WindowsClaimSet.cs
- StyleSelector.cs
- AttributeQuery.cs
- ListItemsCollectionEditor.cs
- CommandEventArgs.cs
- AnimatedTypeHelpers.cs
- AnnouncementSendsAsyncResult.cs
- StaticExtensionConverter.cs
- ParagraphResult.cs
- TaskFormBase.cs
- HtmlImage.cs
- FaultDesigner.cs
- PenLineCapValidation.cs
- SerializationFieldInfo.cs
- ProxyWebPartManager.cs