]> git.sesse.net Git - mlt/commitdiff
fix BSTR string conversion under Windows
authorDan Dennedy <dan@dennedy.org>
Sat, 16 Jun 2012 19:53:43 +0000 (12:53 -0700)
committerDan Dennedy <dan@dennedy.org>
Sat, 16 Jun 2012 19:53:43 +0000 (12:53 -0700)
src/modules/decklink/common.cpp

index 84ef72fb8aa41ac47a9f5c501dc2a5dbf9ecb579..83f5e531b099fb103e8dc724a42975d56ef67028 100644 (file)
@@ -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 )