2 * Copyright 2001 Hidenori TAKESHIMA <hidenori@a2.ctktv.ne.jp>
14 #include "debugtools.h"
15 #include "avifile_private.h"
17 DEFAULT_DEBUG_CHANNEL(avifile);
20 /****************************************************************************
21 * string APIs (internal) - Copied from wine/dlls/imm32/string.c
24 INT AVIFILE_strlenAtoW( LPCSTR lpstr )
28 len = MultiByteToWideChar( CP_ACP, 0, lpstr, -1, NULL, 0 );
29 return ( len > 0 ) ? (len-1) : 0;
32 INT AVIFILE_strlenWtoA( LPCWSTR lpwstr )
36 len = WideCharToMultiByte( CP_ACP, 0, lpwstr, -1,
37 NULL, 0, NULL, NULL );
38 return ( len > 0 ) ? (len-1) : 0;
41 LPWSTR AVIFILE_strncpyAtoW( LPWSTR lpwstr, LPCSTR lpstr, INT wbuflen )
45 len = MultiByteToWideChar( CP_ACP, 0, lpstr, -1, lpwstr, wbuflen );
51 LPSTR AVIFILE_strncpyWtoA( LPSTR lpstr, LPCWSTR lpwstr, INT abuflen )
55 len = WideCharToMultiByte( CP_ACP, 0, lpwstr, -1,
56 lpstr, abuflen, NULL, NULL );
62 LPWSTR AVIFILE_strdupAtoW( LPCSTR lpstr )
67 len = AVIFILE_strlenAtoW( lpstr );
70 lpwstr = (LPWSTR)HeapAlloc( AVIFILE_data.hHeap, 0, sizeof(WCHAR)*(len+1) );
72 (void)AVIFILE_strncpyAtoW( lpwstr, lpstr, len+1 );
78 LPSTR AVIFILE_strdupWtoA( LPCWSTR lpwstr )
83 len = AVIFILE_strlenWtoA( lpwstr );
86 lpstr = (LPSTR)HeapAlloc( AVIFILE_data.hHeap, 0, sizeof(CHAR)*(len+1) );
88 (void)AVIFILE_strncpyWtoA( lpstr, lpwstr, len+1 );