You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Compare commits
19 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
e83fdffe77 | ||
|
750044c08c | ||
|
dfc989712e | ||
|
783002b5de | ||
|
806bbc0198 | ||
|
e4debaae9b | ||
|
9a7b25dfd2 | ||
|
43a3110e95 | ||
|
0d3a7a3596 | ||
|
101e672955 | ||
|
29ce68fa31 | ||
|
3486cceeba | ||
|
37fa6ccbbd | ||
|
9aeea5d12e | ||
|
aa8a3d90cb | ||
|
811467bf6a | ||
|
2a9a56c4d0 | ||
|
d0873d2c72 | ||
|
4046ffe6c9 |
@@ -1,137 +0,0 @@
|
||||
From d2e98b2054a5af671fd81ded32f2cf60a062312c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 5 Aug 2017 00:26:03 +0200
|
||||
Subject: [PATCH] server: Implement token elevation information.
|
||||
|
||||
---
|
||||
dlls/ntdll/unix/security.c | 16 ++++++++++++----
|
||||
server/protocol.def | 8 ++++++++
|
||||
server/token.c | 22 +++++++++++++++++++---
|
||||
3 files changed, 39 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/security.c b/dlls/ntdll/unix/security.c
|
||||
index d063d43d6d4..03a81afa46e 100644
|
||||
--- a/dlls/ntdll/unix/security.c
|
||||
+++ b/dlls/ntdll/unix/security.c
|
||||
@@ -390,19 +390,27 @@ NTSTATUS WINAPI NtQueryInformationToken( HANDLE token, TOKEN_INFORMATION_CLASS c
|
||||
break;
|
||||
|
||||
case TokenElevationType:
|
||||
+ SERVER_START_REQ( get_token_elevation_type )
|
||||
{
|
||||
TOKEN_ELEVATION_TYPE *type = info;
|
||||
- FIXME("QueryInformationToken( ..., TokenElevationType, ...) semi-stub\n");
|
||||
- *type = TokenElevationTypeFull;
|
||||
+ req->handle = wine_server_obj_handle( token );
|
||||
+ status = wine_server_call( req );
|
||||
+ if (status == STATUS_SUCCESS)
|
||||
+ *type = reply->elevation;
|
||||
}
|
||||
+ SERVER_END_REQ;
|
||||
break;
|
||||
|
||||
case TokenElevation:
|
||||
+ SERVER_START_REQ( get_token_elevation_type )
|
||||
{
|
||||
TOKEN_ELEVATION *elevation = info;
|
||||
- FIXME("QueryInformationToken( ..., TokenElevation, ...) semi-stub\n");
|
||||
- elevation->TokenIsElevated = TRUE;
|
||||
+ req->handle = wine_server_obj_handle( token );
|
||||
+ status = wine_server_call( req );
|
||||
+ if (status == STATUS_SUCCESS)
|
||||
+ elevation->TokenIsElevated = (reply->elevation == TokenElevationTypeFull);
|
||||
}
|
||||
+ SERVER_END_REQ;
|
||||
break;
|
||||
|
||||
case TokenSessionId:
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index ee07b1eca14..84f0b577d72 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -3566,6 +3566,14 @@ struct handle_info
|
||||
@END
|
||||
|
||||
|
||||
+/* Get elevation level of token */
|
||||
+@REQ(get_token_elevation_type)
|
||||
+ obj_handle_t handle; /* handle to the object */
|
||||
+@REPLY
|
||||
+ unsigned int elevation; /* elevation level */
|
||||
+@END
|
||||
+
|
||||
+
|
||||
/* Create I/O completion port */
|
||||
@REQ(create_completion)
|
||||
unsigned int access; /* desired access to a port */
|
||||
diff --git a/server/token.c b/server/token.c
|
||||
index 38a4c203d54..14343637af5 100644
|
||||
--- a/server/token.c
|
||||
+++ b/server/token.c
|
||||
@@ -110,6 +110,7 @@ struct token
|
||||
ACL *default_dacl; /* the default DACL to assign to objects created by this user */
|
||||
TOKEN_SOURCE source; /* source of the token */
|
||||
int impersonation_level; /* impersonation level this token is capable of if non-primary token */
|
||||
+ TOKEN_ELEVATION_TYPE elevation; /* elevation level */
|
||||
};
|
||||
|
||||
struct privilege
|
||||
@@ -552,7 +553,7 @@ static struct token *create_token( unsigned primary, const SID *user,
|
||||
const LUID_AND_ATTRIBUTES *privs, unsigned int priv_count,
|
||||
const ACL *default_dacl, TOKEN_SOURCE source,
|
||||
const luid_t *modified_id,
|
||||
- int impersonation_level )
|
||||
+ int impersonation_level, TOKEN_ELEVATION_TYPE elevation )
|
||||
{
|
||||
struct token *token = alloc_object( &token_ops );
|
||||
if (token)
|
||||
@@ -574,6 +575,7 @@ static struct token *create_token( unsigned primary, const SID *user,
|
||||
token->impersonation_level = impersonation_level;
|
||||
token->default_dacl = NULL;
|
||||
token->primary_group = NULL;
|
||||
+ token->elevation = elevation;
|
||||
|
||||
/* copy user */
|
||||
token->user = memdup( user, security_sid_len( user ));
|
||||
@@ -689,7 +691,8 @@ struct token *token_duplicate( struct token *src_token, unsigned primary,
|
||||
token = create_token( primary, src_token->user, NULL, 0,
|
||||
NULL, 0, src_token->default_dacl,
|
||||
src_token->source, modified_id,
|
||||
- impersonation_level );
|
||||
+ impersonation_level,
|
||||
+ src_token->elevation );
|
||||
if (!token) return token;
|
||||
|
||||
/* copy groups */
|
||||
@@ -895,7 +898,7 @@ struct token *token_create_admin( void )
|
||||
static const TOKEN_SOURCE admin_source = {"SeMgr", {0, 0}};
|
||||
token = create_token( TRUE, user_sid, admin_groups, ARRAY_SIZE( admin_groups ),
|
||||
admin_privs, ARRAY_SIZE( admin_privs ), default_dacl,
|
||||
- admin_source, NULL, -1 );
|
||||
+ admin_source, NULL, -1, TokenElevationTypeFull );
|
||||
/* we really need a primary group */
|
||||
assert( token->primary_group );
|
||||
}
|
||||
@@ -1634,6 +1637,19 @@ DECL_HANDLER(get_token_statistics)
|
||||
}
|
||||
}
|
||||
|
||||
+DECL_HANDLER(get_token_elevation_type)
|
||||
+{
|
||||
+ struct token *token;
|
||||
+
|
||||
+ if ((token = (struct token *)get_handle_obj( current->process, req->handle,
|
||||
+ TOKEN_QUERY,
|
||||
+ &token_ops )))
|
||||
+ {
|
||||
+ reply->elevation = token->elevation;
|
||||
+ release_object( token );
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
DECL_HANDLER(get_token_default_dacl)
|
||||
{
|
||||
struct token *token;
|
||||
--
|
||||
2.27.0
|
||||
|
@@ -1,46 +0,0 @@
|
||||
From 48f4c131f9e8ffc091dde12437ad0772ed1c5ca6 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 6 Aug 2017 15:16:33 +0200
|
||||
Subject: server: Use all group attributes in create_token.
|
||||
|
||||
---
|
||||
server/token.c | 14 +++++++-------
|
||||
1 file changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/server/token.c b/server/token.c
|
||||
index 0019b3a..2a56664 100644
|
||||
--- a/server/token.c
|
||||
+++ b/server/token.c
|
||||
@@ -592,13 +592,13 @@ static struct token *create_token( unsigned primary, const SID *user,
|
||||
return NULL;
|
||||
}
|
||||
memcpy( &group->sid, groups[i].Sid, security_sid_len( groups[i].Sid ));
|
||||
- group->enabled = TRUE;
|
||||
- group->def = TRUE;
|
||||
- group->logon = (groups[i].Attributes & SE_GROUP_LOGON_ID) != 0;
|
||||
group->mandatory = (groups[i].Attributes & SE_GROUP_MANDATORY) != 0;
|
||||
- group->owner = (groups[i].Attributes & SE_GROUP_OWNER) != 0;
|
||||
- group->resource = FALSE;
|
||||
- group->deny_only = FALSE;
|
||||
+ group->def = (groups[i].Attributes & SE_GROUP_ENABLED_BY_DEFAULT) != 0;
|
||||
+ group->enabled = (groups[i].Attributes & SE_GROUP_ENABLED) != 0;
|
||||
+ group->owner = (groups[i].Attributes & SE_GROUP_OWNER) != 0;
|
||||
+ group->deny_only = (groups[i].Attributes & SE_GROUP_USE_FOR_DENY_ONLY) != 0;
|
||||
+ group->logon = (groups[i].Attributes & SE_GROUP_LOGON_ID) != 0;
|
||||
+ group->resource = (groups[i].Attributes & SE_GROUP_RESOURCE) != 0;
|
||||
list_add_tail( &token->groups, &group->entry );
|
||||
/* Use first owner capable group as owner and primary group */
|
||||
if (!token->primary_group && group->owner)
|
||||
@@ -1603,8 +1603,8 @@ DECL_HANDLER(get_token_groups)
|
||||
if (group->enabled) *attr_ptr |= SE_GROUP_ENABLED;
|
||||
if (group->owner) *attr_ptr |= SE_GROUP_OWNER;
|
||||
if (group->deny_only) *attr_ptr |= SE_GROUP_USE_FOR_DENY_ONLY;
|
||||
- if (group->resource) *attr_ptr |= SE_GROUP_RESOURCE;
|
||||
if (group->logon) *attr_ptr |= SE_GROUP_LOGON_ID;
|
||||
+ if (group->resource) *attr_ptr |= SE_GROUP_RESOURCE;
|
||||
|
||||
memcpy(sid_ptr, &group->sid, security_sid_len( &group->sid ));
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
@@ -1,219 +0,0 @@
|
||||
From c47977a8bbd739483589d1f01cfece435be1c100 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 5 Aug 2017 01:45:29 +0200
|
||||
Subject: [PATCH] ntdll: Add function to create new tokens for elevation
|
||||
purposes.
|
||||
|
||||
---
|
||||
dlls/ntdll/ntdll.spec | 3 ++
|
||||
dlls/ntdll/ntdll_misc.h | 3 ++
|
||||
dlls/ntdll/process.c | 18 +++++++++
|
||||
server/protocol.def | 8 ++++
|
||||
server/security.h | 1 +
|
||||
server/token.c | 84 +++++++++++++++++++++++++++++++++++++++++
|
||||
6 files changed, 117 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
|
||||
index 0997c310110..8e3786e1972 100644
|
||||
--- a/dlls/ntdll/ntdll.spec
|
||||
+++ b/dlls/ntdll/ntdll.spec
|
||||
@@ -1600,6 +1600,9 @@
|
||||
# Virtual memory
|
||||
@ cdecl __wine_locked_recvmsg(long ptr long)
|
||||
|
||||
+# Token
|
||||
+@ cdecl __wine_create_default_token(long)
|
||||
+
|
||||
# Version
|
||||
@ cdecl wine_get_version()
|
||||
@ cdecl wine_get_build_id()
|
||||
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
|
||||
index 63ceac42e94..5a98501381b 100644
|
||||
--- a/dlls/ntdll/ntdll_misc.h
|
||||
+++ b/dlls/ntdll/ntdll_misc.h
|
||||
@@ -67,6 +67,9 @@ extern void init_user_process_params(void) DECLSPEC_HIDDEN;
|
||||
extern NTSTATUS restart_process( RTL_USER_PROCESS_PARAMETERS *params, NTSTATUS status ) DECLSPEC_HIDDEN;
|
||||
extern void CDECL DECLSPEC_NORETURN signal_start_thread( CONTEXT *ctx ) DECLSPEC_HIDDEN;
|
||||
|
||||
+/* token */
|
||||
+extern HANDLE CDECL __wine_create_default_token(BOOL admin);
|
||||
+
|
||||
/* server support */
|
||||
extern BOOL is_wow64 DECLSPEC_HIDDEN;
|
||||
|
||||
diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c
|
||||
index 77ba5b371e2..3e91a1fa9c4 100644
|
||||
--- a/dlls/ntdll/process.c
|
||||
+++ b/dlls/ntdll/process.c
|
||||
@@ -72,6 +72,24 @@ HANDLE CDECL __wine_make_process_system(void)
|
||||
return ret;
|
||||
}
|
||||
|
||||
+/***********************************************************************
|
||||
+ * __wine_create_default_token (NTDLL.@)
|
||||
+ *
|
||||
+ * Creates a default limited or admin token.
|
||||
+ */
|
||||
+HANDLE CDECL __wine_create_default_token( BOOL admin )
|
||||
+{
|
||||
+ HANDLE ret = NULL;
|
||||
+ SERVER_START_REQ( create_token )
|
||||
+ {
|
||||
+ req->admin = admin;
|
||||
+ if (!wine_server_call( req ))
|
||||
+ ret = wine_server_ptr_handle( reply->token );
|
||||
+ }
|
||||
+ SERVER_END_REQ;
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
/***********************************************************************
|
||||
* restart_process
|
||||
*/
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index 30a102d7b82..a9308904afc 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -3481,6 +3481,14 @@ struct handle_info
|
||||
@END
|
||||
|
||||
|
||||
+/* Create a new token */
|
||||
+@REQ(create_token)
|
||||
+ unsigned int admin; /* admin or limited token */
|
||||
+@REPLY
|
||||
+ obj_handle_t token; /* handle for new token */
|
||||
+@END
|
||||
+
|
||||
+
|
||||
/* Create I/O completion port */
|
||||
@REQ(create_completion)
|
||||
unsigned int access; /* desired access to a port */
|
||||
diff --git a/server/security.h b/server/security.h
|
||||
index 6c337143c3d..21e90ccf23f 100644
|
||||
--- a/server/security.h
|
||||
+++ b/server/security.h
|
||||
@@ -49,6 +49,7 @@ extern const PSID security_builtin_users_sid;
|
||||
extern const PSID security_builtin_admins_sid;
|
||||
extern const PSID security_domain_users_sid;
|
||||
extern const PSID security_high_label_sid;
|
||||
+extern const PSID security_medium_label_sid;
|
||||
|
||||
|
||||
/* token functions */
|
||||
diff --git a/server/token.c b/server/token.c
|
||||
index c4f1cd943c2..970ed1838da 100644
|
||||
--- a/server/token.c
|
||||
+++ b/server/token.c
|
||||
@@ -77,6 +77,7 @@ static const SID anonymous_logon_sid = { SID_REVISION, 1, { SECURITY_NT_AUTHORIT
|
||||
static const SID authenticated_user_sid = { SID_REVISION, 1, { SECURITY_NT_AUTHORITY }, { SECURITY_AUTHENTICATED_USER_RID } };
|
||||
static const SID local_system_sid = { SID_REVISION, 1, { SECURITY_NT_AUTHORITY }, { SECURITY_LOCAL_SYSTEM_RID } };
|
||||
static const SID high_label_sid = { SID_REVISION, 1, { SECURITY_MANDATORY_LABEL_AUTHORITY }, { SECURITY_MANDATORY_HIGH_RID } };
|
||||
+static const SID medium_label_sid = { SID_REVISION, 1, { SECURITY_MANDATORY_LABEL_AUTHORITY }, { SECURITY_MANDATORY_MEDIUM_RID } };
|
||||
static const SID_N(5) local_user_sid = { SID_REVISION, 5, { SECURITY_NT_AUTHORITY }, { SECURITY_NT_NON_UNIQUE, 0, 0, 0, 1000 } };
|
||||
static const SID_N(2) builtin_admins_sid = { SID_REVISION, 2, { SECURITY_NT_AUTHORITY }, { SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS } };
|
||||
static const SID_N(2) builtin_users_sid = { SID_REVISION, 2, { SECURITY_NT_AUTHORITY }, { SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_USERS } };
|
||||
@@ -93,6 +94,7 @@ const PSID security_builtin_admins_sid = (PSID)&builtin_admins_sid;
|
||||
const PSID security_builtin_users_sid = (PSID)&builtin_users_sid;
|
||||
const PSID security_domain_users_sid = (PSID)&domain_users_sid;
|
||||
const PSID security_high_label_sid = (PSID)&high_label_sid;
|
||||
+const PSID security_medium_label_sid = (PSID)&medium_label_sid;
|
||||
|
||||
static luid_t prev_luid_value = { 1000, 0 };
|
||||
|
||||
@@ -915,6 +917,64 @@ struct token *token_create_admin( void )
|
||||
return token;
|
||||
}
|
||||
|
||||
+static struct token *token_create_limited( void )
|
||||
+{
|
||||
+ struct token *token = NULL;
|
||||
+ static const SID_IDENTIFIER_AUTHORITY nt_authority = { SECURITY_NT_AUTHORITY };
|
||||
+ static const unsigned int alias_admins_subauth[] = { SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS };
|
||||
+ static const unsigned int alias_users_subauth[] = { SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_USERS };
|
||||
+ /* on Windows, this value changes every time the user logs on */
|
||||
+ static const unsigned int logon_subauth[] = { SECURITY_LOGON_IDS_RID, 0, 1 /* FIXME: should be randomly generated when tokens are inherited by new processes */ };
|
||||
+ PSID alias_admins_sid;
|
||||
+ PSID alias_users_sid;
|
||||
+ PSID logon_sid;
|
||||
+ const SID *user_sid = security_unix_uid_to_sid( getuid() );
|
||||
+ ACL *default_dacl = create_default_dacl( user_sid );
|
||||
+
|
||||
+ alias_admins_sid = security_sid_alloc( &nt_authority, sizeof(alias_admins_subauth)/sizeof(alias_admins_subauth[0]),
|
||||
+ alias_admins_subauth );
|
||||
+ alias_users_sid = security_sid_alloc( &nt_authority, sizeof(alias_users_subauth)/sizeof(alias_users_subauth[0]),
|
||||
+ alias_users_subauth );
|
||||
+ logon_sid = security_sid_alloc( &nt_authority, sizeof(logon_subauth)/sizeof(logon_subauth[0]),
|
||||
+ logon_subauth );
|
||||
+
|
||||
+ if (alias_admins_sid && alias_users_sid && logon_sid && default_dacl)
|
||||
+ {
|
||||
+ const LUID_AND_ATTRIBUTES user_privs[] =
|
||||
+ {
|
||||
+ { SeChangeNotifyPrivilege , SE_PRIVILEGE_ENABLED },
|
||||
+ { SeShutdownPrivilege , 0 },
|
||||
+ { SeUndockPrivilege , 0 },
|
||||
+ };
|
||||
+ /* note: we don't include non-builtin groups here for the user -
|
||||
+ * telling us these is the job of a client-side program */
|
||||
+ const SID_AND_ATTRIBUTES user_groups[] =
|
||||
+ {
|
||||
+ { security_world_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY },
|
||||
+ { security_local_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY },
|
||||
+ { security_interactive_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY },
|
||||
+ { security_authenticated_user_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY },
|
||||
+ { security_domain_users_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY|SE_GROUP_OWNER },
|
||||
+ { alias_admins_sid, SE_GROUP_USE_FOR_DENY_ONLY },
|
||||
+ { alias_users_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY },
|
||||
+ { logon_sid, SE_GROUP_ENABLED|SE_GROUP_ENABLED_BY_DEFAULT|SE_GROUP_MANDATORY|SE_GROUP_LOGON_ID },
|
||||
+ };
|
||||
+ static const TOKEN_SOURCE admin_source = {"SeMgr", {0, 0}};
|
||||
+ token = create_token( TRUE, user_sid, user_groups, sizeof(user_groups)/sizeof(user_groups[0]),
|
||||
+ user_privs, sizeof(user_privs)/sizeof(user_privs[0]), default_dacl,
|
||||
+ admin_source, NULL, -1, TokenElevationTypeLimited, &medium_label_sid );
|
||||
+ /* we really need a primary group */
|
||||
+ assert( token->primary_group );
|
||||
+ }
|
||||
+
|
||||
+ free( logon_sid );
|
||||
+ free( alias_admins_sid );
|
||||
+ free( alias_users_sid );
|
||||
+ free( default_dacl );
|
||||
+
|
||||
+ return token;
|
||||
+}
|
||||
+
|
||||
static struct privilege *token_find_privilege( struct token *token, const LUID *luid, int enabled_only )
|
||||
{
|
||||
struct privilege *privilege;
|
||||
@@ -1720,3 +1780,27 @@ DECL_HANDLER(set_token_default_dacl)
|
||||
release_object( token );
|
||||
}
|
||||
}
|
||||
+
|
||||
+DECL_HANDLER(create_token)
|
||||
+{
|
||||
+ struct token *token;
|
||||
+ PSID label;
|
||||
+
|
||||
+ if (req->admin)
|
||||
+ {
|
||||
+ token = token_create_admin();
|
||||
+ label = security_high_label_sid;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ token = token_create_limited();
|
||||
+ label = security_medium_label_sid;
|
||||
+ }
|
||||
+
|
||||
+ if (token)
|
||||
+ {
|
||||
+ if (token_assign_label( token, label ))
|
||||
+ reply->token = alloc_handle( current->process, token, TOKEN_ALL_ACCESS, 0 );
|
||||
+ release_object( token );
|
||||
+ }
|
||||
+}
|
||||
--
|
||||
2.28.0
|
||||
|
@@ -1,66 +0,0 @@
|
||||
From cf24ca0854a5b0dca2055f0991fd9a932125c65e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 5 Aug 2017 02:03:20 +0200
|
||||
Subject: shell32: Implement process elevation using runas verb.
|
||||
|
||||
---
|
||||
dlls/shell32/shlexec.c | 22 ++++++++++++++++++++--
|
||||
1 file changed, 20 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/shell32/shlexec.c b/dlls/shell32/shlexec.c
|
||||
index 0cf112b6373..af50078dbca 100644
|
||||
--- a/dlls/shell32/shlexec.c
|
||||
+++ b/dlls/shell32/shlexec.c
|
||||
@@ -50,6 +50,8 @@
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(exec);
|
||||
|
||||
+extern HANDLE CDECL __wine_create_default_token(BOOL admin);
|
||||
+
|
||||
static const WCHAR wszOpen[] = {'o','p','e','n',0};
|
||||
static const WCHAR wszExe[] = {'.','e','x','e',0};
|
||||
static const WCHAR wszILPtr[] = {':','%','p',0};
|
||||
@@ -312,6 +314,8 @@ static HRESULT SHELL_GetPathFromIDListForExecuteW(LPCITEMIDLIST pidl, LPWSTR psz
|
||||
static UINT_PTR SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
|
||||
const SHELLEXECUTEINFOW *psei, LPSHELLEXECUTEINFOW psei_out)
|
||||
{
|
||||
+ static WCHAR runasW[] = {'r','u','n','a','s',0};
|
||||
+ HANDLE token = NULL;
|
||||
STARTUPINFOW startup;
|
||||
PROCESS_INFORMATION info;
|
||||
UINT_PTR retval = SE_ERR_NOASSOC;
|
||||
@@ -344,8 +348,20 @@ static UINT_PTR SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
|
||||
dwCreationFlags = CREATE_UNICODE_ENVIRONMENT;
|
||||
if (!(psei->fMask & SEE_MASK_NO_CONSOLE))
|
||||
dwCreationFlags |= CREATE_NEW_CONSOLE;
|
||||
- if (CreateProcessW(NULL, (LPWSTR)lpCmd, NULL, NULL, FALSE, dwCreationFlags, env,
|
||||
- lpDirectory, &startup, &info))
|
||||
+
|
||||
+ /* Spawning a process with runas verb means that the process should be
|
||||
+ * executed with admin rights. This function ignores the manifest data,
|
||||
+ * and allows programs to elevate rights on-demand. On Windows a complex
|
||||
+ * RPC menchanism is used, using CreateProcessAsUser would fail because
|
||||
+ * it can only be used to drop rights. */
|
||||
+ if (psei->lpVerb && !strcmpiW(psei->lpVerb, runasW))
|
||||
+ {
|
||||
+ if (!(token = __wine_create_default_token(TRUE)))
|
||||
+ ERR("Failed to create admin token\n");
|
||||
+ }
|
||||
+
|
||||
+ if (CreateProcessAsUserW(token, NULL, (LPWSTR)lpCmd, NULL, NULL, FALSE,
|
||||
+ dwCreationFlags, env, lpDirectory, &startup, &info))
|
||||
{
|
||||
/* Give 30 seconds to the app to come up, if desired. Probably only needed
|
||||
when starting app immediately before making a DDE connection. */
|
||||
@@ -365,6 +381,8 @@ static UINT_PTR SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
|
||||
retval = ERROR_BAD_FORMAT;
|
||||
}
|
||||
|
||||
+ if (token) CloseHandle(token);
|
||||
+
|
||||
TRACE("returning %lu\n", retval);
|
||||
|
||||
psei_out->hInstApp = (HINSTANCE)retval;
|
||||
--
|
||||
2.13.1
|
||||
|
@@ -1,67 +0,0 @@
|
||||
From e34d019222909281390f83149be755a4145024c4 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 7 Aug 2017 15:28:33 +0200
|
||||
Subject: [PATCH] ntdll: Add semi-stub for TokenLinkedToken info class.
|
||||
|
||||
---
|
||||
dlls/ntdll/unix/security.c | 30 +++++++++++++++++++++++++++++-
|
||||
1 file changed, 29 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/security.c b/dlls/ntdll/unix/security.c
|
||||
index f0057116dee..2769e5f6a7b 100644
|
||||
--- a/dlls/ntdll/unix/security.c
|
||||
+++ b/dlls/ntdll/unix/security.c
|
||||
@@ -138,6 +138,7 @@ NTSTATUS WINAPI NtDuplicateToken( HANDLE token, ACCESS_MASK access, OBJECT_ATTRI
|
||||
return status;
|
||||
}
|
||||
|
||||
+extern HANDLE CDECL __wine_create_default_token(BOOL admin);
|
||||
|
||||
/***********************************************************************
|
||||
* NtQueryInformationToken (NTDLL.@)
|
||||
@@ -166,7 +167,7 @@ NTSTATUS WINAPI NtQueryInformationToken( HANDLE token, TOKEN_INFORMATION_CLASS c
|
||||
0, /* TokenAuditPolicy */
|
||||
0, /* TokenOrigin */
|
||||
sizeof(TOKEN_ELEVATION_TYPE), /* TokenElevationType */
|
||||
- 0, /* TokenLinkedToken */
|
||||
+ sizeof(TOKEN_LINKED_TOKEN), /* TokenLinkedToken */
|
||||
sizeof(TOKEN_ELEVATION), /* TokenElevation */
|
||||
0, /* TokenHasRestrictions */
|
||||
0, /* TokenAccessInformation */
|
||||
@@ -401,6 +402,33 @@ NTSTATUS WINAPI NtQueryInformationToken( HANDLE token, TOKEN_INFORMATION_CLASS c
|
||||
SERVER_END_REQ;
|
||||
break;
|
||||
|
||||
+ case TokenLinkedToken:
|
||||
+ SERVER_START_REQ( get_token_elevation_type )
|
||||
+ {
|
||||
+ TOKEN_LINKED_TOKEN *linked_token = info;
|
||||
+ req->handle = wine_server_obj_handle( token );
|
||||
+ status = wine_server_call( req );
|
||||
+ if (status == STATUS_SUCCESS)
|
||||
+ {
|
||||
+ HANDLE token;
|
||||
+ /* FIXME: On Wine we do not have real linked tokens yet. Typically, a
|
||||
+ * program running with admin privileges is linked to a limited token,
|
||||
+ * and vice versa. We just create a new token instead of storing links
|
||||
+ * on the wineserver side. Using TokenLinkedToken twice should return
|
||||
+ * back the original token. */
|
||||
+ if ((reply->elevation == TokenElevationTypeFull || reply->elevation == TokenElevationTypeLimited) &&
|
||||
+ (token = __wine_create_default_token( reply->elevation != TokenElevationTypeFull )))
|
||||
+ {
|
||||
+ status = NtDuplicateToken( token, 0, NULL, SecurityIdentification, TokenImpersonation, &linked_token->LinkedToken );
|
||||
+ NtClose( token );
|
||||
+ }
|
||||
+ else
|
||||
+ status = STATUS_NO_TOKEN;
|
||||
+ }
|
||||
+ }
|
||||
+ SERVER_END_REQ;
|
||||
+ break;
|
||||
+
|
||||
case TokenElevation:
|
||||
SERVER_START_REQ( get_token_elevation_type )
|
||||
{
|
||||
--
|
||||
2.27.0
|
||||
|
@@ -1,23 +1,23 @@
|
||||
From 19683a27eaaed9c23635e9b5fa768a6c120a2ace Mon Sep 17 00:00:00 2001
|
||||
From 9bdd47614e24f12a292c18bdc9d81e55744b6e5f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sun, 17 Jan 2016 01:11:46 +0100
|
||||
Subject: [PATCH] iertutil: Add dll and add stub for ordinal 811.
|
||||
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/iertutil/Makefile.in | 4 +
|
||||
dlls/iertutil/iertutil.spec | 521 ++++++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/iertutil/main.c | 48 ++++
|
||||
4 files changed, 574 insertions(+)
|
||||
dlls/iertutil/Makefile.in | 6 +
|
||||
dlls/iertutil/iertutil.spec | 521 ++++++++++++++++++++++++++++++++++++
|
||||
dlls/iertutil/main.c | 31 +++
|
||||
4 files changed, 559 insertions(+)
|
||||
create mode 100644 dlls/iertutil/Makefile.in
|
||||
create mode 100644 dlls/iertutil/iertutil.spec
|
||||
create mode 100644 dlls/iertutil/main.c
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 5c97c1c..d70dcea 100644
|
||||
index caff5d1fe52..91b95b8e7b1 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3286,6 +3286,7 @@ WINE_CONFIG_MAKEFILE(dlls/icmp)
|
||||
@@ -3342,6 +3342,7 @@ WINE_CONFIG_MAKEFILE(dlls/icmp)
|
||||
WINE_CONFIG_MAKEFILE(dlls/ieframe)
|
||||
WINE_CONFIG_MAKEFILE(dlls/ieframe/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/ieproxy)
|
||||
@@ -27,17 +27,19 @@ index 5c97c1c..d70dcea 100644
|
||||
WINE_CONFIG_MAKEFILE(dlls/imagehlp)
|
||||
diff --git a/dlls/iertutil/Makefile.in b/dlls/iertutil/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..268026e
|
||||
index 00000000000..47f9d228812
|
||||
--- /dev/null
|
||||
+++ b/dlls/iertutil/Makefile.in
|
||||
@@ -0,0 +1,4 @@
|
||||
@@ -0,0 +1,6 @@
|
||||
+MODULE = iertutil.dll
|
||||
+
|
||||
+EXTRADLLFLAGS = -mno-cygwin -Wb,--prefer-native
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ main.c
|
||||
diff --git a/dlls/iertutil/iertutil.spec b/dlls/iertutil/iertutil.spec
|
||||
new file mode 100644
|
||||
index 0000000..a13779b
|
||||
index 00000000000..a13779bebbd
|
||||
--- /dev/null
|
||||
+++ b/dlls/iertutil/iertutil.spec
|
||||
@@ -0,0 +1,521 @@
|
||||
@@ -564,10 +566,10 @@ index 0000000..a13779b
|
||||
+@ stub UriFromHostAndScheme
|
||||
diff --git a/dlls/iertutil/main.c b/dlls/iertutil/main.c
|
||||
new file mode 100644
|
||||
index 0000000..2b993a4
|
||||
index 00000000000..4e5e9f086b3
|
||||
--- /dev/null
|
||||
+++ b/dlls/iertutil/main.c
|
||||
@@ -0,0 +1,48 @@
|
||||
@@ -0,0 +1,31 @@
|
||||
+/*
|
||||
+ * Copyright 2016 Michael MĂĽller
|
||||
+ *
|
||||
@@ -586,7 +588,6 @@ index 0000000..2b993a4
|
||||
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
+ */
|
||||
+
|
||||
+#include "config.h"
|
||||
+#include <stdarg.h>
|
||||
+
|
||||
+#include "windef.h"
|
||||
@@ -595,27 +596,11 @@ index 0000000..2b993a4
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(iertutil);
|
||||
+
|
||||
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
|
||||
+{
|
||||
+ TRACE("(%p, %u, %p)\n", instance, reason, reserved);
|
||||
+
|
||||
+ switch (reason)
|
||||
+ {
|
||||
+ case DLL_WINE_PREATTACH:
|
||||
+ return FALSE; /* prefer native version */
|
||||
+ case DLL_PROCESS_ATTACH:
|
||||
+ DisableThreadLibraryCalls(instance);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+BOOL WINAPI IERTUTIL_811(void *unknown)
|
||||
+{
|
||||
+ FIXME("(%p): stub\n", unknown);
|
||||
+ return FALSE;
|
||||
+}
|
||||
--
|
||||
1.9.1
|
||||
2.20.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 21b4b65eadc9e39008ccadc48307fcfea05a24fb Mon Sep 17 00:00:00 2001
|
||||
From 0e65ed108eb8bab24668f9a58c5757a3ad36104f Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 12 Apr 2016 01:02:34 +0200
|
||||
Subject: [PATCH] uiautomationcore: Add dll and stub some functions.
|
||||
@@ -9,7 +9,7 @@ Subject: [PATCH] uiautomationcore: Add dll and stub some functions.
|
||||
2 files changed, 48 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/uiautomationcore/Makefile.in b/dlls/uiautomationcore/Makefile.in
|
||||
index b6edec5f6a9..bf2204d5ab4 100644
|
||||
index 5c4acb232a4..412f1dbbe19 100644
|
||||
--- a/dlls/uiautomationcore/Makefile.in
|
||||
+++ b/dlls/uiautomationcore/Makefile.in
|
||||
@@ -1,5 +1,6 @@
|
||||
@@ -17,10 +17,10 @@ index b6edec5f6a9..bf2204d5ab4 100644
|
||||
IMPORTLIB = uiautomationcore
|
||||
+IMPORTS = uuid
|
||||
|
||||
EXTRADLLFLAGS = -mno-cygwin
|
||||
EXTRADLLFLAGS = -mno-cygwin -Wb,--prefer-native
|
||||
|
||||
diff --git a/dlls/uiautomationcore/uia_main.c b/dlls/uiautomationcore/uia_main.c
|
||||
index f0d8247724d..b9c24b4b963 100644
|
||||
index 42014af6035..61e165d83c0 100644
|
||||
--- a/dlls/uiautomationcore/uia_main.c
|
||||
+++ b/dlls/uiautomationcore/uia_main.c
|
||||
@@ -1,4 +1,5 @@
|
||||
@@ -29,7 +29,7 @@ index f0d8247724d..b9c24b4b963 100644
|
||||
* Copyright 2017 Jacek Caban for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
@@ -16,6 +17,7 @@
|
||||
@@ -16,18 +17,58 @@
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
@@ -37,9 +37,8 @@ index f0d8247724d..b9c24b4b963 100644
|
||||
#include "uiautomation.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
@@ -37,12 +39,51 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, void *lpv)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(uiautomation);
|
||||
|
||||
+static HRESULT WINAPI dummy_QueryInterface(IUnknown *iface, REFIID iid, void **ppv)
|
||||
+{
|
||||
@@ -90,7 +89,7 @@ index f0d8247724d..b9c24b4b963 100644
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -51,8 +92,8 @@ BOOL WINAPI UiaClientsAreListening(void)
|
||||
@@ -36,8 +77,8 @@ BOOL WINAPI UiaClientsAreListening(void)
|
||||
*/
|
||||
HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value)
|
||||
{
|
||||
@@ -101,7 +100,7 @@ index f0d8247724d..b9c24b4b963 100644
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@@ -61,8 +102,8 @@ HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value)
|
||||
@@ -46,8 +87,8 @@ HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value)
|
||||
*/
|
||||
HRESULT WINAPI UiaGetReservedNotSupportedValue(IUnknown **value)
|
||||
{
|
||||
@@ -112,7 +111,7 @@ index f0d8247724d..b9c24b4b963 100644
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@@ -81,7 +122,7 @@ int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid)
|
||||
@@ -66,7 +107,7 @@ int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid)
|
||||
LRESULT WINAPI UiaReturnRawElementProvider(HWND hwnd, WPARAM wParam,
|
||||
LPARAM lParam, IRawElementProviderSimple *elprov)
|
||||
{
|
||||
@@ -122,5 +121,5 @@ index f0d8247724d..b9c24b4b963 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.17.1
|
||||
2.20.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 645cdde83d5430c5096fcb4ec4191aab7e8063ce Mon Sep 17 00:00:00 2001
|
||||
From 4a511591eb74436feb8aa12e33f6caac544ba54a Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
Date: Fri, 5 Jul 2019 13:20:23 +0800
|
||||
Subject: [PATCH] cryptext: Implement CryptExtOpenCER.
|
||||
@@ -8,19 +8,19 @@ Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
configure | 1 +
|
||||
configure.ac | 1 +
|
||||
dlls/cryptext/Makefile.in | 3 +-
|
||||
dlls/cryptext/cryptext.spec | 4 +--
|
||||
dlls/cryptext/cryptext_main.c | 64 +++++++++++++++++++++++++++++++++
|
||||
dlls/cryptext/tests/Makefile.in | 4 +++
|
||||
dlls/cryptext/tests/cryptext.c | 61 +++++++++++++++++++++++++++++++
|
||||
7 files changed, 135 insertions(+), 3 deletions(-)
|
||||
dlls/cryptext/cryptext.spec | 4 +-
|
||||
dlls/cryptext/cryptext_main.c | 80 +++++++++++++++++++++++++++++++++
|
||||
dlls/cryptext/tests/Makefile.in | 4 ++
|
||||
dlls/cryptext/tests/cryptext.c | 61 +++++++++++++++++++++++++
|
||||
7 files changed, 151 insertions(+), 3 deletions(-)
|
||||
create mode 100644 dlls/cryptext/tests/Makefile.in
|
||||
create mode 100644 dlls/cryptext/tests/cryptext.c
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index 8567a9ca4ef..9b4ff8a2d7a 100755
|
||||
index 08936ff0ec1..79c966d23b1 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -20276,6 +20276,7 @@ wine_fn_config_makefile dlls/crypt32/tests enable_tests
|
||||
@@ -20347,6 +20347,7 @@ wine_fn_config_makefile dlls/crypt32/tests enable_tests
|
||||
wine_fn_config_makefile dlls/cryptdlg enable_cryptdlg
|
||||
wine_fn_config_makefile dlls/cryptdll enable_cryptdll
|
||||
wine_fn_config_makefile dlls/cryptext enable_cryptext
|
||||
@@ -29,10 +29,10 @@ index 8567a9ca4ef..9b4ff8a2d7a 100755
|
||||
wine_fn_config_makefile dlls/cryptnet/tests enable_tests
|
||||
wine_fn_config_makefile dlls/cryptsp enable_cryptsp
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 0549a9ee78a..b58b05d4dd7 100644
|
||||
index fea6fe89c83..1a10f687682 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3070,6 +3070,7 @@ WINE_CONFIG_MAKEFILE(dlls/crypt32/tests)
|
||||
@@ -3095,6 +3095,7 @@ WINE_CONFIG_MAKEFILE(dlls/crypt32/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptdlg)
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptdll)
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptext)
|
||||
@@ -41,7 +41,7 @@ index 0549a9ee78a..b58b05d4dd7 100644
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptnet/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/cryptsp)
|
||||
diff --git a/dlls/cryptext/Makefile.in b/dlls/cryptext/Makefile.in
|
||||
index 9c9f84cee87..0e817ffda6c 100644
|
||||
index 3acce60ae88..590074a806f 100644
|
||||
--- a/dlls/cryptext/Makefile.in
|
||||
+++ b/dlls/cryptext/Makefile.in
|
||||
@@ -1,4 +1,5 @@
|
||||
@@ -49,7 +49,7 @@ index 9c9f84cee87..0e817ffda6c 100644
|
||||
+MODULE = cryptext.dll
|
||||
+IMPORTS = crypt32 cryptui user32
|
||||
|
||||
EXTRADLLFLAGS = -mno-cygwin
|
||||
EXTRADLLFLAGS = -mno-cygwin -Wb,--prefer-native
|
||||
|
||||
diff --git a/dlls/cryptext/cryptext.spec b/dlls/cryptext/cryptext.spec
|
||||
index 0dba38e3934..911ab2f4ba4 100644
|
||||
@@ -67,10 +67,10 @@ index 0dba38e3934..911ab2f4ba4 100644
|
||||
@ stub CryptExtOpenCRLW
|
||||
@ stub CryptExtOpenCTL
|
||||
diff --git a/dlls/cryptext/cryptext_main.c b/dlls/cryptext/cryptext_main.c
|
||||
index f7c7bd1f554..2a381782d68 100644
|
||||
index 537ba66cd3b..2a381782d68 100644
|
||||
--- a/dlls/cryptext/cryptext_main.c
|
||||
+++ b/dlls/cryptext/cryptext_main.c
|
||||
@@ -22,10 +22,29 @@
|
||||
@@ -22,10 +22,45 @@
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
@@ -97,10 +97,26 @@ index f7c7bd1f554..2a381782d68 100644
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved)
|
||||
{
|
||||
TRACE("(%p, %u, %p)\n", instance, reason, reserved);
|
||||
@@ -59,3 +78,48 @@ HRESULT WINAPI CryptExtAddPFXW(LPCWSTR filename)
|
||||
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved)
|
||||
+{
|
||||
+ TRACE("(%p, %u, %p)\n", instance, reason, reserved);
|
||||
+
|
||||
+ switch (reason)
|
||||
+ {
|
||||
+ case DLL_WINE_PREATTACH:
|
||||
+ return FALSE; /* prefer native version */
|
||||
+ case DLL_PROCESS_ATTACH:
|
||||
+ DisableThreadLibraryCalls(instance);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
/***********************************************************************
|
||||
* CryptExtAddPFX (CRYPTEXT.@)
|
||||
*/
|
||||
@@ -43,3 +78,48 @@ HRESULT WINAPI CryptExtAddPFXW(LPCWSTR filename)
|
||||
FIXME("stub: %s\n", debugstr_w(filename));
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
@@ -227,5 +243,5 @@ index 00000000000..cc62a772b59
|
||||
+ test_CryptExtOpenCER();
|
||||
+}
|
||||
--
|
||||
2.20.1
|
||||
2.30.0
|
||||
|
||||
|
@@ -1,20 +1,20 @@
|
||||
From 896b9be78dfd979ddea8f098ae66473956d4147c Mon Sep 17 00:00:00 2001
|
||||
From db0d249ec00a19f9ffbe26ee966eb222921fb36e Mon Sep 17 00:00:00 2001
|
||||
From: Kimmo Myllyvirta <kimmo.myllyvirta@gmail.com>
|
||||
Date: Sat, 24 Sep 2016 06:51:24 +0300
|
||||
Subject: [PATCH] d3d11: Add stub deferred rendering context.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 1268 +++++++++++++++++++++++++++++++++-----
|
||||
dlls/d3d11/device.c | 1270 +++++++++++++++++++++++++++++++++-----
|
||||
dlls/d3d11/tests/d3d11.c | 4 +-
|
||||
2 files changed, 1132 insertions(+), 140 deletions(-)
|
||||
2 files changed, 1133 insertions(+), 141 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index 31c7f35fc25..dca5a88caa0 100644
|
||||
index 066bf9880c4..454003128dc 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -22,6 +22,16 @@
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(d3d11);
|
||||
@@ -48,6 +48,16 @@ static BOOL d3d_array_reserve(void **elements, SIZE_T *capacity, SIZE_T count, S
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+/* ID3D11DeviceContext - deferred context */
|
||||
+struct d3d11_deferred_context
|
||||
@@ -29,7 +29,7 @@ index 31c7f35fc25..dca5a88caa0 100644
|
||||
static void STDMETHODCALLTYPE d3d_null_wined3d_object_destroyed(void *parent) {}
|
||||
|
||||
static const struct wined3d_parent_ops d3d_null_wined3d_parent_ops =
|
||||
@@ -2883,218 +2893,1186 @@ static void d3d11_immediate_context_destroy(struct d3d11_immediate_context *cont
|
||||
@@ -3114,218 +3124,1186 @@ static void d3d11_immediate_context_destroy(struct d3d11_immediate_context *cont
|
||||
wined3d_private_store_cleanup(&context->private_store);
|
||||
}
|
||||
|
||||
@@ -130,11 +130,11 @@ index 31c7f35fc25..dca5a88caa0 100644
|
||||
- HRESULT hr;
|
||||
-
|
||||
- TRACE("iface %p, desc %p, data %p, texture %p.\n", iface, desc, data, texture);
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
|
||||
-
|
||||
- if (FAILED(hr = d3d_texture2d_create(device, desc, data, &object)))
|
||||
- return hr;
|
||||
-
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
|
||||
- *texture = &object->ID3D11Texture2D_iface;
|
||||
+ TRACE("iface %p, device %p.\n", iface, device);
|
||||
|
||||
@@ -151,13 +151,13 @@ index 31c7f35fc25..dca5a88caa0 100644
|
||||
- struct d3d_device *device = impl_from_ID3D11Device2(iface);
|
||||
- struct d3d_texture3d *object;
|
||||
- HRESULT hr;
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
|
||||
-
|
||||
- TRACE("iface %p, desc %p, data %p, texture %p.\n", iface, desc, data, texture);
|
||||
-
|
||||
- if (FAILED(hr = d3d_texture3d_create(device, desc, data, &object)))
|
||||
- return hr;
|
||||
-
|
||||
+ struct d3d11_deferred_context *context = impl_from_deferred_ID3D11DeviceContext(iface);
|
||||
|
||||
- *texture = &object->ID3D11Texture3D_iface;
|
||||
+ TRACE("iface %p, guid %s, data_size %p, data %p.\n", iface, debugstr_guid(guid), data_size, data);
|
||||
|
||||
@@ -205,11 +205,14 @@ index 31c7f35fc25..dca5a88caa0 100644
|
||||
- struct d3d_device *device = impl_from_ID3D11Device2(iface);
|
||||
- struct d3d11_unordered_access_view *object;
|
||||
- HRESULT hr;
|
||||
-
|
||||
- TRACE("iface %p, resource %p, desc %p, view %p.\n", iface, resource, desc, view);
|
||||
+ FIXME("iface %p, start_slot %u, buffer_count %u, buffers %p stub!\n",
|
||||
+ iface, start_slot, buffer_count, buffers);
|
||||
+}
|
||||
|
||||
- TRACE("iface %p, resource %p, desc %p, view %p.\n", iface, resource, desc, view);
|
||||
- if (FAILED(hr = d3d11_unordered_access_view_create(device, resource, desc, &object)))
|
||||
- return hr;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_PSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
+{
|
||||
@@ -217,8 +220,7 @@ index 31c7f35fc25..dca5a88caa0 100644
|
||||
+ iface, start_slot, view_count, views);
|
||||
+}
|
||||
|
||||
- if (FAILED(hr = d3d11_unordered_access_view_create(device, resource, desc, &object)))
|
||||
- return hr;
|
||||
- *view = &object->ID3D11UnorderedAccessView_iface;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_PSSetShader(ID3D11DeviceContext *iface,
|
||||
+ ID3D11PixelShader *shader, ID3D11ClassInstance *const *class_instances, UINT class_instance_count)
|
||||
+{
|
||||
@@ -226,35 +228,36 @@ index 31c7f35fc25..dca5a88caa0 100644
|
||||
+ iface, shader, class_instances, class_instance_count);
|
||||
+}
|
||||
|
||||
- *view = &object->ID3D11UnorderedAccessView_iface;
|
||||
- return S_OK;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_PSSetSamplers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
+{
|
||||
+ FIXME("iface %p, start_slot %u, sampler_count %u, samplers %p stub!\n",
|
||||
+ iface, start_slot, sampler_count, samplers);
|
||||
+}
|
||||
|
||||
- return S_OK;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetShader(ID3D11DeviceContext *iface,
|
||||
+ ID3D11VertexShader *shader, ID3D11ClassInstance *const *class_instances, UINT class_instance_count)
|
||||
+{
|
||||
+ FIXME("iface %p, shader %p, class_instances %p, class_instance_count %u stub!\n",
|
||||
+ iface, shader, class_instances, class_instance_count);
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateRenderTargetView(ID3D11Device2 *iface,
|
||||
- ID3D11Resource *resource, const D3D11_RENDER_TARGET_VIEW_DESC *desc, ID3D11RenderTargetView **view)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_DrawIndexed(ID3D11DeviceContext *iface,
|
||||
+ UINT index_count, UINT start_index_location, INT base_vertex_location)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetShader(ID3D11DeviceContext *iface,
|
||||
+ ID3D11VertexShader *shader, ID3D11ClassInstance *const *class_instances, UINT class_instance_count)
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device2(iface);
|
||||
- struct d3d_rendertarget_view *object;
|
||||
- HRESULT hr;
|
||||
+ FIXME("iface %p, shader %p, class_instances %p, class_instance_count %u stub!\n",
|
||||
+ iface, shader, class_instances, class_instance_count);
|
||||
+}
|
||||
|
||||
- TRACE("iface %p, resource %p, desc %p, view %p.\n", iface, resource, desc, view);
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_DrawIndexed(ID3D11DeviceContext *iface,
|
||||
+ UINT index_count, UINT start_index_location, INT base_vertex_location)
|
||||
+{
|
||||
+ FIXME("iface %p, index_count %u, start_index_location %u, base_vertex_location %d stub!\n",
|
||||
+ iface, index_count, start_index_location, base_vertex_location);
|
||||
+}
|
||||
|
||||
- TRACE("iface %p, resource %p, desc %p, view %p.\n", iface, resource, desc, view);
|
||||
- if (!resource)
|
||||
- return E_INVALIDARG;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *iface,
|
||||
+ UINT vertex_count, UINT start_vertex_location)
|
||||
+{
|
||||
@@ -262,46 +265,46 @@ index 31c7f35fc25..dca5a88caa0 100644
|
||||
+ iface, vertex_count, start_vertex_location);
|
||||
+}
|
||||
|
||||
- if (!resource)
|
||||
- return E_INVALIDARG;
|
||||
- if (FAILED(hr = d3d_rendertarget_view_create(device, resource, desc, &object)))
|
||||
- return hr;
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_Map(ID3D11DeviceContext *iface, ID3D11Resource *resource,
|
||||
+ UINT subresource_idx, D3D11_MAP map_type, UINT map_flags, D3D11_MAPPED_SUBRESOURCE *mapped_subresource)
|
||||
+{
|
||||
+ FIXME("iface %p, resource %p, subresource_idx %u, map_type %u, map_flags %#x, mapped_subresource %p stub!\n",
|
||||
+ iface, resource, subresource_idx, map_type, map_flags, mapped_subresource);
|
||||
|
||||
- if (FAILED(hr = d3d_rendertarget_view_create(device, resource, desc, &object)))
|
||||
- return hr;
|
||||
- *view = &object->ID3D11RenderTargetView_iface;
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
|
||||
- *view = &object->ID3D11RenderTargetView_iface;
|
||||
- return S_OK;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_Unmap(ID3D11DeviceContext *iface, ID3D11Resource *resource,
|
||||
+ UINT subresource_idx)
|
||||
+{
|
||||
+ FIXME("iface %p, resource %p, subresource_idx %u stub!\n", iface, resource, subresource_idx);
|
||||
+}
|
||||
|
||||
- return S_OK;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_PSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
|
||||
+{
|
||||
+ FIXME("iface %p, start_slot %u, buffer_count %u, buffers %p stub!\n",
|
||||
+ iface, start_slot, buffer_count, buffers);
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateDepthStencilView(ID3D11Device2 *iface,
|
||||
- ID3D11Resource *resource, const D3D11_DEPTH_STENCIL_VIEW_DESC *desc, ID3D11DepthStencilView **view)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_IASetInputLayout(ID3D11DeviceContext *iface,
|
||||
+ ID3D11InputLayout *input_layout)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_PSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device2(iface);
|
||||
- struct d3d_depthstencil_view *object;
|
||||
- HRESULT hr;
|
||||
+ FIXME("iface %p, input_layout %p stub!\n", iface, input_layout);
|
||||
+ FIXME("iface %p, start_slot %u, buffer_count %u, buffers %p stub!\n",
|
||||
+ iface, start_slot, buffer_count, buffers);
|
||||
+}
|
||||
|
||||
- TRACE("iface %p, resource %p, desc %p, view %p.\n", iface, resource, desc, view);
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_IASetInputLayout(ID3D11DeviceContext *iface,
|
||||
+ ID3D11InputLayout *input_layout)
|
||||
+{
|
||||
+ FIXME("iface %p, input_layout %p stub!\n", iface, input_layout);
|
||||
+}
|
||||
|
||||
- if (FAILED(hr = d3d_depthstencil_view_create(device, resource, desc, &object)))
|
||||
- return hr;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_IASetVertexBuffers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers, const UINT *strides, const UINT *offsets)
|
||||
+{
|
||||
@@ -309,8 +312,7 @@ index 31c7f35fc25..dca5a88caa0 100644
|
||||
+ iface, start_slot, buffer_count, buffers, strides, offsets);
|
||||
+}
|
||||
|
||||
- if (FAILED(hr = d3d_depthstencil_view_create(device, resource, desc, &object)))
|
||||
- return hr;
|
||||
- *view = &object->ID3D11DepthStencilView_iface;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_IASetIndexBuffer(ID3D11DeviceContext *iface,
|
||||
+ ID3D11Buffer *buffer, DXGI_FORMAT format, UINT offset)
|
||||
+{
|
||||
@@ -318,7 +320,7 @@ index 31c7f35fc25..dca5a88caa0 100644
|
||||
+ iface, buffer, debug_dxgi_format(format), offset);
|
||||
+}
|
||||
|
||||
- *view = &object->ID3D11DepthStencilView_iface;
|
||||
- return S_OK;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_DrawIndexedInstanced(ID3D11DeviceContext *iface,
|
||||
+ UINT instance_index_count, UINT instance_count, UINT start_index_location, INT base_vertex_location,
|
||||
+ UINT start_instance_location)
|
||||
@@ -327,34 +329,36 @@ index 31c7f35fc25..dca5a88caa0 100644
|
||||
+ "base_vertex_location %d, start_instance_location %u stub!\n",
|
||||
+ iface, instance_index_count, instance_count, start_index_location,
|
||||
+ base_vertex_location, start_instance_location);
|
||||
+}
|
||||
|
||||
- return S_OK;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_DrawInstanced(ID3D11DeviceContext *iface,
|
||||
+ UINT instance_vertex_count, UINT instance_count, UINT start_vertex_location, UINT start_instance_location)
|
||||
+{
|
||||
+ FIXME("iface %p, instance_vertex_count %u, instance_count %u, start_vertex_location %u, "
|
||||
+ "start_instance_location %u stub!\n",
|
||||
+ iface, instance_vertex_count, instance_count, start_vertex_location,
|
||||
+ start_instance_location);
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateInputLayout(ID3D11Device2 *iface,
|
||||
- const D3D11_INPUT_ELEMENT_DESC *element_descs, UINT element_count, const void *shader_byte_code,
|
||||
- SIZE_T shader_byte_code_length, ID3D11InputLayout **input_layout)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_DrawInstanced(ID3D11DeviceContext *iface,
|
||||
+ UINT instance_vertex_count, UINT instance_count, UINT start_vertex_location, UINT start_instance_location)
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device2(iface);
|
||||
- struct d3d_input_layout *object;
|
||||
- HRESULT hr;
|
||||
+ FIXME("iface %p, start_slot %u, buffer_count %u, buffers %p stub!\n",
|
||||
+ iface, start_slot, buffer_count, buffers);
|
||||
+ FIXME("iface %p, instance_vertex_count %u, instance_count %u, start_vertex_location %u, "
|
||||
+ "start_instance_location %u stub!\n",
|
||||
+ iface, instance_vertex_count, instance_count, start_vertex_location,
|
||||
+ start_instance_location);
|
||||
+}
|
||||
|
||||
- TRACE("iface %p, element_descs %p, element_count %u, shader_byte_code %p, shader_byte_code_length %lu, "
|
||||
- "input_layout %p.\n", iface, element_descs, element_count, shader_byte_code,
|
||||
- shader_byte_code_length, input_layout);
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
|
||||
+{
|
||||
+ FIXME("iface %p, start_slot %u, buffer_count %u, buffers %p stub!\n",
|
||||
+ iface, start_slot, buffer_count, buffers);
|
||||
+}
|
||||
|
||||
- if (FAILED(hr = d3d_input_layout_create(device, element_descs, element_count,
|
||||
- shader_byte_code, shader_byte_code_length, &object)))
|
||||
- return hr;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShader(ID3D11DeviceContext *iface,
|
||||
+ ID3D11GeometryShader *shader, ID3D11ClassInstance *const *class_instances, UINT class_instance_count)
|
||||
+{
|
||||
@@ -362,44 +366,35 @@ index 31c7f35fc25..dca5a88caa0 100644
|
||||
+ iface, shader, class_instances, class_instance_count);
|
||||
+}
|
||||
|
||||
- if (FAILED(hr = d3d_input_layout_create(device, element_descs, element_count,
|
||||
- shader_byte_code, shader_byte_code_length, &object)))
|
||||
- return hr;
|
||||
- *input_layout = &object->ID3D11InputLayout_iface;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_IASetPrimitiveTopology(ID3D11DeviceContext *iface,
|
||||
+ D3D11_PRIMITIVE_TOPOLOGY topology)
|
||||
+{
|
||||
+ FIXME("iface %p, topology %u stub!\n", iface, topology);
|
||||
+}
|
||||
|
||||
- *input_layout = &object->ID3D11InputLayout_iface;
|
||||
- return S_OK;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
+{
|
||||
+ FIXME("iface %p, start_slot %u, view_count %u, views %p stub!\n", iface, start_slot, view_count, views);
|
||||
+}
|
||||
|
||||
- return S_OK;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetSamplers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
+{
|
||||
+ FIXME("iface %p, start_slot %u, sampler_count %u, samplers %p stub!\n",
|
||||
+ iface, start_slot, sampler_count, samplers);
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateVertexShader(ID3D11Device2 *iface, const void *byte_code,
|
||||
- SIZE_T byte_code_length, ID3D11ClassLinkage *class_linkage, ID3D11VertexShader **shader)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_Begin(ID3D11DeviceContext *iface,
|
||||
+ ID3D11Asynchronous *asynchronous)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetSamplers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device2(iface);
|
||||
- struct d3d_vertex_shader *object;
|
||||
- HRESULT hr;
|
||||
+ FIXME("iface %p, asynchronous %p stub!\n", iface, asynchronous);
|
||||
+ FIXME("iface %p, start_slot %u, sampler_count %u, samplers %p stub!\n",
|
||||
+ iface, start_slot, sampler_count, samplers);
|
||||
+}
|
||||
|
||||
- TRACE("iface %p, byte_code %p, byte_code_length %lu, class_linkage %p, shader %p.\n",
|
||||
- iface, byte_code, byte_code_length, class_linkage, shader);
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_End(ID3D11DeviceContext *iface,
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_Begin(ID3D11DeviceContext *iface,
|
||||
+ ID3D11Asynchronous *asynchronous)
|
||||
+{
|
||||
+ FIXME("iface %p, asynchronous %p stub!\n", iface, asynchronous);
|
||||
@@ -407,44 +402,50 @@ index 31c7f35fc25..dca5a88caa0 100644
|
||||
|
||||
- if (class_linkage)
|
||||
- FIXME("Class linkage is not implemented yet.\n");
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_End(ID3D11DeviceContext *iface,
|
||||
+ ID3D11Asynchronous *asynchronous)
|
||||
+{
|
||||
+ FIXME("iface %p, asynchronous %p stub!\n", iface, asynchronous);
|
||||
+}
|
||||
|
||||
- if (FAILED(hr = d3d_vertex_shader_create(device, byte_code, byte_code_length, &object)))
|
||||
- return hr;
|
||||
+static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_GetData(ID3D11DeviceContext *iface,
|
||||
+ ID3D11Asynchronous *asynchronous, void *data, UINT data_size, UINT data_flags)
|
||||
+{
|
||||
+ FIXME("iface %p, asynchronous %p, data %p, data_size %u, data_flags %#x stub!\n",
|
||||
+ iface, asynchronous, data, data_size, data_flags);
|
||||
|
||||
- if (FAILED(hr = d3d_vertex_shader_create(device, byte_code, byte_code_length, &object)))
|
||||
- return hr;
|
||||
- *shader = &object->ID3D11VertexShader_iface;
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
|
||||
- *shader = &object->ID3D11VertexShader_iface;
|
||||
- return S_OK;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_SetPredication(ID3D11DeviceContext *iface,
|
||||
+ ID3D11Predicate *predicate, BOOL value)
|
||||
+{
|
||||
+ FIXME("iface %p, predicate %p, value %#x stub!\n", iface, predicate, value);
|
||||
+}
|
||||
|
||||
- return S_OK;
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
+{
|
||||
+ FIXME("iface %p, start_slot %u, view_count %u, views %p stub!\n", iface, start_slot, view_count, views);
|
||||
}
|
||||
|
||||
-static HRESULT STDMETHODCALLTYPE d3d11_device_CreateGeometryShader(ID3D11Device2 *iface, const void *byte_code,
|
||||
- SIZE_T byte_code_length, ID3D11ClassLinkage *class_linkage, ID3D11GeometryShader **shader)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetSamplers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT view_count, ID3D11ShaderResourceView *const *views)
|
||||
{
|
||||
- struct d3d_device *device = impl_from_ID3D11Device2(iface);
|
||||
- struct d3d_geometry_shader *object;
|
||||
- HRESULT hr;
|
||||
+ FIXME("iface %p, start_slot %u, sampler_count %u, samplers %p stub!\n",
|
||||
+ iface, start_slot, sampler_count, samplers);
|
||||
+ FIXME("iface %p, start_slot %u, view_count %u, views %p stub!\n", iface, start_slot, view_count, views);
|
||||
+}
|
||||
|
||||
- TRACE("iface %p, byte_code %p, byte_code_length %lu, class_linkage %p, shader %p.\n",
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetSamplers(ID3D11DeviceContext *iface,
|
||||
+ UINT start_slot, UINT sampler_count, ID3D11SamplerState *const *samplers)
|
||||
+{
|
||||
+ FIXME("iface %p, start_slot %u, sampler_count %u, samplers %p stub!\n",
|
||||
+ iface, start_slot, sampler_count, samplers);
|
||||
+}
|
||||
+
|
||||
+static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargets(ID3D11DeviceContext *iface,
|
||||
+ UINT render_target_view_count, ID3D11RenderTargetView *const *render_target_views,
|
||||
+ ID3D11DepthStencilView *depth_stencil_view)
|
||||
@@ -1352,7 +1353,7 @@ index 31c7f35fc25..dca5a88caa0 100644
|
||||
iface, byte_code, byte_code_length, class_linkage, shader);
|
||||
|
||||
if (class_linkage)
|
||||
@@ -3362,10 +4340,22 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CreateCounter(ID3D11Device2 *iface
|
||||
@@ -3593,10 +4571,22 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CreateCounter(ID3D11Device2 *iface
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_device_CreateDeferredContext(ID3D11Device2 *iface, UINT flags,
|
||||
ID3D11DeviceContext **context)
|
||||
{
|
||||
@@ -1379,10 +1380,10 @@ index 31c7f35fc25..dca5a88caa0 100644
|
||||
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_device_OpenSharedResource(ID3D11Device2 *iface, HANDLE resource, REFIID iid,
|
||||
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
|
||||
index da4627d7a85..dadeac27662 100644
|
||||
index 32a9dc2e530..362962a9099 100644
|
||||
--- a/dlls/d3d11/tests/d3d11.c
|
||||
+++ b/dlls/d3d11/tests/d3d11.c
|
||||
@@ -2231,6 +2231,8 @@ static void test_create_deferred_context(void)
|
||||
@@ -2266,6 +2266,8 @@ static void test_create_deferred_context(void)
|
||||
|
||||
hr = ID3D11Device_CreateDeferredContext(device, 0, &context);
|
||||
todo_wine ok(hr == DXGI_ERROR_INVALID_CALL, "Failed to create deferred context, hr %#x.\n", hr);
|
||||
@@ -1391,7 +1392,7 @@ index da4627d7a85..dadeac27662 100644
|
||||
|
||||
refcount = ID3D11Device_Release(device);
|
||||
ok(!refcount, "Device has %u references left.\n", refcount);
|
||||
@@ -2243,7 +2245,7 @@ static void test_create_deferred_context(void)
|
||||
@@ -2278,7 +2280,7 @@ static void test_create_deferred_context(void)
|
||||
|
||||
expected_refcount = get_refcount(device) + 1;
|
||||
hr = ID3D11Device_CreateDeferredContext(device, 0, &context);
|
||||
@@ -1401,5 +1402,5 @@ index da4627d7a85..dadeac27662 100644
|
||||
goto done;
|
||||
refcount = get_refcount(device);
|
||||
--
|
||||
2.23.0
|
||||
2.30.0
|
||||
|
||||
|
@@ -1,26 +1,27 @@
|
||||
From c093321833140c3aadacae32c43d160e83483d17 Mon Sep 17 00:00:00 2001
|
||||
From 504969929eb7932fe22880768461f2172080f0eb Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 19 Jan 2017 16:56:56 +0100
|
||||
Subject: [PATCH] d3d11: Initial implementation for deferred contexts.
|
||||
|
||||
---
|
||||
dlls/d3d11/device.c | 1073 +++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 1042 insertions(+), 31 deletions(-)
|
||||
dlls/d3d11/device.c | 1072 +++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 1041 insertions(+), 31 deletions(-)
|
||||
|
||||
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
|
||||
index dca5a88caa..738f1d19d4 100644
|
||||
index 454003128dc..4beb7cea4fa 100644
|
||||
--- a/dlls/d3d11/device.c
|
||||
+++ b/dlls/d3d11/device.c
|
||||
@@ -17,11 +17,181 @@
|
||||
@@ -16,6 +16,7 @@
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*
|
||||
*/
|
||||
|
||||
+#include "wine/list.h"
|
||||
+
|
||||
|
||||
#define NONAMELESSUNION
|
||||
#include "d3d11_private.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(d3d11);
|
||||
@@ -48,6 +49,174 @@ static BOOL d3d_array_reserve(void **elements, SIZE_T *capacity, SIZE_T count, S
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+enum deferred_cmd
|
||||
+{
|
||||
@@ -193,7 +194,7 @@ index dca5a88caa..738f1d19d4 100644
|
||||
/* ID3D11DeviceContext - deferred context */
|
||||
struct d3d11_deferred_context
|
||||
{
|
||||
@@ -29,9 +199,532 @@ struct d3d11_deferred_context
|
||||
@@ -55,9 +224,532 @@ struct d3d11_deferred_context
|
||||
ID3D11Device *device;
|
||||
LONG refcount;
|
||||
|
||||
@@ -726,7 +727,7 @@ index dca5a88caa..738f1d19d4 100644
|
||||
static void STDMETHODCALLTYPE d3d_null_wined3d_object_destroyed(void *parent) {}
|
||||
|
||||
static const struct wined3d_parent_ops d3d_null_wined3d_parent_ops =
|
||||
@@ -1226,7 +1919,20 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ResolveSubresource(ID3D11D
|
||||
@@ -1415,7 +2107,20 @@ static void STDMETHODCALLTYPE d3d11_immediate_context_ResolveSubresource(ID3D11D
|
||||
static void STDMETHODCALLTYPE d3d11_immediate_context_ExecuteCommandList(ID3D11DeviceContext1 *iface,
|
||||
ID3D11CommandList *command_list, BOOL restore_state)
|
||||
{
|
||||
@@ -748,7 +749,7 @@ index dca5a88caa..738f1d19d4 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_immediate_context_HSSetShaderResources(ID3D11DeviceContext1 *iface,
|
||||
@@ -2938,6 +3644,7 @@ static ULONG STDMETHODCALLTYPE d3d11_deferred_context_Release(ID3D11DeviceContex
|
||||
@@ -3169,6 +3874,7 @@ static ULONG STDMETHODCALLTYPE d3d11_deferred_context_Release(ID3D11DeviceContex
|
||||
|
||||
if (!refcount)
|
||||
{
|
||||
@@ -756,7 +757,7 @@ index dca5a88caa..738f1d19d4 100644
|
||||
wined3d_private_store_cleanup(&context->private_store);
|
||||
ID3D11Device_Release(context->device);
|
||||
HeapFree(GetProcessHeap(), 0, context);
|
||||
@@ -2989,43 +3696,86 @@ static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_SetPrivateDataInterface(
|
||||
@@ -3220,43 +3926,86 @@ static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_SetPrivateDataInterface(
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
|
||||
{
|
||||
@@ -849,7 +850,7 @@ index dca5a88caa..738f1d19d4 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *iface,
|
||||
@@ -3038,53 +3788,169 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *i
|
||||
@@ -3269,53 +4018,169 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_Draw(ID3D11DeviceContext *i
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_Map(ID3D11DeviceContext *iface, ID3D11Resource *resource,
|
||||
UINT subresource_idx, D3D11_MAP map_type, UINT map_flags, D3D11_MAPPED_SUBRESOURCE *mapped_subresource)
|
||||
{
|
||||
@@ -1028,7 +1029,7 @@ index dca5a88caa..738f1d19d4 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_DrawInstanced(ID3D11DeviceContext *iface,
|
||||
@@ -3113,7 +3979,16 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShader(ID3D11DeviceCon
|
||||
@@ -3344,7 +4209,16 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_GSSetShader(ID3D11DeviceCon
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_IASetPrimitiveTopology(ID3D11DeviceContext *iface,
|
||||
D3D11_PRIMITIVE_TOPOLOGY topology)
|
||||
{
|
||||
@@ -1046,7 +1047,7 @@ index dca5a88caa..738f1d19d4 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_VSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
@@ -3173,8 +4048,28 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargets(ID3D11De
|
||||
@@ -3404,8 +4278,28 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargets(ID3D11De
|
||||
UINT render_target_view_count, ID3D11RenderTargetView *const *render_target_views,
|
||||
ID3D11DepthStencilView *depth_stencil_view)
|
||||
{
|
||||
@@ -1076,7 +1077,7 @@ index dca5a88caa..738f1d19d4 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargetsAndUnorderedAccessViews(
|
||||
@@ -3194,15 +4089,44 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargetsAndUnorde
|
||||
@@ -3425,15 +4319,44 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetRenderTargetsAndUnorde
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_OMSetBlendState(ID3D11DeviceContext *iface,
|
||||
ID3D11BlendState *blend_state, const float blend_factor[4], UINT sample_mask)
|
||||
{
|
||||
@@ -1123,7 +1124,7 @@ index dca5a88caa..738f1d19d4 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_SOSetTargets(ID3D11DeviceContext *iface, UINT buffer_count,
|
||||
@@ -3244,13 +4168,34 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DispatchIndirect(ID3D11Devi
|
||||
@@ -3475,13 +4398,34 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_DispatchIndirect(ID3D11Devi
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_RSSetState(ID3D11DeviceContext *iface,
|
||||
ID3D11RasterizerState *rasterizer_state)
|
||||
{
|
||||
@@ -1160,7 +1161,7 @@ index dca5a88caa..738f1d19d4 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_RSSetScissorRects(ID3D11DeviceContext *iface,
|
||||
@@ -3365,8 +4310,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShaderResources(ID3D11
|
||||
@@ -3596,8 +4540,18 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShaderResources(ID3D11
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetShader(ID3D11DeviceContext *iface,
|
||||
ID3D11HullShader *shader, ID3D11ClassInstance *const *class_instances, UINT class_instance_count)
|
||||
{
|
||||
@@ -1180,7 +1181,7 @@ index dca5a88caa..738f1d19d4 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetSamplers(ID3D11DeviceContext *iface,
|
||||
@@ -3379,36 +4334,62 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetSamplers(ID3D11DeviceC
|
||||
@@ -3610,36 +4564,62 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetSamplers(ID3D11DeviceC
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_HSSetConstantBuffers(ID3D11DeviceContext *iface,
|
||||
UINT start_slot, UINT buffer_count, ID3D11Buffer *const *buffers)
|
||||
{
|
||||
@@ -1248,7 +1249,7 @@ index dca5a88caa..738f1d19d4 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_CSSetShaderResources(ID3D11DeviceContext *iface,
|
||||
@@ -3709,7 +4690,15 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSGetConstantBuffers(ID3D11
|
||||
@@ -3940,7 +4920,15 @@ static void STDMETHODCALLTYPE d3d11_deferred_context_CSGetConstantBuffers(ID3D11
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_ClearState(ID3D11DeviceContext *iface)
|
||||
{
|
||||
@@ -1265,7 +1266,7 @@ index dca5a88caa..738f1d19d4 100644
|
||||
}
|
||||
|
||||
static void STDMETHODCALLTYPE d3d11_deferred_context_Flush(ID3D11DeviceContext *iface)
|
||||
@@ -3734,9 +4723,29 @@ static UINT STDMETHODCALLTYPE d3d11_deferred_context_GetContextFlags(ID3D11Devic
|
||||
@@ -3965,9 +4953,29 @@ static UINT STDMETHODCALLTYPE d3d11_deferred_context_GetContextFlags(ID3D11Devic
|
||||
static HRESULT STDMETHODCALLTYPE d3d11_deferred_context_FinishCommandList(ID3D11DeviceContext *iface,
|
||||
BOOL restore, ID3D11CommandList **command_list)
|
||||
{
|
||||
@@ -1297,7 +1298,7 @@ index dca5a88caa..738f1d19d4 100644
|
||||
}
|
||||
|
||||
static const struct ID3D11DeviceContextVtbl d3d11_deferred_context_vtbl =
|
||||
@@ -4351,6 +5360,8 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CreateDeferredContext(ID3D11Device
|
||||
@@ -4582,6 +5590,8 @@ static HRESULT STDMETHODCALLTYPE d3d11_device_CreateDeferredContext(ID3D11Device
|
||||
object->device = (ID3D11Device *)iface;
|
||||
object->refcount = 1;
|
||||
|
||||
@@ -1307,5 +1308,5 @@ index dca5a88caa..738f1d19d4 100644
|
||||
wined3d_private_store_init(&object->private_store);
|
||||
|
||||
--
|
||||
2.21.0
|
||||
2.30.0
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 5706ea39b9a1074431d13e4c7354e0432af819a3 Mon Sep 17 00:00:00 2001
|
||||
From 43cd59c9043af0c515b558c8dfeafdcabb93215c Mon Sep 17 00:00:00 2001
|
||||
From: Paul Gofman <gofmanp@gmail.com>
|
||||
Date: Thu, 4 Apr 2019 02:25:00 +0300
|
||||
Subject: [PATCH] ddraw: Allow setting texture without DDSCAPS_TEXTURE for
|
||||
@@ -11,10 +11,10 @@ Signed-off-by: Paul Gofman <gofmanp@gmail.com>
|
||||
2 files changed, 141 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
|
||||
index 5bd5b2c7091..010fed30396 100644
|
||||
index 33066329407..11a881522d9 100644
|
||||
--- a/dlls/ddraw/device.c
|
||||
+++ b/dlls/ddraw/device.c
|
||||
@@ -4776,7 +4776,8 @@ static HRESULT d3d_device7_SetTexture(IDirect3DDevice7 *iface,
|
||||
@@ -4775,7 +4775,8 @@ static HRESULT d3d_device7_SetTexture(IDirect3DDevice7 *iface,
|
||||
struct ddraw_surface *surf = unsafe_impl_from_IDirectDrawSurface7(texture);
|
||||
struct wined3d_texture *wined3d_texture = NULL;
|
||||
|
||||
@@ -24,7 +24,7 @@ index 5bd5b2c7091..010fed30396 100644
|
||||
|
||||
if (surf && (surf->surface_desc.ddsCaps.dwCaps & DDSCAPS_TEXTURE))
|
||||
wined3d_texture = surf->wined3d_texture;
|
||||
@@ -4812,19 +4813,30 @@ static HRESULT WINAPI d3d_device3_SetTexture(IDirect3DDevice3 *iface,
|
||||
@@ -4811,19 +4812,30 @@ static HRESULT WINAPI d3d_device3_SetTexture(IDirect3DDevice3 *iface,
|
||||
{
|
||||
struct d3d_device *device = impl_from_IDirect3DDevice3(iface);
|
||||
struct ddraw_surface *tex = unsafe_impl_from_IDirect3DTexture2(texture);
|
||||
@@ -59,10 +59,10 @@ index 5bd5b2c7091..010fed30396 100644
|
||||
|
||||
static const struct tss_lookup
|
||||
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c
|
||||
index d438132764f..1c6c227cc6b 100644
|
||||
index 6e003fbfb7e..30f2282c12c 100644
|
||||
--- a/dlls/ddraw/tests/ddraw4.c
|
||||
+++ b/dlls/ddraw/tests/ddraw4.c
|
||||
@@ -359,7 +359,7 @@ static IDirectDraw4 *create_ddraw(void)
|
||||
@@ -427,7 +427,7 @@ static IDirectDraw4 *create_ddraw(void)
|
||||
return ddraw4;
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ index d438132764f..1c6c227cc6b 100644
|
||||
{
|
||||
IDirectDrawSurface4 *surface, *ds;
|
||||
IDirect3DDevice3 *device = NULL;
|
||||
@@ -379,6 +379,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
@@ -447,6 +447,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
surface_desc.dwSize = sizeof(surface_desc);
|
||||
surface_desc.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
|
||||
surface_desc.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_3DDEVICE;
|
||||
@@ -80,7 +80,7 @@ index d438132764f..1c6c227cc6b 100644
|
||||
surface_desc.dwWidth = 640;
|
||||
surface_desc.dwHeight = 480;
|
||||
|
||||
@@ -407,7 +409,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
@@ -475,7 +477,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
}
|
||||
|
||||
memset(&z_fmt, 0, sizeof(z_fmt));
|
||||
@@ -90,7 +90,7 @@ index d438132764f..1c6c227cc6b 100644
|
||||
if (FAILED(hr) || !z_fmt.dwSize)
|
||||
{
|
||||
IDirect3D3_Release(d3d3);
|
||||
@@ -419,6 +422,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
@@ -487,6 +490,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
surface_desc.dwSize = sizeof(surface_desc);
|
||||
surface_desc.dwFlags = DDSD_CAPS | DDSD_PIXELFORMAT | DDSD_WIDTH | DDSD_HEIGHT;
|
||||
surface_desc.ddsCaps.dwCaps = DDSCAPS_ZBUFFER;
|
||||
@@ -99,7 +99,7 @@ index d438132764f..1c6c227cc6b 100644
|
||||
U4(surface_desc).ddpfPixelFormat = z_fmt;
|
||||
surface_desc.dwWidth = 640;
|
||||
surface_desc.dwHeight = 480;
|
||||
@@ -441,7 +446,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
@@ -509,7 +514,8 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ index d438132764f..1c6c227cc6b 100644
|
||||
IDirect3D3_Release(d3d3);
|
||||
IDirectDrawSurface4_Release(surface);
|
||||
if (FAILED(hr))
|
||||
@@ -450,6 +456,11 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
@@ -518,6 +524,11 @@ static IDirect3DDevice3 *create_device(HWND window, DWORD coop_level)
|
||||
return device;
|
||||
}
|
||||
|
||||
@@ -121,8 +121,8 @@ index d438132764f..1c6c227cc6b 100644
|
||||
static IDirect3DViewport3 *create_viewport(IDirect3DDevice3 *device, UINT x, UINT y, UINT w, UINT h)
|
||||
{
|
||||
IDirect3DViewport3 *viewport;
|
||||
@@ -17867,6 +17878,116 @@ done:
|
||||
IDirectDraw4_Release(ddraw);
|
||||
@@ -18331,6 +18342,116 @@ static void run_for_each_device_type(void (*test_func)(const GUID *))
|
||||
test_func(&IID_IDirect3DRGBDevice);
|
||||
}
|
||||
|
||||
+static void test_texture_wrong_caps_(BOOL software)
|
||||
@@ -238,7 +238,7 @@ index d438132764f..1c6c227cc6b 100644
|
||||
START_TEST(ddraw4)
|
||||
{
|
||||
DDDEVICEIDENTIFIER identifier;
|
||||
@@ -17999,6 +18120,7 @@ START_TEST(ddraw4)
|
||||
@@ -18463,6 +18584,7 @@ START_TEST(ddraw4)
|
||||
test_gdi_surface();
|
||||
test_alphatest();
|
||||
test_clipper_refcount();
|
||||
@@ -247,5 +247,5 @@ index d438132764f..1c6c227cc6b 100644
|
||||
test_d32_support();
|
||||
test_surface_format_conversion_alpha();
|
||||
--
|
||||
2.28.0
|
||||
2.20.1
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
From 73b91ff2ff705bf35d9603a6446b424af90fb199 Mon Sep 17 00:00:00 2001
|
||||
From 79b9dda91ac0e33add2252f9ad5c10ba752ddabb Mon Sep 17 00:00:00 2001
|
||||
From: Lucian Poston <lucianposton@pm.me>
|
||||
Date: Wed, 23 May 2018 00:01:42 -0700
|
||||
Subject: [PATCH] dwrite: Test GetMetrics with custom fontcollection
|
||||
@@ -9,10 +9,10 @@ Signed-off-by: Lucian Poston <lucianposton@pm.me>
|
||||
1 file changed, 279 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/dwrite/tests/layout.c b/dlls/dwrite/tests/layout.c
|
||||
index 4cba57764fd..26f4693e862 100644
|
||||
index 9a450495146..9f1051b4905 100644
|
||||
--- a/dlls/dwrite/tests/layout.c
|
||||
+++ b/dlls/dwrite/tests/layout.c
|
||||
@@ -3339,7 +3339,7 @@ todo_wine
|
||||
@@ -3363,7 +3363,7 @@ todo_wine
|
||||
DWRITE_FONT_STRETCH_NORMAL, 10.0, L"en-us", &format);
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
@@ -21,7 +21,7 @@ index 4cba57764fd..26f4693e862 100644
|
||||
ok(hr == S_OK, "got 0x%08x\n", hr);
|
||||
|
||||
count = 0;
|
||||
@@ -4522,6 +4522,7 @@ static void test_SetWordWrapping(void)
|
||||
@@ -4546,6 +4546,7 @@ static void test_SetWordWrapping(void)
|
||||
/* Collection dedicated to fallback testing */
|
||||
|
||||
static const WCHAR g_blahfontW[] = {'B','l','a','h',0};
|
||||
@@ -29,7 +29,7 @@ index 4cba57764fd..26f4693e862 100644
|
||||
static HRESULT WINAPI fontcollection_QI(IDWriteFontCollection *iface, REFIID riid, void **obj)
|
||||
{
|
||||
if (IsEqualIID(riid, &IID_IDWriteFontCollection) || IsEqualIID(riid, &IID_IUnknown)) {
|
||||
@@ -4583,6 +4584,9 @@ static HRESULT WINAPI fontcollection_FindFamilyName(IDWriteFontCollection *iface
|
||||
@@ -4607,6 +4608,9 @@ static HRESULT WINAPI fontcollection_FindFamilyName(IDWriteFontCollection *iface
|
||||
*index = 123456;
|
||||
*exists = TRUE;
|
||||
return S_OK;
|
||||
@@ -39,8 +39,8 @@ index 4cba57764fd..26f4693e862 100644
|
||||
}
|
||||
ok(0, "unexpected call, name %s\n", wine_dbgstr_w(name));
|
||||
return E_NOTIMPL;
|
||||
@@ -5992,6 +5996,279 @@ if (SUCCEEDED(hr))
|
||||
IDWriteFactory6_Release(factory);
|
||||
@@ -6405,6 +6409,279 @@ static void test_layout_range_length(void)
|
||||
IDWriteFactory_Release(factory);
|
||||
}
|
||||
|
||||
+static void test_GetMetrics_with_custom_fontcollection(void)
|
||||
@@ -319,7 +319,7 @@ index 4cba57764fd..26f4693e862 100644
|
||||
START_TEST(layout)
|
||||
{
|
||||
IDWriteFactory *factory;
|
||||
@@ -6025,6 +6302,7 @@ START_TEST(layout)
|
||||
@@ -6438,6 +6715,7 @@ START_TEST(layout)
|
||||
test_SetFontStretch();
|
||||
test_SetStrikethrough();
|
||||
test_GetMetrics();
|
||||
@@ -328,5 +328,5 @@ index 4cba57764fd..26f4693e862 100644
|
||||
test_SetDrawingEffect();
|
||||
test_GetLineMetrics();
|
||||
--
|
||||
2.29.2
|
||||
2.20.1
|
||||
|
||||
|
@@ -1,26 +1,24 @@
|
||||
From 484d1c91138f4122cfa56d9e9cad87d17d97d82c Mon Sep 17 00:00:00 2001
|
||||
From ea0fedf84c544522583b39bdd78a30b2d7a52a41 Mon Sep 17 00:00:00 2001
|
||||
From: Austin English <austinenglish@gmail.com>
|
||||
Date: Tue, 13 Oct 2020 04:41:57 -0500
|
||||
Subject: [PATCH] d3dpmesh: add stub dll
|
||||
|
||||
Signed-off-by: Austin English <austinenglish@gmail.com>
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/d3dpmesh/Makefile.in | 8 +++++++
|
||||
dlls/d3dpmesh/d3dpmesh.spec | 1 +
|
||||
dlls/d3dpmesh/d3dpmesh_main.c | 42 +++++++++++++++++++++++++++++++++++
|
||||
dlls/d3dpmesh/version.rc | 26 ++++++++++++++++++++++
|
||||
5 files changed, 78 insertions(+)
|
||||
configure.ac | 1 +
|
||||
dlls/d3dpmesh/Makefile.in | 6 ++++++
|
||||
dlls/d3dpmesh/d3dpmesh.spec | 1 +
|
||||
dlls/d3dpmesh/version.rc | 26 ++++++++++++++++++++++++++
|
||||
4 files changed, 34 insertions(+)
|
||||
create mode 100644 dlls/d3dpmesh/Makefile.in
|
||||
create mode 100644 dlls/d3dpmesh/d3dpmesh.spec
|
||||
create mode 100644 dlls/d3dpmesh/d3dpmesh_main.c
|
||||
create mode 100644 dlls/d3dpmesh/version.rc
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index dafa8489b71..0672b0ad816 100644
|
||||
index c80e2691f65..25e1ef17993 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3103,6 +3103,7 @@ WINE_CONFIG_MAKEFILE(dlls/d3dcompiler_47)
|
||||
@@ -3124,6 +3124,7 @@ WINE_CONFIG_MAKEFILE(dlls/d3dcompiler_47)
|
||||
WINE_CONFIG_MAKEFILE(dlls/d3dcompiler_47/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/d3dim)
|
||||
WINE_CONFIG_MAKEFILE(dlls/d3dim700)
|
||||
@@ -30,16 +28,14 @@ index dafa8489b71..0672b0ad816 100644
|
||||
WINE_CONFIG_MAKEFILE(dlls/d3dx10_33)
|
||||
diff --git a/dlls/d3dpmesh/Makefile.in b/dlls/d3dpmesh/Makefile.in
|
||||
new file mode 100644
|
||||
index 00000000000..2a7546832c2
|
||||
index 00000000000..334dacd1090
|
||||
--- /dev/null
|
||||
+++ b/dlls/d3dpmesh/Makefile.in
|
||||
@@ -0,0 +1,8 @@
|
||||
@@ -0,0 +1,6 @@
|
||||
+MODULE = d3dpmesh.dll
|
||||
+
|
||||
+EXTRADLLFLAGS = -mno-cygwin
|
||||
+EXTRADLLFLAGS = -Wb,--prefer-native
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ d3dpmesh_main.c
|
||||
+
|
||||
+RC_SRCS = version.rc
|
||||
diff --git a/dlls/d3dpmesh/d3dpmesh.spec b/dlls/d3dpmesh/d3dpmesh.spec
|
||||
@@ -49,54 +45,6 @@ index 00000000000..d4b9a46bd7a
|
||||
+++ b/dlls/d3dpmesh/d3dpmesh.spec
|
||||
@@ -0,0 +1 @@
|
||||
+@ stub CreateD3DRMPMeshVisual
|
||||
diff --git a/dlls/d3dpmesh/d3dpmesh_main.c b/dlls/d3dpmesh/d3dpmesh_main.c
|
||||
new file mode 100644
|
||||
index 00000000000..3d84a693a45
|
||||
--- /dev/null
|
||||
+++ b/dlls/d3dpmesh/d3dpmesh_main.c
|
||||
@@ -0,0 +1,42 @@
|
||||
+/*
|
||||
+ *
|
||||
+ * Copyright 2020 Austin English
|
||||
+ *
|
||||
+ * 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 "windef.h"
|
||||
+#include "winbase.h"
|
||||
+#include "wine/debug.h"
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(d3dpmesh);
|
||||
+
|
||||
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
|
||||
+{
|
||||
+ TRACE("(%p, %u, %p)\n", instance, reason, reserved);
|
||||
+
|
||||
+ switch (reason)
|
||||
+ {
|
||||
+ case DLL_WINE_PREATTACH:
|
||||
+ return FALSE; /* prefer native version */
|
||||
+ case DLL_PROCESS_ATTACH:
|
||||
+ DisableThreadLibraryCalls(instance);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
diff --git a/dlls/d3dpmesh/version.rc b/dlls/d3dpmesh/version.rc
|
||||
new file mode 100644
|
||||
index 00000000000..87e601a95a7
|
||||
@@ -130,5 +78,5 @@ index 00000000000..87e601a95a7
|
||||
+
|
||||
+#include "wine/wine_common_ver.rc"
|
||||
--
|
||||
2.29.2
|
||||
2.20.1
|
||||
|
||||
|
@@ -1,26 +1,24 @@
|
||||
From 4bf34b5b1a03c6a92211ed5bbb54e6070c28b569 Mon Sep 17 00:00:00 2001
|
||||
From 08a6b78031ae7b2b9fb042c3d411d4366a19d81c Mon Sep 17 00:00:00 2001
|
||||
From: Austin English <austinenglish@gmail.com>
|
||||
Date: Tue, 13 Oct 2020 04:43:09 -0500
|
||||
Subject: [PATCH] diactfrm: add stub dll
|
||||
|
||||
Signed-off-by: Austin English <austinenglish@gmail.com>
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/diactfrm/Makefile.in | 8 +++++++
|
||||
dlls/diactfrm/diactfrm.spec | 4 ++++
|
||||
dlls/diactfrm/diactfrm_main.c | 42 +++++++++++++++++++++++++++++++++++
|
||||
dlls/diactfrm/version.rc | 26 ++++++++++++++++++++++
|
||||
5 files changed, 81 insertions(+)
|
||||
configure.ac | 1 +
|
||||
dlls/diactfrm/Makefile.in | 6 ++++++
|
||||
dlls/diactfrm/diactfrm.spec | 4 ++++
|
||||
dlls/diactfrm/version.rc | 26 ++++++++++++++++++++++++++
|
||||
4 files changed, 37 insertions(+)
|
||||
create mode 100644 dlls/diactfrm/Makefile.in
|
||||
create mode 100644 dlls/diactfrm/diactfrm.spec
|
||||
create mode 100644 dlls/diactfrm/diactfrm_main.c
|
||||
create mode 100644 dlls/diactfrm/version.rc
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 0672b0ad816..12efadbab64 100644
|
||||
index 25e1ef17993..8a7a58d413e 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3161,6 +3161,7 @@ WINE_CONFIG_MAKEFILE(dlls/devenum/tests)
|
||||
@@ -3182,6 +3182,7 @@ WINE_CONFIG_MAKEFILE(dlls/devenum/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dhcpcsvc)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dhcpcsvc/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dhtmled.ocx)
|
||||
@@ -30,16 +28,14 @@ index 0672b0ad816..12efadbab64 100644
|
||||
WINE_CONFIG_MAKEFILE(dlls/dinput/tests)
|
||||
diff --git a/dlls/diactfrm/Makefile.in b/dlls/diactfrm/Makefile.in
|
||||
new file mode 100644
|
||||
index 00000000000..7d83e518017
|
||||
index 00000000000..9f6ec3cd702
|
||||
--- /dev/null
|
||||
+++ b/dlls/diactfrm/Makefile.in
|
||||
@@ -0,0 +1,8 @@
|
||||
@@ -0,0 +1,6 @@
|
||||
+MODULE = diactfrm.dll
|
||||
+
|
||||
+EXTRADLLFLAGS = -mno-cygwin
|
||||
+EXTRADLLFLAGS = -Wb,--prefer-native
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ diactfrm_main.c
|
||||
+
|
||||
+RC_SRCS = version.rc
|
||||
diff --git a/dlls/diactfrm/diactfrm.spec b/dlls/diactfrm/diactfrm.spec
|
||||
@@ -52,54 +48,6 @@ index 00000000000..c5fc87af6d5
|
||||
+@ stub DllGetClassObject
|
||||
+@ stub DllRegisterServer
|
||||
+@ stub DllUnregisterServer
|
||||
diff --git a/dlls/diactfrm/diactfrm_main.c b/dlls/diactfrm/diactfrm_main.c
|
||||
new file mode 100644
|
||||
index 00000000000..309374507bb
|
||||
--- /dev/null
|
||||
+++ b/dlls/diactfrm/diactfrm_main.c
|
||||
@@ -0,0 +1,42 @@
|
||||
+/*
|
||||
+ *
|
||||
+ * Copyright 2020 Austin English
|
||||
+ *
|
||||
+ * 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 "windef.h"
|
||||
+#include "winbase.h"
|
||||
+#include "wine/debug.h"
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(diactfrm);
|
||||
+
|
||||
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
|
||||
+{
|
||||
+ TRACE("(%p, %u, %p)\n", instance, reason, reserved);
|
||||
+
|
||||
+ switch (reason)
|
||||
+ {
|
||||
+ case DLL_WINE_PREATTACH:
|
||||
+ return FALSE; /* prefer native version */
|
||||
+ case DLL_PROCESS_ATTACH:
|
||||
+ DisableThreadLibraryCalls(instance);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
diff --git a/dlls/diactfrm/version.rc b/dlls/diactfrm/version.rc
|
||||
new file mode 100644
|
||||
index 00000000000..b6b6692b831
|
||||
@@ -133,5 +81,5 @@ index 00000000000..b6b6692b831
|
||||
+
|
||||
+#include "wine/wine_common_ver.rc"
|
||||
--
|
||||
2.29.2
|
||||
2.20.1
|
||||
|
||||
|
@@ -1,26 +1,24 @@
|
||||
From e60fe7940374842cbf933321d10c1b55161b998f Mon Sep 17 00:00:00 2001
|
||||
From 04da45fd650835f28b16c19942e547482b4375e7 Mon Sep 17 00:00:00 2001
|
||||
From: Austin English <austinenglish@gmail.com>
|
||||
Date: Tue, 13 Oct 2020 04:43:19 -0500
|
||||
Subject: [PATCH] dimap: add stub dll
|
||||
|
||||
Signed-off-by: Austin English <austinenglish@gmail.com>
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/dimap/Makefile.in | 8 ++++++++
|
||||
dlls/dimap/dimap.spec | 2 ++
|
||||
dlls/dimap/dimap_main.c | 42 +++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/dimap/version.rc | 26 +++++++++++++++++++++++++
|
||||
5 files changed, 79 insertions(+)
|
||||
configure.ac | 1 +
|
||||
dlls/dimap/Makefile.in | 6 ++++++
|
||||
dlls/dimap/dimap.spec | 2 ++
|
||||
dlls/dimap/version.rc | 26 ++++++++++++++++++++++++++
|
||||
4 files changed, 35 insertions(+)
|
||||
create mode 100644 dlls/dimap/Makefile.in
|
||||
create mode 100644 dlls/dimap/dimap.spec
|
||||
create mode 100644 dlls/dimap/dimap_main.c
|
||||
create mode 100644 dlls/dimap/version.rc
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 12efadbab64..f2be9e7db7a 100644
|
||||
index 8a7a58d413e..8dcc30dc4d5 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3163,6 +3163,7 @@ WINE_CONFIG_MAKEFILE(dlls/dhcpcsvc/tests)
|
||||
@@ -3184,6 +3184,7 @@ WINE_CONFIG_MAKEFILE(dlls/dhcpcsvc/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dhtmled.ocx)
|
||||
WINE_CONFIG_MAKEFILE(dlls/diactfrm)
|
||||
WINE_CONFIG_MAKEFILE(dlls/difxapi)
|
||||
@@ -30,16 +28,14 @@ index 12efadbab64..f2be9e7db7a 100644
|
||||
WINE_CONFIG_MAKEFILE(dlls/dinput8)
|
||||
diff --git a/dlls/dimap/Makefile.in b/dlls/dimap/Makefile.in
|
||||
new file mode 100644
|
||||
index 00000000000..05030d9cce6
|
||||
index 00000000000..36c2c363c04
|
||||
--- /dev/null
|
||||
+++ b/dlls/dimap/Makefile.in
|
||||
@@ -0,0 +1,8 @@
|
||||
@@ -0,0 +1,6 @@
|
||||
+MODULE = dimap.dll
|
||||
+
|
||||
+EXTRADLLFLAGS = -mno-cygwin
|
||||
+EXTRADLLFLAGS = -Wb,--prefer-native
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ dimap_main.c
|
||||
+
|
||||
+RC_SRCS = version.rc
|
||||
diff --git a/dlls/dimap/dimap.spec b/dlls/dimap/dimap.spec
|
||||
@@ -50,54 +46,6 @@ index 00000000000..cacaa27a2ca
|
||||
@@ -0,0 +1,2 @@
|
||||
+@ stub DllCanUnloadNow
|
||||
+@ stub DllGetClassObject
|
||||
diff --git a/dlls/dimap/dimap_main.c b/dlls/dimap/dimap_main.c
|
||||
new file mode 100644
|
||||
index 00000000000..0f393dfb243
|
||||
--- /dev/null
|
||||
+++ b/dlls/dimap/dimap_main.c
|
||||
@@ -0,0 +1,42 @@
|
||||
+/*
|
||||
+ *
|
||||
+ * Copyright 2020 Austin English
|
||||
+ *
|
||||
+ * 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 "windef.h"
|
||||
+#include "winbase.h"
|
||||
+#include "wine/debug.h"
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(dimap);
|
||||
+
|
||||
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
|
||||
+{
|
||||
+ TRACE("(%p, %u, %p)\n", instance, reason, reserved);
|
||||
+
|
||||
+ switch (reason)
|
||||
+ {
|
||||
+ case DLL_WINE_PREATTACH:
|
||||
+ return FALSE; /* prefer native version */
|
||||
+ case DLL_PROCESS_ATTACH:
|
||||
+ DisableThreadLibraryCalls(instance);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
diff --git a/dlls/dimap/version.rc b/dlls/dimap/version.rc
|
||||
new file mode 100644
|
||||
index 00000000000..d0341dfcb77
|
||||
@@ -131,5 +79,5 @@ index 00000000000..d0341dfcb77
|
||||
+
|
||||
+#include "wine/wine_common_ver.rc"
|
||||
--
|
||||
2.29.2
|
||||
2.20.1
|
||||
|
||||
|
@@ -1,26 +1,24 @@
|
||||
From 17b2eb4b74795bb729025f72459697214bfc7a31 Mon Sep 17 00:00:00 2001
|
||||
From 1772676c96491d8e5a2c4d8cd43c12196b972bc5 Mon Sep 17 00:00:00 2001
|
||||
From: Austin English <austinenglish@gmail.com>
|
||||
Date: Tue, 13 Oct 2020 04:42:02 -0500
|
||||
Subject: [PATCH] dpmodemx: add stub dll
|
||||
|
||||
Signed-off-by: Austin English <austinenglish@gmail.com>
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/dpmodemx/Makefile.in | 8 +++++++
|
||||
dlls/dpmodemx/dpmodemx.spec | 1 +
|
||||
dlls/dpmodemx/dpmodemx_main.c | 42 +++++++++++++++++++++++++++++++++++
|
||||
dlls/dpmodemx/version.rc | 26 ++++++++++++++++++++++
|
||||
5 files changed, 78 insertions(+)
|
||||
configure.ac | 1 +
|
||||
dlls/dpmodemx/Makefile.in | 6 ++++++
|
||||
dlls/dpmodemx/dpmodemx.spec | 1 +
|
||||
dlls/dpmodemx/version.rc | 26 ++++++++++++++++++++++++++
|
||||
4 files changed, 34 insertions(+)
|
||||
create mode 100644 dlls/dpmodemx/Makefile.in
|
||||
create mode 100644 dlls/dpmodemx/dpmodemx.spec
|
||||
create mode 100644 dlls/dpmodemx/dpmodemx_main.c
|
||||
create mode 100644 dlls/dpmodemx/version.rc
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index f2be9e7db7a..c6198dd71b6 100644
|
||||
index 8dcc30dc4d5..ef321dd2292 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3197,6 +3197,7 @@ WINE_CONFIG_MAKEFILE(dlls/dnsapi/tests)
|
||||
@@ -3218,6 +3218,7 @@ WINE_CONFIG_MAKEFILE(dlls/dnsapi/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dplay)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dplayx)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dplayx/tests)
|
||||
@@ -30,16 +28,14 @@ index f2be9e7db7a..c6198dd71b6 100644
|
||||
WINE_CONFIG_MAKEFILE(dlls/dpnet/tests)
|
||||
diff --git a/dlls/dpmodemx/Makefile.in b/dlls/dpmodemx/Makefile.in
|
||||
new file mode 100644
|
||||
index 00000000000..e074ca33164
|
||||
index 00000000000..c15b7a33112
|
||||
--- /dev/null
|
||||
+++ b/dlls/dpmodemx/Makefile.in
|
||||
@@ -0,0 +1,8 @@
|
||||
@@ -0,0 +1,6 @@
|
||||
+MODULE = dpmodemx.dll
|
||||
+
|
||||
+EXTRADLLFLAGS = -mno-cygwin
|
||||
+EXTRADLLFLAGS = -Wb,--prefer-native
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ dpmodemx_main.c
|
||||
+
|
||||
+RC_SRCS = version.rc
|
||||
diff --git a/dlls/dpmodemx/dpmodemx.spec b/dlls/dpmodemx/dpmodemx.spec
|
||||
@@ -50,54 +46,6 @@ index 00000000000..14fb05053a8
|
||||
@@ -0,0 +1 @@
|
||||
+@ stub SPInit
|
||||
\ No newline at end of file
|
||||
diff --git a/dlls/dpmodemx/dpmodemx_main.c b/dlls/dpmodemx/dpmodemx_main.c
|
||||
new file mode 100644
|
||||
index 00000000000..f5d7a8340ca
|
||||
--- /dev/null
|
||||
+++ b/dlls/dpmodemx/dpmodemx_main.c
|
||||
@@ -0,0 +1,42 @@
|
||||
+/*
|
||||
+ *
|
||||
+ * Copyright 2020 Austin English
|
||||
+ *
|
||||
+ * 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 "windef.h"
|
||||
+#include "winbase.h"
|
||||
+#include "wine/debug.h"
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(dpmodemx);
|
||||
+
|
||||
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
|
||||
+{
|
||||
+ TRACE("(%p, %u, %p)\n", instance, reason, reserved);
|
||||
+
|
||||
+ switch (reason)
|
||||
+ {
|
||||
+ case DLL_WINE_PREATTACH:
|
||||
+ return FALSE; /* prefer native version */
|
||||
+ case DLL_PROCESS_ATTACH:
|
||||
+ DisableThreadLibraryCalls(instance);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
diff --git a/dlls/dpmodemx/version.rc b/dlls/dpmodemx/version.rc
|
||||
new file mode 100644
|
||||
index 00000000000..b0c644aed83
|
||||
@@ -131,5 +79,5 @@ index 00000000000..b0c644aed83
|
||||
+
|
||||
+#include "wine/wine_common_ver.rc"
|
||||
--
|
||||
2.29.2
|
||||
2.20.1
|
||||
|
||||
|
@@ -1,26 +1,24 @@
|
||||
From ccab4054c8596d7383904175d6efaad028268cfc Mon Sep 17 00:00:00 2001
|
||||
From 22b5e83162157f99cc7c114defc08c27053b6868 Mon Sep 17 00:00:00 2001
|
||||
From: Austin English <austinenglish@gmail.com>
|
||||
Date: Tue, 13 Oct 2020 04:43:44 -0500
|
||||
Subject: [PATCH] dpnhupnp: add stub dll
|
||||
|
||||
Signed-off-by: Austin English <austinenglish@gmail.com>
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/dpnhupnp/Makefile.in | 8 +++++++
|
||||
dlls/dpnhupnp/dpnhupnp.spec | 5 +++++
|
||||
dlls/dpnhupnp/dpnhupnp_main.c | 42 +++++++++++++++++++++++++++++++++++
|
||||
dlls/dpnhupnp/version.rc | 26 ++++++++++++++++++++++
|
||||
5 files changed, 82 insertions(+)
|
||||
configure.ac | 1 +
|
||||
dlls/dpnhupnp/Makefile.in | 6 ++++++
|
||||
dlls/dpnhupnp/dpnhupnp.spec | 5 +++++
|
||||
dlls/dpnhupnp/version.rc | 26 ++++++++++++++++++++++++++
|
||||
4 files changed, 38 insertions(+)
|
||||
create mode 100644 dlls/dpnhupnp/Makefile.in
|
||||
create mode 100644 dlls/dpnhupnp/dpnhupnp.spec
|
||||
create mode 100644 dlls/dpnhupnp/dpnhupnp_main.c
|
||||
create mode 100644 dlls/dpnhupnp/version.rc
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index c6198dd71b6..d562902f0f7 100644
|
||||
index ef321dd2292..8494354b561 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3199,6 +3199,7 @@ WINE_CONFIG_MAKEFILE(dlls/dplayx)
|
||||
@@ -3220,6 +3220,7 @@ WINE_CONFIG_MAKEFILE(dlls/dplayx)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dplayx/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dpmodemx)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dpnaddr)
|
||||
@@ -30,16 +28,14 @@ index c6198dd71b6..d562902f0f7 100644
|
||||
WINE_CONFIG_MAKEFILE(dlls/dpnhpast)
|
||||
diff --git a/dlls/dpnhupnp/Makefile.in b/dlls/dpnhupnp/Makefile.in
|
||||
new file mode 100644
|
||||
index 00000000000..7ac77c99471
|
||||
index 00000000000..566ce038f82
|
||||
--- /dev/null
|
||||
+++ b/dlls/dpnhupnp/Makefile.in
|
||||
@@ -0,0 +1,8 @@
|
||||
@@ -0,0 +1,6 @@
|
||||
+MODULE = dpnhupnp.dll
|
||||
+
|
||||
+EXTRADLLFLAGS = -mno-cygwin
|
||||
+EXTRADLLFLAGS = -Wb,--prefer-native
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ dpnhupnp_main.c
|
||||
+
|
||||
+RC_SRCS = version.rc
|
||||
diff --git a/dlls/dpnhupnp/dpnhupnp.spec b/dlls/dpnhupnp/dpnhupnp.spec
|
||||
@@ -54,54 +50,6 @@ index 00000000000..acc698e99ab
|
||||
+@ stub DllGetClassObject
|
||||
+@ stub DllUnregisterServer
|
||||
\ No newline at end of file
|
||||
diff --git a/dlls/dpnhupnp/dpnhupnp_main.c b/dlls/dpnhupnp/dpnhupnp_main.c
|
||||
new file mode 100644
|
||||
index 00000000000..f7b67d6574f
|
||||
--- /dev/null
|
||||
+++ b/dlls/dpnhupnp/dpnhupnp_main.c
|
||||
@@ -0,0 +1,42 @@
|
||||
+/*
|
||||
+ *
|
||||
+ * Copyright 2020 Austin English
|
||||
+ *
|
||||
+ * 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 "windef.h"
|
||||
+#include "winbase.h"
|
||||
+#include "wine/debug.h"
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(dpnhupnp);
|
||||
+
|
||||
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
|
||||
+{
|
||||
+ TRACE("(%p, %u, %p)\n", instance, reason, reserved);
|
||||
+
|
||||
+ switch (reason)
|
||||
+ {
|
||||
+ case DLL_WINE_PREATTACH:
|
||||
+ return FALSE; /* prefer native version */
|
||||
+ case DLL_PROCESS_ATTACH:
|
||||
+ DisableThreadLibraryCalls(instance);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
diff --git a/dlls/dpnhupnp/version.rc b/dlls/dpnhupnp/version.rc
|
||||
new file mode 100644
|
||||
index 00000000000..21633a49815
|
||||
@@ -135,5 +83,5 @@ index 00000000000..21633a49815
|
||||
+
|
||||
+#include "wine/wine_common_ver.rc"
|
||||
--
|
||||
2.29.2
|
||||
2.20.1
|
||||
|
||||
|
@@ -1,28 +1,32 @@
|
||||
From de1a88b3f30897fc1e99476f81d7e3c883d69d09 Mon Sep 17 00:00:00 2001
|
||||
From f9a068def176011ec42e84d370e1708e70de2e2a Mon Sep 17 00:00:00 2001
|
||||
From: Austin English <austinenglish@gmail.com>
|
||||
Date: Tue, 13 Oct 2020 04:42:02 -0500
|
||||
Subject: [PATCH] dpvacm: add stub dll
|
||||
|
||||
Signed-off-by: Austin English <austinenglish@gmail.com>
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/dpvacm/Makefile.in | 8 ++++++++
|
||||
dlls/dpvacm/dpvacm.spec | 4 ++++
|
||||
dlls/dpvacm/dpvacm_main.c | 42 +++++++++++++++++++++++++++++++++++++++
|
||||
dlls/dpvacm/version.rc | 26 ++++++++++++++++++++++++
|
||||
5 files changed, 81 insertions(+)
|
||||
configure.ac | 3 ++-
|
||||
dlls/dpvacm/Makefile.in | 6 ++++++
|
||||
dlls/dpvacm/dpvacm.spec | 4 ++++
|
||||
dlls/dpvacm/version.rc | 26 ++++++++++++++++++++++++++
|
||||
4 files changed, 38 insertions(+), 1 deletion(-)
|
||||
create mode 100644 dlls/dpvacm/Makefile.in
|
||||
create mode 100644 dlls/dpvacm/dpvacm.spec
|
||||
create mode 100644 dlls/dpvacm/dpvacm_main.c
|
||||
create mode 100644 dlls/dpvacm/version.rc
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index d562902f0f7..814de0cda49 100644
|
||||
index 8494354b561..749781df38a 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3204,6 +3204,7 @@ WINE_CONFIG_MAKEFILE(dlls/dpnet)
|
||||
@@ -3220,11 +3220,12 @@ WINE_CONFIG_MAKEFILE(dlls/dplayx)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dplayx/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dpmodemx)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dpnaddr)
|
||||
-WINE_CONFIG_MAKEFILE(dlls/dpnhupnp)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dpnet)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dpnet/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dpnhpast)
|
||||
+WINE_CONFIG_MAKEFILE(dlls/dpnhupnp)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dpnlobby)
|
||||
+WINE_CONFIG_MAKEFILE(dlls/dpvacm)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dpvoice)
|
||||
@@ -30,16 +34,14 @@ index d562902f0f7..814de0cda49 100644
|
||||
WINE_CONFIG_MAKEFILE(dlls/dpwsockx)
|
||||
diff --git a/dlls/dpvacm/Makefile.in b/dlls/dpvacm/Makefile.in
|
||||
new file mode 100644
|
||||
index 00000000000..04d8b9b5f80
|
||||
index 00000000000..e9fcafcfc7a
|
||||
--- /dev/null
|
||||
+++ b/dlls/dpvacm/Makefile.in
|
||||
@@ -0,0 +1,8 @@
|
||||
@@ -0,0 +1,6 @@
|
||||
+MODULE = dpvacm.dll
|
||||
+
|
||||
+EXTRADLLFLAGS = -mno-cygwin
|
||||
+EXTRADLLFLAGS = -Wb,--prefer-native
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ dpvacm_main.c
|
||||
+
|
||||
+RC_SRCS = version.rc
|
||||
diff --git a/dlls/dpvacm/dpvacm.spec b/dlls/dpvacm/dpvacm.spec
|
||||
@@ -53,54 +55,6 @@ index 00000000000..fc4ae4a44c0
|
||||
+@ stub DllGetClassObject
|
||||
+@ stub DllUnregisterServer
|
||||
\ No newline at end of file
|
||||
diff --git a/dlls/dpvacm/dpvacm_main.c b/dlls/dpvacm/dpvacm_main.c
|
||||
new file mode 100644
|
||||
index 00000000000..83fd0ab027c
|
||||
--- /dev/null
|
||||
+++ b/dlls/dpvacm/dpvacm_main.c
|
||||
@@ -0,0 +1,42 @@
|
||||
+/*
|
||||
+ *
|
||||
+ * Copyright 2020 Austin English
|
||||
+ *
|
||||
+ * 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 "windef.h"
|
||||
+#include "winbase.h"
|
||||
+#include "wine/debug.h"
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(dpvacm);
|
||||
+
|
||||
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
|
||||
+{
|
||||
+ TRACE("(%p, %u, %p)\n", instance, reason, reserved);
|
||||
+
|
||||
+ switch (reason)
|
||||
+ {
|
||||
+ case DLL_WINE_PREATTACH:
|
||||
+ return FALSE; /* prefer native version */
|
||||
+ case DLL_PROCESS_ATTACH:
|
||||
+ DisableThreadLibraryCalls(instance);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
diff --git a/dlls/dpvacm/version.rc b/dlls/dpvacm/version.rc
|
||||
new file mode 100644
|
||||
index 00000000000..7c463bca22e
|
||||
@@ -134,5 +88,5 @@ index 00000000000..7c463bca22e
|
||||
+
|
||||
+#include "wine/wine_common_ver.rc"
|
||||
--
|
||||
2.29.2
|
||||
2.20.1
|
||||
|
||||
|
@@ -1,26 +1,24 @@
|
||||
From bfc43910ce09b06ae1618bc6e2cd1af00526d676 Mon Sep 17 00:00:00 2001
|
||||
From 98be083cb6866286bcb73d23f7ed1ac13da857e7 Mon Sep 17 00:00:00 2001
|
||||
From: Austin English <austinenglish@gmail.com>
|
||||
Date: Tue, 13 Oct 2020 04:42:02 -0500
|
||||
Subject: [PATCH] dpvvox: add stub dll
|
||||
|
||||
Signed-off-by: Austin English <austinenglish@gmail.com>
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/dpvvox/Makefile.in | 8 ++++++++
|
||||
dlls/dpvvox/dpvvox.spec | 4 ++++
|
||||
dlls/dpvvox/dpvvox_main.c | 42 +++++++++++++++++++++++++++++++++++++++
|
||||
dlls/dpvvox/version.rc | 26 ++++++++++++++++++++++++
|
||||
5 files changed, 81 insertions(+)
|
||||
configure.ac | 1 +
|
||||
dlls/dpvvox/Makefile.in | 6 ++++++
|
||||
dlls/dpvvox/dpvvox.spec | 4 ++++
|
||||
dlls/dpvvox/version.rc | 26 ++++++++++++++++++++++++++
|
||||
4 files changed, 37 insertions(+)
|
||||
create mode 100644 dlls/dpvvox/Makefile.in
|
||||
create mode 100644 dlls/dpvvox/dpvvox.spec
|
||||
create mode 100644 dlls/dpvvox/dpvvox_main.c
|
||||
create mode 100644 dlls/dpvvox/version.rc
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 814de0cda49..e8505848dc3 100644
|
||||
index 749781df38a..ec12df76214 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3207,6 +3207,7 @@ WINE_CONFIG_MAKEFILE(dlls/dpnlobby)
|
||||
@@ -3228,6 +3228,7 @@ WINE_CONFIG_MAKEFILE(dlls/dpnlobby)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dpvacm)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dpvoice)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dpvoice/tests)
|
||||
@@ -30,16 +28,14 @@ index 814de0cda49..e8505848dc3 100644
|
||||
WINE_CONFIG_MAKEFILE(dlls/dsdmo)
|
||||
diff --git a/dlls/dpvvox/Makefile.in b/dlls/dpvvox/Makefile.in
|
||||
new file mode 100644
|
||||
index 00000000000..4107042f785
|
||||
index 00000000000..76c1312e680
|
||||
--- /dev/null
|
||||
+++ b/dlls/dpvvox/Makefile.in
|
||||
@@ -0,0 +1,8 @@
|
||||
@@ -0,0 +1,6 @@
|
||||
+MODULE = dpvvox.dll
|
||||
+
|
||||
+EXTRADLLFLAGS = -mno-cygwin
|
||||
+EXTRADLLFLAGS = -Wb,--prefer-native
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ dpvvox_main.c
|
||||
+
|
||||
+RC_SRCS = version.rc
|
||||
diff --git a/dlls/dpvvox/dpvvox.spec b/dlls/dpvvox/dpvvox.spec
|
||||
@@ -53,54 +49,6 @@ index 00000000000..fc4ae4a44c0
|
||||
+@ stub DllGetClassObject
|
||||
+@ stub DllUnregisterServer
|
||||
\ No newline at end of file
|
||||
diff --git a/dlls/dpvvox/dpvvox_main.c b/dlls/dpvvox/dpvvox_main.c
|
||||
new file mode 100644
|
||||
index 00000000000..8e813cc13d2
|
||||
--- /dev/null
|
||||
+++ b/dlls/dpvvox/dpvvox_main.c
|
||||
@@ -0,0 +1,42 @@
|
||||
+/*
|
||||
+ *
|
||||
+ * Copyright 2020 Austin English
|
||||
+ *
|
||||
+ * 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 "windef.h"
|
||||
+#include "winbase.h"
|
||||
+#include "wine/debug.h"
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(dpvvox);
|
||||
+
|
||||
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
|
||||
+{
|
||||
+ TRACE("(%p, %u, %p)\n", instance, reason, reserved);
|
||||
+
|
||||
+ switch (reason)
|
||||
+ {
|
||||
+ case DLL_WINE_PREATTACH:
|
||||
+ return FALSE; /* prefer native version */
|
||||
+ case DLL_PROCESS_ATTACH:
|
||||
+ DisableThreadLibraryCalls(instance);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
diff --git a/dlls/dpvvox/version.rc b/dlls/dpvvox/version.rc
|
||||
new file mode 100644
|
||||
index 00000000000..d4e3a34c0a8
|
||||
@@ -134,5 +82,5 @@ index 00000000000..d4e3a34c0a8
|
||||
+
|
||||
+#include "wine/wine_common_ver.rc"
|
||||
--
|
||||
2.29.2
|
||||
2.20.1
|
||||
|
||||
|
@@ -1,26 +1,24 @@
|
||||
From 26163e8bd3dccff151f336e81e620b5898316af7 Mon Sep 17 00:00:00 2001
|
||||
From 2b847764d114860d9f68eaf0f1c34cddf5bbc5ee Mon Sep 17 00:00:00 2001
|
||||
From: Austin English <austinenglish@gmail.com>
|
||||
Date: Tue, 13 Oct 2020 04:44:22 -0500
|
||||
Subject: [PATCH] dsdmoprp: add stub dll
|
||||
|
||||
Signed-off-by: Austin English <austinenglish@gmail.com>
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/dsdmoprp/Makefile.in | 8 +++++++
|
||||
dlls/dsdmoprp/dsdmoprp.spec | 4 ++++
|
||||
dlls/dsdmoprp/dsdmoprp_main.c | 42 +++++++++++++++++++++++++++++++++++
|
||||
dlls/dsdmoprp/version.rc | 26 ++++++++++++++++++++++
|
||||
5 files changed, 81 insertions(+)
|
||||
configure.ac | 1 +
|
||||
dlls/dsdmoprp/Makefile.in | 6 ++++++
|
||||
dlls/dsdmoprp/dsdmoprp.spec | 4 ++++
|
||||
dlls/dsdmoprp/version.rc | 26 ++++++++++++++++++++++++++
|
||||
4 files changed, 37 insertions(+)
|
||||
create mode 100644 dlls/dsdmoprp/Makefile.in
|
||||
create mode 100644 dlls/dsdmoprp/dsdmoprp.spec
|
||||
create mode 100644 dlls/dsdmoprp/dsdmoprp_main.c
|
||||
create mode 100644 dlls/dsdmoprp/version.rc
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index e8505848dc3..5305312d2aa 100644
|
||||
index ec12df76214..b69929b6271 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3212,6 +3212,7 @@ WINE_CONFIG_MAKEFILE(dlls/dpwsockx)
|
||||
@@ -3233,6 +3233,7 @@ WINE_CONFIG_MAKEFILE(dlls/dpwsockx)
|
||||
WINE_CONFIG_MAKEFILE(dlls/drmclien)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dsdmo)
|
||||
WINE_CONFIG_MAKEFILE(dlls/dsdmo/tests)
|
||||
@@ -30,16 +28,14 @@ index e8505848dc3..5305312d2aa 100644
|
||||
WINE_CONFIG_MAKEFILE(dlls/dsquery)
|
||||
diff --git a/dlls/dsdmoprp/Makefile.in b/dlls/dsdmoprp/Makefile.in
|
||||
new file mode 100644
|
||||
index 00000000000..ca31aa0d359
|
||||
index 00000000000..b3fcb8c3398
|
||||
--- /dev/null
|
||||
+++ b/dlls/dsdmoprp/Makefile.in
|
||||
@@ -0,0 +1,8 @@
|
||||
@@ -0,0 +1,6 @@
|
||||
+MODULE = dsdmoprp.dll
|
||||
+
|
||||
+EXTRADLLFLAGS = -mno-cygwin
|
||||
+EXTRADLLFLAGS = -Wb,--prefer-native
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ dsdmoprp_main.c
|
||||
+
|
||||
+RC_SRCS = version.rc
|
||||
diff --git a/dlls/dsdmoprp/dsdmoprp.spec b/dlls/dsdmoprp/dsdmoprp.spec
|
||||
@@ -53,54 +49,6 @@ index 00000000000..a043605127d
|
||||
+@ stub DllRegisterServer
|
||||
+@ stub DllUnregisterServer
|
||||
\ No newline at end of file
|
||||
diff --git a/dlls/dsdmoprp/dsdmoprp_main.c b/dlls/dsdmoprp/dsdmoprp_main.c
|
||||
new file mode 100644
|
||||
index 00000000000..7a547e5d499
|
||||
--- /dev/null
|
||||
+++ b/dlls/dsdmoprp/dsdmoprp_main.c
|
||||
@@ -0,0 +1,42 @@
|
||||
+/*
|
||||
+ *
|
||||
+ * Copyright 2020 Austin English
|
||||
+ *
|
||||
+ * 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 "windef.h"
|
||||
+#include "winbase.h"
|
||||
+#include "wine/debug.h"
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(dsdmoprp);
|
||||
+
|
||||
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
|
||||
+{
|
||||
+ TRACE("(%p, %u, %p)\n", instance, reason, reserved);
|
||||
+
|
||||
+ switch (reason)
|
||||
+ {
|
||||
+ case DLL_WINE_PREATTACH:
|
||||
+ return FALSE; /* prefer native version */
|
||||
+ case DLL_PROCESS_ATTACH:
|
||||
+ DisableThreadLibraryCalls(instance);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
diff --git a/dlls/dsdmoprp/version.rc b/dlls/dsdmoprp/version.rc
|
||||
new file mode 100644
|
||||
index 00000000000..9a2ca3e1c54
|
||||
@@ -134,5 +82,5 @@ index 00000000000..9a2ca3e1c54
|
||||
+
|
||||
+#include "wine/wine_common_ver.rc"
|
||||
--
|
||||
2.29.2
|
||||
2.20.1
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user