2010-05-12 2 views
1
W32API.HWND targetHwnd = User32.INSTANCE.FindWindow("SunAwtFrame", "Frame") 
W32API.HWND sourceHwnd = User32.INSTANCE.FindWindow("triuiScreen", "EVE") 
W32API.HANDLE thumbnailH = new W32API.HANDLE() 

NativeLibrary dwm = NativeLibrary.getInstance("dwmapi") 
dwm.getFunction('DwmRegisterThumbnail').invoke(targetHwnd, sourceHwnd, thumbnailH) 

나에게 내가 완전히 잘못하고있어 느낌이윈도우 썸네일 미리보기가

# A fatal error has been detected by the Java Runtime Environment: 
# 
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x70f34bee, pid=7208, tid=7364 
# 
# JRE version: 6.0_18-b07 
# Java VM: Java HotSpot(TM) Client VM (16.0-b13 mixed mode, sharing windows-x86) 
# Problematic frame: 
# C [DWMAPI.DLL+0x4bee] 

을 제공하지만, 문서에 파고하는데도 저를 얻었다 없습니다.

답변

3

세 번째 매개 변수는 "out"매개 변수이며 핸들 자체가 아니라 핸들에 대한 포인터 여야합니다. 그래서 뭔가 같은 것

dwm.getFunction("DwmRegisterThumbnail") 
    .invoke(targetHwnd, sourceHwnd, new PointerByReference(thumbnailH)) 
+0

W32API.HANDLEByReference처럼 보이지만 힌트를 주셔서 감사합니다. 참조로 전달하는 것이 JNA에서 처리된다고 생각했습니다. – rukoche