示例#1
0
        /// <summary>
        /// Gets the title, friendly name, or file name of the process.
        /// </summary>
        public int GetName(enum_GETNAME_TYPE gnType, out string pbstrName)
        {
            DLog.Debug(DContext.VSDebuggerComCall, "IDebugProcess2.GetName");
            switch (gnType)
            {
            case enum_GETNAME_TYPE.GN_FILENAME:
            case enum_GETNAME_TYPE.GN_MONIKERNAME:
                pbstrName = apkPath;
                break;

            case enum_GETNAME_TYPE.GN_NAME:
            case enum_GETNAME_TYPE.GN_BASENAME:
            case enum_GETNAME_TYPE.GN_TITLE:
                pbstrName = Path.GetFileName(apkPath);
                break;

            case enum_GETNAME_TYPE.GN_URL:
                pbstrName = "<url>";
                break;

            case enum_GETNAME_TYPE.GN_STARTPAGEURL:
                pbstrName = "<startpageurl>";
                break;

            default:
                pbstrName = null;
                return(VSConstants.S_FALSE);
            }
            return(VSConstants.S_OK);
        }
 public int GetName(enum_GETNAME_TYPE nameType, out string fileName)
 {
     fileName = _lldbLineEntry == null
                    ? string.Empty
                    : Path.Combine(_lldbLineEntry.Directory, _lldbLineEntry.FileName);
     return(VSConstants.S_OK);
 }
        public static string GetName(this IDebugProcess2 process, enum_GETNAME_TYPE type)
        {
            Contract.Requires<ArgumentNullException>(process != null, "process");

            string name;
            ErrorHandler.ThrowOnFailure(process.GetName(type, out name));
            return name;
        }
示例#4
0
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrName)
 {
     if (gnType.HasFlag(enum_GETNAME_TYPE.GN_BASENAME))
     {
         pbstrName = name;
         return(VSConstants.S_OK);
     }
     throw new NotImplementedTestDoubleException();
 }
示例#5
0
        public static string GetName(this IDebugProcess2 process, enum_GETNAME_TYPE type)
        {
            Contract.Requires <ArgumentNullException>(process != null, "process");

            string name;

            ErrorHandler.ThrowOnFailure(process.GetName(type, out name));
            return(name);
        }
示例#6
0
 /// <summary>
 /// Gets the displayable name of the document that contains this document context.
 /// </summary>
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
 {
     if (DocumentLocation.Document != null)
     {
         pbstrFileName = DocumentLocation.Document.Path;
         return VSConstants.S_OK;
     }
     pbstrFileName = null;
     return VSConstants.E_FAIL;
 }
示例#7
0
 /// <summary>
 /// Gets the displayable name of the document that contains this document context.
 /// </summary>
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
 {
     if (DocumentLocation.SourceCode != null)
     {
         pbstrFileName = DocumentLocation.SourceCode.Document.Path;
         return(VSConstants.S_OK);
     }
     pbstrFileName = null;
     return(VSConstants.E_FAIL);
 }
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        public int GetName(enum_GETNAME_TYPE gnType, out string pbstrName)
        {
            //
            // Gets the title, friendly name, or file name of the process.
            //

            LoggingUtils.PrintFunction();

            pbstrName = NativeProcess.Name;

            return(Constants.S_OK);
        }
示例#9
0
        // Gets the displayable name of the document that contains this document context.
        int IDebugDocumentContext2.GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
        {
            if (_debuggedProcess.IsCygwin)
            {
                pbstrFileName = _debuggedProcess.CygwinFilePathMapper.MapCygwinToWindows(_textPosition.FileName);
            }
            else
            {
                pbstrFileName = _textPosition.FileName;
            }

            return(Constants.S_OK);
        }
示例#10
0
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrName) {
     // The return value should match the corresponding string field returned from GetInfo - keep them in sync when making any changes here.
     switch (gnType) {
         case enum_GETNAME_TYPE.GN_FILENAME:
             pbstrName = _exe;
             break;
         case enum_GETNAME_TYPE.GN_BASENAME:
             pbstrName = BaseName;
             break;
         case enum_GETNAME_TYPE.GN_NAME:
         case enum_GETNAME_TYPE.GN_TITLE:
             pbstrName = _version;
             break;
         default:
             pbstrName = null;
             break;
     }
     return 0;
 }
