VB6でDouble型をLarge_Integer型に変換するにはどうすればいいんでしょうか?

ググって以下のソースを見つけたのですが、オーバーフローします。
QuadPart使えないし。。。

Private Function cvtDblToLi(Val As Double) As LARGE_INTEGER
Dim foo As LARGE_INTEGER

foo.lowpart = Val And &HFFFFFFFF
foo.highpart = RightShift(Val, 16)

cvtDblToLi = foo

End Function