JNA内存访问无效未知接口

我尝试了一切,但它总是返回一个无效的内存访问期望这是c函数:

HRESULT GetImage( SIZE size, SIIGBF flags, HBITMAP *phbm ); 

这可能是java实现:

 WinUser.SIZE size = new WinUser.SIZE(64,64); WinDef.HBITMAP bitmap = new WinDef.HBITMAP(); factory.GetImage(size,0,bitmap); 

这是IShellItemImageFactory类:

 package main; import com.sun.jna.Pointer; import com.sun.jna.platform.win32.COM.Unknown; import com.sun.jna.platform.win32.WinDef; import com.sun.jna.platform.win32.WinNT; import com.sun.jna.platform.win32.WinUser; import com.sun.jna.ptr.IntByReference; import com.sun.jna.ptr.PointerByReference; /** * Created by Marcel on Aug,2018 */ public class IShellItemImageFactory extends Unknown { public IShellItemImageFactory(Pointer pvInstance) { super(pvInstance); } WinNT.HRESULT GetImage(WinUser.SIZE size, int flags, WinDef.HBITMAP phbm) { return (WinNT.HRESULT) _invokeNativeObject(3,new Object[]{getPointer(),size,flags,phbm},WinNT.HRESULT.class); } } 

但最终它总是回归这个期望:

 Exception in thread "main" java.lang.Error: Invalid memory access at com.sun.jna.Native.invokeInt(Native Method) at com.sun.jna.Function.invoke(Function.java:419) at com.sun.jna.Function.invoke(Function.java:354) at com.sun.jna.Function.invoke(Function.java:308) at com.sun.jna.Function.invoke(Function.java:299) at com.sun.jna.platform.win32.COM.COMInvoker._invokeNativeObject(COMInvoker.java:47) at main.IShellItemImageFactory.GetImage(IShellItemImageFactory.java:20) at main.Main.main(Main.java:35) 

我正在创建像这样的IShellItemImageFactory:

 WinNT.HRESULT h = Shell32Extra.INSTANCE.SHCreateItemFromParsingName(new WString("C:\\Users\\Marcel\\Desktop\\Modern File Explorer 0.2a.jar"),null,rid,ppv); PointerByReference b = new PointerByReference(); IShellItemImageFactory factory = new IShellItemImageFactory(ppv.getValue()); 

请帮我