Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / clr / src / BCL / System / Runtime / InteropServices / ExtensibleClassFactory.cs / 1 / ExtensibleClassFactory.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*==============================================================================
**
** Class: ExtensibleClassFactory
**
**
** Purpose: Methods used to customize the creation of managed objects that
** extend from unmanaged objects.
**
**
=============================================================================*/
namespace System.Runtime.InteropServices {
using System.Runtime.InteropServices;
using System.Runtime.Remoting;
using System.Runtime.CompilerServices;
using System;
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class ExtensibleClassFactory
{
// Prevent instantiation.
private ExtensibleClassFactory() {}
// Register a delegate that will be called whenever an instance of a managed
// type that extends from an unmanaged type needs to allocate the aggregated
// unmanaged object. This delegate is expected to allocate and aggregate the
// unmanaged object and is called in place of a CoCreateInstance. This
// routine must be called in the context of the static initializer for the
// class for which the callbacks will be made.
// It is not legal to register this callback from a class that has any
// parents that have already registered a callback.
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public static extern void RegisterObjectCreationCallback(ObjectCreationDelegate callback);
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*==============================================================================
**
** Class: ExtensibleClassFactory
**
**
** Purpose: Methods used to customize the creation of managed objects that
** extend from unmanaged objects.
**
**
=============================================================================*/
namespace System.Runtime.InteropServices {
using System.Runtime.InteropServices;
using System.Runtime.Remoting;
using System.Runtime.CompilerServices;
using System;
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class ExtensibleClassFactory
{
// Prevent instantiation.
private ExtensibleClassFactory() {}
// Register a delegate that will be called whenever an instance of a managed
// type that extends from an unmanaged type needs to allocate the aggregated
// unmanaged object. This delegate is expected to allocate and aggregate the
// unmanaged object and is called in place of a CoCreateInstance. This
// routine must be called in the context of the static initializer for the
// class for which the callbacks will be made.
// It is not legal to register this callback from a class that has any
// parents that have already registered a callback.
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public static extern void RegisterObjectCreationCallback(ObjectCreationDelegate callback);
}
}
// 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
- DbSource.cs
- StylusPointProperty.cs
- TreeViewHitTestInfo.cs
- BitmapCodecInfoInternal.cs
- DiscoveryEndpoint.cs
- FrameAutomationPeer.cs
- BrowserTree.cs
- RSAOAEPKeyExchangeDeformatter.cs
- InkSerializer.cs
- ScriptingSectionGroup.cs
- DrawingGroup.cs
- LowerCaseStringConverter.cs
- DependencyObjectPropertyDescriptor.cs
- SmiXetterAccessMap.cs
- NativeCppClassAttribute.cs
- EnumValidator.cs
- CaseInsensitiveOrdinalStringComparer.cs
- StateInitializationDesigner.cs
- WebScriptClientGenerator.cs
- Debugger.cs
- SqlLiftWhereClauses.cs
- PriorityQueue.cs
- SqlNode.cs
- GridViewColumn.cs
- XmlWrappingWriter.cs
- DataServiceExpressionVisitor.cs
- Tablet.cs
- SmtpNegotiateAuthenticationModule.cs
- FontFamilyIdentifier.cs
- OracleTimeSpan.cs
- OperatingSystemVersionCheck.cs
- LinearKeyFrames.cs
- ReliableSessionBindingElementImporter.cs
- WindowProviderWrapper.cs
- DataListItemEventArgs.cs
- XmlAttributeProperties.cs
- ResXDataNode.cs
- SqlDataSourceConnectionPanel.cs
- BinHexDecoder.cs
- AppManager.cs
- SettingsPropertyIsReadOnlyException.cs
- AppDomainProtocolHandler.cs
- SqlUDTStorage.cs
- NativeMethods.cs
- Unit.cs
- SafeRightsManagementQueryHandle.cs
- COM2ExtendedBrowsingHandler.cs
- PrintPreviewDialog.cs
- BlurEffect.cs
- SingleKeyFrameCollection.cs
- DataViewManager.cs
- WorkflowInstanceAbortedRecord.cs
- DataRowChangeEvent.cs
- WebResponse.cs
- SyndicationDeserializer.cs
- LinqDataSourceView.cs
- TextRange.cs
- ComplexBindingPropertiesAttribute.cs
- ZoneLinkButton.cs
- ChildChangedEventArgs.cs
- FormatterConverter.cs
- FastPropertyAccessor.cs
- DataSourceView.cs
- ResourceReader.cs
- SingleAnimationUsingKeyFrames.cs
- FieldMetadata.cs
- DockAndAnchorLayout.cs
- ExpanderAutomationPeer.cs
- EventMappingSettingsCollection.cs
- CursorConverter.cs
- XsdBuilder.cs
- DesignerListAdapter.cs
- XmlQueryOutput.cs
- Int16AnimationUsingKeyFrames.cs
- MessageQueueKey.cs
- SharedUtils.cs
- SafeArrayTypeMismatchException.cs
- Pointer.cs
- Point4D.cs
- DebugInfoExpression.cs
- EmptyEnumerator.cs
- RuleRefElement.cs
- GridViewRowCollection.cs
- ButtonFieldBase.cs
- XamlStream.cs
- FtpCachePolicyElement.cs
- GridLengthConverter.cs
- IPAddressCollection.cs
- WindowsGraphics2.cs
- ApplicationId.cs
- CompilerTypeWithParams.cs
- GuidConverter.cs
- Material.cs
- NameValueSectionHandler.cs
- AutomationPatternInfo.cs
- FixedSOMTextRun.cs
- Cursor.cs
- HttpTransportSecurityElement.cs
- UserPreferenceChangingEventArgs.cs
- TextParentUndoUnit.cs