示例#11
0
        public int GgpGetName(enum_GETNAME_TYPE type, out string name)
        {
            switch (type)
            {
            case enum_GETNAME_TYPE.GN_FILENAME:
            case enum_GETNAME_TYPE.GN_TITLE:
                name = this.title;
                return(VSConstants.S_OK);

            case enum_GETNAME_TYPE.GN_BASENAME:
            case enum_GETNAME_TYPE.GN_NAME:
                name = this.command;
                return(VSConstants.S_OK);

            default:
                name = null;
                return(VSConstants.E_NOTIMPL);
            }
        }
示例#12
0
        public int GetName(enum_GETNAME_TYPE gnType, out string name)
        {
            switch (gnType)
            {
            case enum_GETNAME_TYPE.GN_NAME:
            case enum_GETNAME_TYPE.GN_BASENAME:
                name = GetBaseName();
                break;

            case enum_GETNAME_TYPE.GN_FILENAME:
                name = GetFileName();
                break;

            case enum_GETNAME_TYPE.GN_URL:
                name = GetFileName();
                if (string.IsNullOrEmpty(name) || name[0] != '/')
                {
                    name = null;
                }
                else
                {
                    name = "file:/" + name;
                }
                break;

            case enum_GETNAME_TYPE.GN_TITLE:
                name = GetTitle();
                break;

            case enum_GETNAME_TYPE.GN_STARTPAGEURL:
            case enum_GETNAME_TYPE.GN_MONIKERNAME:
            default:
                name = null;
                break;
            }

            if (name == null)
            {
                return(HR.S_FALSE);
            }
            return(HR.S_OK);
        }
        public int GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
        {
            pbstrFileName = null;

            switch (gnType)
            {
            case enum_GETNAME_TYPE.GN_BASENAME:
                // Specifies a base file name instead of a full path of the document or context
                pbstrFileName = _location.GetSourceName();
                return VSConstants.S_OK;

            case enum_GETNAME_TYPE.GN_FILENAME:
                // Specifies the full path of the document or context
                pbstrFileName = _location.GetSourcePath();
                return VSConstants.S_OK;

            case enum_GETNAME_TYPE.GN_NAME:
                // Specifies a friendly name of the document or context
                pbstrFileName = _location.GetSourceName();
                return VSConstants.S_OK;

            case enum_GETNAME_TYPE.GN_MONIKERNAME:
                // Specifies a unique name of the document or context in the form of a moniker
                return VSConstants.E_INVALIDARG;

            case enum_GETNAME_TYPE.GN_STARTPAGEURL:
                // Gets the starting page URL for processes
                return VSConstants.E_INVALIDARG;

            case enum_GETNAME_TYPE.GN_TITLE:
                // Specifies a title of the document, if one exists
                return VSConstants.E_INVALIDARG;

            case enum_GETNAME_TYPE.GN_URL:
                // Specifies a URL name of the document or context
                return VSConstants.E_INVALIDARG;

            default:
                return VSConstants.E_INVALIDARG;
            }
        }
        public int GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
        {
            pbstrFileName = null;

            switch (gnType)
            {
            case enum_GETNAME_TYPE.GN_BASENAME:
                // Specifies a base file name instead of a full path of the document or context
                pbstrFileName = _location.GetSourceName();
                return(VSConstants.S_OK);

            case enum_GETNAME_TYPE.GN_FILENAME:
                // Specifies the full path of the document or context
                pbstrFileName = _location.GetSourcePath();
                return(VSConstants.S_OK);

            case enum_GETNAME_TYPE.GN_NAME:
                // Specifies a friendly name of the document or context
                pbstrFileName = _location.GetSourceName();
                return(VSConstants.S_OK);

            case enum_GETNAME_TYPE.GN_MONIKERNAME:
                // Specifies a unique name of the document or context in the form of a moniker
                return(VSConstants.E_INVALIDARG);

            case enum_GETNAME_TYPE.GN_STARTPAGEURL:
                // Gets the starting page URL for processes
                return(VSConstants.E_INVALIDARG);

            case enum_GETNAME_TYPE.GN_TITLE:
                // Specifies a title of the document, if one exists
                return(VSConstants.E_INVALIDARG);

            case enum_GETNAME_TYPE.GN_URL:
                // Specifies a URL name of the document or context
                return(VSConstants.E_INVALIDARG);

            default:
                return(VSConstants.E_INVALIDARG);
            }
        }
