Some Win32 functions declare a parameter whose type depends on the value of another parameter. For example, the WinHelp function is declared as follows:
BOOL WinHelp(int hwnd, LPCTSTR szHelpFile, UINT cmd, DWORD dwData);
The innocent-looking dwData parameter can actually be any one of the following: a pointer to a string, a pointer to a MULTIKEYHELP structure, a pointer to a HELPWININFO, or a plain integer, depending on the value of the cmd parameter.
J/Direct offers two ways to declare such a parameter:
For a comparison, see Comparison Between the Two Methods.