Bonjour tout le monde,
J'ai créée une DLL en cpp pour envoyé à mon application Java les gestes multitouch que je fais sur mon écran tactile ( j'ai eu un problème que j'avais exposé ici.
j'ai un autre problème maintenant :
Je fais un
RegistertouchWindows(hwnd,TWF_FINETOUCH)
pour enregistrer mes gestes bas level (le doigt touche, ne touche plus, se déplace). Malheureusement, cette méthode me renvoie une erreur 5 ( access denied).
Je suis administrateur de ma machine, et je possède par conséquent tous les droits. Pourquoi ai-je cette erreur?
Cela vient-il du fait que ma fenêtre principal est une Frame de java?
bout de code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
JNIEXPORT jboolean JNICALL Java_org_tas_multitouch_input_inputSources_W7NativeTouchSource_init
(JNIEnv *env, jobject f, jlong hWnd) {
_booltest = FALSE;
if(!hWnd){
return FALSE;
}
// jobject frame = (*env).NewGlobalRef(f);
HINSTANCE hInst = (HINSTANCE)GetWindowLong((HWND)hWnd, GWL_HINSTANCE);
LONG_PTR proc = SetWindowLongPtr((HWND) hWnd, GWL_WNDPROC,(long)WndProc);
BOOL isRegister = RegisterTouchWindow((HWND) hWnd, TWF_FINETOUCH);
//Enable all gesture types
GESTURECONFIG gestureConfig;
gestureConfig.dwID = 0;
gestureConfig.dwBlock = 0;
gestureConfig.dwWant = GC_ALLGESTURES;
BOOL result = SetGestureConfig((HWND)hWnd, 0, 1, &gestureConfig, sizeof(gestureConfig));
return TRUE;
} |
le HWND est bien celui de ma Frame Java
Partager