It's pretty minor; the script handlers in MyThreat_ThreatFrame just have to use self and button instead of this and arg1.
Code:
<OnMouseDown>
if (button == "LeftButton" and not self.lock) then
self:StartMoving();
end
</OnMouseDown>
<OnMouseUp>
self:StopMovingOrSizing();
</OnMouseUp>