title: How can I make this function not generate a "doesn't return a value on all paths" warning?
body: <p>I realize this is a very specific question, and not very helpful outside of this scenario, although I am sure it applies to other questions with the same problem. I have a function to recursively search through windows (and their child windows) to find specific ones, it works exactly as expected, however it causes "function doesn't return a value on all paths" warning. This is the only warning in my entire program, and although it might be silly, I'm interested in knowing if there is a way to stop this error from occurring, but still allowing the function to work properly.</p>
  
  <pre><code>    Public Function FindQWidgetWindows() As Integer
      Dim hWndStart As Integer = 0
      Dim WindowText As String = "*"
      Dim Classname As String = "QWidget"
      Dim hwnd As Integer
      Dim sWindowText As String
      Dim sClassname As String
      Dim r As Integer
      Static level As Integer
  
      If level = 0 Then
          If hWndStart = 0 Then hWndStart = GetDesktopWindow()
      End If
  
      level = level + 1
  
      hwnd = GetWindow(hWndStart, GW_CHILD)
  
      Do Until hwnd = 0
          Call FindQWidgetWindows()
  
          'Get the window text and class name'
          sWindowText = Space$(255)
          r = GetWindowText(hwnd, sWindowText, 255)
          sWindowText = Microsoft.VisualBasic.Left(sWindowText, r)
          sClassname = Space$(255)
          r = GetClassName(hwnd, sClassname, 255)
          sClassname = Microsoft.VisualBasic.Left(sClassname, r)
  
          If (sWindowText Like WindowText) And (sClassname Like Classname) Then
              Dim aRECT As RECT
              Dim hwndInt As Int32 = hwnd
              GetWindowRect(hwndInt, aRECT)
              FindQWidgetWindows = hwnd
  
              'uncommenting the next line causes the routine to'
              'only return the first matching window.'
              'Exit Do'
  
          End If
  
          hwnd = GetWindow(hwnd, GW_HWNDNEXT)
  
      Loop
  
      level = level - 1
  End Function
  </code></pre>