示例#15
0
        public int GetName(uint gnType, out string pbstrFileName)
        {
            enum_GETNAME_TYPE getType = (enum_GETNAME_TYPE)gnType;

            switch (getType)
            {
            case enum_GETNAME_TYPE.GN_TITLE:
            case enum_GETNAME_TYPE.GN_NAME:
            case enum_GETNAME_TYPE.GN_BASENAME:
                pbstrFileName = Path.GetFileName(_info.FilePath);
                break;

            case enum_GETNAME_TYPE.GN_FILENAME:
                pbstrFileName = _info.FilePath;
                break;

            default:
                pbstrFileName = null;
                return(E_NOTIMPL);
            }

            return(S_OK);
        }
        public int GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
        {
            ErrorHandler.ThrowOnFailure(_documentPosition.GetFileName(out pbstrFileName));

            switch (gnType)
            {
            case enum_GETNAME_TYPE.GN_BASENAME:
                pbstrFileName = Path.GetFileName(pbstrFileName);
                return VSConstants.S_OK;

            case enum_GETNAME_TYPE.GN_FILENAME:
            case enum_GETNAME_TYPE.GN_MONIKERNAME:
            case enum_GETNAME_TYPE.GN_NAME:
                return VSConstants.S_OK;

            case enum_GETNAME_TYPE.GN_STARTPAGEURL:
            case enum_GETNAME_TYPE.GN_TITLE:
            case enum_GETNAME_TYPE.GN_URL:
            default:
                pbstrFileName = null;
                return VSConstants.E_INVALIDARG;
            }
        }
        public int GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
        {
            ErrorHandler.ThrowOnFailure(_documentPosition.GetFileName(out pbstrFileName));

            switch (gnType)
            {
            case enum_GETNAME_TYPE.GN_BASENAME:
                pbstrFileName = Path.GetFileName(pbstrFileName);
                return(VSConstants.S_OK);

            case enum_GETNAME_TYPE.GN_FILENAME:
            case enum_GETNAME_TYPE.GN_MONIKERNAME:
            case enum_GETNAME_TYPE.GN_NAME:
                return(VSConstants.S_OK);

            case enum_GETNAME_TYPE.GN_STARTPAGEURL:
            case enum_GETNAME_TYPE.GN_TITLE:
            case enum_GETNAME_TYPE.GN_URL:
            default:
                pbstrFileName = null;
                return(VSConstants.E_INVALIDARG);
            }
        }
示例#18
0
        public int GetName(enum_GETNAME_TYPE gnType, out string pbstrName)
        {
            // The return value should match the corresponding string field returned from GetInfo - keep them in sync when making any changes here.
            switch (gnType)
            {
            case enum_GETNAME_TYPE.GN_FILENAME:
                pbstrName = this._exe;
                break;

            case enum_GETNAME_TYPE.GN_BASENAME:
                pbstrName = this.BaseName;
                break;

            case enum_GETNAME_TYPE.GN_NAME:
            case enum_GETNAME_TYPE.GN_TITLE:
                pbstrName = this._version;
                break;

            default:
                pbstrName = null;
                break;
            }
            return(VSConstants.S_OK);
        }
示例#19
0
        public int GetName(enum_GETNAME_TYPE gnType, out string pbstrName)
        {
            pbstrName = "<unknown>";
            switch (gnType)
            {
            case enum_GETNAME_TYPE.GN_NAME:
                pbstrName = name;
                break;

            case enum_GETNAME_TYPE.GN_FILENAME:
                pbstrName = name;
                break;

            case enum_GETNAME_TYPE.GN_BASENAME:
                pbstrName = name;
                break;

            case enum_GETNAME_TYPE.GN_MONIKERNAME:
                pbstrName = name;
                break;

            case enum_GETNAME_TYPE.GN_URL:
                pbstrName = name;
                break;

            case enum_GETNAME_TYPE.GN_TITLE:
                pbstrName = name;
                break;

            case enum_GETNAME_TYPE.GN_STARTPAGEURL:
                pbstrName = name;
                break;
            }

            return(Microsoft.VisualStudio.VSConstants.S_OK);
        }
 int IDebugDocumentContext2.GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName) {
     pbstrFileName = FileName;
     return VSConstants.S_OK;
 }
