diff --git a/DirectXTex/DirectXTexWIC.cpp b/DirectXTex/DirectXTexWIC.cpp index fc3caec..ff9ff0c 100644 --- a/DirectXTex/DirectXTexWIC.cpp +++ b/DirectXTex/DirectXTexWIC.cpp @@ -15,6 +15,11 @@ #include "directxtexp.h" +#ifdef __cplusplus_winrt +#include +#pragma comment(lib,"shcore.lib") +#endif + //------------------------------------------------------------------------------------- // WIC Pixel Format nearest conversion table //------------------------------------------------------------------------------------- @@ -918,7 +923,12 @@ HRESULT SaveToWICMemory( const Image& image, DWORD flags, REFGUID containerForma blob.Release(); ScopedObject stream; +#ifdef __cplusplus_winrt + auto randomAccessStream = ref new Windows::Storage::Streams::InMemoryRandomAccessStream(); + HRESULT hr = CreateStreamOverRandomAccessStream( randomAccessStream, __uuidof(IStream), reinterpret_cast( &stream ) ); +#else HRESULT hr = CreateStreamOnHGlobal( 0, TRUE, &stream ); +#endif if ( FAILED(hr) ) return hr; @@ -965,7 +975,12 @@ HRESULT SaveToWICMemory( const Image* images, size_t nimages, DWORD flags, REFGU blob.Release(); ScopedObject stream; +#ifdef __cplusplus_winrt + auto randomAccessStream = ref new Windows::Storage::Streams::InMemoryRandomAccessStream(); + HRESULT hr = CreateStreamOverRandomAccessStream( randomAccessStream, __uuidof(IStream), reinterpret_cast( &stream ) ); +#else HRESULT hr = CreateStreamOnHGlobal( 0, TRUE, &stream ); +#endif if ( FAILED(hr) ) return hr;