I have created a function below that you can try, just put the function in your UFT script/function library then call the UFT function whenever you want a screenshot.
Function CaptureScreenshot
'Written 6/26/2017 Joshua Yates Orasi Software
'Create File system object
Set fso=createobject(''scripting.filesystemobject'')
'Delete previous test image capture if it exists
If fso.FileExists(''C:TempMyUFTScreenshot.png'') then
fso.DeleteFile(''C:TempMyUFTScreenshot.png'')
End If
'Capture new image and save to report
Desktop.CaptureBitmap ''C:TempMyUFTScreenshot.png''
Reporter.ReportEvent micDone, ''Capture Screenshot'', ''Failure Screenshot'', ''C:TempMyUFTScreenshot.png''
Set fso=nothing
End Function