示例#21
0
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
 {
     gnType        = enum_GETNAME_TYPE.GN_FILENAME;
     pbstrFileName = Path.GetFileName(_pendingBreakpoint.DocumentName);
     return(VSConstants.S_OK);
 }
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName) {
     return ((IDebugDocumentContext2)_documentContext).GetName(gnType, out pbstrFileName);
 }
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
 {
     Log.Debug("ScriptDocumentContext: GetName");
     pbstrFileName = _fileName;
     return VSConstants.S_OK;
 }
示例#24
0
 /// <summary>
 /// Gets the title, friendly name, or file name of the process.
 /// </summary>
 /// <param name="gnType">A value from the GETNAME_TYPE enumeration that specifies what type of name to return.</param>
 /// <param name="pbstrName">Returns the name of the process.</param>
 /// <returns>If successful, returns S_OK; otherwise, returns an error code.</returns>
 public virtual int GetName( enum_GETNAME_TYPE gnType, out string pbstrName )
 {
     Logger.Debug( string.Empty );
     pbstrName = null;
     return VSConstants.E_NOTIMPL;
 }
示例#25
0
 /// <summary>
 /// Gets the title, friendly name, or file name of the process.
 /// </summary>
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrName)
 {
     DLog.Debug(DContext.VSDebuggerComCall, "IDebugProcess2.GetName");
     switch (gnType)
     {
         case enum_GETNAME_TYPE.GN_FILENAME:
         case enum_GETNAME_TYPE.GN_MONIKERNAME:
             pbstrName = apkPath;
             break;
         case enum_GETNAME_TYPE.GN_NAME:
         case enum_GETNAME_TYPE.GN_BASENAME:
         case enum_GETNAME_TYPE.GN_TITLE:
             pbstrName = Path.GetFileName(apkPath);
             break;
         case enum_GETNAME_TYPE.GN_URL:
             pbstrName = "<url>";
             break;
         case enum_GETNAME_TYPE.GN_STARTPAGEURL:
             pbstrName = "<startpageurl>";
             break;
         default:
             pbstrName = null;
             return VSConstants.S_FALSE;
     }
     return VSConstants.S_OK;
 }
示例#26
0
 /// <summary>
 /// Gets the name of the process. (http://msdn.microsoft.com/en-us/library/bb161270.aspx)
 /// </summary>
 /// <param name="gnType"> A value from the GETNAME_TYPE enumeration that specifies what type of name to return. </param>
 /// <param name="pbstrName"> Returns the name of the process. </param>
 /// <returns> VSConstants.S_OK. </returns>
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrName)
 {
     pbstrName = _name;
     return(VSConstants.S_OK);
 }
示例#27
0
        public int GetName(enum_GETNAME_TYPE gnType, out string name)
        {
            switch (gnType)
            {
                case enum_GETNAME_TYPE.GN_NAME:
                case enum_GETNAME_TYPE.GN_BASENAME:
                    name = GetBaseName();
                    break;
                case enum_GETNAME_TYPE.GN_FILENAME:
                    name = GetFileName();
                    break;
                case enum_GETNAME_TYPE.GN_URL:
                    name = GetFileName();
                    if (string.IsNullOrEmpty(name) || name[0] != '/')
                        name = null;
                    else
                        name = "file:/" + name;
                    break;
                case enum_GETNAME_TYPE.GN_TITLE:
                    name = GetTitle();
                    break;
                case enum_GETNAME_TYPE.GN_STARTPAGEURL:
                case enum_GETNAME_TYPE.GN_MONIKERNAME:
                default:
                    name = null;
                    break;
            }

            if (name == null)
            {
                return HR.S_FALSE;
            }
            return HR.S_OK;
        }
示例#28
0
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrName)
 {
     Log.Debug("Process: GetName");
     pbstrName = "PowerShell Script Process";
     return VSConstants.S_OK;
 }
