Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / ComIntegration / MonikerBuilder.cs / 1 / MonikerBuilder.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.ComIntegration
{
using System;
using System.Reflection;
using System.Collections.Generic;
using System.Threading;
using System.ServiceModel.Channels;
using System.Runtime.Remoting.Proxies;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Services;
using System.Runtime.InteropServices;
internal class MonikerBuilder : IProxyCreator
{
ComProxy comProxy = null;
private MonikerBuilder ()
{
}
void IDisposable.Dispose ()
{
}
ComProxy IProxyCreator.CreateProxy (IntPtr outer, ref Guid riid)
{
if ((riid != typeof (IMoniker).GUID) && (riid != typeof (IParseDisplayName).GUID))
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidCastException(SR.GetString(SR.NoInterface, riid)));
if (outer == IntPtr.Zero)
{
DiagnosticUtility.DebugAssert("OuterProxy cannot be null");
throw DiagnosticUtility.ExceptionUtility.ThrowHelperInternal(false);
}
if (comProxy == null)
{
ServiceMonikerInternal moniker = null;
try
{
moniker = new ServiceMonikerInternal ();
comProxy = ComProxy.Create (outer, moniker, moniker);
return comProxy;
}
finally
{
if ((comProxy == null) && (moniker != null))
((IDisposable)moniker).Dispose ();
}
}
else
return comProxy.Clone ();
}
bool IProxyCreator.SupportsErrorInfo (ref Guid riid)
{
if ((riid != typeof (IMoniker).GUID) && (riid != typeof (IParseDisplayName).GUID))
return false;
else
return true;
}
bool IProxyCreator.SupportsDispatch ()
{
return false;
}
bool IProxyCreator.SupportsIntrinsics ()
{
return false;
}
public static MarshalByRefObject CreateMonikerInstance ()
{
IProxyCreator serviceChannelBuilder = new MonikerBuilder ();;
IProxyManager proxyManager = new ProxyManager (serviceChannelBuilder);
Guid iid = typeof (IMoniker).GUID;
IntPtr ppv = OuterProxyWrapper.CreateOuterProxyInstance (proxyManager, ref iid);
MarshalByRefObject ret = EnterpriseServicesHelper.WrapIUnknownWithComObject (ppv) as MarshalByRefObject;
Marshal.Release(ppv);
return ret;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- InstanceData.cs
- HostingEnvironmentSection.cs
- loginstatus.cs
- SpnEndpointIdentity.cs
- EventLogException.cs
- SemanticResolver.cs
- SqlDependencyUtils.cs
- ColorMatrix.cs
- RefreshPropertiesAttribute.cs
- SQLInt32.cs
- ReachPageContentSerializerAsync.cs
- NameObjectCollectionBase.cs
- FlowDocumentFormatter.cs
- ViewLoader.cs
- IDispatchConstantAttribute.cs
- GridViewCommandEventArgs.cs
- AttributeProviderAttribute.cs
- PeerNameRecord.cs
- HandlerBase.cs
- MenuScrollingVisibilityConverter.cs
- TraceContextRecord.cs
- SqlReferenceCollection.cs
- CodeNamespaceImport.cs
- Grant.cs
- UserControlParser.cs
- RegexReplacement.cs
- SimpleTextLine.cs
- InfoCardListRequest.cs
- RewritingSimplifier.cs
- OleDbCommandBuilder.cs
- uribuilder.cs
- CompilerLocalReference.cs
- NumberAction.cs
- PassportAuthentication.cs
- ConfigXmlReader.cs
- XmlDocumentSurrogate.cs
- XmlValidatingReader.cs
- ExcCanonicalXml.cs
- KnownBoxes.cs
- SecurityPolicySection.cs
- InvalidWMPVersionException.cs
- FrameSecurityDescriptor.cs
- SizeIndependentAnimationStorage.cs
- COM2ColorConverter.cs
- WebConfigurationFileMap.cs
- ChangeBlockUndoRecord.cs
- Lease.cs
- ListViewGroup.cs
- DataServiceException.cs
- SafeLocalMemHandle.cs
- CodeAttributeDeclaration.cs
- XamlStackWriter.cs
- FixedTextContainer.cs
- ZoneMembershipCondition.cs
- xamlnodes.cs
- StringSorter.cs
- QilPatternFactory.cs
- AsymmetricSignatureDeformatter.cs
- localization.cs
- PackageFilter.cs
- diagnosticsswitches.cs
- ListSortDescriptionCollection.cs
- RSAOAEPKeyExchangeFormatter.cs
- TimelineClockCollection.cs
- Point3DAnimationBase.cs
- LifetimeServices.cs
- VariableQuery.cs
- SystemFonts.cs
- DataGridToolTip.cs
- TextSerializer.cs
- VisualBasicReference.cs
- TypeContext.cs
- ProfessionalColorTable.cs
- ParameterBuilder.cs
- TcpHostedTransportConfiguration.cs
- BufferAllocator.cs
- UndirectedGraph.cs
- QueryInterceptorAttribute.cs
- ObjectSecurity.cs
- DataSvcMapFileSerializer.cs
- UIElement.cs
- Positioning.cs
- DrawTreeNodeEventArgs.cs
- DataGridViewCellFormattingEventArgs.cs
- CheckedPointers.cs
- TraversalRequest.cs
- FileUtil.cs
- InternalSafeNativeMethods.cs
- NativeMethods.cs
- METAHEADER.cs
- XsltContext.cs
- AstTree.cs
- CommandConverter.cs
- UIntPtr.cs
- OleDbCommand.cs
- XmlIterators.cs
- SqlDataSourceSelectingEventArgs.cs
- XmlSchemaObjectTable.cs
- XpsFixedPageReaderWriter.cs
- Type.cs