Declare Function pjInitPlus Lib "proj_api.dll" _
    (ByVal definition As String) As Long

Declare Sub pjFree Lib "proj_api.dll" (ByVal pjPointer As Long)

Declare Function pjTransform Lib "proj_api.dll" _
    (ByVal srcPointer As Long, ByVal dstPointer As Long, ByVal count As Long, _
    ByVal offset As Long, xs As Double, ys As Double, zs As Double) As Long

Function cs2cs(s_srs As String, t_srs As String, x As Long, y As Long) As Variant

    Dim pjOne As Long
    Dim pjTwo As Long
    Dim pnt(1) As Double
    Dim res As Integer

    pjSource = pjInitPlus(s_srs)
    pjTarget = pjInitPlus(t_srs)
    
    pnt(0) = x
    pnt(1) = y
    
    res = pjTransform(pjSource, pjTarget, 1, 1, pnt(0), pnt(1), vbNull)

    If pjSource <> 0 Then pjFree (pjSource)
    If pjSource <> 0 Then pjFree (pjTarget)

    cs2cs = pnt
End Function
