我在这里有一个方法
HRESULT GetImage(
SIZE size,
SIIGBF flags,
HBITMAP *phbm
);
,将SIIGBF作为参数。 SIIGBF是一个枚举,您可以看到here。
如本post中所述,我按如下方式创建枚举:
public static interface SIIGBF {
public static final int SIIGBF_RESIZETOFIT = 0x00000000;
public static final int SIIGBF_BIGGERSIZEOK = 0x00000001;
public static final int SIIGBF_MEMORYONLY = 0x00000002;
public static final int SIIGBF_ICONONLY = 0x00000004;
public static final int SIIGBF_THUMBNAILONLY = 0x00000008;
public static final int SIIGBF_INCACHEONLY = 0x00000010;
};
我将方法映射到顶部,这样:
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);
}
我这样运行方法:
WinNT.HRESULT hr = factory.GetImage(size,Shell32Extra.SIIGBF.SIIGBF_RESIZETOFIT,hbitmap);
但是它返回一个无效的内存访问错误,可能是因为枚举作为整数而存在的。你能帮我吗?