TextBox/RichTextBoxの指定行の先頭文字の位置を取得

VisualBasic6用
TextBox/RichTextBoxの指定行の先頭文字の位置を取得

Const EM_GETLINECOUNT = &HBA
Private Const EM_LINEINDEX = &HBB
Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
        (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
' TextBox/RichTextBoxの指定行の先頭文字の位置を取得
'
' lngHWnd : TextBox/RichTextBox のウィンドウハンドル
'
' 戻り値 : 正常 - 行数
'          異常 - -1
'
Function GetFirstIndexOfLine(ByVal lngHwnd As Long, ByVal lngLineNum As Long) As Long
    Dim lngN As Long
    lngN = SendMessage(lngHwnd, EM_LINEINDEX, lngLineNum - 1, 0)
    If lngN >= 0 Then
        GetFirstIndexOfLine = lngN + 1
    Else
        GetFirstIndexOfLine = lngN
    End If
End Function