31#include "interfaces.h"
33#define SXS_LOOKUP_CLR_GUID_USE_ACTCTX 0x00000001
34#define SXS_LOOKUP_CLR_GUID_FIND_SURROGATE 0x00010000
35#define SXS_LOOKUP_CLR_GUID_FIND_CLR_CLASS 0x00020000
36#define SXS_LOOKUP_CLR_GUID_FIND_ANY (SXS_LOOKUP_CLR_GUID_FIND_SURROGATE | SXS_LOOKUP_CLR_GUID_FIND_CLR_CLASS)
38#define SXS_GUID_INFORMATION_CLR_FLAG_IS_SURROGATE 0x00000001
39#define SXS_GUID_INFORMATION_CLR_FLAG_IS_CLASS 0x00000002
63 if (!rsrc)
return FALSE;
66 if (!rsrc_data)
return FALSE;
69 if (!rsrc_size)
return FALSE;
71 strcpy(path_file, path_tmp);
91 ok(!
ret,
"Unexpected return value %d.\n",
ret);
97 ok(!
ret,
"Unexpected return value %d.\n",
ret);
102 ok(!
ret,
"Unexpected return value %d.\n",
ret);
118 ok(!
lstrcmpW(
info->pcwszAssemblyIdentity,
L"comtest,type=\"win32\",version=\"1.0.0.0\""),
119 "Unexpected assembly identity %s.\n",
wine_dbgstr_w(
info->pcwszAssemblyIdentity));
120 ok(!
lstrcmpW(
info->pcwszRuntimeVersion,
L"v4.0.0.0"),
"Unexpected runtime version %s.\n",
127 ok(!
ret,
"Unexpected return value %d.\n",
ret);
134 ok(
ret,
"Unexpected return value %d.\n",
ret);
139 ok(!
lstrcmpW(
info->pcwszAssemblyIdentity,
L"comtest,type=\"win32\",version=\"1.0.0.0\""),
140 "Unexpected assembly identity %s.\n",
wine_dbgstr_w(
info->pcwszAssemblyIdentity));
141 ok(!
lstrcmpW(
info->pcwszRuntimeVersion,
L"v4.0.0.1"),
"Unexpected runtime version %s.\n",
148 ok(!
ret,
"Unexpected return value %d.\n",
ret);
164 if (!
write_resource_file(path_tmp,
"comtest_exe.manifest",
"exe.manifest", path_manifest_exe))
166 ok(0,
"Failed to create file for testing\n");
170 if (!
write_resource_file(path_tmp,
"comtest_dll.manifest",
"comtest.manifest", path_manifest_dll))
172 ok(0,
"Failed to create file for testing\n");
176 context.cbSize =
sizeof(ACTCTXA);
177 context.lpSource = path_manifest_exe;
178 context.lpAssemblyDirectory = path_tmp;
179 context.dwFlags = ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID;
186 ok(0,
"Failed to create activation context\n");
202 if (*path_manifest_exe)
207 if(*path_manifest_dll)
254 ok(!
ret,
"Unexpected return value %d.\n",
ret);
259 ok(!
ret,
"Unexpected return value %d.\n",
ret);
#define ERROR_INSUFFICIENT_BUFFER
#define INVALID_HANDLE_VALUE
#define CreateFileA(a, b, c, d, e, f, g)
#define FILE_ATTRIBUTE_NORMAL
static void cleanup(void)
VOID WINAPI ReleaseActCtx(IN HANDLE hActCtx)
BOOL WINAPI DeactivateActCtx(IN DWORD dwFlags, IN ULONG_PTR ulCookie)
BOOL WINAPI ActivateActCtx(IN HANDLE hActCtx, OUT PULONG_PTR ulCookie)
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
BOOL WINAPI WriteFile(_In_ HANDLE hFile, _In_reads_bytes_opt_(nNumberOfBytesToWrite) LPCVOID lpBuffer, _In_ DWORD nNumberOfBytesToWrite, _Out_opt_ LPDWORD lpNumberOfBytesWritten, _Inout_opt_ LPOVERLAPPED lpOverlapped)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
DWORD WINAPI GetTempPathA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
HANDLE WINAPI CreateActCtxA(PCACTCTXA pActCtx)
HRSRC WINAPI FindResourceA(HMODULE hModule, LPCSTR name, LPCSTR type)
DWORD WINAPI SizeofResource(HINSTANCE hModule, HRSRC hRsrc)
LPVOID WINAPI LockResource(HGLOBAL handle)
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessA(const char *app_name, char *cmd_line, SECURITY_ATTRIBUTES *process_attr, SECURITY_ATTRIBUTES *thread_attr, BOOL inherit, DWORD flags, void *env, const char *cur_dir, STARTUPINFOA *startup_info, PROCESS_INFORMATION *info)
_ACRTIMP char *__cdecl strstr(const char *, const char *)
#define SXS_LOOKUP_CLR_GUID_USE_ACTCTX
#define SXS_GUID_INFORMATION_CLR_FLAG_IS_CLASS
#define SXS_LOOKUP_CLR_GUID_FIND_CLR_CLASS
#define SXS_GUID_INFORMATION_CLR_FLAG_IS_SURROGATE
BOOL WINAPI SxsLookupClrGuid(DWORD flags, GUID *clsid, HANDLE actctx, void *buffer, SIZE_T buffer_len, SIZE_T *buffer_len_required)
struct _SXS_GUID_INFORMATION_CLR SXS_GUID_INFORMATION_CLR
#define SXS_LOOKUP_CLR_GUID_FIND_SURROGATE
static const GUID CLSID_Test
static PROCESS_INFORMATION pi
static void prepare_and_run_test(void)
static void run_test(void)
static void run_child_process(void)
static void test_SxsLookupClrGuid(void)
static BOOL write_resource_file(const char *path_tmp, const char *name_res, const char *name_file, char *path_file)
#define SXS_LOOKUP_CLR_GUID_FIND_ANY
int winetest_get_mainargs(char ***pargv)
#define wait_child_process
wchar_t const *const size_t const buffer_size
#define success(from, fromstr, to, tostr)
DWORD WINAPI GetLastError(void)