The following shows how to declare WinHelp by declaring dwData as type Object:
/** @dll.import("USER32") */
static native boolean WinHelp(int hwnd, String szHelpFile,
int cmd, Object dwData);
When WinHelp is invoked, J/Direct will use the run-time type to determine how to translate dwData. The following table describes how the types are translated.
| Type | Translated as |
| java.lang.Integer | 4-byte integer |
| java.lang.Boolean | 4-byte BOOL |
| java.lang.Char | CHAR (or WCHAR if the unicode or ole modifiers are in effect) |
| java.lang.Short | 2-byte SHORT |
| java.lang.Float | 4-byte FLOAT |
| java.lang.String | LPCSTR (or LPCWSTR if the unicode or ole modifier is in effect) |
| java.lang.StringBuffer | LPSTR (or LPWSTR if the unicode or ole modifier is in effect) |
| byte[] | BYTE* |
| char[] | CHAR* (or WCHAR* if the unicode or ole modifier is in effect) |
| short[] | SHORT* |
| int[] | INT* |
| long[] | __int64 |
| float[] | float* |
| double[] | double* |
| @dll.struct | pointer to structure |