示例#29
0
        // Gets the displayable name of the document that contains this document context.
        int IDebugDocumentContext2.GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
        {
            if (_debuggedProcess.IsCygwin)
            {
                pbstrFileName = _debuggedProcess.CygwinFilePathMapper.MapCygwinToWindows(_textPosition.FileName);
            }
            else
            {
                pbstrFileName = _textPosition.FileName;
            }

            return Constants.S_OK;
        }
示例#30
0
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
 {
     return(((IDebugDocumentContext2)_documentContext).GetName(gnType, out pbstrFileName));
 }
示例#31
0
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrName)
 {
     pbstrName = _name;
     return VSConstants.S_OK;
 }
示例#32
0
 int IDebugDocumentContext2.GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
 {
     pbstrFileName = _filePath;
     return(VSConstants.S_OK);
 }
 // Token: 0x06000046 RID: 70 RVA: 0x0000304B File Offset: 0x0000124B
 int IDebugDocumentContext2.GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
 {
     pbstrFileName = this.m_fileName;
     return(0);
 }
 // Gets the displayable name of the document that contains this document context.
 int IDebugDocumentContext2.GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName) {
     pbstrFileName = FileName;
     return pbstrFileName != null ? VSConstants.S_OK : VSConstants.E_FAIL;
 }
示例#35
0
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
 {
     gnType = enum_GETNAME_TYPE.GN_FILENAME;
     pbstrFileName = Path.GetFileName(_pendingBreakpoint.DocumentName);
     return VSConstants.S_OK;
 }
示例#36
0
 // This method must be called on the main thread because it is part of the IDebugProcess2
 // interface. This requirement can be avoided by calling GgpGetName directly.
 public int GetName(enum_GETNAME_TYPE type, out string name) =>
 GgpGetName(type, out name);
示例#37
0
 // Gets the displayable name of the document that contains this document context.
 int IDebugDocumentContext2.GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
 {
     pbstrFileName = _textPosition.FileName;
     return(Constants.S_OK);
 }
示例#38
0
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrName)
 {
     DebugHelper.TraceEnteringMethod();
     throw new NotImplementedException();
 }
示例#39
0
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrName)
 {
     Log.Debug("Process: GetName");
     pbstrName = "PowerShell Script Process";
     return(VSConstants.S_OK);
 }
示例#40
0
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
 {
     Log.Debug("ScriptDocumentContext: GetName");
     pbstrFileName = _fileName;
     return(VSConstants.S_OK);
 }
示例#41
0
 int IDebugDocumentContext2.GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
 {
     Debug.WriteLine("AD7DocumentContext: GetName");
     pbstrFileName = _fileName;
     return(VSConstants.S_OK);
 }
示例#42
0
 // Gets the displayable name of the document that contains this document context.
 int IDebugDocumentContext2.GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
 {
     pbstrFileName = FileName;
     return(pbstrFileName != null ? VSConstants.S_OK : VSConstants.E_FAIL);
 }
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        public int GetName(enum_GETNAME_TYPE type, out string name)
        {
            //
            // Gets the displayable name of the document that contains this document context.
            //

            LoggingUtils.PrintFunction();

            name = string.Empty;

            try
            {
                switch (type)
                {
                case enum_GETNAME_TYPE.GN_NAME:
                {
                    //
                    // Specifies a friendly name of the document or context.
                    //

                    name = Path.GetFileNameWithoutExtension(m_fileName);

                    break;
                }

                case enum_GETNAME_TYPE.GN_FILENAME:
                {
                    //
                    // Specifies the full path of the document or context.
                    //

                    name = m_fileName;

                    break;
                }

                case enum_GETNAME_TYPE.GN_BASENAME:
                {
                    //
                    // Specifies a base file name instead of a full path of the document or context.
                    //

                    name = Path.GetFileName(m_fileName);

                    break;
                }

                case enum_GETNAME_TYPE.GN_MONIKERNAME:
                {
                    //
                    // Specifies a unique name of the document or context in the form of a moniker.
                    //

                    name = m_fileName;

                    break;
                }

                case enum_GETNAME_TYPE.GN_URL:
                {
                    //
                    // Specifies a URL name of the document or context.
                    //

                    name = "file://" + m_fileName.Replace("\\", "/");

                    break;
                }

                case enum_GETNAME_TYPE.GN_TITLE:
                {
                    //
                    // Specifies a title of the document, if one exists.
                    //

                    name = Path.GetFileName(m_fileName);

                    break;
                }

                case enum_GETNAME_TYPE.GN_STARTPAGEURL:
                {
                    //
                    // Gets the starting page URL for processes.
                    //

                    name = "file://" + m_fileName.Replace("\\", "/");

                    break;
                }
                }

                if (string.IsNullOrEmpty(name))
                {
                    throw new InvalidOperationException();
                }

                return(Constants.S_OK);
            }
            catch (Exception e)
            {
                LoggingUtils.HandleException(e);

                return(Constants.E_FAIL);
            }
        }
