To represent a callback parameter in Java, declare the Java type to be either type com.ms.dll.Callback or a class that derives from it. For example, the Microsoft Win32 EnumWindows function is prototyped as follows:
BOOL EnumWindows(WNDENUMPROC wndenumproc, LPARAM lparam);
The corresponding Java prototype is:
import com.ms.dll.Callback;
/** @dll.import("USER32") */
static native boolean EnumWindows(Callback wndenumproc,
int lparam);