Determine if a file is not loaded - Assembly Process

What is the syntax to check if a file within an assembly is loaded structure only
vs syntax partially loaded
vs syntax fully loaded

The code below illustrates one way to determine if the component file is not loaded, partially loaded, or fully loaded.

Option Strict Off

Imports System
Imports NXOpen
Imports NXOpen.UF
Imports NXOpen.Assemblies

Module Module40

Public theSession As Session = Session.GetSession()
Public ufs As UFSession = UFSession.GetUFSession()
Public lw As ListingWindow = theSession.ListingWindow

Sub Main()
Dim workPart As Part = theSession.Parts.Work
Dim dispPart As Part = theSession.Parts.Display

lw.Open()
Try
Dim c As ComponentAssembly = dispPart.ComponentAssembly
If Not IsNothing(c.RootComponent) Then
lw.WriteLine("Assembly: " & c.RootComponent.DisplayName)
ReportComponentChildren(c.RootComponent, 0)
Else
lw.WriteLine("Part has no components")
End If
Catch e As Exception
theSession.ListingWindow.WriteLine("Failed: " & e.ToString)
End Try
lw.Close()

End Sub

Sub reportComponentChildren(ByVal comp As Component, _
ByVal indent As Integer)

For Each child As Component In comp.GetChildren()
'*** insert code to process component or subassembly
lw.WriteLine(New String(" ", indent * 2) & child.DisplayName())

If IsNothing(child.Prototype.OwningPart) Then
lw.WriteLine(New String(" ", indent * 2) & "component is not loaded")
Return
End If

If child.Prototype.OwningPart.IsFullyLoaded Then
lw.WriteLine(New String(" ", indent * 2) & "component is fullyloaded")
Else
lw.WriteLine(New String(" ", indent * 2) & "component is partially loaded")
End If

reportComponentChildren(child, indent + 1)
Next

End Sub

Public Function GetUnloadOption(ByVal dummy As String) As Integer
Return Session.LibraryUnloadOption.Immediately
End Function

End Module