示例#44
0
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrName)
 {
     throw new NotImplementedException();
 }
示例#45
0
 // Token: 0x06000189 RID: 393 RVA: 0x00006225 File Offset: 0x00004425
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrName)
 {
     pbstrName = this.name;
     return(0);
 }
 int IDebugDocumentContext2.GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
 {
   Debug.WriteLine("AD7DocumentContext: GetName");
   pbstrFileName = _fileName;
   return VSConstants.S_OK;
 }
示例#47
0
 int IDebugProcess2.GetName(enum_GETNAME_TYPE gnType, out string pbstrName)
 {
     throw new NotImplementedException();
 }
示例#48
0
 int IDebugDocument2.GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName) {
     throw new NotImplementedException();
 }
示例#49
0
 /// <summary>
 /// Gets the displayable name of the document that contains this document context.
 /// </summary>
 /// <param name="gnType">A value from the GETNAME_TYPE enumeration that specifies the type of name to return.</param>
 /// <param name="pbstrFileName">Returns the name of the file.</param>
 /// <returns>If successful, returns S_OK; otherwise, returns an error code.</returns>
 /// <remarks>This method typically forwards the call to the IDebugDocument2::GetName method, unless the document context is written to store the document name itself.</remarks>
 public virtual int GetName(enum_GETNAME_TYPE gnType, out string pbstrFileName)
 {
     Logger.Debug(string.Empty);
     pbstrFileName = null;
     return(VSConstants.E_NOTIMPL);
 }
 public int GetName(enum_GETNAME_TYPE gnType, out string pbstrName)
 {
   throw new NotImplementedException();
 }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    public int GetName (enum_GETNAME_TYPE type, out string name)
    {
      // 
      // Gets the displayable name of the document that contains this document context.
      // 

      LoggingUtils.PrintFunction ();

      name = string.Empty;

      try
      {
        switch (type)
        {
          case enum_GETNAME_TYPE.GN_NAME:
          {
            // 
            // Specifies a friendly name of the document or context.
            // 

            name = Path.GetFileNameWithoutExtension (m_fileName);

            break;
          }

          case enum_GETNAME_TYPE.GN_FILENAME:
          {
            // 
            // Specifies the full path of the document or context.
            // 

            name = m_fileName;

            break;
          }

          case enum_GETNAME_TYPE.GN_BASENAME:
          {
            // 
            // Specifies a base file name instead of a full path of the document or context.
            // 

            name = Path.GetFileName (m_fileName);

            break;
          }

          case enum_GETNAME_TYPE.GN_MONIKERNAME:
          {
            // 
            // Specifies a unique name of the document or context in the form of a moniker.
            // 

            name = m_fileName;

            break;
          }

          case enum_GETNAME_TYPE.GN_URL:
          {
            // 
            // Specifies a URL name of the document or context.
            // 

            name = "file://" + m_fileName.Replace ("\\", "/");

            break;
          }

          case enum_GETNAME_TYPE.GN_TITLE:
          {
            // 
            // Specifies a title of the document, if one exists.
            // 

            name = Path.GetFileName (m_fileName);

            break;
          }

          case enum_GETNAME_TYPE.GN_STARTPAGEURL:
          {
            // 
            // Gets the starting page URL for processes.
            // 

            name = "file://" + m_fileName.Replace ("\\", "/");

            break;
          }
        }

        if (string.IsNullOrEmpty (name))
        {
          throw new InvalidOperationException ();
        }

        return Constants.S_OK;
      }
      catch (Exception e)
      {
        LoggingUtils.HandleException (e);

        return Constants.E_FAIL;
      }
    }