Commit 63f95fed authored by Sebastian Lackner's avatar Sebastian Lackner Committed by Alexandre Julliard

combase: Implement WindowsConcatString.

parent 4afb30c5
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
@ stub HSTRING_UserUnmarshal @ stub HSTRING_UserUnmarshal
@ stub HSTRING_UserUnmarshal64 @ stub HSTRING_UserUnmarshal64
@ stub WindowsCompareStringOrdinal @ stub WindowsCompareStringOrdinal
@ stub WindowsConcatString @ stdcall WindowsConcatString(ptr ptr ptr) combase.WindowsConcatString
@ stdcall WindowsCreateString(wstr long ptr) combase.WindowsCreateString @ stdcall WindowsCreateString(wstr long ptr) combase.WindowsCreateString
@ stdcall WindowsCreateStringReference(wstr long ptr ptr) combase.WindowsCreateStringReference @ stdcall WindowsCreateStringReference(wstr long ptr ptr) combase.WindowsCreateStringReference
@ stdcall WindowsDeleteString(ptr) combase.WindowsDeleteString @ stdcall WindowsDeleteString(ptr) combase.WindowsDeleteString
......
...@@ -288,7 +288,7 @@ ...@@ -288,7 +288,7 @@
@ stdcall WdtpInterfacePointer_UserUnmarshal(ptr ptr ptr ptr) ole32.WdtpInterfacePointer_UserUnmarshal @ stdcall WdtpInterfacePointer_UserUnmarshal(ptr ptr ptr ptr) ole32.WdtpInterfacePointer_UserUnmarshal
@ stub WdtpInterfacePointer_UserUnmarshal64 @ stub WdtpInterfacePointer_UserUnmarshal64
@ stub WindowsCompareStringOrdinal @ stub WindowsCompareStringOrdinal
@ stub WindowsConcatString @ stdcall WindowsConcatString(ptr ptr ptr)
@ stdcall WindowsCreateString(wstr long ptr) @ stdcall WindowsCreateString(wstr long ptr)
@ stdcall WindowsCreateStringReference(wstr long ptr ptr) @ stdcall WindowsCreateStringReference(wstr long ptr ptr)
@ stdcall WindowsDeleteString(ptr) @ stdcall WindowsDeleteString(ptr)
......
...@@ -330,6 +330,36 @@ HRESULT WINAPI WindowsSubstringWithSpecifiedLength(HSTRING str, UINT32 start, UI ...@@ -330,6 +330,36 @@ HRESULT WINAPI WindowsSubstringWithSpecifiedLength(HSTRING str, UINT32 start, UI
} }
/*********************************************************************** /***********************************************************************
* WindowsConcatString (combase.@)
*/
HRESULT WINAPI WindowsConcatString(HSTRING str1, HSTRING str2, HSTRING *out)
{
struct hstring_private *priv1 = impl_from_HSTRING(str1);
struct hstring_private *priv2 = impl_from_HSTRING(str2);
struct hstring_private *priv;
TRACE("(%p, %p, %p)\n", str1, str2, out);
if (out == NULL)
return E_INVALIDARG;
if (str1 == NULL)
return WindowsDuplicateString(str2, out);
if (str2 == NULL)
return WindowsDuplicateString(str1, out);
if (!priv1->length && !priv2->length)
{
*out = NULL;
return S_OK;
}
if (!alloc_string(priv1->length + priv2->length, out))
return E_OUTOFMEMORY;
priv = impl_from_HSTRING(*out);
memcpy(priv->buffer, priv1->buffer, priv1->length * sizeof(*priv1->buffer));
memcpy(priv->buffer + priv1->length, priv2->buffer, priv2->length * sizeof(*priv2->buffer));
return S_OK;
}
/***********************************************************************
* WindowsIsStringEmpty (combase.@) * WindowsIsStringEmpty (combase.@)
*/ */
BOOL WINAPI WindowsIsStringEmpty(HSTRING str) BOOL WINAPI WindowsIsStringEmpty(HSTRING str)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment