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
- XomlCompiler.cs
- DataColumnPropertyDescriptor.cs
- odbcmetadatafactory.cs
- PingReply.cs
- FloatAverageAggregationOperator.cs
- SQLDouble.cs
- COM2Enum.cs
- Variable.cs
- LocalizationComments.cs
- ToolStrip.cs
- GenericXmlSecurityTokenAuthenticator.cs
- SettingsSavedEventArgs.cs
- FieldBuilder.cs
- WindowsListViewGroup.cs
- SingleAnimationUsingKeyFrames.cs
- Internal.cs
- CategoriesDocumentFormatter.cs
- HashCodeCombiner.cs
- InvalidateEvent.cs
- PnrpPermission.cs
- PolicyDesigner.cs
- SortedList.cs
- HttpTransportManager.cs
- View.cs
- TreeViewAutomationPeer.cs
- ApplicationInfo.cs
- Decimal.cs
- SignatureGenerator.cs
- Command.cs
- WebPartsPersonalization.cs
- SplayTreeNode.cs
- GcHandle.cs
- ConstructorExpr.cs
- QueryOperationResponseOfT.cs
- Knowncolors.cs
- GridViewDeleteEventArgs.cs
- Material.cs
- PrintDialog.cs
- CompiledQueryCacheKey.cs
- DataGridViewComponentPropertyGridSite.cs
- ISAPIRuntime.cs
- TypeUsageBuilder.cs
- CharEnumerator.cs
- DataColumnMapping.cs
- AstNode.cs
- ShaderRenderModeValidation.cs
- ConfigurationProperty.cs
- CodeCompileUnit.cs
- MapPathBasedVirtualPathProvider.cs
- HatchBrush.cs
- Encoder.cs
- FixedHyperLink.cs
- PropertyInformation.cs
- BindingValueChangedEventArgs.cs
- XmlSchemaProviderAttribute.cs
- TextAdaptor.cs
- EncodingInfo.cs
- ObjectDataSourceMethodEditor.cs
- SoapAttributeAttribute.cs
- activationcontext.cs
- SingleAnimation.cs
- CallbackHandler.cs
- WebSysDisplayNameAttribute.cs
- LookupNode.cs
- __ComObject.cs
- PlaceHolder.cs
- Helpers.cs
- GenericUI.cs
- XNodeSchemaApplier.cs
- XmlLinkedNode.cs
- ipaddressinformationcollection.cs
- PanelStyle.cs
- ProviderSettingsCollection.cs
- LayoutDump.cs
- CapabilitiesUse.cs
- DataGridViewCellValueEventArgs.cs
- DbModificationClause.cs
- OptimizerPatterns.cs
- FactoryMaker.cs
- InvokeMemberBinder.cs
- XamlFigureLengthSerializer.cs
- TextAction.cs
- ScriptServiceAttribute.cs
- DbExpressionRules.cs
- TimeSpanMinutesConverter.cs
- TokenBasedSet.cs
- HttpListenerTimeoutManager.cs
- filewebrequest.cs
- Activity.cs
- TextWriter.cs
- ColorTransformHelper.cs
- AudioBase.cs
- SystemException.cs
- SecurityResources.cs
- PerfCounterSection.cs
- BooleanAnimationBase.cs
- Vector3DValueSerializer.cs
- ToolStripItemCollection.cs
- ZipIOBlockManager.cs
- ResourcePool.cs