File: System\ServiceModel\ComIntegration\ServiceMoniker.cs
Project: ndp\cdf\src\WCF\ServiceModel\System.ServiceModel.csproj (System.ServiceModel)
//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.ComIntegration
{
    using System;
    using System.Runtime.InteropServices.ComTypes;
    using Microsoft.Win32;
    using System.Reflection;
    using System.Collections.Generic;
    using System.Threading;
    using System.Runtime.Remoting;
    using System.Runtime.Remoting.Services;
    using System.Diagnostics;
    using System.ServiceModel.Diagnostics;
 
 
    [System.Runtime.InteropServices.ComVisible(true)]
    [System.Runtime.InteropServices.Guid("CE39D6F3-DAB7-41b3-9F7D-BD1CC4E92399")]
    [MonikerProxyAttribute]
    public sealed class ServiceMoniker : ContextBoundObject
    {
 
 
 
    }
 
 
    internal sealed class ServiceMonikerInternal : ContextBoundObject, IMoniker, IParseDisplayName, IDisposable
    {
        void IDisposable.Dispose()
        {
 
 
        }
        public ServiceMonikerInternal()
        {
            PropertyTable = new Dictionary<MonikerHelper.MonikerAttribute, string>();
        }
        void IMoniker.GetClassID(out System.Guid clsid)
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
        }
 
        int IMoniker.IsDirty()
        {
            return HR.S_FALSE;
        }
 
        void IMoniker.Load(IStream stream)
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
        }
 
        void IMoniker.Save(IStream stream, bool isDirty)
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
        }
 
        void IMoniker.GetSizeMax(out Int64 size)
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
        }
 
        void IMoniker.BindToStorage(IBindCtx pbc, IMoniker pmkToLeft, ref Guid riid, out object ppvObj)
        {
 
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
 
        }
 
        void IMoniker.BindToObject(IBindCtx pbc, IMoniker pmkToLeft, ref Guid riidResult, IntPtr ppvResult)
        {
            ProxyBuilder.Build(PropertyTable, ref riidResult, ppvResult);
        }
 
        void IMoniker.Hash(IntPtr pdwHash)
        {
            if (IntPtr.Zero == pdwHash)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("pdwHash");
 
            System.Runtime.InteropServices.Marshal.WriteInt32(pdwHash, 0);
        }
 
        void IMoniker.CommonPrefixWith(IMoniker pmkOther,
                                       out IMoniker ppmkPrefix)
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
        }
 
 
        void IMoniker.ComposeWith(IMoniker pmkRight, bool fOnlyIfNotGeneric, out IMoniker ppmkComposite)
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
        }
 
        void IMoniker.Enum(bool fForward, out IEnumMoniker ppenumMoniker)
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
        }
 
        void IMoniker.GetDisplayName(IBindCtx pbc, IMoniker pmkToLeft, out string ppszDisplayName)
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
        }
 
        void IMoniker.GetTimeOfLastChange(IBindCtx pbc, IMoniker pmkToLeft, out FILETIME pFileTime)
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
        }
 
        void IMoniker.Inverse(out IMoniker ppmk)
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
        }
 
        int IMoniker.IsEqual(IMoniker pmkOtherMoniker)
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
        }
 
 
        int IMoniker.IsRunning(IBindCtx pbc,
                                 IMoniker pmkToLeft,
                                 IMoniker pmkNewlyRunning)
        {
            return HR.S_FALSE;
        }
        int IMoniker.IsSystemMoniker(IntPtr pdwMksys)
        {
            if (IntPtr.Zero == pdwMksys)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("pdwMksys");
 
            System.Runtime.InteropServices.Marshal.WriteInt32(pdwMksys, 0);
 
            return HR.S_FALSE;
 
        }
 
        void IMoniker.ParseDisplayName(IBindCtx pbc,
                                       IMoniker pmkToLeft,
                                       string pszDisplayName,
                                       out int pchEaten,
                                       out IMoniker ppmkOut)
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
        }
 
        void IMoniker.Reduce(IBindCtx pbc, int dwReduceHowFar, ref IMoniker ppmkToLeft, out IMoniker ppmkReduced)
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
        }
 
        void IMoniker.RelativePathTo(IMoniker pmkOther, out IMoniker ppmkRelPath)
        {
            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException());
        }
 
        void IParseDisplayName.ParseDisplayName(IBindCtx pbc, string pszDisplayName, IntPtr pchEaten, IntPtr ppmkOut)
        {
            if (IntPtr.Zero == ppmkOut)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("ppmkOut");
 
            System.Runtime.InteropServices.Marshal.WriteIntPtr(ppmkOut, IntPtr.Zero);
 
            if (IntPtr.Zero == pchEaten)
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("pchEaten");
 
            if (string.IsNullOrEmpty(pszDisplayName))
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("pszDisplayName");
 
 
            MonikerUtility.Parse(pszDisplayName, ref PropertyTable);
            ComPlusServiceMonikerTrace.Trace(TraceEventType.Verbose, TraceCode.ComIntegrationServiceMonikerParsed,
                         SR.TraceCodeComIntegrationServiceMonikerParsed, PropertyTable);
 
            System.Runtime.InteropServices.Marshal.WriteInt32(pchEaten, pszDisplayName.Length);
 
            IntPtr ppv = InterfaceHelper.GetInterfacePtrForObject(typeof(IMoniker).GUID, this);
 
            System.Runtime.InteropServices.Marshal.WriteIntPtr(ppmkOut, ppv);
        }
 
        private Dictionary<MonikerHelper.MonikerAttribute, string> PropertyTable;
    }
}