Advertisement
2002VB Miscellaneous #21196

Function Pointers in VB

This code makes it possible to use function pointers (no, not OBJPtr) basic funciton pointers, in VB. It uses two API calls. Basically, it uses a window callback as the entry point for your new function, redirecting the window call to the function supplied. A little out of the norm, but a handy thing to have when callbacks to non-objects is needed. If you are attempting to call objects back, I recommend either the undocumented ObjPtr() or CallByName (when you know the name of the object function to call)

AI

Tóm tắt bởi AI: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

Mã nguồn
original-source
Option Explicit
Private Function StripStringFromPointer$(ByVal lpString&, ByVal nStrLen&)
  Dim Info$
  Info = String$(nStrLen, vbNullChar)
  CopyMemory ByVal StrPtr(Info), ByVal lpString, nStrLen * 2
  StripStringFromPointer = Info
End Function
Private Function GetAddress(Addr&)
  GetAddress = Addr
End Function
Private Function MyFunction&(ByVal lpString&, ByVal nStrLen&, ByVal param3&,
ByVal param4&)
  Debug.Print StripStringFromPointer(lpString, nStrLen)
End Function
Public Sub Main()
  Dim FunctAddr&, Info$
  Info = "Holy Smoke"
  FunctAddr = GetAddress(AddressOf MyFunction)
  CallWindowProc FunctAddr, StrPtr(Info), CLng(Len(Info)), 0&, 0&
  End
End Sub
Bình luận gốc (3)
Được khôi phục từ Wayback Machine