[PATCH 6/7] kernel32: Resolve an indirect string in time zone names.

Alexandre Julliard julliard at winehq.org
Wed Dec 5 12:45:20 CST 2018


Akihiro Sagawa <sagawa.aki at gmail.com> writes:

> Signed-off-by: Akihiro Sagawa <sagawa.aki at gmail.com>
> ---
>  dlls/kernel32/kernel_private.h |  2 +
>  dlls/kernel32/resource.c       | 96 ++++++++++++++++++++++++++++++++++++++++++
>  dlls/kernel32/time.c           | 28 ++++++++++++
>  3 files changed, 126 insertions(+)
>
> diff --git a/dlls/kernel32/kernel_private.h b/dlls/kernel32/kernel_private.h
> index 09a2cad..15a4ab6 100644
> --- a/dlls/kernel32/kernel_private.h
> +++ b/dlls/kernel32/kernel_private.h
> @@ -84,4 +84,6 @@ extern void TIMEZONE_InitRegistry(void) DECLSPEC_HIDDEN;
>  /* oldconfig.c */
>  extern void convert_old_config(void) DECLSPEC_HIDDEN;
>  
> +/* resource.c */
> +extern BOOL load_indirect_string(LPCWSTR src, LPWSTR dst, UINT dst_len) DECLSPEC_HIDDEN;
>  #endif
> diff --git a/dlls/kernel32/resource.c b/dlls/kernel32/resource.c
> index a04fe62..49d87a0 100644
> --- a/dlls/kernel32/resource.c
> +++ b/dlls/kernel32/resource.c
> @@ -1807,3 +1807,99 @@ BOOL WINAPI UpdateResourceA( HANDLE hUpdate, LPCSTR lpType, LPCSTR lpName,
>      if(!IS_INTRESOURCE(lpName)) RtlFreeUnicodeString(&NameW);
>      return ret;
>  }
> +
> +/******************************************************************************
> + * load_string [Internal]
> + *
> + * This is basically a copy of advapi32/reg.c's load_string. Necessary to
> + * avoid importing user32, which is higher level than kernel32. Helper for
> + * following load_indirect_string.
> + */
> +static int load_string(HINSTANCE hModule, UINT resId, LPWSTR pwszBuffer, INT cMaxChars)
> +{

You should probably use RegLoadMUIStringW instead of duplicating this
code.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list