--- /dev/null
+/*
+ * Test for the default activation context that is active in every process.
+ *
+ * Copyright 2017 Giannis Adamopoulos
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#include "wine/test.h"
+#include "windef.h"
+#include "winbase.h"
+#include "winerror.h"
+
+START_TEST(DefaultActCtx)
+{
+ DWORD buffer[256];
+ BOOL res;
+ PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION details = (PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION)buffer;
+ PACTIVATION_CONTEXT_DETAILED_INFORMATION info = (PACTIVATION_CONTEXT_DETAILED_INFORMATION)buffer;
+ HANDLE h;
+ DWORD i;
+ ACTCTX_SECTION_KEYED_DATA KeyedData = { 0 };
+
+ res = QueryActCtxW(QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX,
+ NULL,
+ NULL,
+ ActivationContextDetailedInformation,
+ &buffer,
+ sizeof(buffer),
+ NULL);
+ ok(res == TRUE, "\n");
+ ok(info->lpRootManifestPath == NULL, "Expected null lpRootManifestPath, got %S\n", info->lpRootManifestPath);
+ ok(info->lpRootConfigurationPath == NULL, "Expected null lpRootConfigurationPath, got %S\n", info->lpRootConfigurationPath);
+ ok(info->lpAppDirPath == NULL, "Expected null lpAppDirPath, got %S\n", info->lpAppDirPath);
+ ok(info->ulAssemblyCount == 0, "\n");
+
+ i = 0;
+ res = QueryActCtxW(QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX,
+ NULL,
+ &i,
+ AssemblyDetailedInformationInActivationContext,
+ &buffer,
+ sizeof(buffer),
+ NULL);
+ ok(res == TRUE, "\n");
+ ok(details->lpAssemblyEncodedAssemblyIdentity == NULL, "Expected null lpAssemblyEncodedAssemblyIdentity, got %S\n", details->lpAssemblyEncodedAssemblyIdentity);
+ ok(details->lpAssemblyManifestPath == NULL, "Expected null lpAssemblyManifestPath, got %S\n", details->lpAssemblyManifestPath);
+ ok(details->lpAssemblyPolicyPath == NULL, "Expected null lpAssemblyPolicyPath, got %S\n", details->lpAssemblyPolicyPath);
+ ok(details->lpAssemblyDirectoryName == NULL, "Expected null lpAssemblyDirectoryName, got %S\n", details->lpAssemblyDirectoryName);
+
+ i = 1;
+ res = QueryActCtxW(QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX,
+ NULL,
+ &i,
+ AssemblyDetailedInformationInActivationContext,
+ &buffer,
+ sizeof(buffer),
+ NULL);
+ ok(res == TRUE, "\n"); /* This is FALSE in win10 */
+ ok(details->lpAssemblyEncodedAssemblyIdentity == NULL, "Expected null lpAssemblyEncodedAssemblyIdentity, got %S\n", details->lpAssemblyEncodedAssemblyIdentity);
+ ok(details->lpAssemblyManifestPath == NULL, "Expected null lpAssemblyManifestPath, got %S\n", details->lpAssemblyManifestPath);
+ ok(details->lpAssemblyPolicyPath == NULL, "Expected null lpAssemblyPolicyPath, got %S\n", details->lpAssemblyPolicyPath);
+ ok(details->lpAssemblyDirectoryName == NULL, "Expected null lpAssemblyDirectoryName, got %S\n", details->lpAssemblyDirectoryName);
+
+ res = GetCurrentActCtx (&h);
+ ok(res == TRUE, "\n");
+ ok(h == NULL, "\n");
+
+ KeyedData.cbSize = sizeof(KeyedData);
+ res = FindActCtxSectionStringW(FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX,
+ NULL,
+ ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION,
+ L"Microsoft.Windows.SysyemCompatible",
+ &KeyedData);
+ ok(res == FALSE, "\n");
+
+ KeyedData.cbSize = sizeof(KeyedData);
+ res = FindActCtxSectionStringW(FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX,
+ NULL,
+ ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION,
+ L"System Default Context",
+ &KeyedData);
+ ok(res == FALSE, "\n");
+
+ KeyedData.cbSize = sizeof(KeyedData);
+ res = FindActCtxSectionStringW(FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX,
+ NULL,
+ ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION,
+ L"Microsoft.Windows.Common-Controls",
+ &KeyedData);
+ ok(res == TRUE, "\n");
+ ok(KeyedData.hActCtx == NULL, "Expected null handle for common control context\n");
+ ok(KeyedData.ulAssemblyRosterIndex != 0, "%d\n", KeyedData.ulAssemblyRosterIndex);
+ //ok(wcsstr(details-> , L"SystemCompative"
+
+}
spec2def(redirtest.dll redirtest.spec ADD_IMPORTLIB)
-list(APPEND SOURCE
- redirtest.c
+list(APPEND SOURCE1
+ redirtest1.c
${CMAKE_CURRENT_BINARY_DIR}/redirtest_stubs.c
${CMAKE_CURRENT_BINARY_DIR}/redirtest.def)
-add_definitions(-DTESTVER=1)
+list(APPEND SOURCE2
+ redirtest2.c
+ ${CMAKE_CURRENT_BINARY_DIR}/redirtest_stubs.c
+ ${CMAKE_CURRENT_BINARY_DIR}/redirtest.def)
-add_library(redirtest1 SHARED ${SOURCE})
+add_library(redirtest1 SHARED ${SOURCE1})
set_module_type(redirtest1 win32dll)
add_importlibs(redirtest1 msvcrt kernel32 ntdll)
-add_rostests_file(TARGET redirtest1 NAME_ON_CD kernel32test_versioned.dll)
+add_rostests_file(TARGET redirtest1 RENAME kernel32test_versioned.dll)
-remove_definitions(-DTESTVER=1)
-add_definitions(-DTESTVER=2)
-
-add_library(redirtest2 SHARED ${SOURCE})
+add_library(redirtest2 SHARED ${SOURCE2})
set_module_type(redirtest2 win32dll)
add_importlibs(redirtest2 msvcrt kernel32 ntdll)
-add_rostests_file(TARGET redirtest2 SUBDIR testdata NAME_ON_CD kernel32test_versioned.dll)
+add_rostests_file(TARGET redirtest2 SUBDIR testdata RENAME kernel32test_versioned.dll)
add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/redirtest2.manifest" SUBDIR testdata)
-
-remove_definitions(-DTESTVER=2)
\ No newline at end of file
#define STANDALONE
#include <apitest.h>
+extern void func_DefaultActCtx(void);
extern void func_dosdev(void);
extern void func_FindActCtxSectionStringW(void);
extern void func_FindFiles(void);
extern void func_GetDriveType(void);
extern void func_GetModuleFileName(void);
extern void func_interlck(void);
+extern void func_LoadLibraryExW(void);
extern void func_lstrcpynW(void);
extern void func_Mailslot(void);
extern void func_MultiByteToWideChar(void);
const struct test winetest_testlist[] =
{
+ { "DefaultActCtx", func_DefaultActCtx },
{ "dosdev", func_dosdev },
{ "FindActCtxSectionStringW", func_FindActCtxSectionStringW },
{ "FindFiles", func_FindFiles },
{ "GetDriveType", func_GetDriveType },
{ "GetModuleFileName", func_GetModuleFileName },
{ "interlck", func_interlck },
+ { "LoadLibraryExW", func_LoadLibraryExW },
{ "lstrcpynW", func_lstrcpynW },
{ "MailslotRead", func_Mailslot },
{ "MultiByteToWideChar", func_MultiByteToWideChar },