IVsLanguageDebugInfo2.ValidateInstructionpointLocation Method
Validates the given position as a place to set an instruction or break point.
Namespace: Microsoft.VisualStudio.TextManager.Interop
Assembly: Microsoft.VisualStudio.TextManager.Interop.8.0 (in Microsoft.VisualStudio.TextManager.Interop.8.0.dll)
Syntax
'Declaration
Function ValidateInstructionpointLocation ( _
pBuffer As IVsTextBuffer, _
iLine As Integer, _
iCol As Integer, _
<OutAttribute> pCodeSpan As TextSpan() _
) As Integer
int ValidateInstructionpointLocation(
IVsTextBuffer pBuffer,
int iLine,
int iCol,
TextSpan[] pCodeSpan
)
int ValidateInstructionpointLocation(
[InAttribute] IVsTextBuffer^ pBuffer,
[InAttribute] int iLine,
[InAttribute] int iCol,
[OutAttribute] array<TextSpan>^ pCodeSpan
)
abstract ValidateInstructionpointLocation :
pBuffer:IVsTextBuffer *
iLine:int *
iCol:int *
pCodeSpan:TextSpan[] byref -> int
function ValidateInstructionpointLocation(
pBuffer : IVsTextBuffer,
iLine : int,
iCol : int,
pCodeSpan : TextSpan[]
) : int
Parameters
pBuffer
Type: Microsoft.VisualStudio.TextManager.Interop.IVsTextBuffer[in] An IVsTextBuffer containing the text to examine.
iLine
Type: System.Int32[in] Line to examine.
iCol
Type: System.Int32[in] Column to examine.
pCodeSpan
Type: array<Microsoft.VisualStudio.TextManager.Interop.TextSpan[][out] Returns a TextSpan object containing the span of the code surrounding the specified location.
Return Value
Type: System.Int32
If the method succeeds, it returns S_OK. If the location cannot contain an instruction point, returns S_FALSE; otherwise, returns an error code.
Remarks
COM Signature
From textmgr.idl:
HRESULT IVsLanguageDebugInfo2::ValidateInstructionpointLocation(
[in] IVsTextBuffer *pBuffer,
[in] long iLine,
[in] long iCol,
[out] TextSpan2 *pCodeSpan
);
This method validates the given position as a place to set an instruction point. If the location is valid, and pCodeSpan is non-null, the span is filled in with the extent of the statement at which execution would stop. If the position is known not to contain code, this method returns S_FALSE.
Warning
Even if you do not intend to support the ValidateInstructionpointLocation method, you must implement this method and return a span that contains the specified line and column; otherwise, instruction or breakpoints cannot be set anywhere except line 1. You can return E_NOTIMPL to indicate that you do not otherwise support this method but the span must always be set. The example shows how this can be done.
Examples
Here is an implementation of this method that shows how to set the span.
using Microsoft.VisualStudio;
using Microsoft.VisualStudio.TextManager.Interop;
namespace MyLanguagePackage
{
public class MyLanguageService
: IVsLanguageInfo, IVsLanguageDebugInfo, IVsLanguageDebugInfo2
{
public int ValidateInstructionpointLocation(IVsTextBuffer buffer,
int line,
int col,
TextSpan2[] pCodeSpan)
{
int retval = VSConstants.E_NOTIMPL;
if (pCodeSpan != null)
{
// Make sure the span is set to at least the current
// position by default.
pCodeSpan[0].iStartLine = line;
pCodeSpan[0].iStartIndex = col;
pCodeSpan[0].iEndLine = line;
pCodeSpan[0].iEndIndex = col;
}
if (buffer != null)
{
// Use your parser to obtain the span that describes the
// the code containing the specified position. If the span
// is valid, return S_OK with the valid span; otherwise,
// returns S_FALSE (leaving the default span alone).
//
// GetCodeSpanForLocation() is a helper function not shown.
retval = VSConstants.S_FALSE;
TextSpan span = new TextSpan();
if (GetCodeSpanForLocation(buffer, line, col, out span))
{
pCodeSpan[0].iStartLine = span.iStartLine;
pCodeSpan[0].iStartIndex = span.iStartIndex;
pCodeSpan[0].iEndLine = span.iEndLine;
pCodeSpan[0].iEndIndex = span.iEndIndex
retval = VSConstants.S_OK;
}
}
return retval;
}
}
}
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.