From: Dan Dennedy Date: Sat, 16 Jun 2012 19:53:43 +0000 (-0700) Subject: fix BSTR string conversion under Windows X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=376154353d54add4b9f7f3bf0ba934bf03e2de4b;p=mlt fix BSTR string conversion under Windows --- diff --git a/src/modules/decklink/common.cpp b/src/modules/decklink/common.cpp index 84ef72fb..83f5e531 100644 --- a/src/modules/decklink/common.cpp +++ b/src/modules/decklink/common.cpp @@ -39,6 +39,38 @@ void freeDLString( DLString aDLString ) if ( aDLString ) CFRelease( aDLString ); } +#elif defined(WIN32) + +char* getCString( DLString aDLString ) +{ + char* CString = NULL; + if ( aDLString ) + { + int size = WideCharToMultiByte( CP_UTF8, 0, aDLString, -1, NULL, 0, NULL, NULL ); + if (size) + { + CString = new char[ size ]; + size = WideCharToMultiByte( CP_UTF8, 0, aDLString, -1, CString, size, NULL, NULL ); + if ( !size ) + { + delete[] CString; + CString = NULL; + } + } + } + return CString; +} + +void freeCString( char* aCString ) +{ + delete[] aCString; +} + +void freeDLString( DLString aDLString ) +{ + if ( aDLString ) free( (void*) aDLString ); +} + #else char* getCString( DLString aDLString )