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
- ControlAdapter.cs
- ContentType.cs
- Rotation3DAnimationBase.cs
- InternalBufferOverflowException.cs
- WrappedIUnknown.cs
- HtmlControl.cs
- ConfigurationElementProperty.cs
- CommandLibraryHelper.cs
- CultureInfoConverter.cs
- XPathDescendantIterator.cs
- DataPointer.cs
- ReadOnlyCollectionBase.cs
- DataGridViewBand.cs
- TdsParameterSetter.cs
- DoubleUtil.cs
- SwitchLevelAttribute.cs
- FixedDocument.cs
- ObjectToIdCache.cs
- AudioLevelUpdatedEventArgs.cs
- Timeline.cs
- LineServicesRun.cs
- InlineUIContainer.cs
- Table.cs
- MouseButton.cs
- Pair.cs
- ToolStripStatusLabel.cs
- XmlnsCompatibleWithAttribute.cs
- XPathNodeIterator.cs
- ComponentResourceManager.cs
- HostedHttpRequestAsyncResult.cs
- ClassHandlersStore.cs
- Types.cs
- ServiceObjectContainer.cs
- DashStyles.cs
- ComNativeDescriptor.cs
- TypeInfo.cs
- LicFileLicenseProvider.cs
- GeneralTransform.cs
- HtmlDocument.cs
- ScaleTransform.cs
- SiteIdentityPermission.cs
- NetworkAddressChange.cs
- CustomWebEventKey.cs
- XmlUnspecifiedAttribute.cs
- JulianCalendar.cs
- HiddenField.cs
- InvalidAsynchronousStateException.cs
- XmlSchemaImport.cs
- ObjectCloneHelper.cs
- CodeNamespaceImportCollection.cs
- CombinedGeometry.cs
- PermissionSetEnumerator.cs
- InvariantComparer.cs
- ListItem.cs
- SiteMembershipCondition.cs
- SiteMapPath.cs
- OrderedDictionary.cs
- PropertyStore.cs
- DefaultSection.cs
- EntityTemplateFactory.cs
- ResourceProviderFactory.cs
- TypePropertyEditor.cs
- FixedSOMFixedBlock.cs
- AuthenticationService.cs
- DBParameter.cs
- CodeEventReferenceExpression.cs
- Processor.cs
- ExtensionSurface.cs
- FormsAuthenticationConfiguration.cs
- TextInfo.cs
- BrowserCapabilitiesFactoryBase.cs
- ScriptHandlerFactory.cs
- SSmlParser.cs
- EncoderNLS.cs
- ResourceIDHelper.cs
- DrawingVisual.cs
- regiisutil.cs
- DecoderFallback.cs
- NullableDecimalMinMaxAggregationOperator.cs
- ReadOnlyCollectionBase.cs
- ResourcePool.cs
- TimeStampChecker.cs
- WebPartExportVerb.cs
- SchemaEntity.cs
- PngBitmapDecoder.cs
- GridView.cs
- VerificationException.cs
- EncryptedHeaderXml.cs
- SafePEFileHandle.cs
- QueryConverter.cs
- LogicalTreeHelper.cs
- ListViewEditEventArgs.cs
- DBParameter.cs
- BasePattern.cs
- ToolBarTray.cs
- PeerResolverMode.cs
- ScrollBar.cs
- Selection.cs
- PluralizationService.cs
- XmlILIndex.cs