Mike McCormack : kernel: Improve the activation context stubs.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Mar 7 06:12:55 CST 2006


Module: wine
Branch: refs/heads/master
Commit: bb84eaa98fe1139c7a9b30f676eb4ef59cb6bc4b
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=bb84eaa98fe1139c7a9b30f676eb4ef59cb6bc4b

Author: Mike McCormack <mike at codeweavers.com>
Date:   Tue Mar  7 18:24:24 2006 +0900

kernel: Improve the activation context stubs.

---

 dlls/kernel/actctx.c |   62 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 48 insertions(+), 14 deletions(-)

diff --git a/dlls/kernel/actctx.c b/dlls/kernel/actctx.c
index 62a4cca..02f2b72 100644
--- a/dlls/kernel/actctx.c
+++ b/dlls/kernel/actctx.c
@@ -31,6 +31,19 @@
 WINE_DEFAULT_DEBUG_CHANNEL(actctx);
 
 
+#define ACTCTX_FLAGS_ALL (\
+ ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID |\
+ ACTCTX_FLAG_LANGID_VALID |\
+ ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID |\
+ ACTCTX_FLAG_RESOURCE_NAME_VALID |\
+ ACTCTX_FLAG_SET_PROCESS_DEFAULT |\
+ ACTCTX_FLAG_APPLICATION_NAME_VALID |\
+ ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF |\
+ ACTCTX_FLAG_HMODULE_VALID )
+
+#define ACTCTX_FAKE_HANDLE ((HANDLE) 0xf00baa)
+#define ACTCTX_FAKE_COOKIE ((ULONG_PTR) 0xf00bad)
+
 /***********************************************************************
  * CreateActCtxA (KERNEL32.@)
  *
@@ -38,8 +51,15 @@ WINE_DEFAULT_DEBUG_CHANNEL(actctx);
  */
 HANDLE WINAPI CreateActCtxA(PCACTCTXA pActCtx)
 {
-  FIXME("stub!\n");
-  return INVALID_HANDLE_VALUE;
+  FIXME("%p %08lx\n", pActCtx, pActCtx ? pActCtx->dwFlags : 0);
+
+  if (!pActCtx)
+    return INVALID_HANDLE_VALUE;
+  if (pActCtx->cbSize != sizeof *pActCtx)
+    return INVALID_HANDLE_VALUE;
+  if (pActCtx->dwFlags & ~ACTCTX_FLAGS_ALL)
+    return INVALID_HANDLE_VALUE;
+  return ACTCTX_FAKE_HANDLE;
 }
 
 /***********************************************************************
@@ -49,8 +69,15 @@ HANDLE WINAPI CreateActCtxA(PCACTCTXA pA
  */
 HANDLE WINAPI CreateActCtxW(PCACTCTXW pActCtx)
 {
-  FIXME("stub!\n");
-  return INVALID_HANDLE_VALUE;
+  FIXME("%p %08lx\n", pActCtx, pActCtx ? pActCtx->dwFlags : 0);
+
+  if (!pActCtx)
+    return INVALID_HANDLE_VALUE;
+  if (pActCtx->cbSize != sizeof *pActCtx)
+    return INVALID_HANDLE_VALUE;
+  if (pActCtx->dwFlags & ~ACTCTX_FLAGS_ALL)
+    return INVALID_HANDLE_VALUE;
+  return ACTCTX_FAKE_HANDLE;
 }
 
 /***********************************************************************
@@ -60,8 +87,10 @@ HANDLE WINAPI CreateActCtxW(PCACTCTXW pA
  */
 BOOL WINAPI ActivateActCtx(HANDLE hActCtx, ULONG_PTR *ulCookie)
 {
-  FIXME("stub!\n");
-  return FALSE;
+  FIXME("%p %p\n", hActCtx, ulCookie );
+  if (ulCookie)
+    *ulCookie = ACTCTX_FAKE_COOKIE;
+  return TRUE;
 }
 
 /***********************************************************************
@@ -71,8 +100,10 @@ BOOL WINAPI ActivateActCtx(HANDLE hActCt
  */
 BOOL WINAPI DeactivateActCtx(DWORD dwFlags, ULONG_PTR ulCookie)
 {
-  FIXME("stub!\n");
-  return FALSE;
+  FIXME("%08lx %08lx\n", dwFlags, ulCookie);
+  if (ulCookie != ACTCTX_FAKE_COOKIE)
+    return FALSE;
+  return TRUE;
 }
 
 /***********************************************************************
@@ -82,8 +113,9 @@ BOOL WINAPI DeactivateActCtx(DWORD dwFla
  */
 BOOL WINAPI GetCurrentActCtx(HANDLE* phActCtx)
 {
-  FIXME("stub!\n");
-  return FALSE;
+  FIXME("%p\n", phActCtx);
+  *phActCtx = ACTCTX_FAKE_HANDLE;
+  return TRUE;
 }
 
 /***********************************************************************
@@ -93,7 +125,7 @@ BOOL WINAPI GetCurrentActCtx(HANDLE* phA
  */
 void WINAPI AddRefActCtx(HANDLE hActCtx)
 {
-  FIXME("stub!\n");
+  FIXME("%p\n", hActCtx);
 }
 
 /***********************************************************************
@@ -103,7 +135,7 @@ void WINAPI AddRefActCtx(HANDLE hActCtx)
  */
 void WINAPI ReleaseActCtx(HANDLE hActCtx)
 {
-  FIXME("stub!\n");
+  FIXME("%p\n", hActCtx);
 }
 
 /***********************************************************************
@@ -113,8 +145,10 @@ void WINAPI ReleaseActCtx(HANDLE hActCtx
  */
 BOOL WINAPI ZombifyActCtx(HANDLE hActCtx)
 {
-  FIXME("stub!\n");
-  return FALSE;
+  FIXME("%p\n", hActCtx);
+  if (hActCtx != ACTCTX_FAKE_HANDLE)
+    return FALSE;
+  return TRUE;
 }
 
 /***********************************************************************




More information about the wine-cvs mailing list