From 352c98d7d57103b7a5f1bef03eb77ac8a6c98039 Mon Sep 17 00:00:00 2001 From: John Klehm Date: Wed, 9 Apr 2008 18:44:36 -0500 Subject: [PATCH] wintab32: Implement WTSetA/W. --- dlls/wintab32/context.c | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/dlls/wintab32/context.c b/dlls/wintab32/context.c index 3147ec0de5b..9551d8787f1 100644 --- a/dlls/wintab32/context.c +++ b/dlls/wintab32/context.c @@ -692,11 +692,21 @@ BOOL WINAPI WTGetW(HCTX hCtx, LPLOGCONTEXTW lpLogCtx) */ BOOL WINAPI WTSetA(HCTX hCtx, LPLOGCONTEXTA lpLogCtx) { - FIXME("(%p, %p): stub\n", hCtx, lpLogCtx); + LPOPENCONTEXT context; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + TRACE("hCtx=%p, lpLogCtx=%p\n", hCtx, lpLogCtx); - return FALSE; + if (!hCtx || !lpLogCtx) return FALSE; + + /* TODO: if cur process not owner of hCtx only modify + * attribs not locked by owner */ + + EnterCriticalSection(&csTablet); + context = TABLET_FindOpenContext(hCtx); + LOGCONTEXTAtoW(lpLogCtx, &context->context); + LeaveCriticalSection(&csTablet); + + return TRUE; } /*********************************************************************** @@ -704,11 +714,21 @@ BOOL WINAPI WTSetA(HCTX hCtx, LPLOGCONTEXTA lpLogCtx) */ BOOL WINAPI WTSetW(HCTX hCtx, LPLOGCONTEXTW lpLogCtx) { - FIXME("(%p, %p): stub\n", hCtx, lpLogCtx); + LPOPENCONTEXT context; - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + TRACE("hCtx=%p, lpLogCtx=%p\n", hCtx, lpLogCtx); - return FALSE; + if (!hCtx || !lpLogCtx) return FALSE; + + /* TODO: if cur process not hCtx owner only modify + * attribs not locked by owner */ + + EnterCriticalSection(&csTablet); + context = TABLET_FindOpenContext(hCtx); + memmove(&context->context, lpLogCtx, sizeof(LOGCONTEXTW)); + LeaveCriticalSection(&csTablet); + + return TRUE; } /***********************************************************************