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
- Parameter.cs
- UncommonField.cs
- FormView.cs
- PassportPrincipal.cs
- MetricEntry.cs
- HMACSHA1.cs
- Int64Animation.cs
- SmtpMail.cs
- TextEncodedRawTextWriter.cs
- GenericRootAutomationPeer.cs
- ExpressionBinding.cs
- SubMenuStyle.cs
- _AcceptOverlappedAsyncResult.cs
- FileUpload.cs
- InvalidMessageContractException.cs
- MsmqIntegrationBinding.cs
- TransformDescriptor.cs
- XmlC14NWriter.cs
- KeyedHashAlgorithm.cs
- DBSchemaRow.cs
- SystemIPv6InterfaceProperties.cs
- BuildProviderAppliesToAttribute.cs
- EndEvent.cs
- QilReference.cs
- XPathDocumentNavigator.cs
- Helpers.cs
- SimpleType.cs
- MarkupExtensionParser.cs
- SharedUtils.cs
- DurableDispatcherAddressingFault.cs
- ModuleBuilderData.cs
- DbInsertCommandTree.cs
- CodeSubDirectory.cs
- PackageRelationshipCollection.cs
- SQLDouble.cs
- TemplateModeChangedEventArgs.cs
- QilFactory.cs
- RootProfilePropertySettingsCollection.cs
- WebPart.cs
- PageCatalogPartDesigner.cs
- SecurityPolicyVersion.cs
- Pipe.cs
- HandlerFactoryCache.cs
- ClientTargetSection.cs
- StringValueConverter.cs
- SystemResources.cs
- IRCollection.cs
- CngKeyBlobFormat.cs
- DrawListViewItemEventArgs.cs
- ValidateNames.cs
- MessageSecurityException.cs
- NetDispatcherFaultException.cs
- SqlParameterizer.cs
- SuppressIldasmAttribute.cs
- WindowsFormsSectionHandler.cs
- FlowLayout.cs
- SingleObjectCollection.cs
- ChildrenQuery.cs
- WebPartAuthorizationEventArgs.cs
- ToolStrip.cs
- PhysicalFontFamily.cs
- EntitySetBase.cs
- ForeignKeyConstraint.cs
- PropertyOverridesTypeEditor.cs
- Row.cs
- TextViewSelectionProcessor.cs
- X500Name.cs
- Animatable.cs
- HwndHost.cs
- TheQuery.cs
- CatalogZoneAutoFormat.cs
- GeneralTransform3D.cs
- HttpProcessUtility.cs
- DataGridPageChangedEventArgs.cs
- BufferedStream.cs
- XmlBoundElement.cs
- IODescriptionAttribute.cs
- DataGridViewRowStateChangedEventArgs.cs
- ParseHttpDate.cs
- TdsParserSafeHandles.cs
- OuterGlowBitmapEffect.cs
- Win32.cs
- CodeTryCatchFinallyStatement.cs
- BitmapSizeOptions.cs
- FormatConvertedBitmap.cs
- AnnotationMap.cs
- ProcessModelSection.cs
- TypeInfo.cs
- DbCommandDefinition.cs
- CompilationUnit.cs
- StandardCommands.cs
- AliasExpr.cs
- RuntimeConfigLKG.cs
- TransformPatternIdentifiers.cs
- DynamicDataManager.cs
- Boolean.cs
- DataGridViewColumnStateChangedEventArgs.cs
- HopperCache.cs
- Size.cs
- InputLanguage.cs