Code:
/ 4.0 / 4.0 / 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. // ==++== // // 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
- PropertyIDSet.cs
- DictionaryContent.cs
- RectValueSerializer.cs
- SchemaTypeEmitter.cs
- GetUserPreferenceRequest.cs
- TextSelection.cs
- METAHEADER.cs
- XsdBuildProvider.cs
- NavigatingCancelEventArgs.cs
- XmlHierarchicalEnumerable.cs
- XPathNode.cs
- CheckPair.cs
- ForceCopyBuildProvider.cs
- RemotingAttributes.cs
- RouteItem.cs
- SingleKeyFrameCollection.cs
- PropertyDescriptorComparer.cs
- httpstaticobjectscollection.cs
- WebPartUserCapability.cs
- DataGridViewRowStateChangedEventArgs.cs
- HyperLinkField.cs
- SchemaTableOptionalColumn.cs
- SwitchAttribute.cs
- KeyEvent.cs
- PathFigure.cs
- _HelperAsyncResults.cs
- UnsafeNativeMethods.cs
- base64Transforms.cs
- ProviderMetadata.cs
- MenuItem.cs
- GlyphCollection.cs
- IPEndPointCollection.cs
- SqlExpressionNullability.cs
- WizardStepBase.cs
- InitialServerConnectionReader.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- DocumentAutomationPeer.cs
- ContentElementAutomationPeer.cs
- HashCodeCombiner.cs
- FrugalList.cs
- Type.cs
- SqlPersonalizationProvider.cs
- EdgeModeValidation.cs
- BitmapCodecInfo.cs
- RepeatBehavior.cs
- MaskedTextBoxDesigner.cs
- ValidatedControlConverter.cs
- SmtpReplyReader.cs
- MenuItemStyleCollectionEditor.cs
- PermissionAttributes.cs
- DataViewManagerListItemTypeDescriptor.cs
- CatalogPart.cs
- HostedImpersonationContext.cs
- DebugView.cs
- prompt.cs
- QueryOutputWriter.cs
- MimeObjectFactory.cs
- CodeDomExtensionMethods.cs
- HtmlUtf8RawTextWriter.cs
- TdsParameterSetter.cs
- MarkupWriter.cs
- StreamGeometryContext.cs
- CapacityStreamGeometryContext.cs
- ToolboxItemAttribute.cs
- DataViewListener.cs
- CompositionAdorner.cs
- DataGridViewUtilities.cs
- ContentPlaceHolder.cs
- DesignerHelpers.cs
- ModifiableIteratorCollection.cs
- RequestCachePolicyConverter.cs
- DataControlFieldHeaderCell.cs
- HttpDebugHandler.cs
- SqlLiftWhereClauses.cs
- XPathPatternParser.cs
- WizardStepBase.cs
- MemberCollection.cs
- GridViewCancelEditEventArgs.cs
- SecurityTokenResolver.cs
- NotFiniteNumberException.cs
- MenuAutomationPeer.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- Avt.cs
- DataPagerFieldItem.cs
- BitmapCodecInfoInternal.cs
- BamlResourceDeserializer.cs
- FormatVersion.cs
- SequenceDesigner.cs
- Binding.cs
- CodeDomConfigurationHandler.cs
- ThicknessKeyFrameCollection.cs
- FunctionImportMapping.cs
- StorageMappingItemCollection.cs
- SspiHelper.cs
- UpdateExpressionVisitor.cs
- DeploymentSectionCache.cs
- ProgressPage.cs
- BlockCollection.cs
- SessionPageStatePersister.cs
- OracleBinary.cs