mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Dispatch using LANG_NEUTRAL instead of LOCALE_SYSTEM_DEFAULT
This is relevant wrt. case insensitive identifiers. Closes GH-7391.
This commit is contained in:
parent
116fa65482
commit
bdf53cc91f
2 changed files with 7 additions and 5 deletions
4
NEWS
4
NEWS
|
@ -2,7 +2,9 @@ PHP NEWS
|
|||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
?? ??? ????, PHP 8.1.0RC1
|
||||
|
||||
|
||||
- COM:
|
||||
. Dispatch using LANG_NEUTRAL instead of LOCALE_SYSTEM_DEFAULT. (Dmitry
|
||||
Maksimov)
|
||||
|
||||
19 Aug 2021, PHP 8.1.0beta3
|
||||
|
||||
|
|
|
@ -229,7 +229,7 @@ PHP_METHOD(com, __construct)
|
|||
/* we got the object and it lives ! */
|
||||
|
||||
/* see if it has TypeInfo available */
|
||||
if (FAILED(IDispatch_GetTypeInfo(V_DISPATCH(&obj->v), 0, LANG_NEUTRAL, &obj->typeinfo)) && typelib_name) {
|
||||
if (FAILED(IDispatch_GetTypeInfo(V_DISPATCH(&obj->v), 0, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), &obj->typeinfo)) && typelib_name) {
|
||||
/* load up the library from the named file */
|
||||
TL = php_com_load_typelib_via_cache(typelib_name, obj->code_page);
|
||||
|
||||
|
@ -338,7 +338,7 @@ HRESULT php_com_invoke_helper(php_com_dotnet_object *obj, DISPID id_member,
|
|||
EXCEPINFO e = {0};
|
||||
|
||||
hr = IDispatch_Invoke(V_DISPATCH(&obj->v), id_member,
|
||||
&IID_NULL, LOCALE_SYSTEM_DEFAULT, flags, disp_params, v, &e, &arg_err);
|
||||
&IID_NULL, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), flags, disp_params, v, &e, &arg_err);
|
||||
|
||||
if (silent == 0 && FAILED(hr)) {
|
||||
char *source = NULL, *desc = NULL, *msg = NULL;
|
||||
|
@ -430,7 +430,7 @@ HRESULT php_com_get_id_of_name(php_com_dotnet_object *obj, char *name,
|
|||
hr = ITypeInfo_GetIDsOfNames(obj->typeinfo, &olename, 1, dispid);
|
||||
if (FAILED(hr)) {
|
||||
HRESULT hr1 = hr;
|
||||
hr = IDispatch_GetIDsOfNames(V_DISPATCH(&obj->v), &IID_NULL, &olename, 1, LOCALE_SYSTEM_DEFAULT, dispid);
|
||||
hr = IDispatch_GetIDsOfNames(V_DISPATCH(&obj->v), &IID_NULL, &olename, 1, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), dispid);
|
||||
if (SUCCEEDED(hr) && hr1 != E_NOTIMPL) {
|
||||
/* fall back on IDispatch direct */
|
||||
ITypeInfo_Release(obj->typeinfo);
|
||||
|
@ -438,7 +438,7 @@ HRESULT php_com_get_id_of_name(php_com_dotnet_object *obj, char *name,
|
|||
}
|
||||
}
|
||||
} else {
|
||||
hr = IDispatch_GetIDsOfNames(V_DISPATCH(&obj->v), &IID_NULL, &olename, 1, LOCALE_SYSTEM_DEFAULT, dispid);
|
||||
hr = IDispatch_GetIDsOfNames(V_DISPATCH(&obj->v), &IID_NULL, &olename, 1, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), dispid);
|
||||
}
|
||||
efree(olename);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue