Dim MyCall As New TessCall Dim CallA As CallAA = New CallAA(AddressOf MyCall.glVertex3dvCB) Dim CallB As CallBB = New CallBB(AddressOf MyCall.glBeginCB) Dim CallC As CallCC = New CallCC(AddressOf MyCall.glEndCB) Dim CallD As CallDD = New CallDD(AddressOf MyCall.glErrorCB) Dim returnValue1 As IntPtr Dim returnValue2 As IntPtr Dim returnValue3 As IntPtr Dim returnValue4 As IntPtr returnValue1 = Marshal.GetFunctionPointerForDelegate(CallA) returnValue2 = Marshal.GetFunctionPointerForDelegate(CallB) returnValue3 = Marshal.GetFunctionPointerForDelegate(CallC) returnValue4 = Marshal.GetFunctionPointerForDelegate(CallD) tobj = gluNewTess() gluTessCallback(tobj, GLU_TESS_VERTEX, returnValue1) ' AddressOf glVertex3dvCB) gluTessCallback(tobj, GLU_TESS_BEGIN, returnValue2) ' AddressOf glBeginCB) gluTessCallback(tobj, GLU_TESS_END, returnValue3) ' AddressOf glEndCB) gluTessCallback(tobj, GLU_TESS_ERROR, returnValue4) ' AddressOf glErrorCB)