Got rid of the Wine internal lstrcpy* functions and of winestring.h.
This commit is contained in:
parent
ff96f919c6
commit
24a62ab9b0
|
@ -18,10 +18,11 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winuser16.h"
|
#include "wine/winuser16.h"
|
||||||
#include "wine/winestring.h"
|
#include "wine/unicode.h"
|
||||||
#include "win.h"
|
#include "win.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
|
@ -31,7 +32,6 @@
|
||||||
#include "message.h"
|
#include "message.h"
|
||||||
#include "queue.h"
|
#include "queue.h"
|
||||||
#include "tweak.h"
|
#include "tweak.h"
|
||||||
#include "wine/unicode.h"
|
|
||||||
|
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
||||||
|
@ -3464,7 +3464,8 @@ INT WINAPI GetMenuStringA(
|
||||||
if (!IS_STRING_ITEM(item->fType)) return 0;
|
if (!IS_STRING_ITEM(item->fType)) return 0;
|
||||||
if (!str || !nMaxSiz) return strlenW(item->text);
|
if (!str || !nMaxSiz) return strlenW(item->text);
|
||||||
str[0] = '\0';
|
str[0] = '\0';
|
||||||
lstrcpynWtoA( str, item->text, nMaxSiz );
|
if (!WideCharToMultiByte( CP_ACP, 0, item->text, -1, str, nMaxSiz, NULL, NULL ))
|
||||||
|
str[nMaxSiz-1] = 0;
|
||||||
TRACE("returning '%s'\n", str );
|
TRACE("returning '%s'\n", str );
|
||||||
return strlen(str);
|
return strlen(str);
|
||||||
}
|
}
|
||||||
|
@ -4405,21 +4406,7 @@ static BOOL GetMenuItemInfo_common ( HMENU hmenu, UINT item, BOOL bypos,
|
||||||
lpmii->fType = menu->fType;
|
lpmii->fType = menu->fType;
|
||||||
switch (MENU_ITEM_TYPE(menu->fType)) {
|
switch (MENU_ITEM_TYPE(menu->fType)) {
|
||||||
case MF_STRING:
|
case MF_STRING:
|
||||||
if (menu->text) {
|
break; /* will be done below */
|
||||||
int len = strlenW(menu->text);
|
|
||||||
if(lpmii->dwTypeData && lpmii->cch) {
|
|
||||||
if (unicode)
|
|
||||||
lstrcpynW(lpmii->dwTypeData, menu->text,
|
|
||||||
lpmii->cch);
|
|
||||||
else
|
|
||||||
lstrcpynWtoA((LPSTR)lpmii->dwTypeData, menu->text, lpmii->cch);
|
|
||||||
/* if we've copied a substring we return its length */
|
|
||||||
if(lpmii->cch <= len)
|
|
||||||
lpmii->cch--;
|
|
||||||
} else /* return length of string */
|
|
||||||
lpmii->cch = len;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case MF_OWNERDRAW:
|
case MF_OWNERDRAW:
|
||||||
case MF_BITMAP:
|
case MF_BITMAP:
|
||||||
lpmii->dwTypeData = menu->text;
|
lpmii->dwTypeData = menu->text;
|
||||||
|
@ -4429,15 +4416,32 @@ static BOOL GetMenuItemInfo_common ( HMENU hmenu, UINT item, BOOL bypos,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lpmii->fMask & MIIM_STRING) {
|
/* copy the text string */
|
||||||
if(lpmii->dwTypeData && lpmii->cch) {
|
if ((lpmii->fMask & (MIIM_TYPE|MIIM_STRING)) &&
|
||||||
if (unicode)
|
(MENU_ITEM_TYPE(menu->fType) == MF_STRING) && menu->text)
|
||||||
lstrcpynW((LPWSTR) lpmii->dwTypeData, menu->text,
|
{
|
||||||
lpmii->cch);
|
int len;
|
||||||
else
|
if (unicode)
|
||||||
lstrcpynWtoA((LPSTR)lpmii->dwTypeData, menu->text, lpmii->cch);
|
{
|
||||||
}
|
len = strlenW(menu->text);
|
||||||
lpmii->cch = strlenW(menu->text);
|
if(lpmii->dwTypeData && lpmii->cch)
|
||||||
|
lstrcpynW(lpmii->dwTypeData, menu->text, lpmii->cch);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
len = WideCharToMultiByte( CP_ACP, 0, menu->text, -1, NULL, 0, NULL, NULL );
|
||||||
|
if(lpmii->dwTypeData && lpmii->cch)
|
||||||
|
if (!WideCharToMultiByte( CP_ACP, 0, menu->text, -1,
|
||||||
|
(LPSTR)lpmii->dwTypeData, lpmii->cch, NULL, NULL ))
|
||||||
|
((LPSTR)lpmii->dwTypeData)[lpmii->cch-1] = 0;
|
||||||
|
}
|
||||||
|
/* if we've copied a substring we return its length */
|
||||||
|
if(lpmii->dwTypeData && lpmii->cch)
|
||||||
|
{
|
||||||
|
if (lpmii->cch <= len) lpmii->cch--;
|
||||||
|
}
|
||||||
|
else /* return length of string */
|
||||||
|
lpmii->cch = len;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lpmii->fMask & MIIM_FTYPE)
|
if (lpmii->fMask & MIIM_FTYPE)
|
||||||
|
|
|
@ -11,8 +11,8 @@
|
||||||
|
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
|
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
||||||
|
@ -53,7 +53,9 @@ GetUserNameW( LPWSTR lpszName, LPDWORD lpSize )
|
||||||
DWORD size = *lpSize;
|
DWORD size = *lpSize;
|
||||||
BOOL res = GetUserNameA(name,lpSize);
|
BOOL res = GetUserNameA(name,lpSize);
|
||||||
|
|
||||||
lstrcpynAtoW(lpszName,name,size);
|
/* FIXME: should set lpSize in WCHARs */
|
||||||
|
if (size && !MultiByteToWideChar( CP_ACP, 0, name, -1, lpszName, size ))
|
||||||
|
lpszName[size-1] = 0;
|
||||||
HeapFree( GetProcessHeap(), 0, name );
|
HeapFree( GetProcessHeap(), 0, name );
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "server.h"
|
#include "server.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "ntddk.h"
|
#include "ntddk.h"
|
||||||
#include "ntsecapi.h"
|
#include "ntsecapi.h"
|
||||||
|
@ -569,8 +568,8 @@ LookupAccountSidA(
|
||||||
IN OUT LPDWORD domainSize,
|
IN OUT LPDWORD domainSize,
|
||||||
OUT PSID_NAME_USE name_use )
|
OUT PSID_NAME_USE name_use )
|
||||||
{
|
{
|
||||||
char * ac = "Administrator";
|
static const char ac[] = "Administrator";
|
||||||
char * dm = "DOMAIN";
|
static const char dm[] = "DOMAIN";
|
||||||
FIXME("(%s,sid=%p,%p,%p(%lu),%p,%p(%lu),%p): semi-stub\n",
|
FIXME("(%s,sid=%p,%p,%p(%lu),%p,%p(%lu),%p): semi-stub\n",
|
||||||
debugstr_a(system),sid,
|
debugstr_a(system),sid,
|
||||||
account,accountSize,accountSize?*accountSize:0,
|
account,accountSize,accountSize?*accountSize:0,
|
||||||
|
@ -611,21 +610,21 @@ LookupAccountSidW(
|
||||||
IN OUT LPDWORD domainSize,
|
IN OUT LPDWORD domainSize,
|
||||||
OUT PSID_NAME_USE name_use )
|
OUT PSID_NAME_USE name_use )
|
||||||
{
|
{
|
||||||
char * ac = "Administrator";
|
static const WCHAR ac[] = {'A','d','m','i','n','i','s','t','r','a','t','o','r',0};
|
||||||
char * dm = "DOMAIN";
|
static const WCHAR dm[] = {'D','O','M','A','I','N',0};
|
||||||
FIXME("(%s,sid=%p,%p,%p(%lu),%p,%p(%lu),%p): semi-stub\n",
|
FIXME("(%s,sid=%p,%p,%p(%lu),%p,%p(%lu),%p): semi-stub\n",
|
||||||
debugstr_w(system),sid,
|
debugstr_w(system),sid,
|
||||||
account,accountSize,accountSize?*accountSize:0,
|
account,accountSize,accountSize?*accountSize:0,
|
||||||
domain,domainSize,domainSize?*domainSize:0,
|
domain,domainSize,domainSize?*domainSize:0,
|
||||||
name_use);
|
name_use);
|
||||||
|
|
||||||
if (accountSize) *accountSize = strlen(ac)+1;
|
if (accountSize) *accountSize = strlenW(ac)+1;
|
||||||
if (account && (*accountSize > strlen(ac)))
|
if (account && (*accountSize > strlenW(ac)))
|
||||||
lstrcpyAtoW(account, ac);
|
strcpyW(account, ac);
|
||||||
|
|
||||||
if (domainSize) *domainSize = strlen(dm)+1;
|
if (domainSize) *domainSize = strlenW(dm)+1;
|
||||||
if (domain && (*domainSize > strlen(dm)))
|
if (domain && (*domainSize > strlenW(dm)))
|
||||||
lstrcpyAtoW(domain,dm);
|
strcpyW(domain,dm);
|
||||||
|
|
||||||
if (name_use) *name_use = SidTypeUser;
|
if (name_use) *name_use = SidTypeUser;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "winreg.h"
|
#include "winreg.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
||||||
|
@ -353,7 +352,7 @@ OpenServiceW(SC_HANDLE hSCManager, LPCWSTR lpServiceName,
|
||||||
TRACE("(%d,%p,%ld)\n",hSCManager, lpServiceName,
|
TRACE("(%d,%p,%ld)\n",hSCManager, lpServiceName,
|
||||||
dwDesiredAccess);
|
dwDesiredAccess);
|
||||||
|
|
||||||
lstrcpyAtoW(lpServiceKey,str);
|
MultiByteToWideChar( CP_ACP, 0, str, -1, lpServiceKey, sizeof(lpServiceKey)/sizeof(WCHAR) );
|
||||||
strcatW(lpServiceKey,lpServiceName);
|
strcatW(lpServiceKey,lpServiceName);
|
||||||
|
|
||||||
TRACE("Opening reg key %s\n", debugstr_w(lpServiceKey));
|
TRACE("Opening reg key %s\n", debugstr_w(lpServiceKey));
|
||||||
|
|
|
@ -35,7 +35,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "commctrl.h"
|
#include "commctrl.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
|
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "commctrl.h"
|
#include "commctrl.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
||||||
|
@ -307,10 +306,10 @@ DATETIME_SetFormatW (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
if (lParam) {
|
if (lParam) {
|
||||||
LPSTR buf;
|
LPSTR buf;
|
||||||
int retval;
|
int retval;
|
||||||
int len = lstrlenW ((LPWSTR) lParam)+1;
|
int len = WideCharToMultiByte( CP_ACP, 0, (LPWSTR)lParam, -1, NULL, 0, NULL, NULL );
|
||||||
|
|
||||||
buf = (LPSTR) COMCTL32_Alloc (len);
|
buf = (LPSTR) COMCTL32_Alloc (len);
|
||||||
lstrcpyWtoA (buf, (LPWSTR) lParam);
|
WideCharToMultiByte( CP_ACP, 0, (LPWSTR)lParam, -1, buf, len, NULL, NULL );
|
||||||
retval=DATETIME_SetFormat (hwnd, 0, (LPARAM) buf);
|
retval=DATETIME_SetFormat (hwnd, 0, (LPARAM) buf);
|
||||||
COMCTL32_Free (buf);
|
COMCTL32_Free (buf);
|
||||||
return retval;
|
return retval;
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
|
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "commctrl.h"
|
#include "commctrl.h"
|
||||||
#include "comctl32.h"
|
#include "comctl32.h"
|
||||||
#include "imagelist.h"
|
#include "imagelist.h"
|
||||||
|
|
|
@ -44,7 +44,6 @@
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "commctrl.h"
|
#include "commctrl.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
||||||
|
@ -1567,7 +1566,11 @@ REBAR_GetBandInfoA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
if ((lprbbi->fMask & RBBIM_TEXT) && (lprbbi->lpText)) {
|
if ((lprbbi->fMask & RBBIM_TEXT) && (lprbbi->lpText)) {
|
||||||
if (lpBand->lpText && (lpBand->fMask & RBBIM_TEXT))
|
if (lpBand->lpText && (lpBand->fMask & RBBIM_TEXT))
|
||||||
lstrcpynWtoA (lprbbi->lpText, lpBand->lpText, lprbbi->cch);
|
{
|
||||||
|
if (!WideCharToMultiByte( CP_ACP, 0, lpBand->lpText, -1,
|
||||||
|
lprbbi->lpText, lprbbi->cch, NULL, NULL ))
|
||||||
|
lprbbi->lpText[lprbbi->cch-1] = 0;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
*lprbbi->lpText = 0;
|
*lprbbi->lpText = 0;
|
||||||
}
|
}
|
||||||
|
@ -1958,10 +1961,10 @@ REBAR_InsertBandA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
REBAR_CommonSetupBand (hwnd, lprbbi, lpBand);
|
REBAR_CommonSetupBand (hwnd, lprbbi, lpBand);
|
||||||
lpBand->lpText = NULL;
|
lpBand->lpText = NULL;
|
||||||
if ((lprbbi->fMask & RBBIM_TEXT) && (lprbbi->lpText)) {
|
if ((lprbbi->fMask & RBBIM_TEXT) && (lprbbi->lpText)) {
|
||||||
INT len = lstrlenA (lprbbi->lpText);
|
INT len = MultiByteToWideChar( CP_ACP, 0, lprbbi->lpText, -1, NULL, 0 );
|
||||||
if (len > 0) {
|
if (len > 1) {
|
||||||
lpBand->lpText = (LPWSTR)COMCTL32_Alloc ((len + 1)*sizeof(WCHAR));
|
lpBand->lpText = (LPWSTR)COMCTL32_Alloc (len*sizeof(WCHAR));
|
||||||
lstrcpyAtoW (lpBand->lpText, lprbbi->lpText);
|
MultiByteToWideChar( CP_ACP, 0, lprbbi->lpText, -1, lpBand->lpText, len );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2121,9 +2124,9 @@ REBAR_SetBandInfoA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
lpBand->lpText = NULL;
|
lpBand->lpText = NULL;
|
||||||
}
|
}
|
||||||
if (lprbbi->lpText) {
|
if (lprbbi->lpText) {
|
||||||
INT len = lstrlenA (lprbbi->lpText);
|
INT len = MultiByteToWideChar( CP_ACP, 0, lprbbi->lpText, -1, NULL, 0 );
|
||||||
lpBand->lpText = (LPWSTR)COMCTL32_Alloc ((len + 1)*sizeof(WCHAR));
|
lpBand->lpText = (LPWSTR)COMCTL32_Alloc (len*sizeof(WCHAR));
|
||||||
lstrcpyAtoW (lpBand->lpText, lprbbi->lpText);
|
MultiByteToWideChar( CP_ACP, 0, lprbbi->lpText, -1, lpBand->lpText, len );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
|
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "commctrl.h"
|
#include "commctrl.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
||||||
|
@ -136,7 +135,7 @@ STATUSBAR_DrawPart (HDC hdc, STATUSWINDOWPART *part)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
r.left += 3;
|
r.left += 3;
|
||||||
DrawTextW (hdc, p, lstrlenW (p), &r, align|DT_VCENTER|DT_SINGLELINE);
|
DrawTextW (hdc, p, -1, &r, align|DT_VCENTER|DT_SINGLELINE);
|
||||||
if (oldbkmode != TRANSPARENT)
|
if (oldbkmode != TRANSPARENT)
|
||||||
SetBkMode(hdc, oldbkmode);
|
SetBkMode(hdc, oldbkmode);
|
||||||
}
|
}
|
||||||
|
@ -393,10 +392,11 @@ STATUSBAR_GetTextA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
if (part->style & SBT_OWNERDRAW)
|
if (part->style & SBT_OWNERDRAW)
|
||||||
result = (LRESULT)part->text;
|
result = (LRESULT)part->text;
|
||||||
else {
|
else {
|
||||||
result = part->text ? lstrlenW (part->text) : 0;
|
DWORD len = part->text ? WideCharToMultiByte( CP_ACP, 0, part->text, -1,
|
||||||
result |= (part->style << 16);
|
NULL, 0, NULL, NULL ) - 1 : 0;
|
||||||
if (lParam && LOWORD(result))
|
result = MAKELONG( len, part->style );
|
||||||
lstrcpyWtoA ((LPSTR)lParam, part->text);
|
if (lParam && len)
|
||||||
|
WideCharToMultiByte( CP_ACP, 0, part->text, -1, (LPSTR)lParam, len+1, NULL, NULL );
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -419,7 +419,7 @@ STATUSBAR_GetTextW (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
if (part->style & SBT_OWNERDRAW)
|
if (part->style & SBT_OWNERDRAW)
|
||||||
result = (LRESULT)part->text;
|
result = (LRESULT)part->text;
|
||||||
else {
|
else {
|
||||||
result = part->text ? lstrlenW (part->text) : 0;
|
result = part->text ? strlenW (part->text) : 0;
|
||||||
result |= (part->style << 16);
|
result |= (part->style << 16);
|
||||||
if (part->text && lParam)
|
if (part->text && lParam)
|
||||||
strcpyW ((LPWSTR)lParam, part->text);
|
strcpyW ((LPWSTR)lParam, part->text);
|
||||||
|
@ -444,7 +444,7 @@ STATUSBAR_GetTextLength (HWND hwnd, WPARAM wParam)
|
||||||
part = &infoPtr->parts[part_num];
|
part = &infoPtr->parts[part_num];
|
||||||
|
|
||||||
if (part->text)
|
if (part->text)
|
||||||
result = lstrlenW(part->text);
|
result = strlenW(part->text);
|
||||||
else
|
else
|
||||||
result = 0;
|
result = 0;
|
||||||
|
|
||||||
|
@ -689,8 +689,9 @@ STATUSBAR_SetTextA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
/* check if text is unchanged -> no need to redraw */
|
/* check if text is unchanged -> no need to redraw */
|
||||||
if (text) {
|
if (text) {
|
||||||
LPWSTR tmptext = COMCTL32_Alloc((lstrlenA(text)+1)*sizeof(WCHAR));
|
DWORD len = MultiByteToWideChar( CP_ACP, 0, text, -1, NULL, 0 );
|
||||||
lstrcpyAtoW (tmptext, text);
|
LPWSTR tmptext = COMCTL32_Alloc(len*sizeof(WCHAR));
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, text, -1, tmptext, len );
|
||||||
|
|
||||||
if (!changed && part->text && !lstrcmpW(tmptext,part->text)) {
|
if (!changed && part->text && !lstrcmpW(tmptext,part->text)) {
|
||||||
COMCTL32_Free(tmptext);
|
COMCTL32_Free(tmptext);
|
||||||
|
@ -754,7 +755,7 @@ STATUSBAR_SetTextW (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
if(part->text) COMCTL32_Free(part->text);
|
if(part->text) COMCTL32_Free(part->text);
|
||||||
|
|
||||||
len = lstrlenW(text);
|
len = strlenW(text);
|
||||||
part->text = COMCTL32_Alloc ((len+1)*sizeof(WCHAR));
|
part->text = COMCTL32_Alloc ((len+1)*sizeof(WCHAR));
|
||||||
strcpyW(part->text, text);
|
strcpyW(part->text, text);
|
||||||
bRedraw = TRUE;
|
bRedraw = TRUE;
|
||||||
|
@ -886,16 +887,18 @@ STATUSBAR_WMCreate (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
if (IsWindowUnicode (hwnd)) {
|
if (IsWindowUnicode (hwnd)) {
|
||||||
self->bUnicode = TRUE;
|
self->bUnicode = TRUE;
|
||||||
if (lpCreate->lpszName &&
|
if (lpCreate->lpszName &&
|
||||||
(len = lstrlenW ((LPCWSTR)lpCreate->lpszName))) {
|
(len = strlenW ((LPCWSTR)lpCreate->lpszName))) {
|
||||||
self->parts[0].text = COMCTL32_Alloc ((len + 1)*sizeof(WCHAR));
|
self->parts[0].text = COMCTL32_Alloc ((len + 1)*sizeof(WCHAR));
|
||||||
strcpyW (self->parts[0].text, (LPCWSTR)lpCreate->lpszName);
|
strcpyW (self->parts[0].text, (LPCWSTR)lpCreate->lpszName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (lpCreate->lpszName &&
|
if (lpCreate->lpszName &&
|
||||||
(len = lstrlenA ((LPCSTR)lpCreate->lpszName))) {
|
(len = strlen((LPCSTR)lpCreate->lpszName))) {
|
||||||
self->parts[0].text = COMCTL32_Alloc ((len + 1)*sizeof(WCHAR));
|
DWORD lenW = MultiByteToWideChar( CP_ACP, 0, (LPCSTR)lpCreate->lpszName, -1, NULL, 0 );
|
||||||
lstrcpyAtoW (self->parts[0].text, (LPCSTR)lpCreate->lpszName);
|
self->parts[0].text = COMCTL32_Alloc (lenW*sizeof(WCHAR));
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, (LPCSTR)lpCreate->lpszName, -1,
|
||||||
|
self->parts[0].text, lenW );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -993,12 +996,17 @@ STATUSBAR_WMGetText (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
if (!(infoPtr->parts[0].text))
|
if (!(infoPtr->parts[0].text))
|
||||||
return 0;
|
return 0;
|
||||||
len = lstrlenW (infoPtr->parts[0].text);
|
if (infoPtr->bUnicode)
|
||||||
|
len = strlenW (infoPtr->parts[0].text);
|
||||||
|
else
|
||||||
|
len = WideCharToMultiByte( CP_ACP, 0, infoPtr->parts[0].text, -1, NULL, 0, NULL, NULL )-1;
|
||||||
|
|
||||||
if (wParam > len) {
|
if (wParam > len) {
|
||||||
if (infoPtr->bUnicode)
|
if (infoPtr->bUnicode)
|
||||||
strcpyW ((LPWSTR)lParam, infoPtr->parts[0].text);
|
strcpyW ((LPWSTR)lParam, infoPtr->parts[0].text);
|
||||||
else
|
else
|
||||||
lstrcpyWtoA ((LPSTR)lParam, infoPtr->parts[0].text);
|
WideCharToMultiByte( CP_ACP, 0, infoPtr->parts[0].text, -1,
|
||||||
|
(LPSTR)lParam, len+1, NULL, NULL );
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1102,15 +1110,16 @@ STATUSBAR_WMSetText (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
COMCTL32_Free (part->text);
|
COMCTL32_Free (part->text);
|
||||||
part->text = 0;
|
part->text = 0;
|
||||||
if (infoPtr->bUnicode) {
|
if (infoPtr->bUnicode) {
|
||||||
if (lParam && (len = lstrlenW((LPCWSTR)lParam))) {
|
if (lParam && (len = strlenW((LPCWSTR)lParam))) {
|
||||||
part->text = COMCTL32_Alloc ((len+1)*sizeof(WCHAR));
|
part->text = COMCTL32_Alloc ((len+1)*sizeof(WCHAR));
|
||||||
strcpyW (part->text, (LPCWSTR)lParam);
|
strcpyW (part->text, (LPCWSTR)lParam);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (lParam && (len = lstrlenA((LPCSTR)lParam))) {
|
if (lParam && (len = lstrlenA((LPCSTR)lParam))) {
|
||||||
part->text = COMCTL32_Alloc ((len+1)*sizeof(WCHAR));
|
DWORD lenW = MultiByteToWideChar( CP_ACP, 0, (LPCSTR)lParam, -1, NULL, 0 );
|
||||||
lstrcpyAtoW (part->text, (LPCSTR)lParam);
|
part->text = COMCTL32_Alloc (lenW*sizeof(WCHAR));
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, (LPCSTR)lParam, -1, part->text, lenW );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,6 @@
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "commctrl.h"
|
#include "commctrl.h"
|
||||||
#include "imagelist.h"
|
#include "imagelist.h"
|
||||||
#include "comctl32.h"
|
#include "comctl32.h"
|
||||||
|
@ -532,7 +531,7 @@ TOOLBAR_MeasureString(HWND hwnd, INT index, LPSIZE lpSize)
|
||||||
(btnPtr->iString < infoPtr->nNumStrings))
|
(btnPtr->iString < infoPtr->nNumStrings))
|
||||||
{
|
{
|
||||||
LPWSTR lpText = infoPtr->strings[btnPtr->iString];
|
LPWSTR lpText = infoPtr->strings[btnPtr->iString];
|
||||||
GetTextExtentPoint32W (hdc, lpText, lstrlenW (lpText), lpSize);
|
GetTextExtentPoint32W (hdc, lpText, strlenW (lpText), lpSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
SelectObject (hdc, hOldFont);
|
SelectObject (hdc, hOldFont);
|
||||||
|
@ -1792,7 +1791,7 @@ TOOLBAR_AddStringA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
if ((wParam) && (HIWORD(lParam) == 0)) {
|
if ((wParam) && (HIWORD(lParam) == 0)) {
|
||||||
char szString[256];
|
char szString[256];
|
||||||
INT len;
|
INT len, lenW;
|
||||||
TRACE("adding string from resource!\n");
|
TRACE("adding string from resource!\n");
|
||||||
|
|
||||||
len = LoadStringA ((HINSTANCE)wParam, (UINT)lParam,
|
len = LoadStringA ((HINSTANCE)wParam, (UINT)lParam,
|
||||||
|
@ -1813,14 +1812,15 @@ TOOLBAR_AddStringA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
COMCTL32_Free (oldStrings);
|
COMCTL32_Free (oldStrings);
|
||||||
}
|
}
|
||||||
|
|
||||||
infoPtr->strings[infoPtr->nNumStrings] =
|
lenW = MultiByteToWideChar( CP_ACP, 0, szString, -1, NULL, 0 );
|
||||||
COMCTL32_Alloc (sizeof(WCHAR)*(len+1));
|
infoPtr->strings[infoPtr->nNumStrings] = COMCTL32_Alloc (sizeof(WCHAR)*lenW);
|
||||||
lstrcpyAtoW (infoPtr->strings[infoPtr->nNumStrings], szString);
|
MultiByteToWideChar( CP_ACP, 0, szString, -1,
|
||||||
|
infoPtr->strings[infoPtr->nNumStrings], lenW );
|
||||||
infoPtr->nNumStrings++;
|
infoPtr->nNumStrings++;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
LPSTR p = (LPSTR)lParam;
|
LPSTR p = (LPSTR)lParam;
|
||||||
INT len;
|
INT len, lenW;
|
||||||
|
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -1828,7 +1828,7 @@ TOOLBAR_AddStringA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
nIndex = infoPtr->nNumStrings;
|
nIndex = infoPtr->nNumStrings;
|
||||||
while (*p) {
|
while (*p) {
|
||||||
len = lstrlenA (p);
|
len = strlen (p);
|
||||||
TRACE("len=%d \"%s\"\n", len, p);
|
TRACE("len=%d \"%s\"\n", len, p);
|
||||||
|
|
||||||
if (infoPtr->nNumStrings == 0) {
|
if (infoPtr->nNumStrings == 0) {
|
||||||
|
@ -1844,9 +1844,10 @@ TOOLBAR_AddStringA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
COMCTL32_Free (oldStrings);
|
COMCTL32_Free (oldStrings);
|
||||||
}
|
}
|
||||||
|
|
||||||
infoPtr->strings[infoPtr->nNumStrings] =
|
lenW = MultiByteToWideChar( CP_ACP, 0, p, -1, NULL, 0 );
|
||||||
COMCTL32_Alloc (sizeof(WCHAR)*(len+1));
|
infoPtr->strings[infoPtr->nNumStrings] = COMCTL32_Alloc (sizeof(WCHAR)*lenW);
|
||||||
lstrcpyAtoW (infoPtr->strings[infoPtr->nNumStrings], p);
|
MultiByteToWideChar( CP_ACP, 0, p, -1,
|
||||||
|
infoPtr->strings[infoPtr->nNumStrings], lenW );
|
||||||
infoPtr->nNumStrings++;
|
infoPtr->nNumStrings++;
|
||||||
|
|
||||||
p += (len+1);
|
p += (len+1);
|
||||||
|
@ -1935,7 +1936,7 @@ TOOLBAR_AddStringW (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
TRACE("adding string(s) from array!\n");
|
TRACE("adding string(s) from array!\n");
|
||||||
nIndex = infoPtr->nNumStrings;
|
nIndex = infoPtr->nNumStrings;
|
||||||
while (*p) {
|
while (*p) {
|
||||||
len = lstrlenW (p);
|
len = strlenW (p);
|
||||||
|
|
||||||
TRACE("len=%d \"%s\"\n", len, debugstr_w(p));
|
TRACE("len=%d \"%s\"\n", len, debugstr_w(p));
|
||||||
if (infoPtr->nNumStrings == 0) {
|
if (infoPtr->nNumStrings == 0) {
|
||||||
|
@ -2360,9 +2361,9 @@ TOOLBAR_GetButtonInfoA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
if (lpTbInfo->dwMask & TBIF_TEXT) {
|
if (lpTbInfo->dwMask & TBIF_TEXT) {
|
||||||
if ((btnPtr->iString >= 0) && (btnPtr->iString < infoPtr->nNumStrings))
|
if ((btnPtr->iString >= 0) && (btnPtr->iString < infoPtr->nNumStrings))
|
||||||
{
|
{
|
||||||
lstrcpynWtoA (lpTbInfo->pszText,
|
if (!WideCharToMultiByte( CP_ACP, 0, (LPWSTR)infoPtr->strings[btnPtr->iString], -1,
|
||||||
(LPWSTR)infoPtr->strings[btnPtr->iString],
|
lpTbInfo->pszText, lpTbInfo->cchText, NULL, NULL ))
|
||||||
lpTbInfo->cchText);
|
lpTbInfo->pszText[lpTbInfo->cchText-1] = 0;
|
||||||
}
|
}
|
||||||
else lpTbInfo->pszText[0]=0;
|
else lpTbInfo->pszText[0]=0;
|
||||||
}
|
}
|
||||||
|
@ -2444,9 +2445,8 @@ TOOLBAR_GetButtonTextA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
if (lParam == 0)
|
if (lParam == 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
lstrcpyWtoA ((LPSTR)lParam, (LPWSTR)infoPtr->strings[nStringIndex]);
|
return WideCharToMultiByte( CP_ACP, 0, (LPWSTR)infoPtr->strings[nStringIndex], -1,
|
||||||
|
(LPSTR)lParam, 0x7fffffff, NULL, NULL ) - 1;
|
||||||
return lstrlenW ((LPWSTR)infoPtr->strings[nStringIndex]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2472,7 +2472,7 @@ TOOLBAR_GetButtonTextW (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
strcpyW ((LPWSTR)lParam, (LPWSTR)infoPtr->strings[nStringIndex]);
|
strcpyW ((LPWSTR)lParam, (LPWSTR)infoPtr->strings[nStringIndex]);
|
||||||
|
|
||||||
return lstrlenW ((LPWSTR)infoPtr->strings[nStringIndex]);
|
return strlenW ((LPWSTR)infoPtr->strings[nStringIndex]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2775,7 +2775,7 @@ TOOLBAR_InsertButtonA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
LPSTR ptr;
|
LPSTR ptr;
|
||||||
|
|
||||||
if(lpTbb->iString) {
|
if(lpTbb->iString) {
|
||||||
len = lstrlenA((char*)lpTbb->iString) + 2;
|
len = strlen((char*)lpTbb->iString) + 2;
|
||||||
ptr = COMCTL32_Alloc(len);
|
ptr = COMCTL32_Alloc(len);
|
||||||
nIndex = infoPtr->nNumButtons;
|
nIndex = infoPtr->nNumButtons;
|
||||||
strcpy(ptr, (char*)lpTbb->iString);
|
strcpy(ptr, (char*)lpTbb->iString);
|
||||||
|
|
|
@ -31,7 +31,6 @@
|
||||||
|
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "commctrl.h"
|
#include "commctrl.h"
|
||||||
#include "comctl32.h"
|
#include "comctl32.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
@ -1210,11 +1209,11 @@ TREEVIEW_InsertItemW(TREEVIEW_INFO *infoPtr, LPARAM lParam)
|
||||||
{
|
{
|
||||||
if (tvisW->DUMMYUNIONNAME.item.pszText != LPSTR_TEXTCALLBACKW)
|
if (tvisW->DUMMYUNIONNAME.item.pszText != LPSTR_TEXTCALLBACKW)
|
||||||
{
|
{
|
||||||
int len = lstrlenW(tvisW->DUMMYUNIONNAME.item.pszText) + 1;
|
int len = WideCharToMultiByte( CP_ACP, 0, tvisW->DUMMYUNIONNAME.item.pszText, -1,
|
||||||
|
NULL, 0, NULL, NULL );
|
||||||
tvisA.DUMMYUNIONNAME.item.pszText = COMCTL32_Alloc(len);
|
tvisA.DUMMYUNIONNAME.item.pszText = COMCTL32_Alloc(len);
|
||||||
lstrcpyWtoA(tvisA.DUMMYUNIONNAME.item.pszText,
|
WideCharToMultiByte( CP_ACP, 0, tvisW->DUMMYUNIONNAME.item.pszText, -1,
|
||||||
tvisW->DUMMYUNIONNAME.item.pszText);
|
tvisA.DUMMYUNIONNAME.item.pszText, len, NULL, NULL );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -9,12 +9,12 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winuser16.h"
|
#include "wine/winuser16.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "ldt.h"
|
#include "ldt.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "commdlg.h"
|
#include "commdlg.h"
|
||||||
|
@ -629,7 +629,7 @@ void FILEDLG_UpdateResult(LFSPRIVATE lfs, WCHAR *tmpstr)
|
||||||
WCHAR tmpstr2[BUFFILE];
|
WCHAR tmpstr2[BUFFILE];
|
||||||
|
|
||||||
GetCurrentDirectoryW(BUFFILE, tmpstr2);
|
GetCurrentDirectoryW(BUFFILE, tmpstr2);
|
||||||
lenstr2 = lstrlenW(tmpstr2);
|
lenstr2 = strlenW(tmpstr2);
|
||||||
if (lenstr2 > 3)
|
if (lenstr2 > 3)
|
||||||
tmpstr2[lenstr2++]='\\';
|
tmpstr2[lenstr2++]='\\';
|
||||||
lstrcpynW(tmpstr2+lenstr2, tmpstr, BUFFILE-lenstr2);
|
lstrcpynW(tmpstr2+lenstr2, tmpstr, BUFFILE-lenstr2);
|
||||||
|
@ -646,13 +646,18 @@ void FILEDLG_UpdateResult(LFSPRIVATE lfs, WCHAR *tmpstr)
|
||||||
/* update the real client structures if any */
|
/* update the real client structures if any */
|
||||||
if (lfs->ofn16)
|
if (lfs->ofn16)
|
||||||
{
|
{
|
||||||
lstrcpynWtoA(PTR_SEG_TO_LIN(lfs->ofn16->lpstrFile), ofnW->lpstrFile, ofnW->nMaxFile);
|
char *dest = PTR_SEG_TO_LIN(lfs->ofn16->lpstrFile);
|
||||||
|
if (!WideCharToMultiByte( CP_ACP, 0, ofnW->lpstrFile, -1,
|
||||||
|
dest, ofnW->nMaxFile, NULL, NULL ))
|
||||||
|
dest[ofnW->nMaxFile-1] = 0;
|
||||||
lfs->ofn16->nFileOffset = ofnW->nFileOffset;
|
lfs->ofn16->nFileOffset = ofnW->nFileOffset;
|
||||||
lfs->ofn16->nFileExtension = ofnW->nFileExtension;
|
lfs->ofn16->nFileExtension = ofnW->nFileExtension;
|
||||||
}
|
}
|
||||||
if (lfs->ofnA)
|
if (lfs->ofnA)
|
||||||
{
|
{
|
||||||
lstrcpynWtoA(lfs->ofnA->lpstrFile, ofnW->lpstrFile, ofnW->nMaxFile);
|
if (!WideCharToMultiByte( CP_ACP, 0, ofnW->lpstrFile, -1,
|
||||||
|
lfs->ofnA->lpstrFile, ofnW->nMaxFile, NULL, NULL ))
|
||||||
|
lfs->ofnA->lpstrFile[ofnW->nMaxFile-1] = 0;
|
||||||
lfs->ofnA->nFileOffset = ofnW->nFileOffset;
|
lfs->ofnA->nFileOffset = ofnW->nFileOffset;
|
||||||
lfs->ofnA->nFileExtension = ofnW->nFileExtension;
|
lfs->ofnA->nFileExtension = ofnW->nFileExtension;
|
||||||
}
|
}
|
||||||
|
@ -673,11 +678,18 @@ void FILEDLG_UpdateFileTitle(LFSPRIVATE lfs)
|
||||||
SendDlgItemMessageW(lfs->hwnd, lst1, LB_GETTEXT, lRet,
|
SendDlgItemMessageW(lfs->hwnd, lst1, LB_GETTEXT, lRet,
|
||||||
(LPARAM)ofnW->lpstrFileTitle );
|
(LPARAM)ofnW->lpstrFileTitle );
|
||||||
if (lfs->ofn16)
|
if (lfs->ofn16)
|
||||||
lstrcpynWtoA(PTR_SEG_TO_LIN(lfs->ofn16->lpstrFileTitle),ofnW->lpstrFileTitle,
|
{
|
||||||
ofnW->nMaxFileTitle);
|
char *dest = PTR_SEG_TO_LIN(lfs->ofn16->lpstrFileTitle);
|
||||||
|
if (!WideCharToMultiByte( CP_ACP, 0, ofnW->lpstrFileTitle, -1,
|
||||||
|
dest, ofnW->nMaxFileTitle, NULL, NULL ))
|
||||||
|
dest[ofnW->nMaxFileTitle-1] = 0;
|
||||||
|
}
|
||||||
if (lfs->ofnA)
|
if (lfs->ofnA)
|
||||||
lstrcpynWtoA(lfs->ofnA->lpstrFileTitle,ofnW->lpstrFileTitle,
|
{
|
||||||
ofnW->nMaxFileTitle);
|
if (!WideCharToMultiByte( CP_ACP, 0, ofnW->lpstrFileTitle, -1,
|
||||||
|
lfs->ofnA->lpstrFileTitle, ofnW->nMaxFileTitle, NULL, NULL ))
|
||||||
|
lfs->ofnA->lpstrFileTitle[ofnW->nMaxFileTitle-1] = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1017,8 +1029,8 @@ void FILEDLG_MapDrawItemStruct(LPDRAWITEMSTRUCT16 lpdis16, LPDRAWITEMSTRUCT lpdi
|
||||||
LPWSTR FILEDLG_MapStringPairsToW(LPCSTR strA, UINT size)
|
LPWSTR FILEDLG_MapStringPairsToW(LPCSTR strA, UINT size)
|
||||||
{
|
{
|
||||||
LPCSTR s;
|
LPCSTR s;
|
||||||
LPWSTR x, y;
|
LPWSTR x;
|
||||||
int n;
|
int n, len;
|
||||||
|
|
||||||
s = strA;
|
s = strA;
|
||||||
while (*s)
|
while (*s)
|
||||||
|
@ -1027,15 +1039,10 @@ LPWSTR FILEDLG_MapStringPairsToW(LPCSTR strA, UINT size)
|
||||||
n = s - strA;
|
n = s - strA;
|
||||||
if (n < size) n = size;
|
if (n < size) n = size;
|
||||||
|
|
||||||
x = y = HeapAlloc(GetProcessHeap(),0, n * sizeof(WCHAR));
|
len = MultiByteToWideChar( CP_ACP, 0, strA, n, NULL, 0 );
|
||||||
s = strA;
|
x = HeapAlloc(GetProcessHeap(),0, len * sizeof(WCHAR));
|
||||||
while (*s) {
|
MultiByteToWideChar( CP_ACP, 0, strA, n, x, len );
|
||||||
lstrcpyAtoW(x, s);
|
return x;
|
||||||
x += lstrlenW(x)+1;
|
|
||||||
s += strlen(s)+1;
|
|
||||||
}
|
|
||||||
*x = 0;
|
|
||||||
return y;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1043,17 +1050,17 @@ LPWSTR FILEDLG_MapStringPairsToW(LPCSTR strA, UINT size)
|
||||||
* FILEDLG_DupToW [internal]
|
* FILEDLG_DupToW [internal]
|
||||||
* duplicates an Ansi string to unicode, with a buffer size
|
* duplicates an Ansi string to unicode, with a buffer size
|
||||||
*/
|
*/
|
||||||
LPWSTR FILEDLG_DupToW(LPCSTR str, UINT size)
|
LPWSTR FILEDLG_DupToW(LPCSTR str, DWORD *size)
|
||||||
{
|
{
|
||||||
LPWSTR strW;
|
LPWSTR strW = NULL;
|
||||||
if (str && (size > 0))
|
DWORD len = MultiByteToWideChar( CP_ACP, 0, str, -1, NULL, 0 );
|
||||||
|
if (str && (len > 0))
|
||||||
{
|
{
|
||||||
strW = HeapAlloc(GetProcessHeap(), 0, size * sizeof(WCHAR));
|
strW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
|
||||||
lstrcpynAtoW(strW, str, size);
|
if (strW) MultiByteToWideChar( CP_ACP, 0, str, -1, strW, len );
|
||||||
return strW;
|
|
||||||
}
|
}
|
||||||
else
|
if (size) *size = len;
|
||||||
return NULL;
|
return strW;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1077,10 +1084,8 @@ void FILEDLG_MapOfnStructA(LPOPENFILENAMEA ofnA, LPOPENFILENAMEW ofnW, BOOL open
|
||||||
ofnW->lpstrCustomFilter = FILEDLG_MapStringPairsToW(ofnA->lpstrCustomFilter, ofnA->nMaxCustFilter);
|
ofnW->lpstrCustomFilter = FILEDLG_MapStringPairsToW(ofnA->lpstrCustomFilter, ofnA->nMaxCustFilter);
|
||||||
ofnW->nMaxCustFilter = ofnA->nMaxCustFilter;
|
ofnW->nMaxCustFilter = ofnA->nMaxCustFilter;
|
||||||
ofnW->nFilterIndex = ofnA->nFilterIndex;
|
ofnW->nFilterIndex = ofnA->nFilterIndex;
|
||||||
ofnW->lpstrFile = FILEDLG_DupToW(ofnA->lpstrFile, ofnA->nMaxFile);
|
ofnW->lpstrFile = FILEDLG_DupToW(ofnA->lpstrFile, &ofnW->nMaxFile);
|
||||||
ofnW->nMaxFile = ofnA->nMaxFile;
|
ofnW->lpstrFileTitle = FILEDLG_DupToW(ofnA->lpstrFileTitle, &ofnW->nMaxFileTitle);
|
||||||
ofnW->lpstrFileTitle = FILEDLG_DupToW(ofnA->lpstrFileTitle, ofnA->nMaxFileTitle);
|
|
||||||
ofnW->nMaxFileTitle = ofnA->nMaxFileTitle;
|
|
||||||
if (ofnA->lpstrInitialDir)
|
if (ofnA->lpstrInitialDir)
|
||||||
ofnW->lpstrInitialDir = HEAP_strdupAtoW(GetProcessHeap(),0,ofnA->lpstrInitialDir);
|
ofnW->lpstrInitialDir = HEAP_strdupAtoW(GetProcessHeap(),0,ofnA->lpstrInitialDir);
|
||||||
if (ofnA->lpstrTitle)
|
if (ofnA->lpstrTitle)
|
||||||
|
@ -1092,7 +1097,7 @@ void FILEDLG_MapOfnStructA(LPOPENFILENAMEA ofnA, LPOPENFILENAMEW ofnW, BOOL open
|
||||||
ofnW->Flags = ofnA->Flags;
|
ofnW->Flags = ofnA->Flags;
|
||||||
ofnW->nFileOffset = ofnA->nFileOffset;
|
ofnW->nFileOffset = ofnA->nFileOffset;
|
||||||
ofnW->nFileExtension = ofnA->nFileExtension;
|
ofnW->nFileExtension = ofnA->nFileExtension;
|
||||||
ofnW->lpstrDefExt = FILEDLG_DupToW(ofnA->lpstrDefExt, 3);
|
ofnW->lpstrDefExt = FILEDLG_DupToW(ofnA->lpstrDefExt, NULL);
|
||||||
if ((ofnA->Flags & OFN_ENABLETEMPLATE) && (ofnA->lpTemplateName))
|
if ((ofnA->Flags & OFN_ENABLETEMPLATE) && (ofnA->lpTemplateName))
|
||||||
{
|
{
|
||||||
if (HIWORD(ofnA->lpTemplateName))
|
if (HIWORD(ofnA->lpTemplateName))
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
|
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "ntddk.h"
|
#include "ntddk.h"
|
||||||
#include "wine/winestring.h"
|
#include "winnls.h"
|
||||||
#include "ldt.h"
|
#include "ldt.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "commdlg.h"
|
#include "commdlg.h"
|
||||||
|
@ -49,7 +49,6 @@
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "cderr.h"
|
#include "cderr.h"
|
||||||
#include "tweak.h"
|
#include "tweak.h"
|
||||||
#include "winnls.h"
|
|
||||||
#include "shellapi.h"
|
#include "shellapi.h"
|
||||||
#include "shlguid.h"
|
#include "shlguid.h"
|
||||||
#include "filedlgbrowser.h"
|
#include "filedlgbrowser.h"
|
||||||
|
@ -336,9 +335,10 @@ BOOL WINAPI GetFileDialog95A(LPOPENFILENAMEA ofn,UINT iDlgType)
|
||||||
#define AllocInArgWtoA(arg, save) \
|
#define AllocInArgWtoA(arg, save) \
|
||||||
if(arg) \
|
if(arg) \
|
||||||
{ \
|
{ \
|
||||||
|
DWORD _len = WideCharToMultiByte( CP_ACP, 0, arg, -1, NULL, 0, NULL, NULL ); \
|
||||||
save = arg; \
|
save = arg; \
|
||||||
arg = MemAlloc(lstrlenW(arg)); \
|
arg = MemAlloc(_len); \
|
||||||
lstrcpyWtoA((LPSTR)arg, save); \
|
WideCharToMultiByte( CP_ACP, 0, save, -1, (LPSTR)arg, _len, NULL, NULL ); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define FreeInArg(arg, save) \
|
#define FreeInArg(arg, save) \
|
||||||
|
@ -359,7 +359,7 @@ BOOL WINAPI GetFileDialog95A(LPOPENFILENAMEA ofn,UINT iDlgType)
|
||||||
#define FreeOutArg(arg, save, len) \
|
#define FreeOutArg(arg, save, len) \
|
||||||
if(arg) \
|
if(arg) \
|
||||||
{ \
|
{ \
|
||||||
lstrcpynAtoW(save, (LPCSTR)arg, len); \
|
MultiByteToWideChar( CP_ACP, 0, (LPCSTR)(arg), -1, (save), (len) ); \
|
||||||
MemFree(arg); \
|
MemFree(arg); \
|
||||||
arg = save; \
|
arg = save; \
|
||||||
}
|
}
|
||||||
|
@ -396,26 +396,20 @@ BOOL WINAPI GetFileDialog95W(LPOPENFILENAMEW ofn,UINT iDlgType)
|
||||||
if (ofn->lpstrFilter)
|
if (ofn->lpstrFilter)
|
||||||
{
|
{
|
||||||
LPCWSTR s;
|
LPCWSTR s;
|
||||||
LPSTR x, y;
|
LPSTR y;
|
||||||
int n;
|
int n, len;
|
||||||
|
|
||||||
lpstrFilter = ofn->lpstrFilter;
|
lpstrFilter = ofn->lpstrFilter;
|
||||||
|
|
||||||
/* filter is a list... title\0ext\0......\0\0 */
|
/* filter is a list... title\0ext\0......\0\0 */
|
||||||
s = ofn->lpstrFilter;
|
s = ofn->lpstrFilter;
|
||||||
|
|
||||||
while (*s) s = s+lstrlenW(s)+1;
|
while (*s) s = s+strlenW(s)+1;
|
||||||
s++;
|
s++;
|
||||||
n = s - ofn->lpstrFilter; /* already divides by 2. ptr magic */
|
n = s - ofn->lpstrFilter; /* already divides by 2. ptr magic */
|
||||||
x = y = (LPSTR)MemAlloc(n);
|
len = WideCharToMultiByte( CP_ACP, 0, ofn->lpstrFilter, n, NULL, 0, NULL, NULL );
|
||||||
s = (LPWSTR)ofn->lpstrFilter;
|
y = (LPSTR)MemAlloc(len);
|
||||||
while (*s)
|
WideCharToMultiByte( CP_ACP, 0, ofn->lpstrFilter, n, y, len, NULL, NULL );
|
||||||
{
|
|
||||||
lstrcpyWtoA(x,s);
|
|
||||||
x+=strlen(x)+1;
|
|
||||||
s+=lstrlenW(s)+1;
|
|
||||||
}
|
|
||||||
*x=0;
|
|
||||||
(LPSTR)ofn->lpstrFilter = y;
|
(LPSTR)ofn->lpstrFilter = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -423,24 +417,18 @@ BOOL WINAPI GetFileDialog95W(LPOPENFILENAMEW ofn,UINT iDlgType)
|
||||||
if (ofn->lpstrCustomFilter)
|
if (ofn->lpstrCustomFilter)
|
||||||
{
|
{
|
||||||
LPWSTR s;
|
LPWSTR s;
|
||||||
LPSTR x,y;
|
LPSTR y;
|
||||||
int n;
|
int n, len;
|
||||||
|
|
||||||
lpstrCustomFilter = ofn->lpstrCustomFilter;
|
lpstrCustomFilter = ofn->lpstrCustomFilter;
|
||||||
/* filter is a list... title\0ext\0......\0\0 */
|
/* filter is a list... title\0ext\0......\0\0 */
|
||||||
s = ofn->lpstrCustomFilter;
|
s = ofn->lpstrCustomFilter;
|
||||||
while (*s) s = s+lstrlenW(s)+1;
|
while (*s) s = s+strlenW(s)+1;
|
||||||
s++;
|
s++;
|
||||||
n = s - ofn->lpstrCustomFilter;
|
n = s - ofn->lpstrCustomFilter;
|
||||||
x = y = (LPSTR)MemAlloc(n);
|
len = WideCharToMultiByte( CP_ACP, 0, ofn->lpstrCustomFilter, n, NULL, 0, NULL, NULL );
|
||||||
s = ofn->lpstrCustomFilter;
|
y = (LPSTR)MemAlloc(len);
|
||||||
while (*s)
|
WideCharToMultiByte( CP_ACP, 0, ofn->lpstrCustomFilter, n, y, len, NULL, NULL );
|
||||||
{
|
|
||||||
lstrcpyWtoA(x,s);
|
|
||||||
x+=strlen(x)+1;
|
|
||||||
s+=lstrlenW(s)+1;
|
|
||||||
}
|
|
||||||
*x=0;
|
|
||||||
(LPSTR)ofn->lpstrCustomFilter = y;
|
(LPSTR)ofn->lpstrCustomFilter = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1362,10 +1350,15 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
|
||||||
if (!lpszTemp) break; /* end of path */
|
if (!lpszTemp) break; /* end of path */
|
||||||
|
|
||||||
if(*lpszTemp)
|
if(*lpszTemp)
|
||||||
lstrcpynAtoW(lpwstrTemp, lpszTemp1, lpszTemp - lpszTemp1);
|
{
|
||||||
|
DWORD len = MultiByteToWideChar( CP_ACP, 0, lpszTemp1, lpszTemp - lpszTemp1,
|
||||||
|
lpwstrTemp, MAX_PATH );
|
||||||
|
lpwstrTemp[len] = 0;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lstrcpyAtoW(lpwstrTemp, lpszTemp1); /* last element */
|
MultiByteToWideChar( CP_ACP, 0, lpszTemp1, -1,
|
||||||
|
lpwstrTemp, sizeof(lpwstrTemp)/sizeof(WCHAR) );
|
||||||
|
|
||||||
/* if the last element is a wildcard do a search */
|
/* if the last element is a wildcard do a search */
|
||||||
if(strpbrk(lpszTemp1, "*?") != NULL)
|
if(strpbrk(lpszTemp1, "*?") != NULL)
|
||||||
|
@ -1450,12 +1443,15 @@ BOOL FILEDLG95_OnOpen(HWND hwnd)
|
||||||
{
|
{
|
||||||
int iPos;
|
int iPos;
|
||||||
LPSTR lpszTemp = COMDLG32_PathFindFileNameA(lpstrPathAndFile);
|
LPSTR lpszTemp = COMDLG32_PathFindFileNameA(lpstrPathAndFile);
|
||||||
|
DWORD len;
|
||||||
|
|
||||||
/* replace the current filter */
|
/* replace the current filter */
|
||||||
if(fodInfos->ShellInfos.lpstrCurrentFilter)
|
if(fodInfos->ShellInfos.lpstrCurrentFilter)
|
||||||
MemFree((LPVOID)fodInfos->ShellInfos.lpstrCurrentFilter);
|
MemFree((LPVOID)fodInfos->ShellInfos.lpstrCurrentFilter);
|
||||||
fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc((strlen(lpszTemp)+1)*sizeof(WCHAR));
|
len = MultiByteToWideChar( CP_ACP, 0, lpszTemp, -1, NULL, 0 );
|
||||||
lstrcpyAtoW(fodInfos->ShellInfos.lpstrCurrentFilter, lpszTemp);
|
fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc(len * sizeof(WCHAR));
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, lpszTemp, -1,
|
||||||
|
fodInfos->ShellInfos.lpstrCurrentFilter, len );
|
||||||
|
|
||||||
/* set the filter cb to the extension when possible */
|
/* set the filter cb to the extension when possible */
|
||||||
if(-1 < (iPos = FILEDLG95_FILETYPE_SearchExt(fodInfos->DlgInfos.hwndFileTypeCB, lpszTemp)))
|
if(-1 < (iPos = FILEDLG95_FILETYPE_SearchExt(fodInfos->DlgInfos.hwndFileTypeCB, lpszTemp)))
|
||||||
|
@ -1755,9 +1751,12 @@ static HRESULT FILEDLG95_FILETYPE_Init(HWND hwnd)
|
||||||
|
|
||||||
if(lpstrFilter)
|
if(lpstrFilter)
|
||||||
{
|
{
|
||||||
|
DWORD len;
|
||||||
_strlwr(lpstrFilter); /* lowercase */
|
_strlwr(lpstrFilter); /* lowercase */
|
||||||
fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc((strlen(lpstrFilter)+1)*2);
|
len = MultiByteToWideChar( CP_ACP, 0, lpstrFilter, -1, NULL, 0 );
|
||||||
lstrcpyAtoW(fodInfos->ShellInfos.lpstrCurrentFilter, lpstrFilter);
|
fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc( len * sizeof(WCHAR) );
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, lpstrFilter, -1,
|
||||||
|
fodInfos->ShellInfos.lpstrCurrentFilter, len );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return NOERROR;
|
return NOERROR;
|
||||||
|
@ -1793,9 +1792,13 @@ static BOOL FILEDLG95_FILETYPE_OnCommand(HWND hwnd, WORD wNotifyCode)
|
||||||
iItem);
|
iItem);
|
||||||
if((int)lpstrFilter != CB_ERR)
|
if((int)lpstrFilter != CB_ERR)
|
||||||
{
|
{
|
||||||
fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc((strlen(lpstrFilter)+1)*2);
|
DWORD len;
|
||||||
lstrcpyAtoW(fodInfos->ShellInfos.lpstrCurrentFilter,_strlwr(lpstrFilter));
|
_strlwr(lpstrFilter); /* lowercase */
|
||||||
SendCustomDlgNotificationMessage(hwnd,CDN_TYPECHANGE);
|
len = MultiByteToWideChar( CP_ACP, 0, lpstrFilter, -1, NULL, 0 );
|
||||||
|
fodInfos->ShellInfos.lpstrCurrentFilter = MemAlloc( len * sizeof(WCHAR) );
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, lpstrFilter, -1,
|
||||||
|
fodInfos->ShellInfos.lpstrCurrentFilter, len );
|
||||||
|
SendCustomDlgNotificationMessage(hwnd,CDN_TYPECHANGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Refresh the actual view to display the included items*/
|
/* Refresh the actual view to display the included items*/
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
||||||
|
@ -87,20 +87,23 @@ static HRESULT COMDLG32_StrRetToStrNW (LPVOID dest, DWORD len, LPSTRRET src, LPI
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STRRET_CSTRA:
|
case STRRET_CSTRA:
|
||||||
lstrcpynAtoW((LPWSTR)dest, src->u.cStr, len);
|
if (len && !MultiByteToWideChar( CP_ACP, 0, src->u.cStr, -1, (LPWSTR)dest, len ))
|
||||||
|
((LPWSTR)dest)[len-1] = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STRRET_OFFSETA:
|
case STRRET_OFFSETA:
|
||||||
if (pidl)
|
if (pidl)
|
||||||
{
|
{
|
||||||
lstrcpynAtoW((LPWSTR)dest, ((LPCSTR)&pidl->mkid)+src->u.uOffset, len);
|
if (len && !MultiByteToWideChar( CP_ACP, 0, ((LPCSTR)&pidl->mkid)+src->u.uOffset,
|
||||||
|
-1, (LPWSTR)dest, len ))
|
||||||
|
((LPWSTR)dest)[len-1] = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
FIXME("unknown type!\n");
|
FIXME("unknown type!\n");
|
||||||
if (len)
|
if (len)
|
||||||
{ *(LPSTR)dest = '\0';
|
{ *(LPWSTR)dest = '\0';
|
||||||
}
|
}
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "commdlg.h"
|
#include "commdlg.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
||||||
|
@ -79,7 +79,8 @@ short WINAPI GetFileTitleW(LPCWSTR lpFile, LPWSTR lpTitle, UINT cbBuf)
|
||||||
|
|
||||||
ret = GetFileTitleA(file, title, cbBuf);
|
ret = GetFileTitleA(file, title, cbBuf);
|
||||||
|
|
||||||
lstrcpynAtoW(lpTitle, title, cbBuf);
|
if (cbBuf > 0 && !MultiByteToWideChar( CP_ACP, 0, title, -1, lpTitle, cbBuf ))
|
||||||
|
lpTitle[cbBuf-1] = 0;
|
||||||
HeapFree(GetProcessHeap(), 0, file);
|
HeapFree(GetProcessHeap(), 0, file);
|
||||||
HeapFree(GetProcessHeap(), 0, title);
|
HeapFree(GetProcessHeap(), 0, title);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
|
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "commdlg.h"
|
#include "commdlg.h"
|
||||||
#include "cderr.h"
|
#include "cderr.h"
|
||||||
#include "dlgs.h"
|
#include "dlgs.h"
|
||||||
|
@ -86,7 +86,9 @@ static void COMDLG32_FR_HandleWMCommand(HWND hDlgWnd, COMDLG32_FR_Data *pData, i
|
||||||
pData->user_fr.fra->Flags |= COMDLG32_FR_GetFlags(hDlgWnd) | FR_FINDNEXT;
|
pData->user_fr.fra->Flags |= COMDLG32_FR_GetFlags(hDlgWnd) | FR_FINDNEXT;
|
||||||
if(pData->fr.Flags & FR_WINE_UNICODE)
|
if(pData->fr.Flags & FR_WINE_UNICODE)
|
||||||
{
|
{
|
||||||
lstrcpyAtoW(pData->user_fr.frw->lpstrFindWhat, pData->fr.lpstrFindWhat);
|
MultiByteToWideChar( CP_ACP, 0, pData->fr.lpstrFindWhat, -1,
|
||||||
|
pData->user_fr.frw->lpstrFindWhat,
|
||||||
|
0x7fffffff );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -117,8 +119,12 @@ Replace:
|
||||||
pData->user_fr.fra->Flags |= COMDLG32_FR_GetFlags(hDlgWnd) | flag;
|
pData->user_fr.fra->Flags |= COMDLG32_FR_GetFlags(hDlgWnd) | flag;
|
||||||
if(pData->fr.Flags & FR_WINE_UNICODE)
|
if(pData->fr.Flags & FR_WINE_UNICODE)
|
||||||
{
|
{
|
||||||
lstrcpyAtoW(pData->user_fr.frw->lpstrFindWhat, pData->fr.lpstrFindWhat);
|
MultiByteToWideChar( CP_ACP, 0, pData->fr.lpstrFindWhat, -1,
|
||||||
lstrcpyAtoW(pData->user_fr.frw->lpstrReplaceWith, pData->fr.lpstrReplaceWith);
|
pData->user_fr.frw->lpstrFindWhat,
|
||||||
|
0x7fffffff );
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, pData->fr.lpstrReplaceWith, -1,
|
||||||
|
pData->user_fr.frw->lpstrReplaceWith,
|
||||||
|
0x7fffffff );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -475,21 +481,24 @@ HWND WINAPI FindTextW(
|
||||||
LPFINDREPLACEW pfr /* [in] Find/replace structure*/
|
LPFINDREPLACEW pfr /* [in] Find/replace structure*/
|
||||||
) {
|
) {
|
||||||
COMDLG32_FR_Data *pdata;
|
COMDLG32_FR_Data *pdata;
|
||||||
|
DWORD len;
|
||||||
|
|
||||||
TRACE("LPFINDREPLACE=%p\n", pfr);
|
TRACE("LPFINDREPLACE=%p\n", pfr);
|
||||||
|
|
||||||
if(!COMDLG32_FR_CheckPartial((LPFINDREPLACEA)pfr, FALSE))
|
if(!COMDLG32_FR_CheckPartial((LPFINDREPLACEA)pfr, FALSE))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if((pdata = (COMDLG32_FR_Data *)COMDLG32_AllocMem(sizeof(COMDLG32_FR_Data)
|
len = WideCharToMultiByte( CP_ACP, 0, pfr->lpstrFindWhat, pfr->wFindWhatLen,
|
||||||
+ pfr->wFindWhatLen)) == NULL)
|
NULL, 0, NULL, NULL );
|
||||||
return 0; /* Error has been set */
|
if((pdata = (COMDLG32_FR_Data *)COMDLG32_AllocMem(sizeof(COMDLG32_FR_Data) + len)) == NULL)
|
||||||
|
return 0; /* Error has been set */
|
||||||
|
|
||||||
pdata->user_fr.frw = pfr;
|
pdata->user_fr.frw = pfr;
|
||||||
pdata->fr = *(LPFINDREPLACEA)pfr; /* FINDREPLACEx have same size */
|
pdata->fr = *(LPFINDREPLACEA)pfr; /* FINDREPLACEx have same size */
|
||||||
pdata->fr.Flags |= FR_WINE_UNICODE;
|
pdata->fr.Flags |= FR_WINE_UNICODE;
|
||||||
pdata->fr.lpstrFindWhat = (LPSTR)(((LPFINDREPLACEA)(pdata+1))+1); /* Set string pointer */
|
pdata->fr.lpstrFindWhat = (LPSTR)(((LPFINDREPLACEA)(pdata+1))+1); /* Set string pointer */
|
||||||
lstrcpynWtoA(pdata->fr.lpstrFindWhat, pfr->lpstrFindWhat, pfr->wFindWhatLen);
|
WideCharToMultiByte( CP_ACP, 0, pfr->lpstrFindWhat, pfr->wFindWhatLen,
|
||||||
|
pdata->fr.lpstrFindWhat, len, NULL, NULL );
|
||||||
return COMDLG32_FR_DoFindReplace(pdata);
|
return COMDLG32_FR_DoFindReplace(pdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -503,25 +512,31 @@ HWND WINAPI ReplaceTextW(
|
||||||
LPFINDREPLACEW pfr /* [in] Find/replace structure*/
|
LPFINDREPLACEW pfr /* [in] Find/replace structure*/
|
||||||
) {
|
) {
|
||||||
COMDLG32_FR_Data *pdata;
|
COMDLG32_FR_Data *pdata;
|
||||||
|
DWORD len1, len2;
|
||||||
|
|
||||||
TRACE("LPFINDREPLACE=%p\n", pfr);
|
TRACE("LPFINDREPLACE=%p\n", pfr);
|
||||||
|
|
||||||
if(!COMDLG32_FR_CheckPartial((LPFINDREPLACEA)pfr, FALSE))
|
if(!COMDLG32_FR_CheckPartial((LPFINDREPLACEA)pfr, FALSE))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
len1 = WideCharToMultiByte( CP_ACP, 0, pfr->lpstrFindWhat, pfr->wFindWhatLen,
|
||||||
|
NULL, 0, NULL, NULL );
|
||||||
|
len2 = WideCharToMultiByte( CP_ACP, 0, pfr->lpstrReplaceWith, pfr->wReplaceWithLen,
|
||||||
|
NULL, 0, NULL, NULL );
|
||||||
if((pdata = (COMDLG32_FR_Data *)COMDLG32_AllocMem(sizeof(COMDLG32_FR_Data)
|
if((pdata = (COMDLG32_FR_Data *)COMDLG32_AllocMem(sizeof(COMDLG32_FR_Data)
|
||||||
+ pfr->wFindWhatLen
|
+ len1 + len2)) == NULL)
|
||||||
+ pfr->wReplaceWithLen)) == NULL)
|
return 0; /* Error has been set */
|
||||||
|
|
||||||
return 0; /* Error has been set */
|
|
||||||
|
|
||||||
pdata->user_fr.frw = pfr;
|
pdata->user_fr.frw = pfr;
|
||||||
pdata->fr = *(LPFINDREPLACEA)pfr; /* FINDREPLACEx have same size */
|
pdata->fr = *(LPFINDREPLACEA)pfr; /* FINDREPLACEx have same size */
|
||||||
pdata->fr.Flags |= FR_WINE_REPLACE | FR_WINE_UNICODE;
|
pdata->fr.Flags |= FR_WINE_REPLACE | FR_WINE_UNICODE;
|
||||||
pdata->fr.lpstrFindWhat = (LPSTR)(((LPFINDREPLACEA)(pdata+1))+1); /* Set string pointers */
|
pdata->fr.lpstrFindWhat = (LPSTR)(((LPFINDREPLACEA)(pdata+1))+1); /* Set string pointers */
|
||||||
pdata->fr.lpstrReplaceWith = (LPSTR)(((LPFINDREPLACEA)(pdata+1))+1) + pfr->wFindWhatLen;
|
pdata->fr.lpstrReplaceWith = (LPSTR)(((LPFINDREPLACEA)(pdata+1))+1) + pfr->wFindWhatLen;
|
||||||
lstrcpynWtoA(pdata->fr.lpstrFindWhat, pfr->lpstrFindWhat, pfr->wFindWhatLen);
|
|
||||||
lstrcpynWtoA(pdata->fr.lpstrReplaceWith, pfr->lpstrReplaceWith, pfr->wReplaceWithLen);
|
WideCharToMultiByte( CP_ACP, 0, pfr->lpstrFindWhat, pfr->wFindWhatLen,
|
||||||
|
pdata->fr.lpstrFindWhat, len1, NULL, NULL );
|
||||||
|
WideCharToMultiByte( CP_ACP, 0, pfr->lpstrReplaceWith, pfr->wReplaceWithLen,
|
||||||
|
pdata->fr.lpstrReplaceWith, len2, NULL, NULL );
|
||||||
return COMDLG32_FR_DoFindReplace(pdata);
|
return COMDLG32_FR_DoFindReplace(pdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,11 +10,11 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winuser16.h"
|
#include "wine/winuser16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "ldt.h"
|
#include "ldt.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "commdlg.h"
|
#include "commdlg.h"
|
||||||
|
@ -216,7 +216,10 @@ BOOL WINAPI ChooseFontW(LPCHOOSEFONTW lpChFont)
|
||||||
CF_ENABLETEMPLATEHANDLE)) FIXME(": unimplemented flag (ignored)\n");
|
CF_ENABLETEMPLATEHANDLE)) FIXME(": unimplemented flag (ignored)\n");
|
||||||
memcpy(&cf32a, lpChFont, sizeof(cf32a));
|
memcpy(&cf32a, lpChFont, sizeof(cf32a));
|
||||||
memcpy(&lf32a, lpChFont->lpLogFont, sizeof(LOGFONTA));
|
memcpy(&lf32a, lpChFont->lpLogFont, sizeof(LOGFONTA));
|
||||||
lstrcpynWtoA(lf32a.lfFaceName, lpChFont->lpLogFont->lfFaceName, LF_FACESIZE);
|
|
||||||
|
WideCharToMultiByte( CP_ACP, 0, lpChFont->lpLogFont->lfFaceName, -1,
|
||||||
|
lf32a.lfFaceName, LF_FACESIZE, NULL, NULL );
|
||||||
|
lf32a.lfFaceName[LF_FACESIZE-1] = 0;
|
||||||
cf32a.lpLogFont=&lf32a;
|
cf32a.lpLogFont=&lf32a;
|
||||||
cf32a.lpszStyle=HEAP_strdupWtoA(GetProcessHeap(), 0, lpChFont->lpszStyle);
|
cf32a.lpszStyle=HEAP_strdupWtoA(GetProcessHeap(), 0, lpChFont->lpszStyle);
|
||||||
lpChFont->lpTemplateName=(LPWSTR)&cf32a;
|
lpChFont->lpTemplateName=(LPWSTR)&cf32a;
|
||||||
|
@ -225,7 +228,9 @@ BOOL WINAPI ChooseFontW(LPCHOOSEFONTW lpChFont)
|
||||||
HeapFree(GetProcessHeap(), 0, cf32a.lpszStyle);
|
HeapFree(GetProcessHeap(), 0, cf32a.lpszStyle);
|
||||||
lpChFont->lpTemplateName=(LPWSTR)cf32a.lpTemplateName;
|
lpChFont->lpTemplateName=(LPWSTR)cf32a.lpTemplateName;
|
||||||
memcpy(lpChFont->lpLogFont, &lf32a, sizeof(CHOOSEFONTA));
|
memcpy(lpChFont->lpLogFont, &lf32a, sizeof(CHOOSEFONTA));
|
||||||
lstrcpynAtoW(lpChFont->lpLogFont->lfFaceName, lf32a.lfFaceName, LF_FACESIZE);
|
MultiByteToWideChar( CP_ACP, 0, lf32a.lfFaceName, -1,
|
||||||
|
lpChFont->lpLogFont->lfFaceName, LF_FACESIZE );
|
||||||
|
lpChFont->lpLogFont->lfFaceName[LF_FACESIZE-1] = 0;
|
||||||
return bRet;
|
return bRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "winnls.h"
|
#include "winnls.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
|
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
@ -90,7 +89,7 @@ static INT load_messageA( HMODULE instance, UINT id, WORD lang,
|
||||||
return slen;
|
return slen;
|
||||||
if (i>0) {
|
if (i>0) {
|
||||||
if (mre->Flags & MESSAGE_RESOURCE_UNICODE)
|
if (mre->Flags & MESSAGE_RESOURCE_UNICODE)
|
||||||
lstrcpynWtoA(buffer, (LPWSTR)mre->Text, i);
|
WideCharToMultiByte( CP_ACP, 0, (LPWSTR)mre->Text, -1, buffer, i, NULL, NULL );
|
||||||
else
|
else
|
||||||
lstrcpynA(buffer, (LPSTR)mre->Text, i);
|
lstrcpynA(buffer, (LPSTR)mre->Text, i);
|
||||||
buffer[i]=0;
|
buffer[i]=0;
|
||||||
|
@ -538,10 +537,15 @@ DWORD WINAPI FormatMessageW(
|
||||||
target = (char*)HeapReAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,target,nSize);
|
target = (char*)HeapReAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,target,nSize);
|
||||||
if (dwFlags & FORMAT_MESSAGE_ALLOCATE_BUFFER) {
|
if (dwFlags & FORMAT_MESSAGE_ALLOCATE_BUFFER) {
|
||||||
/* nSize is the MINIMUM size */
|
/* nSize is the MINIMUM size */
|
||||||
*((LPVOID*)lpBuffer) = (LPVOID)LocalAlloc(GMEM_ZEROINIT,talloced*2+2);
|
DWORD len = MultiByteToWideChar( CP_ACP, 0, target, -1, NULL, 0 );
|
||||||
lstrcpynAtoW(*(LPWSTR*)lpBuffer,target,talloced);
|
*((LPVOID*)lpBuffer) = (LPVOID)LocalAlloc(GMEM_ZEROINIT,len*sizeof(WCHAR));
|
||||||
} else
|
MultiByteToWideChar( CP_ACP, 0, target, -1, *(LPWSTR*)lpBuffer, len );
|
||||||
lstrcpynAtoW(lpBuffer,target,nSize);
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (nSize > 0 && !MultiByteToWideChar( CP_ACP, 0, target, -1, lpBuffer, nSize ))
|
||||||
|
lpBuffer[nSize-1] = 0;
|
||||||
|
}
|
||||||
HeapFree(GetProcessHeap(),0,target);
|
HeapFree(GetProcessHeap(),0,target);
|
||||||
if (from) HeapFree(GetProcessHeap(),0,from);
|
if (from) HeapFree(GetProcessHeap(),0,from);
|
||||||
return (dwFlags & FORMAT_MESSAGE_ALLOCATE_BUFFER) ?
|
return (dwFlags & FORMAT_MESSAGE_ALLOCATE_BUFFER) ?
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "lzexpand.h"
|
#include "lzexpand.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "winnetwk.h"
|
#include "winnetwk.h"
|
||||||
#include "drive.h"
|
#include "drive.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
|
@ -370,14 +369,21 @@ DWORD WINAPI WNetGetConnectionA( LPCSTR lpLocalName,
|
||||||
DWORD WINAPI WNetGetConnectionW( LPCWSTR lpLocalName,
|
DWORD WINAPI WNetGetConnectionW( LPCWSTR lpLocalName,
|
||||||
LPWSTR lpRemoteName, LPDWORD lpBufferSize )
|
LPWSTR lpRemoteName, LPDWORD lpBufferSize )
|
||||||
{
|
{
|
||||||
DWORD x;
|
|
||||||
CHAR buf[200];
|
CHAR buf[200];
|
||||||
|
DWORD x = sizeof(buf);
|
||||||
LPSTR lnA = HEAP_strdupWtoA( GetProcessHeap(), 0, lpLocalName );
|
LPSTR lnA = HEAP_strdupWtoA( GetProcessHeap(), 0, lpLocalName );
|
||||||
DWORD ret = WNetGetConnectionA( lnA, buf, &x );
|
DWORD ret = WNetGetConnectionA( lnA, buf, &x );
|
||||||
|
|
||||||
lstrcpyAtoW( lpRemoteName, buf );
|
|
||||||
*lpBufferSize=lstrlenW( lpRemoteName );
|
|
||||||
HeapFree( GetProcessHeap(), 0, lnA );
|
HeapFree( GetProcessHeap(), 0, lnA );
|
||||||
|
if (ret == WN_SUCCESS)
|
||||||
|
{
|
||||||
|
x = MultiByteToWideChar( CP_ACP, 0, buf, -1, NULL, 0 );
|
||||||
|
if (x > *lpBufferSize)
|
||||||
|
{
|
||||||
|
*lpBufferSize = x;
|
||||||
|
return WN_MORE_DATA;
|
||||||
|
}
|
||||||
|
*lpBufferSize = MultiByteToWideChar( CP_ACP, 0, buf, -1, lpRemoteName, *lpBufferSize );
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "mmsystem.h"
|
#include "mmsystem.h"
|
||||||
|
@ -127,11 +126,16 @@ MMRESULT WINAPI acmDriverDetailsA(HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, D
|
||||||
padd->cFormatTags = addw.cFormatTags;
|
padd->cFormatTags = addw.cFormatTags;
|
||||||
padd->cFilterTags = addw.cFilterTags;
|
padd->cFilterTags = addw.cFilterTags;
|
||||||
padd->hicon = addw.hicon;
|
padd->hicon = addw.hicon;
|
||||||
lstrcpyWtoA(padd->szShortName, addw.szShortName);
|
WideCharToMultiByte( CP_ACP, 0, addw.szShortName, -1, padd->szShortName,
|
||||||
lstrcpyWtoA(padd->szLongName, addw.szLongName);
|
sizeof(padd->szShortName), NULL, NULL );
|
||||||
lstrcpyWtoA(padd->szCopyright, addw.szCopyright);
|
WideCharToMultiByte( CP_ACP, 0, addw.szLongName, -1, padd->szLongName,
|
||||||
lstrcpyWtoA(padd->szLicensing, addw.szLicensing);
|
sizeof(padd->szLongName), NULL, NULL );
|
||||||
lstrcpyWtoA(padd->szFeatures, addw.szFeatures);
|
WideCharToMultiByte( CP_ACP, 0, addw.szCopyright, -1, padd->szCopyright,
|
||||||
|
sizeof(padd->szCopyright), NULL, NULL );
|
||||||
|
WideCharToMultiByte( CP_ACP, 0, addw.szLicensing, -1, padd->szLicensing,
|
||||||
|
sizeof(padd->szLicensing), NULL, NULL );
|
||||||
|
WideCharToMultiByte( CP_ACP, 0, addw.szFeatures, -1, padd->szFeatures,
|
||||||
|
sizeof(padd->szFeatures), NULL, NULL );
|
||||||
}
|
}
|
||||||
return mmr;
|
return mmr;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "mmsystem.h"
|
#include "mmsystem.h"
|
||||||
#include "msacm.h"
|
#include "msacm.h"
|
||||||
#include "msacmdrv.h"
|
#include "msacmdrv.h"
|
||||||
|
@ -57,7 +57,8 @@ MMRESULT WINAPI acmFilterDetailsA(HACMDRIVER had, PACMFILTERDETAILSA pafd,
|
||||||
if (mmr == MMSYSERR_NOERROR) {
|
if (mmr == MMSYSERR_NOERROR) {
|
||||||
pafd->dwFilterTag = afdw.dwFilterTag;
|
pafd->dwFilterTag = afdw.dwFilterTag;
|
||||||
pafd->fdwSupport = afdw.fdwSupport;
|
pafd->fdwSupport = afdw.fdwSupport;
|
||||||
lstrcpyWtoA(pafd->szFilter, afdw.szFilter);
|
WideCharToMultiByte( CP_ACP, 0, afdw.szFilter, -1, pafd->szFilter,
|
||||||
|
sizeof(pafd->szFilter), NULL, NULL );
|
||||||
}
|
}
|
||||||
return mmr;
|
return mmr;
|
||||||
}
|
}
|
||||||
|
@ -136,7 +137,8 @@ static BOOL CALLBACK MSACM_FilterEnumCallbackWtoA(HACMDRIVERID hadid,
|
||||||
pafei->pafda->dwFilterIndex = pafdw->dwFilterIndex;
|
pafei->pafda->dwFilterIndex = pafdw->dwFilterIndex;
|
||||||
pafei->pafda->dwFilterTag = pafdw->dwFilterTag;
|
pafei->pafda->dwFilterTag = pafdw->dwFilterTag;
|
||||||
pafei->pafda->fdwSupport = pafdw->fdwSupport;
|
pafei->pafda->fdwSupport = pafdw->fdwSupport;
|
||||||
lstrcpyWtoA(pafei->pafda->szFilter, pafdw->szFilter);
|
WideCharToMultiByte( CP_ACP, 0, pafdw->szFilter, -1, pafei->pafda->szFilter,
|
||||||
|
sizeof(pafei->pafda->szFilter), NULL, NULL );
|
||||||
|
|
||||||
return (pafei->fnCallback)(hadid, pafei->pafda,
|
return (pafei->fnCallback)(hadid, pafei->pafda,
|
||||||
pafei->dwInstance, fdwSupport);
|
pafei->dwInstance, fdwSupport);
|
||||||
|
@ -263,7 +265,8 @@ MMRESULT WINAPI acmFilterTagDetailsA(HACMDRIVER had, PACMFILTERTAGDETAILSA paftd
|
||||||
paftda->cbFilterSize = aftdw.cbFilterSize;
|
paftda->cbFilterSize = aftdw.cbFilterSize;
|
||||||
paftda->fdwSupport = aftdw.fdwSupport;
|
paftda->fdwSupport = aftdw.fdwSupport;
|
||||||
paftda->cStandardFilters = aftdw.cStandardFilters;
|
paftda->cStandardFilters = aftdw.cStandardFilters;
|
||||||
lstrcpyWtoA(paftda->szFilterTag, aftdw.szFilterTag);
|
WideCharToMultiByte( CP_ACP, 0, aftdw.szFilterTag, -1, paftda->szFilterTag,
|
||||||
|
sizeof(paftda->szFilterTag), NULL, NULL );
|
||||||
}
|
}
|
||||||
return mmr;
|
return mmr;
|
||||||
}
|
}
|
||||||
|
@ -348,7 +351,8 @@ MMRESULT WINAPI acmFilterTagDetailsW(HACMDRIVER had, PACMFILTERTAGDETAILSW paftd
|
||||||
|
|
||||||
if (mmr == MMSYSERR_NOERROR &&
|
if (mmr == MMSYSERR_NOERROR &&
|
||||||
paftd->dwFilterTag == WAVE_FORMAT_PCM && paftd->szFilterTag[0] == 0)
|
paftd->dwFilterTag == WAVE_FORMAT_PCM && paftd->szFilterTag[0] == 0)
|
||||||
lstrcpyAtoW(paftd->szFilterTag, "PCM");
|
MultiByteToWideChar( CP_ACP, 0, "PCM", -1, paftd->szFilterTag,
|
||||||
|
sizeof(paftd->szFilterTag)/sizeof(WCHAR) );
|
||||||
|
|
||||||
return mmr;
|
return mmr;
|
||||||
}
|
}
|
||||||
|
@ -373,7 +377,8 @@ static BOOL CALLBACK MSACM_FilterTagEnumCallbackWtoA(HACMDRIVERID hadid,
|
||||||
paftei->paftda->cbFilterSize = paftdw->cbFilterSize;
|
paftei->paftda->cbFilterSize = paftdw->cbFilterSize;
|
||||||
paftei->paftda->fdwSupport = paftdw->fdwSupport;
|
paftei->paftda->fdwSupport = paftdw->fdwSupport;
|
||||||
paftei->paftda->cStandardFilters = paftdw->cStandardFilters;
|
paftei->paftda->cStandardFilters = paftdw->cStandardFilters;
|
||||||
lstrcpyWtoA(paftei->paftda->szFilterTag, paftdw->szFilterTag);
|
WideCharToMultiByte( CP_ACP, 0, paftdw->szFilterTag, -1, paftei->paftda->szFilterTag,
|
||||||
|
sizeof(paftei->paftda->szFilterTag), NULL, NULL );
|
||||||
|
|
||||||
return (paftei->fnCallback)(hadid, paftei->paftda,
|
return (paftei->fnCallback)(hadid, paftei->paftda,
|
||||||
paftei->dwInstance, fdwSupport);
|
paftei->dwInstance, fdwSupport);
|
||||||
|
|
|
@ -8,11 +8,12 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "wine/winestring.h"
|
#include "wine/unicode.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "mmsystem.h"
|
#include "mmsystem.h"
|
||||||
#include "msacm.h"
|
#include "msacm.h"
|
||||||
|
@ -279,7 +280,8 @@ MMRESULT WINAPI acmFormatDetailsA(HACMDRIVER had, PACMFORMATDETAILSA pafd,
|
||||||
if (mmr == MMSYSERR_NOERROR) {
|
if (mmr == MMSYSERR_NOERROR) {
|
||||||
pafd->dwFormatTag = afdw.dwFormatTag;
|
pafd->dwFormatTag = afdw.dwFormatTag;
|
||||||
pafd->fdwSupport = afdw.fdwSupport;
|
pafd->fdwSupport = afdw.fdwSupport;
|
||||||
lstrcpyWtoA(pafd->szFormat, afdw.szFormat);
|
WideCharToMultiByte( CP_ACP, 0, afdw.szFormat, -1,
|
||||||
|
pafd->szFormat, sizeof(pafd->szFormat), NULL, NULL );
|
||||||
}
|
}
|
||||||
return mmr;
|
return mmr;
|
||||||
}
|
}
|
||||||
|
@ -344,8 +346,9 @@ MMRESULT WINAPI acmFormatDetailsW(HACMDRIVER had, PACMFORMATDETAILSW pafd,
|
||||||
wsprintfW(pafd->szFormat + lstrlenW(pafd->szFormat), fmt2,
|
wsprintfW(pafd->szFormat + lstrlenW(pafd->szFormat), fmt2,
|
||||||
pafd->pwfx->wBitsPerSample);
|
pafd->pwfx->wBitsPerSample);
|
||||||
}
|
}
|
||||||
lstrcpyAtoW(pafd->szFormat + lstrlenW(pafd->szFormat),
|
MultiByteToWideChar( CP_ACP, 0, (pafd->pwfx->nChannels == 1) ? "; Mono" : "; Stereo", -1,
|
||||||
(pafd->pwfx->nChannels == 1) ? "; Mono" : "; Stereo");
|
pafd->szFormat + strlenW(pafd->szFormat),
|
||||||
|
sizeof(pafd->szFormat)/sizeof(WCHAR) - strlenW(pafd->szFormat) );
|
||||||
}
|
}
|
||||||
|
|
||||||
TRACE("=> %d\n", mmr);
|
TRACE("=> %d\n", mmr);
|
||||||
|
@ -370,7 +373,8 @@ static BOOL CALLBACK MSACM_FormatEnumCallbackWtoA(HACMDRIVERID hadid,
|
||||||
pafei->pafda->dwFormatIndex = pafdw->dwFormatIndex;
|
pafei->pafda->dwFormatIndex = pafdw->dwFormatIndex;
|
||||||
pafei->pafda->dwFormatTag = pafdw->dwFormatTag;
|
pafei->pafda->dwFormatTag = pafdw->dwFormatTag;
|
||||||
pafei->pafda->fdwSupport = pafdw->fdwSupport;
|
pafei->pafda->fdwSupport = pafdw->fdwSupport;
|
||||||
lstrcpyWtoA(pafei->pafda->szFormat, pafdw->szFormat);
|
WideCharToMultiByte( CP_ACP, 0, pafdw->szFormat, -1,
|
||||||
|
pafei->pafda->szFormat, sizeof(pafei->pafda->szFormat), NULL, NULL );
|
||||||
|
|
||||||
return (pafei->fnCallback)(hadid, pafei->pafda,
|
return (pafei->fnCallback)(hadid, pafei->pafda,
|
||||||
pafei->dwInstance, fdwSupport);
|
pafei->dwInstance, fdwSupport);
|
||||||
|
@ -577,7 +581,8 @@ MMRESULT WINAPI acmFormatTagDetailsA(HACMDRIVER had, PACMFORMATTAGDETAILSA paftd
|
||||||
paftda->cbFormatSize = aftdw.cbFormatSize;
|
paftda->cbFormatSize = aftdw.cbFormatSize;
|
||||||
paftda->fdwSupport = aftdw.fdwSupport;
|
paftda->fdwSupport = aftdw.fdwSupport;
|
||||||
paftda->cStandardFormats = aftdw.cStandardFormats;
|
paftda->cStandardFormats = aftdw.cStandardFormats;
|
||||||
lstrcpyWtoA(paftda->szFormatTag, aftdw.szFormatTag);
|
WideCharToMultiByte( CP_ACP, 0, aftdw.szFormatTag, -1, paftda->szFormatTag,
|
||||||
|
sizeof(paftda->szFormatTag), NULL, NULL );
|
||||||
}
|
}
|
||||||
return mmr;
|
return mmr;
|
||||||
}
|
}
|
||||||
|
@ -662,7 +667,8 @@ MMRESULT WINAPI acmFormatTagDetailsW(HACMDRIVER had, PACMFORMATTAGDETAILSW paftd
|
||||||
|
|
||||||
if (mmr == MMSYSERR_NOERROR &&
|
if (mmr == MMSYSERR_NOERROR &&
|
||||||
paftd->dwFormatTag == WAVE_FORMAT_PCM && paftd->szFormatTag[0] == 0)
|
paftd->dwFormatTag == WAVE_FORMAT_PCM && paftd->szFormatTag[0] == 0)
|
||||||
lstrcpyAtoW(paftd->szFormatTag, "PCM");
|
MultiByteToWideChar( CP_ACP, 0, "PCM", -1, paftd->szFormatTag,
|
||||||
|
sizeof(paftd->szFormatTag)/sizeof(WCHAR) );
|
||||||
|
|
||||||
return mmr;
|
return mmr;
|
||||||
}
|
}
|
||||||
|
@ -687,7 +693,8 @@ static BOOL CALLBACK MSACM_FormatTagEnumCallbackWtoA(HACMDRIVERID hadid,
|
||||||
paftei->paftda->cbFormatSize = paftdw->cbFormatSize;
|
paftei->paftda->cbFormatSize = paftdw->cbFormatSize;
|
||||||
paftei->paftda->fdwSupport = paftdw->fdwSupport;
|
paftei->paftda->fdwSupport = paftdw->fdwSupport;
|
||||||
paftei->paftda->cStandardFormats = paftdw->cStandardFormats;
|
paftei->paftda->cStandardFormats = paftdw->cStandardFormats;
|
||||||
lstrcpyWtoA(paftei->paftda->szFormatTag, paftdw->szFormatTag);
|
WideCharToMultiByte( CP_ACP, 0, paftdw->szFormatTag, -1, paftei->paftda->szFormatTag,
|
||||||
|
sizeof(paftei->paftda->szFormatTag), NULL, NULL );
|
||||||
|
|
||||||
return (paftei->fnCallback)(hadid, paftei->paftda,
|
return (paftei->fnCallback)(hadid, paftei->paftda,
|
||||||
paftei->dwInstance, fdwSupport);
|
paftei->dwInstance, fdwSupport);
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include "wine/winestring.h"
|
#include "winnls.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
|
@ -697,10 +697,14 @@ static LRESULT PCM_DriverDetails(PACMDRIVERDETAILSW add)
|
||||||
add->cFormatTags = 1;
|
add->cFormatTags = 1;
|
||||||
add->cFilterTags = 0;
|
add->cFilterTags = 0;
|
||||||
add->hicon = (HICON)0;
|
add->hicon = (HICON)0;
|
||||||
lstrcpyAtoW(add->szShortName, "WINE-PCM");
|
MultiByteToWideChar( CP_ACP, 0, "WINE-PCM", -1,
|
||||||
lstrcpyAtoW(add->szLongName, "Wine PCM converter");
|
add->szShortName, sizeof(add->szShortName)/sizeof(WCHAR) );
|
||||||
lstrcpyAtoW(add->szCopyright, "Brought to you by the Wine team...");
|
MultiByteToWideChar( CP_ACP, 0, "Wine PCM converter", -1,
|
||||||
lstrcpyAtoW(add->szLicensing, "Refer to LICENSE file");
|
add->szLongName, sizeof(add->szLongName)/sizeof(WCHAR) );
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, "Brought to you by the Wine team...", -1,
|
||||||
|
add->szCopyright, sizeof(add->szCopyright)/sizeof(WCHAR) );
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, "Refer to LICENSE file", -1,
|
||||||
|
add->szLicensing, sizeof(add->szLicensing)/sizeof(WCHAR) );
|
||||||
add->szFeatures[0] = 0;
|
add->szFeatures[0] = 0;
|
||||||
|
|
||||||
return MMSYSERR_NOERROR;
|
return MMSYSERR_NOERROR;
|
||||||
|
|
|
@ -12,12 +12,12 @@
|
||||||
|
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "vfw.h"
|
#include "vfw.h"
|
||||||
#include "vfw16.h"
|
#include "vfw16.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "ldt.h"
|
#include "ldt.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
|
@ -546,10 +546,9 @@ LPVOID MSVIDEO_MapMsg16To32(UINT msg, LPDWORD lParam1, LPDWORD lParam2) {
|
||||||
COPY(ici,dwFlags);
|
COPY(ici,dwFlags);
|
||||||
COPY(ici,dwVersion);
|
COPY(ici,dwVersion);
|
||||||
COPY(ici,dwVersionICM);
|
COPY(ici,dwVersionICM);
|
||||||
lstrcpynAtoW(ici->szName,ici16->szName,16);
|
MultiByteToWideChar( CP_ACP, 0, ici16->szName, -1, ici->szName, 16 );
|
||||||
lstrcpynAtoW(ici->szDescription,ici16->szDescription,128);
|
MultiByteToWideChar( CP_ACP, 0, ici16->szDescription, -1, ici->szDescription, 128 );
|
||||||
lstrcpynAtoW(ici->szDriver,ici16->szDriver,128);
|
MultiByteToWideChar( CP_ACP, 0, ici16->szDriver, -1, ici->szDriver, 128 );
|
||||||
|
|
||||||
*lParam1 = (DWORD)(ici);
|
*lParam1 = (DWORD)(ici);
|
||||||
*lParam2 = sizeof(ICINFO);
|
*lParam2 = sizeof(ICINFO);
|
||||||
}
|
}
|
||||||
|
@ -718,8 +717,12 @@ void MSVIDEO_UnmapMsg16To32(UINT msg, LPVOID data16, LPDWORD lParam1, LPDWORD lP
|
||||||
UNCOPY(ici,dwFlags);
|
UNCOPY(ici,dwFlags);
|
||||||
UNCOPY(ici,dwVersion);
|
UNCOPY(ici,dwVersion);
|
||||||
UNCOPY(ici,dwVersionICM);
|
UNCOPY(ici,dwVersionICM);
|
||||||
lstrcpynWtoA(ici16->szName,ici->szName,16);
|
WideCharToMultiByte( CP_ACP, 0, ici->szName, -1, ici16->szName,
|
||||||
lstrcpynWtoA(ici16->szDescription,ici->szDescription,128);
|
sizeof(ici16->szName), NULL, NULL );
|
||||||
|
ici16->szName[sizeof(ici16->szName)-1] = 0;
|
||||||
|
WideCharToMultiByte( CP_ACP, 0, ici->szDescription, -1, ici16->szDescription,
|
||||||
|
sizeof(ici16->szDescription), NULL, NULL );
|
||||||
|
ici16->szDescription[sizeof(ici16->szDescription)-1] = 0;
|
||||||
/* This just gives garbage for some reason - BB
|
/* This just gives garbage for some reason - BB
|
||||||
lstrcpynWtoA(ici16->szDriver,ici->szDriver,128);*/
|
lstrcpynWtoA(ici16->szDriver,ici->szDriver,128);*/
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "winnls.h"
|
#include "winnls.h"
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wine/exception.h"
|
#include "wine/exception.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "file.h"
|
#include "file.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "winnls.h"
|
#include "winnls.h"
|
||||||
|
|
|
@ -51,7 +51,6 @@
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "ole2.h"
|
#include "ole2.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "olestd.h"
|
#include "olestd.h"
|
||||||
|
@ -996,7 +995,7 @@ static HRESULT OLEClipbrd_RenderFormat(IDataObject *pIDataObject, LPFORMATETC pF
|
||||||
ReadClassStg(std.u.pstg, &clsID);
|
ReadClassStg(std.u.pstg, &clsID);
|
||||||
ProgIDFromCLSID(&clsID, &strProgID);
|
ProgIDFromCLSID(&clsID, &strProgID);
|
||||||
|
|
||||||
lstrcpyWtoA(strOleTypeName, strProgID);
|
WideCharToMultiByte( CP_ACP, 0, strProgID, -1, strOleTypeName, sizeof(strOleTypeName), NULL, NULL );
|
||||||
OLECONVERT_CreateOleStream(std.u.pstg);
|
OLECONVERT_CreateOleStream(std.u.pstg);
|
||||||
OLECONVERT_CreateCompObjStream(std.u.pstg, strOleTypeName);
|
OLECONVERT_CreateCompObjStream(std.u.pstg, strOleTypeName);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "wownt32.h"
|
#include "wownt32.h"
|
||||||
#include "ole2ver.h"
|
#include "ole2ver.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
@ -632,8 +631,9 @@ HRESULT WINAPI StringFromCLSID(
|
||||||
|
|
||||||
ret=WINE_StringFromCLSID(id,buf);
|
ret=WINE_StringFromCLSID(id,buf);
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
*idstr = IMalloc_Alloc(mllc,strlen(buf)*2+2);
|
DWORD len = MultiByteToWideChar( CP_ACP, 0, buf, -1, NULL, 0 );
|
||||||
lstrcpyAtoW(*idstr,buf);
|
*idstr = IMalloc_Alloc( mllc, len * sizeof(WCHAR) );
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, buf, -1, *idstr, len );
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -655,10 +655,7 @@ StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
|
||||||
|
|
||||||
if (WINE_StringFromCLSID(id,xguid))
|
if (WINE_StringFromCLSID(id,xguid))
|
||||||
return 0;
|
return 0;
|
||||||
if (strlen(xguid)>=cmax)
|
return MultiByteToWideChar( CP_ACP, 0, xguid, -1, str, cmax );
|
||||||
return 0;
|
|
||||||
lstrcpyAtoW(str,xguid);
|
|
||||||
return strlen(xguid) + 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
@ -701,8 +698,9 @@ HRESULT WINAPI ProgIDFromCLSID(
|
||||||
ret = E_OUTOFMEMORY;
|
ret = E_OUTOFMEMORY;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
*lplpszProgID = IMalloc_Alloc(mllc, (buf2len+1)*2);
|
DWORD len = MultiByteToWideChar( CP_ACP, 0, buf2, -1, NULL, 0 );
|
||||||
lstrcpyAtoW(*lplpszProgID, buf2);
|
*lplpszProgID = IMalloc_Alloc(mllc, len * sizeof(WCHAR) );
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, buf2, -1, *lplpszProgID, len );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
HeapFree(GetProcessHeap(), 0, buf2);
|
HeapFree(GetProcessHeap(), 0, buf2);
|
||||||
|
@ -2003,7 +2001,7 @@ HRESULT WINAPI OleGetAutoConvert(REFCLSID clsidOld, LPCLSID pClsidNew)
|
||||||
if (RegQueryValueA(hkey,"AutoConvertTo",buf,&len))
|
if (RegQueryValueA(hkey,"AutoConvertTo",buf,&len))
|
||||||
return REGDB_E_KEYMISSING;
|
return REGDB_E_KEYMISSING;
|
||||||
RegCloseKey(hkey);
|
RegCloseKey(hkey);
|
||||||
lstrcpyAtoW(wbuf,buf);
|
MultiByteToWideChar( CP_ACP, 0, buf, -1, wbuf, sizeof(wbuf)/sizeof(WCHAR) );
|
||||||
CLSIDFromString(wbuf,pClsidNew);
|
CLSIDFromString(wbuf,pClsidNew);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "objbase.h"
|
#include "objbase.h"
|
||||||
#include "wine/obj_storage.h"
|
#include "wine/obj_storage.h"
|
||||||
|
@ -336,7 +335,7 @@ HRESULT WINAPI FileMonikerImpl_Save(IMoniker* iface,
|
||||||
HRESULT res;
|
HRESULT res;
|
||||||
LPOLESTR filePathW=This->filePathName;
|
LPOLESTR filePathW=This->filePathName;
|
||||||
CHAR* filePathA;
|
CHAR* filePathA;
|
||||||
DWORD len=1+lstrlenW(filePathW);
|
DWORD len;
|
||||||
|
|
||||||
DWORD constant1 = 0xDEADFFFF; /* these constants are detected after analysing the data structure writen by */
|
DWORD constant1 = 0xDEADFFFF; /* these constants are detected after analysing the data structure writen by */
|
||||||
WORD constant2 = 0x3; /* FileMoniker_Save function in a windows program system */
|
WORD constant2 = 0x3; /* FileMoniker_Save function in a windows program system */
|
||||||
|
@ -355,11 +354,12 @@ HRESULT WINAPI FileMonikerImpl_Save(IMoniker* iface,
|
||||||
res=IStream_Write(pStm,&zero,sizeof(WORD),NULL);
|
res=IStream_Write(pStm,&zero,sizeof(WORD),NULL);
|
||||||
|
|
||||||
/* write length of filePath string ( "\0" included )*/
|
/* write length of filePath string ( "\0" included )*/
|
||||||
|
len = WideCharToMultiByte( CP_ACP, 0, filePathW, -1, NULL, 0, NULL, NULL );
|
||||||
res=IStream_Write(pStm,&len,sizeof(DWORD),NULL);
|
res=IStream_Write(pStm,&len,sizeof(DWORD),NULL);
|
||||||
|
|
||||||
/* write filePath string type A */
|
/* write filePath string type A */
|
||||||
filePathA=HeapAlloc(GetProcessHeap(),0,len);
|
filePathA=HeapAlloc(GetProcessHeap(),0,len);
|
||||||
lstrcpyWtoA(filePathA,filePathW);
|
WideCharToMultiByte( CP_ACP, 0, filePathW, -1, filePathA, len, NULL, NULL );
|
||||||
res=IStream_Write(pStm,filePathA,len,NULL);
|
res=IStream_Write(pStm,filePathA,len,NULL);
|
||||||
HeapFree(GetProcessHeap(),0,filePathA);
|
HeapFree(GetProcessHeap(),0,filePathA);
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "wine/obj_base.h"
|
#include "wine/obj_base.h"
|
||||||
#include "wine/obj_misc.h"
|
#include "wine/obj_misc.h"
|
||||||
#include "wine/obj_storage.h"
|
#include "wine/obj_storage.h"
|
||||||
|
@ -234,7 +234,7 @@ HRESULT WINAPI ItemMonikerImpl_Load(IMoniker* iface,IStream* pStm)
|
||||||
|
|
||||||
ICOM_THIS(ItemMonikerImpl,iface);
|
ICOM_THIS(ItemMonikerImpl,iface);
|
||||||
HRESULT res;
|
HRESULT res;
|
||||||
DWORD delimiterLength,nameLength;
|
DWORD delimiterLength,nameLength,lenW;
|
||||||
CHAR *itemNameA,*itemDelimiterA;
|
CHAR *itemNameA,*itemDelimiterA;
|
||||||
ULONG bread;
|
ULONG bread;
|
||||||
|
|
||||||
|
@ -246,16 +246,24 @@ HRESULT WINAPI ItemMonikerImpl_Load(IMoniker* iface,IStream* pStm)
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
|
||||||
/* read item delimiter string */
|
/* read item delimiter string */
|
||||||
itemDelimiterA=HeapAlloc(GetProcessHeap(),0,delimiterLength);
|
if (!(itemDelimiterA=HeapAlloc(GetProcessHeap(),0,delimiterLength)))
|
||||||
|
return E_OUTOFMEMORY;
|
||||||
res=IStream_Read(pStm,itemDelimiterA,delimiterLength,&bread);
|
res=IStream_Read(pStm,itemDelimiterA,delimiterLength,&bread);
|
||||||
if (bread != delimiterLength)
|
if (bread != delimiterLength)
|
||||||
|
{
|
||||||
|
HeapFree( GetProcessHeap(), 0, itemDelimiterA );
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
This->itemDelimiter=HeapReAlloc(GetProcessHeap(),0,This->itemDelimiter,delimiterLength*sizeof(WCHAR));
|
lenW = MultiByteToWideChar( CP_ACP, 0, itemDelimiterA, -1, NULL, 0 );
|
||||||
|
This->itemDelimiter=HeapReAlloc(GetProcessHeap(),0,This->itemDelimiter,lenW*sizeof(WCHAR));
|
||||||
if (!This->itemDelimiter)
|
if (!This->itemDelimiter)
|
||||||
|
{
|
||||||
|
HeapFree( GetProcessHeap(), 0, itemDelimiterA );
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
|
}
|
||||||
lstrcpyAtoW(This->itemDelimiter,itemDelimiterA);
|
MultiByteToWideChar( CP_ACP, 0, itemDelimiterA, -1, This->itemDelimiter, lenW );
|
||||||
|
HeapFree( GetProcessHeap(), 0, itemDelimiterA );
|
||||||
|
|
||||||
/* read item name string length + 1*/
|
/* read item name string length + 1*/
|
||||||
res=IStream_Read(pStm,&nameLength,sizeof(DWORD),&bread);
|
res=IStream_Read(pStm,&nameLength,sizeof(DWORD),&bread);
|
||||||
|
@ -263,16 +271,24 @@ HRESULT WINAPI ItemMonikerImpl_Load(IMoniker* iface,IStream* pStm)
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
|
||||||
/* read item name string */
|
/* read item name string */
|
||||||
itemNameA=HeapAlloc(GetProcessHeap(),0,nameLength);
|
if (!(itemNameA=HeapAlloc(GetProcessHeap(),0,nameLength)))
|
||||||
|
return E_OUTOFMEMORY;
|
||||||
res=IStream_Read(pStm,itemNameA,nameLength,&bread);
|
res=IStream_Read(pStm,itemNameA,nameLength,&bread);
|
||||||
if (bread != nameLength)
|
if (bread != nameLength)
|
||||||
|
{
|
||||||
|
HeapFree( GetProcessHeap(), 0, itemNameA );
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
This->itemName=HeapReAlloc(GetProcessHeap(),0,This->itemName,nameLength*sizeof(WCHAR));
|
lenW = MultiByteToWideChar( CP_ACP, 0, itemNameA, -1, NULL, 0 );
|
||||||
|
This->itemName=HeapReAlloc(GetProcessHeap(),0,This->itemName,lenW*sizeof(WCHAR));
|
||||||
if (!This->itemName)
|
if (!This->itemName)
|
||||||
|
{
|
||||||
|
HeapFree( GetProcessHeap(), 0, itemNameA );
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
|
}
|
||||||
lstrcpyAtoW(This->itemName,itemNameA);
|
MultiByteToWideChar( CP_ACP, 0, itemNameA, -1, This->itemName, lenW );
|
||||||
|
HeapFree( GetProcessHeap(), 0, itemNameA );
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
@ -286,8 +302,6 @@ HRESULT WINAPI ItemMonikerImpl_Save(IMoniker* iface,
|
||||||
{
|
{
|
||||||
ICOM_THIS(ItemMonikerImpl,iface);
|
ICOM_THIS(ItemMonikerImpl,iface);
|
||||||
HRESULT res;
|
HRESULT res;
|
||||||
DWORD delimiterLength=lstrlenW(This->itemDelimiter)+1;
|
|
||||||
DWORD nameLength=lstrlenW(This->itemName)+1;
|
|
||||||
CHAR *itemNameA,*itemDelimiterA;
|
CHAR *itemNameA,*itemDelimiterA;
|
||||||
|
|
||||||
/* data writen by this function are : 1) DWORD : size of item delimiter string ('\0' included ) */
|
/* data writen by this function are : 1) DWORD : size of item delimiter string ('\0' included ) */
|
||||||
|
@ -295,10 +309,12 @@ HRESULT WINAPI ItemMonikerImpl_Save(IMoniker* iface,
|
||||||
/* 3) DWORD : size of item name string ('\0' included) */
|
/* 3) DWORD : size of item name string ('\0' included) */
|
||||||
/* 4) String (type A): item name string ('\0' included) */
|
/* 4) String (type A): item name string ('\0' included) */
|
||||||
|
|
||||||
|
DWORD nameLength = WideCharToMultiByte( CP_ACP, 0, This->itemName, -1, NULL, 0, NULL, NULL);
|
||||||
|
DWORD delimiterLength = WideCharToMultiByte( CP_ACP, 0, This->itemDelimiter, -1, NULL, 0, NULL, NULL);
|
||||||
itemNameA=HeapAlloc(GetProcessHeap(),0,nameLength);
|
itemNameA=HeapAlloc(GetProcessHeap(),0,nameLength);
|
||||||
itemDelimiterA=HeapAlloc(GetProcessHeap(),0,delimiterLength);
|
itemDelimiterA=HeapAlloc(GetProcessHeap(),0,delimiterLength);
|
||||||
lstrcpyWtoA(itemNameA,This->itemName);
|
WideCharToMultiByte( CP_ACP, 0, This->itemName, -1, itemNameA, nameLength, NULL, NULL);
|
||||||
lstrcpyWtoA(itemDelimiterA,This->itemDelimiter);
|
WideCharToMultiByte( CP_ACP, 0, This->itemDelimiter, -1, itemDelimiterA, delimiterLength, NULL, NULL);
|
||||||
|
|
||||||
res=IStream_Write(pStm,&delimiterLength,sizeof(DWORD),NULL);
|
res=IStream_Write(pStm,&delimiterLength,sizeof(DWORD),NULL);
|
||||||
res=IStream_Write(pStm,itemDelimiterA,delimiterLength * sizeof(CHAR),NULL);
|
res=IStream_Write(pStm,itemDelimiterA,delimiterLength * sizeof(CHAR),NULL);
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include "wine/obj_clientserver.h"
|
#include "wine/obj_clientserver.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/wingdi16.h"
|
#include "wine/wingdi16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "ole2ver.h"
|
#include "ole2ver.h"
|
||||||
#include "winreg.h"
|
#include "winreg.h"
|
||||||
|
@ -486,7 +485,7 @@ HRESULT WINAPI OleRegGetUserType(
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
lstrcpyAtoW(*pszUserType, buffer);
|
MultiByteToWideChar( CP_ACP, 0, buffer, -1, *pszUserType, cbData /*FIXME*/ );
|
||||||
retVal = S_OK;
|
retVal = S_OK;
|
||||||
}
|
}
|
||||||
HeapFree(GetProcessHeap(), 0, buffer);
|
HeapFree(GetProcessHeap(), 0, buffer);
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "ntddk.h"
|
#include "ntddk.h"
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "wtypes.h"
|
#include "wtypes.h"
|
||||||
|
@ -361,7 +360,7 @@ void
|
||||||
STORAGE_dump_pps_entry(struct storage_pps_entry *stde) {
|
STORAGE_dump_pps_entry(struct storage_pps_entry *stde) {
|
||||||
char name[33];
|
char name[33];
|
||||||
|
|
||||||
lstrcpyWtoA(name,stde->pps_rawname);
|
WideCharToMultiByte( CP_ACP, 0, stde->pps_rawname, -1, name, sizeof(name), NULL, NULL);
|
||||||
if (!stde->pps_sizeofname)
|
if (!stde->pps_sizeofname)
|
||||||
return;
|
return;
|
||||||
DPRINTF("name: %s\n",name);
|
DPRINTF("name: %s\n",name);
|
||||||
|
@ -416,8 +415,9 @@ STORAGE_init_storage(HFILE hf) {
|
||||||
/* block 1 is the root directory entry */
|
/* block 1 is the root directory entry */
|
||||||
memset(block,0x00,sizeof(block));
|
memset(block,0x00,sizeof(block));
|
||||||
stde = (struct storage_pps_entry*)block;
|
stde = (struct storage_pps_entry*)block;
|
||||||
lstrcpyAtoW(stde->pps_rawname,"RootEntry");
|
MultiByteToWideChar( CP_ACP, 0, "RootEntry", -1, stde->pps_rawname,
|
||||||
stde->pps_sizeofname = lstrlenW(stde->pps_rawname)*2+2;
|
sizeof(stde->pps_rawname)/sizeof(WCHAR));
|
||||||
|
stde->pps_sizeofname = (strlenW(stde->pps_rawname)+1) * sizeof(WCHAR);
|
||||||
stde->pps_type = 5;
|
stde->pps_type = 5;
|
||||||
stde->pps_dir = -1;
|
stde->pps_dir = -1;
|
||||||
stde->pps_next = -1;
|
stde->pps_next = -1;
|
||||||
|
@ -1351,8 +1351,9 @@ HRESULT WINAPI IStorage16_fnCreateStorage(
|
||||||
}
|
}
|
||||||
assert(STORAGE_put_pps_entry(lpstg->hf,x,&stde));
|
assert(STORAGE_put_pps_entry(lpstg->hf,x,&stde));
|
||||||
assert(1==STORAGE_get_pps_entry(lpstg->hf,ppsent,&(lpstg->stde)));
|
assert(1==STORAGE_get_pps_entry(lpstg->hf,ppsent,&(lpstg->stde)));
|
||||||
lstrcpyAtoW(lpstg->stde.pps_rawname,pwcsName);
|
MultiByteToWideChar( CP_ACP, 0, pwcsName, -1, lpstg->stde.pps_rawname,
|
||||||
lpstg->stde.pps_sizeofname = strlen(pwcsName)*2+2;
|
sizeof(lpstg->stde.pps_rawname)/sizeof(WCHAR));
|
||||||
|
lpstg->stde.pps_sizeofname = (strlenW(lpstg->stde.pps_rawname)+1)*sizeof(WCHAR);
|
||||||
lpstg->stde.pps_next = -1;
|
lpstg->stde.pps_next = -1;
|
||||||
lpstg->stde.pps_prev = -1;
|
lpstg->stde.pps_prev = -1;
|
||||||
lpstg->stde.pps_dir = -1;
|
lpstg->stde.pps_dir = -1;
|
||||||
|
@ -1404,8 +1405,9 @@ HRESULT WINAPI IStorage16_fnCreateStream(
|
||||||
stde.pps_next = ppsent;
|
stde.pps_next = ppsent;
|
||||||
assert(STORAGE_put_pps_entry(lpstr->hf,x,&stde));
|
assert(STORAGE_put_pps_entry(lpstr->hf,x,&stde));
|
||||||
assert(1==STORAGE_get_pps_entry(lpstr->hf,ppsent,&(lpstr->stde)));
|
assert(1==STORAGE_get_pps_entry(lpstr->hf,ppsent,&(lpstr->stde)));
|
||||||
lstrcpyAtoW(lpstr->stde.pps_rawname,pwcsName);
|
MultiByteToWideChar( CP_ACP, 0, pwcsName, -1, lpstr->stde.pps_rawname,
|
||||||
lpstr->stde.pps_sizeofname = strlen(pwcsName)*2+2;
|
sizeof(lpstr->stde.pps_rawname)/sizeof(WCHAR));
|
||||||
|
lpstr->stde.pps_sizeofname = (strlenW(lpstr->stde.pps_rawname)+1) * sizeof(WCHAR);
|
||||||
lpstr->stde.pps_next = -1;
|
lpstr->stde.pps_next = -1;
|
||||||
lpstr->stde.pps_prev = -1;
|
lpstr->stde.pps_prev = -1;
|
||||||
lpstr->stde.pps_dir = -1;
|
lpstr->stde.pps_dir = -1;
|
||||||
|
@ -1439,7 +1441,7 @@ HRESULT WINAPI IStorage16_fnOpenStorage(
|
||||||
lpstg = (IStream16Impl*)PTR_SEG_TO_LIN(*ppstg);
|
lpstg = (IStream16Impl*)PTR_SEG_TO_LIN(*ppstg);
|
||||||
DuplicateHandle( GetCurrentProcess(), This->hf, GetCurrentProcess(),
|
DuplicateHandle( GetCurrentProcess(), This->hf, GetCurrentProcess(),
|
||||||
&lpstg->hf, 0, TRUE, DUPLICATE_SAME_ACCESS );
|
&lpstg->hf, 0, TRUE, DUPLICATE_SAME_ACCESS );
|
||||||
lstrcpyAtoW(name,pwcsName);
|
MultiByteToWideChar( CP_ACP, 0, pwcsName, -1, name, sizeof(name)/sizeof(WCHAR));
|
||||||
newpps = STORAGE_look_for_named_pps(lpstg->hf,This->stde.pps_dir,name);
|
newpps = STORAGE_look_for_named_pps(lpstg->hf,This->stde.pps_dir,name);
|
||||||
if (newpps==-1) {
|
if (newpps==-1) {
|
||||||
IStream16_fnRelease((IStream16*)lpstg);
|
IStream16_fnRelease((IStream16*)lpstg);
|
||||||
|
@ -1474,7 +1476,7 @@ HRESULT WINAPI IStorage16_fnOpenStream(
|
||||||
lpstr = (IStream16Impl*)PTR_SEG_TO_LIN(*ppstm);
|
lpstr = (IStream16Impl*)PTR_SEG_TO_LIN(*ppstm);
|
||||||
DuplicateHandle( GetCurrentProcess(), This->hf, GetCurrentProcess(),
|
DuplicateHandle( GetCurrentProcess(), This->hf, GetCurrentProcess(),
|
||||||
&lpstr->hf, 0, TRUE, DUPLICATE_SAME_ACCESS );
|
&lpstr->hf, 0, TRUE, DUPLICATE_SAME_ACCESS );
|
||||||
lstrcpyAtoW(name,pwcsName);
|
MultiByteToWideChar( CP_ACP, 0, pwcsName, -1, name, sizeof(name)/sizeof(WCHAR));
|
||||||
newpps = STORAGE_look_for_named_pps(lpstr->hf,This->stde.pps_dir,name);
|
newpps = STORAGE_look_for_named_pps(lpstr->hf,This->stde.pps_dir,name);
|
||||||
if (newpps==-1) {
|
if (newpps==-1) {
|
||||||
IStream16_fnRelease((IStream16*)lpstr);
|
IStream16_fnRelease((IStream16*)lpstr);
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#include "winbase.h" /* for lstrlenW() and the likes */
|
#include "winbase.h" /* for lstrlenW() and the likes */
|
||||||
#include "winnls.h"
|
#include "winnls.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
||||||
#include "storage32.h"
|
#include "storage32.h"
|
||||||
|
@ -2229,9 +2228,9 @@ HRESULT StorageImpl_Construct(
|
||||||
* Initialize the property chain
|
* Initialize the property chain
|
||||||
*/
|
*/
|
||||||
memset(&rootProp, 0, sizeof(rootProp));
|
memset(&rootProp, 0, sizeof(rootProp));
|
||||||
lstrcpyAtoW(rootProp.name, rootPropertyName);
|
MultiByteToWideChar( CP_ACP, 0, rootPropertyName, -1, rootProp.name,
|
||||||
|
sizeof(rootProp.name)/sizeof(WCHAR) );
|
||||||
rootProp.sizeOfNameString = (lstrlenW(rootProp.name)+1) * sizeof(WCHAR);
|
rootProp.sizeOfNameString = (strlenW(rootProp.name)+1) * sizeof(WCHAR);
|
||||||
rootProp.propertyType = PROPTYPE_ROOT;
|
rootProp.propertyType = PROPTYPE_ROOT;
|
||||||
rootProp.previousProperty = PROPERTY_NULL;
|
rootProp.previousProperty = PROPERTY_NULL;
|
||||||
rootProp.nextProperty = PROPERTY_NULL;
|
rootProp.nextProperty = PROPERTY_NULL;
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
#include "shlguid.h"
|
#include "shlguid.h"
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "winnls.h"
|
#include "winnls.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "wine/undocshell.h"
|
#include "wine/undocshell.h"
|
||||||
#include "shell32_main.h"
|
#include "shell32_main.h"
|
||||||
#include "shellapi.h"
|
#include "shellapi.h"
|
||||||
|
@ -290,7 +289,8 @@ HRESULT WINAPI SHILCreateFromPathA (LPCSTR path, LPITEMIDLIST * ppidl, DWORD * a
|
||||||
|
|
||||||
TRACE_(shell)("%s %p 0x%08lx\n",path,ppidl,attributes?*attributes:0);
|
TRACE_(shell)("%s %p 0x%08lx\n",path,ppidl,attributes?*attributes:0);
|
||||||
|
|
||||||
lstrcpynAtoW(lpszDisplayName, path, MAX_PATH);
|
if (!MultiByteToWideChar( CP_ACP, 0, path, -1, lpszDisplayName, MAX_PATH ))
|
||||||
|
lpszDisplayName[MAX_PATH-1] = 0;
|
||||||
|
|
||||||
if (SUCCEEDED (SHGetDesktopFolder(&sf)))
|
if (SUCCEEDED (SHGetDesktopFolder(&sf)))
|
||||||
{
|
{
|
||||||
|
@ -764,7 +764,8 @@ LPITEMIDLIST WINAPI SHSimpleIDListFromPathW (LPCWSTR lpszPath)
|
||||||
char lpszTemp[MAX_PATH];
|
char lpszTemp[MAX_PATH];
|
||||||
TRACE("path=%s\n",debugstr_w(lpszPath));
|
TRACE("path=%s\n",debugstr_w(lpszPath));
|
||||||
|
|
||||||
lstrcpynWtoA(lpszTemp, lpszPath, MAX_PATH);
|
if (!WideCharToMultiByte( CP_ACP, 0, lpszPath, -1, lpszTemp, sizeof(lpszTemp), NULL, NULL ))
|
||||||
|
lpszTemp[sizeof(lpszTemp)-1] = 0;
|
||||||
|
|
||||||
return SHSimpleIDListFromPathA (lpszTemp);
|
return SHSimpleIDListFromPathA (lpszTemp);
|
||||||
}
|
}
|
||||||
|
@ -927,8 +928,12 @@ HRESULT WINAPI SHGetDataFromIDListW(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, int n
|
||||||
_ILGetFileDateTime( pidl, &(pfd->ftLastWriteTime));
|
_ILGetFileDateTime( pidl, &(pfd->ftLastWriteTime));
|
||||||
pfd->dwFileAttributes = _ILGetFileAttributes(pidl, NULL, 0);
|
pfd->dwFileAttributes = _ILGetFileAttributes(pidl, NULL, 0);
|
||||||
pfd->nFileSizeLow = _ILGetFileSize ( pidl, NULL, 0);
|
pfd->nFileSizeLow = _ILGetFileSize ( pidl, NULL, 0);
|
||||||
lstrcpynAtoW(pfd->cFileName,_ILGetTextPointer(pidl), MAX_PATH);
|
if (!MultiByteToWideChar( CP_ACP, 0, _ILGetTextPointer(pidl), -1,
|
||||||
lstrcpynAtoW(pfd->cAlternateFileName,_ILGetSTextPointer(pidl), 14);
|
pfd->cFileName, MAX_PATH ))
|
||||||
|
pfd->cFileName[MAX_PATH-1] = 0;
|
||||||
|
if (!MultiByteToWideChar( CP_ACP, 0, _ILGetSTextPointer(pidl), -1,
|
||||||
|
pfd->cAlternateFileName, 14 ))
|
||||||
|
pfd->cFileName[13] = 0;
|
||||||
}
|
}
|
||||||
return NOERROR;
|
return NOERROR;
|
||||||
case SHGDFIL_NETRESOURCE:
|
case SHGDFIL_NETRESOURCE:
|
||||||
|
@ -1002,7 +1007,7 @@ BOOL WINAPI SHGetPathFromIDListW (LPCITEMIDLIST pidl,LPWSTR pszPath)
|
||||||
TRACE_(shell)("(pidl=%p)\n", pidl);
|
TRACE_(shell)("(pidl=%p)\n", pidl);
|
||||||
|
|
||||||
SHGetPathFromIDListA (pidl, sTemp);
|
SHGetPathFromIDListA (pidl, sTemp);
|
||||||
lstrcpyAtoW(pszPath, sTemp);
|
MultiByteToWideChar( CP_ACP, 0, sTemp, -1, pszPath, MAX_PATH );
|
||||||
|
|
||||||
TRACE_(shell)("-- (%s)\n",debugstr_w(pszPath));
|
TRACE_(shell)("-- (%s)\n",debugstr_w(pszPath));
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include "winnls.h"
|
#include "winnls.h"
|
||||||
|
|
||||||
#include "shlobj.h"
|
#include "shlobj.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "wine/undocshell.h"
|
#include "wine/undocshell.h"
|
||||||
#include "bitmaps/wine.xpm"
|
#include "bitmaps/wine.xpm"
|
||||||
|
|
||||||
|
@ -1200,7 +1199,7 @@ static HRESULT WINAPI IShellLinkW_fnGetPath(IShellLinkW * iface, LPWSTR pszFile,
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
||||||
|
|
||||||
FIXME("(%p)->(pfile=%p len=%u find_data=%p flags=%lu)\n",This, pszFile, cchMaxPath, pfd, fFlags);
|
FIXME("(%p)->(pfile=%p len=%u find_data=%p flags=%lu)\n",This, pszFile, cchMaxPath, pfd, fFlags);
|
||||||
lstrcpynAtoW(pszFile,"c:\\foo.bar", cchMaxPath);
|
MultiByteToWideChar( CP_ACP, 0, "c:\\foo.bar", -1, pszFile, cchMaxPath );
|
||||||
return NOERROR;
|
return NOERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1226,7 +1225,7 @@ static HRESULT WINAPI IShellLinkW_fnGetDescription(IShellLinkW * iface, LPWSTR p
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
||||||
|
|
||||||
FIXME("(%p)->(%p len=%u)\n",This, pszName, cchMaxName);
|
FIXME("(%p)->(%p len=%u)\n",This, pszName, cchMaxName);
|
||||||
lstrcpynAtoW(pszName,"Description, FIXME",cchMaxName);
|
MultiByteToWideChar( CP_ACP, 0, "Description, FIXME", -1, pszName, cchMaxName );
|
||||||
return NOERROR;
|
return NOERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1249,7 +1248,7 @@ static HRESULT WINAPI IShellLinkW_fnGetWorkingDirectory(IShellLinkW * iface, LPW
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
||||||
|
|
||||||
FIXME("(%p)->()\n",This);
|
FIXME("(%p)->()\n",This);
|
||||||
lstrcpynAtoW(pszDir,"c:\\", cchMaxPath);
|
MultiByteToWideChar( CP_ACP, 0, "c:\\", -1, pszDir, cchMaxPath );
|
||||||
return NOERROR;
|
return NOERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1272,7 +1271,7 @@ static HRESULT WINAPI IShellLinkW_fnGetArguments(IShellLinkW * iface, LPWSTR psz
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
||||||
|
|
||||||
FIXME("(%p)->(%p len=%u)\n",This, pszArgs, cchMaxPath);
|
FIXME("(%p)->(%p len=%u)\n",This, pszArgs, cchMaxPath);
|
||||||
lstrcpynAtoW(pszArgs, "", cchMaxPath);
|
pszArgs[0] = 0;
|
||||||
return NOERROR;
|
return NOERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1329,7 +1328,7 @@ static HRESULT WINAPI IShellLinkW_fnGetIconLocation(IShellLinkW * iface, LPWSTR
|
||||||
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
_ICOM_THIS_From_IShellLinkW(IShellLinkImpl, iface);
|
||||||
|
|
||||||
FIXME("(%p)->(%p len=%u iicon=%p)\n",This, pszIconPath, cchIconPath, piIcon);
|
FIXME("(%p)->(%p len=%u iicon=%p)\n",This, pszIconPath, cchIconPath, piIcon);
|
||||||
lstrcpynAtoW(pszIconPath,"shell32.dll",cchIconPath);
|
MultiByteToWideChar( CP_ACP, 0, "shell32.dll", -1, pszIconPath, cchIconPath );
|
||||||
*piIcon=1;
|
*piIcon=1;
|
||||||
return NOERROR;
|
return NOERROR;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,14 +7,13 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
#include "windef.h"
|
||||||
#include "winnls.h"
|
#include "winnls.h"
|
||||||
#include "winreg.h"
|
#include "winreg.h"
|
||||||
|
|
||||||
#include "shlobj.h"
|
#include "shlobj.h"
|
||||||
#include "shell32_main.h"
|
#include "shell32_main.h"
|
||||||
#include "windef.h"
|
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "wine/undocshell.h"
|
#include "wine/undocshell.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "shlwapi.h"
|
#include "shlwapi.h"
|
||||||
|
@ -849,8 +848,9 @@ BOOL WINAPI SHGetSpecialFolderPathW (
|
||||||
|
|
||||||
if (SHGetSpecialFolderPathA(hwndOwner, szTemp, csidl, bCreate))
|
if (SHGetSpecialFolderPathA(hwndOwner, szTemp, csidl, bCreate))
|
||||||
{
|
{
|
||||||
lstrcpynAtoW(szPath, szTemp, MAX_PATH);
|
if (!MultiByteToWideChar( CP_ACP, 0, szTemp, -1, szPath, MAX_PATH ))
|
||||||
}
|
szPath[MAX_PATH-1] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
TRACE("0x%04x,%p,csidl=%lu,0x%04x\n", hwndOwner,szPath,csidl,bCreate);
|
TRACE("0x%04x,%p,csidl=%lu,0x%04x\n", hwndOwner,szPath,csidl,bCreate);
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
#include "shlguid.h"
|
#include "shlguid.h"
|
||||||
|
|
||||||
#include "pidl.h"
|
#include "pidl.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "wine/obj_base.h"
|
#include "wine/obj_base.h"
|
||||||
#include "wine/obj_dragdrop.h"
|
#include "wine/obj_dragdrop.h"
|
||||||
#include "wine/obj_shellfolder.h"
|
#include "wine/obj_shellfolder.h"
|
||||||
|
@ -654,7 +653,7 @@ static HRESULT WINAPI IShellFolder_fnParseDisplayName(
|
||||||
szNext = GetNextElementW(lpszDisplayName, szElement, MAX_PATH);
|
szNext = GetNextElementW(lpszDisplayName, szElement, MAX_PATH);
|
||||||
|
|
||||||
/* build the full pathname to the element */
|
/* build the full pathname to the element */
|
||||||
lstrcpynWtoA(szTempA, szElement, lstrlenW(szElement) + 1);
|
WideCharToMultiByte( CP_ACP, 0, szElement, -1, szTempA, MAX_PATH, NULL, NULL );
|
||||||
strcpy(szPath, This->sMyPath);
|
strcpy(szPath, This->sMyPath);
|
||||||
PathAddBackslashA(szPath);
|
PathAddBackslashA(szPath);
|
||||||
strcat(szPath, szTempA);
|
strcat(szPath, szTempA);
|
||||||
|
@ -1184,8 +1183,8 @@ static HRESULT WINAPI IShellFolder_fnSetNameOf(
|
||||||
strcpy(szDest, This->sMyPath);
|
strcpy(szDest, This->sMyPath);
|
||||||
PathAddBackslashA(szDest);
|
PathAddBackslashA(szDest);
|
||||||
len = strlen (szDest);
|
len = strlen (szDest);
|
||||||
lstrcpynWtoA(szDest+len, lpName, MAX_PATH-len);
|
WideCharToMultiByte( CP_ACP, 0, lpName, -1, szDest+len, MAX_PATH-len, NULL, NULL );
|
||||||
|
szDest[MAX_PATH-1] = 0;
|
||||||
TRACE("src=%s dest=%s\n", szSrc, szDest);
|
TRACE("src=%s dest=%s\n", szSrc, szDest);
|
||||||
if ( MoveFileA(szSrc, szDest) )
|
if ( MoveFileA(szSrc, szDest) )
|
||||||
{
|
{
|
||||||
|
@ -2129,7 +2128,7 @@ static HRESULT WINAPI ISF_MyComputer_fnParseDisplayName(
|
||||||
lpszDisplayName[2] == (WCHAR)'\\')
|
lpszDisplayName[2] == (WCHAR)'\\')
|
||||||
{
|
{
|
||||||
szNext = GetNextElementW(lpszDisplayName, szElement, MAX_PATH);
|
szNext = GetNextElementW(lpszDisplayName, szElement, MAX_PATH);
|
||||||
lstrcpynWtoA(szTempA, szElement, lstrlenW(szElement) + 1);
|
WideCharToMultiByte( CP_ACP, 0, szElement, -1, szTempA, MAX_PATH, NULL, NULL );
|
||||||
pidlTemp = _ILCreateDrive(szTempA);
|
pidlTemp = _ILCreateDrive(szTempA);
|
||||||
|
|
||||||
if (szNext && *szNext)
|
if (szNext && *szNext)
|
||||||
|
|
|
@ -26,14 +26,14 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
|
#include "winerror.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "servprov.h"
|
#include "servprov.h"
|
||||||
#include "shlguid.h"
|
#include "shlguid.h"
|
||||||
#include "shlobj.h"
|
#include "shlobj.h"
|
||||||
#include "wine/undocshell.h"
|
#include "wine/undocshell.h"
|
||||||
#include "shresdef.h"
|
#include "shresdef.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "winerror.h"
|
|
||||||
#include "wine/winestring.h"
|
|
||||||
|
|
||||||
#include "docobj.h"
|
#include "docobj.h"
|
||||||
#include "pidl.h"
|
#include "pidl.h"
|
||||||
|
@ -1242,7 +1242,8 @@ static LRESULT ShellView_OnNotify(IShellViewImpl * This, UINT CtlID, LPNMHDR lpn
|
||||||
ListView_GetItemA(This->hWndList, &lvItem);
|
ListView_GetItemA(This->hWndList, &lvItem);
|
||||||
|
|
||||||
pidl = (LPITEMIDLIST)lpdi->item.lParam;
|
pidl = (LPITEMIDLIST)lpdi->item.lParam;
|
||||||
lstrcpynAtoW(wszNewName, lpdi->item.pszText, MAX_PATH);
|
if (!MultiByteToWideChar( CP_ACP, 0, lpdi->item.pszText, -1, wszNewName, MAX_PATH ))
|
||||||
|
wszNewName[MAX_PATH-1] = 0;
|
||||||
hr = IShellFolder_SetNameOf(This->pSFParent, 0, pidl, wszNewName, SHGDN_INFOLDER, &pidl);
|
hr = IShellFolder_SetNameOf(This->pSFParent, 0, pidl, wszNewName, SHGDN_INFOLDER, &pidl);
|
||||||
|
|
||||||
if(SUCCEEDED(hr) && pidl)
|
if(SUCCEEDED(hr) && pidl)
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
|
|
||||||
#include "pidl.h"
|
#include "pidl.h"
|
||||||
#include "shlguid.h"
|
#include "shlguid.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "wine/obj_base.h"
|
#include "wine/obj_base.h"
|
||||||
#include "wine/obj_contextmenu.h"
|
#include "wine/obj_contextmenu.h"
|
||||||
#include "wine/obj_shellbrowser.h"
|
#include "wine/obj_shellbrowser.h"
|
||||||
|
@ -485,7 +484,7 @@ static HRESULT WINAPI ISvItemCm_fnGetCommandString(
|
||||||
case GCS_VERBW:
|
case GCS_VERBW:
|
||||||
switch(idCommand)
|
switch(idCommand)
|
||||||
{ case FCIDM_SHVIEW_RENAME:
|
{ case FCIDM_SHVIEW_RENAME:
|
||||||
lstrcpyAtoW((LPWSTR)lpszName, "rename");
|
MultiByteToWideChar( CP_ACP, 0, "rename", -1, (LPWSTR)lpszName, uMaxNameLen );
|
||||||
hr = NOERROR;
|
hr = NOERROR;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "wine/winestring.h"
|
#include "winnls.h"
|
||||||
#include "shlobj.h"
|
#include "shlobj.h"
|
||||||
#include "shellapi.h"
|
#include "shellapi.h"
|
||||||
#include "shell32_main.h"
|
#include "shell32_main.h"
|
||||||
|
@ -365,8 +365,8 @@ BOOL WINAPI Shell_NotifyIconW (DWORD dwMessage, PNOTIFYICONDATAW pnid )
|
||||||
|
|
||||||
PNOTIFYICONDATAA p = HeapAlloc(GetProcessHeap(),0,sizeof(NOTIFYICONDATAA));
|
PNOTIFYICONDATAA p = HeapAlloc(GetProcessHeap(),0,sizeof(NOTIFYICONDATAA));
|
||||||
memcpy(p, pnid, sizeof(NOTIFYICONDATAA));
|
memcpy(p, pnid, sizeof(NOTIFYICONDATAA));
|
||||||
if (*(pnid->szTip))
|
WideCharToMultiByte( CP_ACP, 0, pnid->szTip, -1, p->szTip, sizeof(p->szTip), NULL, NULL );
|
||||||
lstrcpynWtoA (p->szTip, pnid->szTip, 64 );
|
p->szTip[sizeof(p->szTip)-1] = 0;
|
||||||
|
|
||||||
ret = Shell_NotifyIconA(dwMessage, p );
|
ret = Shell_NotifyIconA(dwMessage, p );
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/undocshell.h"
|
#include "wine/undocshell.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "shlwapi.h"
|
#include "shlwapi.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
||||||
|
@ -195,10 +194,11 @@ LPSTR WINAPI PathBuildRootA(LPSTR lpszPath, int drive)
|
||||||
*/
|
*/
|
||||||
LPWSTR WINAPI PathBuildRootW(LPWSTR lpszPath, int drive)
|
LPWSTR WINAPI PathBuildRootW(LPWSTR lpszPath, int drive)
|
||||||
{
|
{
|
||||||
|
lpszPath[0] = 'A' + drive;
|
||||||
|
lpszPath[1] = ':';
|
||||||
|
lpszPath[2] = '\\';
|
||||||
|
lpszPath[3] = 0;
|
||||||
TRACE("%p %i\n",debugstr_w(lpszPath), drive);
|
TRACE("%p %i\n",debugstr_w(lpszPath), drive);
|
||||||
|
|
||||||
lstrcpyAtoW(lpszPath,"A:\\");
|
|
||||||
lpszPath[0]+=drive;
|
|
||||||
return lpszPath;
|
return lpszPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1054,10 +1054,9 @@ BOOL WINAPI PathMatchSpecA(LPCSTR name, LPCSTR mask)
|
||||||
*/
|
*/
|
||||||
BOOL WINAPI PathMatchSpecW(LPCWSTR name, LPCWSTR mask)
|
BOOL WINAPI PathMatchSpecW(LPCWSTR name, LPCWSTR mask)
|
||||||
{
|
{
|
||||||
WCHAR stemp[4];
|
static const WCHAR stemp[] = { '*','.','*',0 };
|
||||||
TRACE("%s %s\n",debugstr_w(name),debugstr_w(mask));
|
TRACE("%s %s\n",debugstr_w(name),debugstr_w(mask));
|
||||||
|
|
||||||
lstrcpyAtoW(stemp,"*.*");
|
|
||||||
if (!lstrcmpW( mask, stemp )) return 1; /* we don't require a period */
|
if (!lstrcmpW( mask, stemp )) return 1; /* we don't require a period */
|
||||||
|
|
||||||
while (*mask)
|
while (*mask)
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
#include "shlwapi.h"
|
#include "shlwapi.h"
|
||||||
#include "shlobj.h"
|
#include "shlobj.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
||||||
DEFAULT_DEBUG_CHANNEL(shell);
|
DEFAULT_DEBUG_CHANNEL(shell);
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include "wine/winestring.h"
|
#include "winnls.h"
|
||||||
#include "gdi.h"
|
#include "gdi.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
@ -365,6 +365,7 @@ BOOL TTYDRV_DC_ExtTextOut(DC *dc, INT x, INT y, UINT flags,
|
||||||
TTYDRV_PDEVICE *physDev = (TTYDRV_PDEVICE *) dc->physDev;
|
TTYDRV_PDEVICE *physDev = (TTYDRV_PDEVICE *) dc->physDev;
|
||||||
INT row, col;
|
INT row, col;
|
||||||
LPSTR ascii;
|
LPSTR ascii;
|
||||||
|
DWORD len;
|
||||||
|
|
||||||
TRACE("(%p, %d, %d, 0x%08x, %p, %s, %d, %p)\n",
|
TRACE("(%p, %d, %d, 0x%08x, %p, %s, %d, %p)\n",
|
||||||
dc, x, y, flags, lpRect, debugstr_wn(str, count), count, lpDx);
|
dc, x, y, flags, lpRect, debugstr_wn(str, count), count, lpDx);
|
||||||
|
@ -383,9 +384,10 @@ BOOL TTYDRV_DC_ExtTextOut(DC *dc, INT x, INT y, UINT flags,
|
||||||
|
|
||||||
row = (dc->DCOrgY + y) / physDev->cellHeight;
|
row = (dc->DCOrgY + y) / physDev->cellHeight;
|
||||||
col = (dc->DCOrgX + x) / physDev->cellWidth;
|
col = (dc->DCOrgX + x) / physDev->cellWidth;
|
||||||
ascii = HeapAlloc( GetProcessHeap(), 0, count+1 );
|
len = WideCharToMultiByte( CP_ACP, 0, str, count, NULL, 0, NULL, NULL );
|
||||||
lstrcpynWtoA(ascii, str, count+1);
|
ascii = HeapAlloc( GetProcessHeap(), 0, len );
|
||||||
mvwaddnstr(physDev->window, row, col, ascii, count);
|
WideCharToMultiByte( CP_ACP, 0, str, count, ascii, len, NULL, NULL );
|
||||||
|
mvwaddnstr(physDev->window, row, col, ascii, len);
|
||||||
HeapFree( GetProcessHeap(), 0, ascii );
|
HeapFree( GetProcessHeap(), 0, ascii );
|
||||||
wrefresh(physDev->window);
|
wrefresh(physDev->window);
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
|
|
||||||
#include "winreg.h"
|
#include "winreg.h"
|
||||||
#include "winver.h"
|
#include "winver.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "wine/winuser16.h"
|
#include "wine/winuser16.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
|
@ -212,7 +211,7 @@ void ConvertVersionInfo32To16( VS_VERSION_INFO_STRUCT32 *info32,
|
||||||
wLength, wValueLength, bText, lpValue, child32 );
|
wLength, wValueLength, bText, lpValue, child32 );
|
||||||
|
|
||||||
/* Convert key */
|
/* Convert key */
|
||||||
lstrcpyWtoA( info16->szKey, info32->szKey );
|
WideCharToMultiByte( CP_ACP, 0, info32->szKey, -1, info16->szKey, 0x7fffffff, NULL, NULL );
|
||||||
|
|
||||||
TRACE("Copied key from %p to %p: %s\n", info32->szKey, info16->szKey,
|
TRACE("Copied key from %p to %p: %s\n", info32->szKey, info16->szKey,
|
||||||
debugstr_a(info16->szKey) );
|
debugstr_a(info16->szKey) );
|
||||||
|
@ -225,8 +224,9 @@ void ConvertVersionInfo32To16( VS_VERSION_INFO_STRUCT32 *info32,
|
||||||
}
|
}
|
||||||
else if ( bText )
|
else if ( bText )
|
||||||
{
|
{
|
||||||
info16->wValueLength = lstrlenW( (LPCWSTR)lpValue ) + 1;
|
info16->wValueLength = WideCharToMultiByte( CP_ACP, 0, (LPCWSTR)lpValue, -1, NULL, 0, NULL, NULL );
|
||||||
lstrcpyWtoA( VersionInfo16_Value( info16 ), (LPCWSTR)lpValue );
|
WideCharToMultiByte( CP_ACP, 0, (LPCWSTR)lpValue, -1,
|
||||||
|
VersionInfo16_Value( info16 ), info16->wValueLength, NULL, NULL );
|
||||||
|
|
||||||
TRACE("Copied value from %p to %p: %s\n", lpValue,
|
TRACE("Copied value from %p to %p: %s\n", lpValue,
|
||||||
VersionInfo16_Value( info16 ),
|
VersionInfo16_Value( info16 ),
|
||||||
|
|
|
@ -16,9 +16,9 @@
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "winemm.h"
|
#include "winemm.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
||||||
|
@ -144,7 +144,8 @@ MMRESULT WINAPI joyGetDevCapsW(UINT wID, LPJOYCAPSW lpCaps, UINT wSize)
|
||||||
if (ret != JOYERR_NOERROR) return ret;
|
if (ret != JOYERR_NOERROR) return ret;
|
||||||
lpCaps->wMid = jca.wMid;
|
lpCaps->wMid = jca.wMid;
|
||||||
lpCaps->wPid = jca.wPid;
|
lpCaps->wPid = jca.wPid;
|
||||||
lstrcpyAtoW(lpCaps->szPname, jca.szPname);
|
MultiByteToWideChar( CP_ACP, 0, jca.szPname, -1, lpCaps->szPname,
|
||||||
|
sizeof(lpCaps->szPname)/sizeof(WCHAR) );
|
||||||
lpCaps->wXmin = jca.wXmin;
|
lpCaps->wXmin = jca.wXmin;
|
||||||
lpCaps->wXmax = jca.wXmax;
|
lpCaps->wXmax = jca.wXmax;
|
||||||
lpCaps->wYmin = jca.wYmin;
|
lpCaps->wYmin = jca.wYmin;
|
||||||
|
@ -166,8 +167,10 @@ MMRESULT WINAPI joyGetDevCapsW(UINT wID, LPJOYCAPSW lpCaps, UINT wSize)
|
||||||
lpCaps->wMaxAxes = jca.wMaxAxes;
|
lpCaps->wMaxAxes = jca.wMaxAxes;
|
||||||
lpCaps->wNumAxes = jca.wNumAxes;
|
lpCaps->wNumAxes = jca.wNumAxes;
|
||||||
lpCaps->wMaxButtons = jca.wMaxButtons;
|
lpCaps->wMaxButtons = jca.wMaxButtons;
|
||||||
lstrcpyAtoW(lpCaps->szRegKey, jca.szRegKey);
|
MultiByteToWideChar( CP_ACP, 0, jca.szRegKey, -1, lpCaps->szRegKey,
|
||||||
lstrcpyAtoW(lpCaps->szOEMVxD, jca.szOEMVxD);
|
sizeof(lpCaps->szRegKey)/sizeof(WCHAR) );
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, jca.szOEMVxD, -1, lpCaps->szOEMVxD,
|
||||||
|
sizeof(lpCaps->szOEMVxD)/sizeof(WCHAR) );
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winuser16.h"
|
#include "wine/winuser16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "winemm.h"
|
#include "winemm.h"
|
||||||
#include "selectors.h"
|
#include "selectors.h"
|
||||||
|
@ -815,7 +814,8 @@ UINT WINAPI mixerGetDevCapsW(UINT devid, LPMIXERCAPSW mixcaps, UINT size)
|
||||||
mixcaps->wMid = micA.wMid;
|
mixcaps->wMid = micA.wMid;
|
||||||
mixcaps->wPid = micA.wPid;
|
mixcaps->wPid = micA.wPid;
|
||||||
mixcaps->vDriverVersion = micA.vDriverVersion;
|
mixcaps->vDriverVersion = micA.vDriverVersion;
|
||||||
lstrcpyAtoW(mixcaps->szPname, micA.szPname);
|
MultiByteToWideChar( CP_ACP, 0, micA.szPname, -1, mixcaps->szPname,
|
||||||
|
sizeof(mixcaps->szPname)/sizeof(WCHAR) );
|
||||||
mixcaps->fdwSupport = micA.fdwSupport;
|
mixcaps->fdwSupport = micA.fdwSupport;
|
||||||
mixcaps->cDestinations = micA.cDestinations;
|
mixcaps->cDestinations = micA.cDestinations;
|
||||||
}
|
}
|
||||||
|
@ -1098,9 +1098,12 @@ UINT WINAPI mixerGetLineControlsW(HMIXEROBJ hmix, LPMIXERLINECONTROLSW lpmlcW,
|
||||||
lpmlcW->pamxctrl[i].dwControlType = mlcA.pamxctrl[i].dwControlType;
|
lpmlcW->pamxctrl[i].dwControlType = mlcA.pamxctrl[i].dwControlType;
|
||||||
lpmlcW->pamxctrl[i].fdwControl = mlcA.pamxctrl[i].fdwControl;
|
lpmlcW->pamxctrl[i].fdwControl = mlcA.pamxctrl[i].fdwControl;
|
||||||
lpmlcW->pamxctrl[i].cMultipleItems = mlcA.pamxctrl[i].cMultipleItems;
|
lpmlcW->pamxctrl[i].cMultipleItems = mlcA.pamxctrl[i].cMultipleItems;
|
||||||
lstrcpyAtoW(lpmlcW->pamxctrl[i].szShortName,
|
MultiByteToWideChar( CP_ACP, 0, mlcA.pamxctrl[i].szShortName, -1,
|
||||||
mlcA.pamxctrl[i].szShortName);
|
lpmlcW->pamxctrl[i].szShortName,
|
||||||
lstrcpyAtoW(lpmlcW->pamxctrl[i].szName, mlcA.pamxctrl[i].szName);
|
sizeof(lpmlcW->pamxctrl[i].szShortName)/sizeof(WCHAR) );
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, mlcA.pamxctrl[i].szName, -1,
|
||||||
|
lpmlcW->pamxctrl[i].szName,
|
||||||
|
sizeof(lpmlcW->pamxctrl[i].szName)/sizeof(WCHAR) );
|
||||||
/* sizeof(lpmlcW->pamxctrl[i].Bounds) ==
|
/* sizeof(lpmlcW->pamxctrl[i].Bounds) ==
|
||||||
* sizeof(mlcA.pamxctrl[i].Bounds) */
|
* sizeof(mlcA.pamxctrl[i].Bounds) */
|
||||||
memcpy(&lpmlcW->pamxctrl[i].Bounds, &mlcA.pamxctrl[i].Bounds,
|
memcpy(&lpmlcW->pamxctrl[i].Bounds, &mlcA.pamxctrl[i].Bounds,
|
||||||
|
@ -1226,7 +1229,7 @@ UINT WINAPI mixerGetLineInfoW(HMIXEROBJ hmix, LPMIXERLINEW lpmliW,
|
||||||
mliA.Target.wMid = lpmliW->Target.wMid;
|
mliA.Target.wMid = lpmliW->Target.wMid;
|
||||||
mliA.Target.wPid = lpmliW->Target.wPid;
|
mliA.Target.wPid = lpmliW->Target.wPid;
|
||||||
mliA.Target.vDriverVersion = lpmliW->Target.vDriverVersion;
|
mliA.Target.vDriverVersion = lpmliW->Target.vDriverVersion;
|
||||||
lstrcpyWtoA(mliA.Target.szPname, lpmliW->Target.szPname);
|
WideCharToMultiByte( CP_ACP, 0, lpmliW->Target.szPname, -1, mliA.Target.szPname, sizeof(mliA.Target.szPname), NULL, NULL);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
FIXME("Unsupported fdwControls=0x%08lx\n", fdwInfo);
|
FIXME("Unsupported fdwControls=0x%08lx\n", fdwInfo);
|
||||||
|
@ -1243,14 +1246,17 @@ UINT WINAPI mixerGetLineInfoW(HMIXEROBJ hmix, LPMIXERLINEW lpmliW,
|
||||||
lpmliW->cChannels = mliA.cChannels;
|
lpmliW->cChannels = mliA.cChannels;
|
||||||
lpmliW->cConnections = mliA.cConnections;
|
lpmliW->cConnections = mliA.cConnections;
|
||||||
lpmliW->cControls = mliA.cControls;
|
lpmliW->cControls = mliA.cControls;
|
||||||
lstrcpyAtoW(lpmliW->szShortName, mliA.szShortName);
|
MultiByteToWideChar( CP_ACP, 0, mliA.szShortName, -1, lpmliW->szShortName,
|
||||||
lstrcpyAtoW(lpmliW->szName, mliA.szName);
|
sizeof(lpmliW->szShortName)/sizeof(WCHAR) );
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, mliA.szName, -1, lpmliW->szName,
|
||||||
|
sizeof(lpmliW->szName)/sizeof(WCHAR) );
|
||||||
lpmliW->Target.dwType = mliA.Target.dwType;
|
lpmliW->Target.dwType = mliA.Target.dwType;
|
||||||
lpmliW->Target.dwDeviceID = mliA.Target.dwDeviceID;
|
lpmliW->Target.dwDeviceID = mliA.Target.dwDeviceID;
|
||||||
lpmliW->Target.wMid = mliA.Target.wMid;
|
lpmliW->Target.wMid = mliA.Target.wMid;
|
||||||
lpmliW->Target.wPid = mliA.Target.wPid;
|
lpmliW->Target.wPid = mliA.Target.wPid;
|
||||||
lpmliW->Target.vDriverVersion = mliA.Target.vDriverVersion;
|
lpmliW->Target.vDriverVersion = mliA.Target.vDriverVersion;
|
||||||
lstrcpyAtoW(lpmliW->Target.szPname, mliA.Target.szPname);
|
MultiByteToWideChar( CP_ACP, 0, mliA.Target.szPname, -1, lpmliW->Target.szPname,
|
||||||
|
sizeof(lpmliW->Target.szPname)/sizeof(WCHAR) );
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -1398,7 +1404,8 @@ UINT WINAPI auxGetDevCapsW(UINT uDeviceID, LPAUXCAPSW lpCaps, UINT uSize)
|
||||||
lpCaps->wMid = acA.wMid;
|
lpCaps->wMid = acA.wMid;
|
||||||
lpCaps->wPid = acA.wPid;
|
lpCaps->wPid = acA.wPid;
|
||||||
lpCaps->vDriverVersion = acA.vDriverVersion;
|
lpCaps->vDriverVersion = acA.vDriverVersion;
|
||||||
lstrcpyAtoW(lpCaps->szPname, acA.szPname);
|
MultiByteToWideChar( CP_ACP, 0, acA.szPname, -1, lpCaps->szPname,
|
||||||
|
sizeof(lpCaps->szPname)/sizeof(WCHAR) );
|
||||||
lpCaps->wTechnology = acA.wTechnology;
|
lpCaps->wTechnology = acA.wTechnology;
|
||||||
lpCaps->dwSupport = acA.dwSupport;
|
lpCaps->dwSupport = acA.dwSupport;
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -1538,7 +1545,7 @@ BOOL WINAPI mciGetErrorStringW(DWORD wError, LPWSTR lpstrBuffer, UINT uLength)
|
||||||
LPSTR bufstr = HeapAlloc(GetProcessHeap(), 0, uLength);
|
LPSTR bufstr = HeapAlloc(GetProcessHeap(), 0, uLength);
|
||||||
BOOL ret = mciGetErrorStringA(wError, bufstr, uLength);
|
BOOL ret = mciGetErrorStringA(wError, bufstr, uLength);
|
||||||
|
|
||||||
lstrcpyAtoW(lpstrBuffer, bufstr);
|
MultiByteToWideChar( CP_ACP, 0, bufstr, -1, lpstrBuffer, uLength );
|
||||||
HeapFree(GetProcessHeap(), 0, bufstr);
|
HeapFree(GetProcessHeap(), 0, bufstr);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -1956,7 +1963,8 @@ UINT WINAPI midiOutGetDevCapsW(UINT uDeviceID, LPMIDIOUTCAPSW lpCaps,
|
||||||
lpCaps->wMid = mocA.wMid;
|
lpCaps->wMid = mocA.wMid;
|
||||||
lpCaps->wPid = mocA.wPid;
|
lpCaps->wPid = mocA.wPid;
|
||||||
lpCaps->vDriverVersion = mocA.vDriverVersion;
|
lpCaps->vDriverVersion = mocA.vDriverVersion;
|
||||||
lstrcpyAtoW(lpCaps->szPname, mocA.szPname);
|
MultiByteToWideChar( CP_ACP, 0, mocA.szPname, -1, lpCaps->szPname,
|
||||||
|
sizeof(lpCaps->szPname)/sizeof(WCHAR) );
|
||||||
lpCaps->wTechnology = mocA.wTechnology;
|
lpCaps->wTechnology = mocA.wTechnology;
|
||||||
lpCaps->wVoices = mocA.wVoices;
|
lpCaps->wVoices = mocA.wVoices;
|
||||||
lpCaps->wNotes = mocA.wNotes;
|
lpCaps->wNotes = mocA.wNotes;
|
||||||
|
@ -2051,7 +2059,7 @@ UINT WINAPI midiOutGetErrorTextW(UINT uError, LPWSTR lpText, UINT uSize)
|
||||||
UINT ret;
|
UINT ret;
|
||||||
|
|
||||||
ret = MIDI_GetErrorText(uError, xstr, uSize);
|
ret = MIDI_GetErrorText(uError, xstr, uSize);
|
||||||
lstrcpyAtoW(lpText, xstr);
|
MultiByteToWideChar( CP_ACP, 0, xstr, -1, lpText, uSize );
|
||||||
HeapFree(GetProcessHeap(), 0, xstr);
|
HeapFree(GetProcessHeap(), 0, xstr);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -2537,7 +2545,8 @@ UINT WINAPI midiInGetDevCapsW(UINT uDeviceID, LPMIDIINCAPSW lpCaps, UINT uSize)
|
||||||
lpCaps->wMid = micA.wMid;
|
lpCaps->wMid = micA.wMid;
|
||||||
lpCaps->wPid = micA.wPid;
|
lpCaps->wPid = micA.wPid;
|
||||||
lpCaps->vDriverVersion = micA.vDriverVersion;
|
lpCaps->vDriverVersion = micA.vDriverVersion;
|
||||||
lstrcpyAtoW(lpCaps->szPname, micA.szPname);
|
MultiByteToWideChar( CP_ACP, 0, micA.szPname, -1, lpCaps->szPname,
|
||||||
|
sizeof(lpCaps->szPname)/sizeof(WCHAR) );
|
||||||
lpCaps->dwSupport = micA.dwSupport;
|
lpCaps->dwSupport = micA.dwSupport;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -2586,7 +2595,7 @@ UINT WINAPI midiInGetErrorTextW(UINT uError, LPWSTR lpText, UINT uSize)
|
||||||
LPSTR xstr = HeapAlloc(GetProcessHeap(), 0, uSize);
|
LPSTR xstr = HeapAlloc(GetProcessHeap(), 0, uSize);
|
||||||
UINT ret = MIDI_GetErrorText(uError, xstr, uSize);
|
UINT ret = MIDI_GetErrorText(uError, xstr, uSize);
|
||||||
|
|
||||||
lstrcpyAtoW(lpText, xstr);
|
MultiByteToWideChar( CP_ACP, 0, xstr, -1, lpText, uSize );
|
||||||
HeapFree(GetProcessHeap(), 0, xstr);
|
HeapFree(GetProcessHeap(), 0, xstr);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -3765,7 +3774,8 @@ UINT WINAPI waveOutGetDevCapsW(UINT uDeviceID, LPWAVEOUTCAPSW lpCaps,
|
||||||
lpCaps->wMid = wocA.wMid;
|
lpCaps->wMid = wocA.wMid;
|
||||||
lpCaps->wPid = wocA.wPid;
|
lpCaps->wPid = wocA.wPid;
|
||||||
lpCaps->vDriverVersion = wocA.vDriverVersion;
|
lpCaps->vDriverVersion = wocA.vDriverVersion;
|
||||||
lstrcpyAtoW(lpCaps->szPname, wocA.szPname);
|
MultiByteToWideChar( CP_ACP, 0, wocA.szPname, -1, lpCaps->szPname,
|
||||||
|
sizeof(lpCaps->szPname)/sizeof(WCHAR) );
|
||||||
lpCaps->dwFormats = wocA.dwFormats;
|
lpCaps->dwFormats = wocA.dwFormats;
|
||||||
lpCaps->wChannels = wocA.wChannels;
|
lpCaps->wChannels = wocA.wChannels;
|
||||||
lpCaps->dwSupport = wocA.dwSupport;
|
lpCaps->dwSupport = wocA.dwSupport;
|
||||||
|
@ -3822,7 +3832,7 @@ UINT WINAPI waveOutGetErrorTextW(UINT uError, LPWSTR lpText, UINT uSize)
|
||||||
LPSTR xstr = HeapAlloc(GetProcessHeap(), 0, uSize);
|
LPSTR xstr = HeapAlloc(GetProcessHeap(), 0, uSize);
|
||||||
UINT ret = WAVE_GetErrorText(uError, xstr, uSize);
|
UINT ret = WAVE_GetErrorText(uError, xstr, uSize);
|
||||||
|
|
||||||
lstrcpyAtoW(lpText, xstr);
|
MultiByteToWideChar( CP_ACP, 0, xstr, -1, lpText, uSize );
|
||||||
HeapFree(GetProcessHeap(), 0, xstr);
|
HeapFree(GetProcessHeap(), 0, xstr);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -4394,7 +4404,8 @@ UINT WINAPI waveInGetDevCapsW(UINT uDeviceID, LPWAVEINCAPSW lpCaps, UINT uSize)
|
||||||
lpCaps->wMid = wicA.wMid;
|
lpCaps->wMid = wicA.wMid;
|
||||||
lpCaps->wPid = wicA.wPid;
|
lpCaps->wPid = wicA.wPid;
|
||||||
lpCaps->vDriverVersion = wicA.vDriverVersion;
|
lpCaps->vDriverVersion = wicA.vDriverVersion;
|
||||||
lstrcpyAtoW(lpCaps->szPname, wicA.szPname);
|
MultiByteToWideChar( CP_ACP, 0, wicA.szPname, -1, lpCaps->szPname,
|
||||||
|
sizeof(lpCaps->szPname)/sizeof(WCHAR) );
|
||||||
lpCaps->dwFormats = wicA.dwFormats;
|
lpCaps->dwFormats = wicA.dwFormats;
|
||||||
lpCaps->wChannels = wicA.wChannels;
|
lpCaps->wChannels = wicA.wChannels;
|
||||||
}
|
}
|
||||||
|
@ -4455,7 +4466,7 @@ UINT WINAPI waveInGetErrorTextW(UINT uError, LPWSTR lpText, UINT uSize)
|
||||||
LPSTR txt = HeapAlloc(GetProcessHeap(), 0, uSize);
|
LPSTR txt = HeapAlloc(GetProcessHeap(), 0, uSize);
|
||||||
UINT ret = WAVE_GetErrorText(uError, txt, uSize);
|
UINT ret = WAVE_GetErrorText(uError, txt, uSize);
|
||||||
|
|
||||||
lstrcpyAtoW(lpText, txt);
|
MultiByteToWideChar( CP_ACP, 0, txt, -1, lpText, uSize );
|
||||||
HeapFree(GetProcessHeap(), 0, txt);
|
HeapFree(GetProcessHeap(), 0, txt);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
|
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "wine/winuser16.h"
|
#include "wine/winuser16.h"
|
||||||
|
@ -272,8 +271,13 @@ UINT WINAPI GetWindowsDirectoryA( LPSTR path, UINT count )
|
||||||
*/
|
*/
|
||||||
UINT WINAPI GetWindowsDirectoryW( LPWSTR path, UINT count )
|
UINT WINAPI GetWindowsDirectoryW( LPWSTR path, UINT count )
|
||||||
{
|
{
|
||||||
if (path) lstrcpynAtoW( path, DIR_Windows.short_name, count );
|
UINT len = MultiByteToWideChar( CP_ACP, 0, DIR_Windows.short_name, -1, NULL, 0 );
|
||||||
return strlen( DIR_Windows.short_name );
|
if (path && count)
|
||||||
|
{
|
||||||
|
if (!MultiByteToWideChar( CP_ACP, 0, DIR_Windows.short_name, -1, path, count ))
|
||||||
|
path[count-1] = 0;
|
||||||
|
}
|
||||||
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -319,8 +323,13 @@ UINT WINAPI GetSystemDirectoryA( LPSTR path, UINT count )
|
||||||
*/
|
*/
|
||||||
UINT WINAPI GetSystemDirectoryW( LPWSTR path, UINT count )
|
UINT WINAPI GetSystemDirectoryW( LPWSTR path, UINT count )
|
||||||
{
|
{
|
||||||
if (path) lstrcpynAtoW( path, DIR_System.short_name, count );
|
UINT len = MultiByteToWideChar( CP_ACP, 0, DIR_System.short_name, -1, NULL, 0 );
|
||||||
return strlen( DIR_System.short_name );
|
if (path && count)
|
||||||
|
{
|
||||||
|
if (!MultiByteToWideChar( CP_ACP, 0, DIR_System.short_name, -1, path, count ))
|
||||||
|
path[count-1] = 0;
|
||||||
|
}
|
||||||
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -711,13 +720,18 @@ DWORD WINAPI SearchPathW( LPCWSTR path, LPCWSTR name, LPCWSTR ext,
|
||||||
HeapFree( GetProcessHeap(), 0, pathA );
|
HeapFree( GetProcessHeap(), 0, pathA );
|
||||||
if (!ret) return 0;
|
if (!ret) return 0;
|
||||||
|
|
||||||
lstrcpynAtoW( buffer, full_name.short_name, buflen );
|
if (buflen > 0 && !MultiByteToWideChar( CP_ACP, 0, full_name.short_name, -1, buffer, buflen ))
|
||||||
|
buffer[buflen-1] = 0;
|
||||||
res = full_name.long_name +
|
res = full_name.long_name +
|
||||||
strlen(DRIVE_GetRoot( full_name.short_name[0] - 'A' ));
|
strlen(DRIVE_GetRoot( full_name.short_name[0] - 'A' ));
|
||||||
while (*res == '/') res++;
|
while (*res == '/') res++;
|
||||||
if (buflen)
|
if (buflen)
|
||||||
{
|
{
|
||||||
if (buflen > 3) lstrcpynAtoW( buffer + 3, res, buflen - 3 );
|
if (buflen > 3)
|
||||||
|
{
|
||||||
|
if (!MultiByteToWideChar( CP_ACP, 0, res, -1, buffer+3, buflen-3 ))
|
||||||
|
buffer[buflen-1] = 0;
|
||||||
|
}
|
||||||
for (p = buffer; *p; p++) if (*p == '/') *p = '\\';
|
for (p = buffer; *p; p++) if (*p == '/') *p = '\\';
|
||||||
if (lastpart)
|
if (lastpart)
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,9 +23,9 @@
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "ntddk.h"
|
#include "ntddk.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "drive.h"
|
#include "drive.h"
|
||||||
#include "file.h"
|
#include "file.h"
|
||||||
|
@ -1079,8 +1079,8 @@ DWORD WINAPI GetShortPathNameW( LPCWSTR longpath, LPWSTR shortpath,
|
||||||
shortpathA = HeapAlloc ( GetProcessHeap(), 0, shortlen );
|
shortpathA = HeapAlloc ( GetProcessHeap(), 0, shortlen );
|
||||||
|
|
||||||
ret = GetShortPathNameA ( longpathA, shortpathA, shortlen );
|
ret = GetShortPathNameA ( longpathA, shortpathA, shortlen );
|
||||||
lstrcpynAtoW ( shortpath, shortpathA, shortlen );
|
if (shortlen > 0 && !MultiByteToWideChar( CP_ACP, 0, shortpathA, -1, shortpath, shortlen ))
|
||||||
|
shortpath[shortlen-1] = 0;
|
||||||
HeapFree( GetProcessHeap(), 0, longpathA );
|
HeapFree( GetProcessHeap(), 0, longpathA );
|
||||||
HeapFree( GetProcessHeap(), 0, shortpathA );
|
HeapFree( GetProcessHeap(), 0, shortpathA );
|
||||||
|
|
||||||
|
@ -1158,7 +1158,9 @@ DWORD WINAPI GetLongPathNameW( LPCWSTR shortpath, LPWSTR longpath,
|
||||||
if (DOSFS_GetFullName( shortpathA, TRUE, &full_name ))
|
if (DOSFS_GetFullName( shortpathA, TRUE, &full_name ))
|
||||||
{
|
{
|
||||||
ret = strlen( full_name.short_name );
|
ret = strlen( full_name.short_name );
|
||||||
lstrcpynAtoW( longpath, full_name.long_name, longlen );
|
if (longlen > 0 && !MultiByteToWideChar( CP_ACP, 0, full_name.long_name, -1,
|
||||||
|
longpath, longlen ))
|
||||||
|
longpath[longlen-1] = 0;
|
||||||
}
|
}
|
||||||
HeapFree( GetProcessHeap(), 0, shortpathA );
|
HeapFree( GetProcessHeap(), 0, shortpathA );
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -1308,7 +1310,7 @@ static DWORD DOSFS_DoGetFullPathName( LPCSTR name, DWORD len, LPSTR result,
|
||||||
if (result)
|
if (result)
|
||||||
{
|
{
|
||||||
if (unicode)
|
if (unicode)
|
||||||
lstrcpynAtoW( (LPWSTR)result, full_name.short_name, len );
|
MultiByteToWideChar( CP_ACP, 0, full_name.short_name, -1, (LPWSTR)result, len );
|
||||||
else
|
else
|
||||||
lstrcpynA( result, full_name.short_name, len );
|
lstrcpynA( result, full_name.short_name, len );
|
||||||
}
|
}
|
||||||
|
@ -2138,18 +2140,15 @@ DWORD WINAPI QueryDosDeviceA(LPCSTR devname,LPSTR target,DWORD bufsize)
|
||||||
TRACE("(%s,...)\n", devname ? devname : "<null>");
|
TRACE("(%s,...)\n", devname ? devname : "<null>");
|
||||||
if (!devname) {
|
if (!devname) {
|
||||||
/* return known MSDOS devices */
|
/* return known MSDOS devices */
|
||||||
strcpy(buffer,"CON COM1 COM2 LPT1 NUL ");
|
static const char devices[24] = "CON\0COM1\0COM2\0LPT1\0NUL\0\0";
|
||||||
while ((s=strchr(buffer,' ')))
|
memcpy( target, devices, min(bufsize,sizeof(devices)) );
|
||||||
*s='\0';
|
return min(bufsize,sizeof(devices));
|
||||||
|
|
||||||
lstrcpynA(target,buffer,bufsize);
|
|
||||||
return strlen(buffer);
|
|
||||||
}
|
}
|
||||||
strcpy(buffer,"\\DEV\\");
|
strcpy(buffer,"\\DEV\\");
|
||||||
strcat(buffer,devname);
|
strcat(buffer,devname);
|
||||||
if ((s=strchr(buffer,':'))) *s='\0';
|
if ((s=strchr(buffer,':'))) *s='\0';
|
||||||
lstrcpynA(target,buffer,bufsize);
|
lstrcpynA(target,buffer,bufsize);
|
||||||
return strlen(buffer);
|
return strlen(buffer)+1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2164,7 +2163,7 @@ DWORD WINAPI QueryDosDeviceW(LPCWSTR devname,LPWSTR target,DWORD bufsize)
|
||||||
LPSTR targetA = (LPSTR)HeapAlloc(GetProcessHeap(),0,bufsize);
|
LPSTR targetA = (LPSTR)HeapAlloc(GetProcessHeap(),0,bufsize);
|
||||||
DWORD ret = QueryDosDeviceA(devnameA,targetA,bufsize);
|
DWORD ret = QueryDosDeviceA(devnameA,targetA,bufsize);
|
||||||
|
|
||||||
lstrcpynAtoW(target,targetA,bufsize);
|
ret = MultiByteToWideChar( CP_ACP, 0, targetA, ret, target, bufsize );
|
||||||
if (devnameA) HeapFree(GetProcessHeap(),0,devnameA);
|
if (devnameA) HeapFree(GetProcessHeap(),0,devnameA);
|
||||||
if (targetA) HeapFree(GetProcessHeap(),0,targetA);
|
if (targetA) HeapFree(GetProcessHeap(),0,targetA);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -41,7 +41,6 @@
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "ntddk.h"
|
#include "ntddk.h"
|
||||||
#include "wine/winbase16.h" /* for GetCurrentTask */
|
#include "wine/winbase16.h" /* for GetCurrentTask */
|
||||||
#include "wine/winestring.h" /* for lstrcpyAtoW */
|
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "drive.h"
|
#include "drive.h"
|
||||||
#include "cdrom.h"
|
#include "cdrom.h"
|
||||||
|
@ -1286,7 +1285,7 @@ UINT WINAPI GetCurrentDirectoryW( UINT buflen, LPWSTR buf )
|
||||||
{
|
{
|
||||||
LPSTR xpath = HeapAlloc( GetProcessHeap(), 0, buflen+1 );
|
LPSTR xpath = HeapAlloc( GetProcessHeap(), 0, buflen+1 );
|
||||||
UINT ret = GetCurrentDirectoryA( buflen, xpath );
|
UINT ret = GetCurrentDirectoryA( buflen, xpath );
|
||||||
if (ret < buflen) lstrcpyAtoW ( buf, xpath );
|
if (ret < buflen) ret = MultiByteToWideChar( CP_ACP, 0, xpath, -1, buf, buflen ) - 1;
|
||||||
HeapFree( GetProcessHeap(), 0, xpath );
|
HeapFree( GetProcessHeap(), 0, xpath );
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -1495,8 +1494,8 @@ BOOL WINAPI GetVolumeInformationW( LPCWSTR root, LPWSTR label,
|
||||||
fsname_len );
|
fsname_len );
|
||||||
if (ret)
|
if (ret)
|
||||||
{
|
{
|
||||||
if (label) lstrcpyAtoW( label, xvolname );
|
if (label) MultiByteToWideChar( CP_ACP, 0, xvolname, -1, label, label_len );
|
||||||
if (fsname) lstrcpyAtoW( fsname, xfsname );
|
if (fsname) MultiByteToWideChar( CP_ACP, 0, xfsname, -1, fsname, fsname_len );
|
||||||
}
|
}
|
||||||
HeapFree( GetProcessHeap(), 0, xroot );
|
HeapFree( GetProcessHeap(), 0, xroot );
|
||||||
HeapFree( GetProcessHeap(), 0, xvolname );
|
HeapFree( GetProcessHeap(), 0, xvolname );
|
||||||
|
|
|
@ -35,7 +35,6 @@
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "drive.h"
|
#include "drive.h"
|
||||||
#include "file.h"
|
#include "file.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
@ -841,7 +840,7 @@ UINT WINAPI GetTempFileNameW( LPCWSTR path, LPCWSTR prefix, UINT unique,
|
||||||
patha = HEAP_strdupWtoA( GetProcessHeap(), 0, path );
|
patha = HEAP_strdupWtoA( GetProcessHeap(), 0, path );
|
||||||
prefixa = HEAP_strdupWtoA( GetProcessHeap(), 0, prefix );
|
prefixa = HEAP_strdupWtoA( GetProcessHeap(), 0, prefix );
|
||||||
ret = FILE_GetTempFileName( patha, prefixa, unique, buffera, FALSE );
|
ret = FILE_GetTempFileName( patha, prefixa, unique, buffera, FALSE );
|
||||||
lstrcpyAtoW( buffer, buffera );
|
MultiByteToWideChar( CP_ACP, 0, buffera, -1, buffer, MAX_PATH );
|
||||||
HeapFree( GetProcessHeap(), 0, patha );
|
HeapFree( GetProcessHeap(), 0, patha );
|
||||||
HeapFree( GetProcessHeap(), 0, prefixa );
|
HeapFree( GetProcessHeap(), 0, prefixa );
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -14,12 +14,11 @@
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "windef.h"
|
|
||||||
#include "winnls.h"
|
|
||||||
#include "winreg.h"
|
#include "winreg.h"
|
||||||
#include "file.h"
|
#include "file.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
|
@ -1226,7 +1225,8 @@ INT WINAPI GetPrivateProfileStringW( LPCWSTR section, LPCWSTR entry,
|
||||||
LPSTR bufferA = HeapAlloc( GetProcessHeap(), 0, len );
|
LPSTR bufferA = HeapAlloc( GetProcessHeap(), 0, len );
|
||||||
INT ret = GetPrivateProfileStringA( sectionA, entryA, def_valA,
|
INT ret = GetPrivateProfileStringA( sectionA, entryA, def_valA,
|
||||||
bufferA, len, filenameA );
|
bufferA, len, filenameA );
|
||||||
lstrcpynAtoW( buffer, bufferA, len );
|
if (len > 0 && !MultiByteToWideChar( CP_ACP, 0, bufferA, -1, buffer, len ))
|
||||||
|
buffer[len-1] = 0;
|
||||||
HeapFree( GetProcessHeap(), 0, sectionA );
|
HeapFree( GetProcessHeap(), 0, sectionA );
|
||||||
HeapFree( GetProcessHeap(), 0, entryA );
|
HeapFree( GetProcessHeap(), 0, entryA );
|
||||||
HeapFree( GetProcessHeap(), 0, filenameA );
|
HeapFree( GetProcessHeap(), 0, filenameA );
|
||||||
|
@ -1603,7 +1603,8 @@ DWORD WINAPI GetPrivateProfileSectionNamesW( LPWSTR buffer, DWORD size,
|
||||||
LPSTR bufferA = HeapAlloc( GetProcessHeap(), 0, size);
|
LPSTR bufferA = HeapAlloc( GetProcessHeap(), 0, size);
|
||||||
|
|
||||||
INT ret = GetPrivateProfileSectionNames16 (bufferA, size, filenameA);
|
INT ret = GetPrivateProfileSectionNames16 (bufferA, size, filenameA);
|
||||||
lstrcpynAtoW( buffer, bufferA, size);
|
if (size > 0 && !MultiByteToWideChar( CP_ACP, 0, bufferA, -1, buffer, size ))
|
||||||
|
buffer[size-1] = 0;
|
||||||
HeapFree( GetProcessHeap(), 0, bufferA);
|
HeapFree( GetProcessHeap(), 0, bufferA);
|
||||||
HeapFree( GetProcessHeap(), 0, filenameA );
|
HeapFree( GetProcessHeap(), 0, filenameA );
|
||||||
|
|
||||||
|
@ -1707,7 +1708,8 @@ BOOL WINAPI GetPrivateProfileStructW (LPCWSTR section, LPCWSTR key,
|
||||||
|
|
||||||
INT ret = GetPrivateProfileStructA( sectionA, keyA, bufferA,
|
INT ret = GetPrivateProfileStructA( sectionA, keyA, bufferA,
|
||||||
len, filenameA );
|
len, filenameA );
|
||||||
lstrcpynAtoW( buffer, bufferA, len );
|
if (len > 0 && !MultiByteToWideChar( CP_ACP, 0, bufferA, -1, buffer, len ))
|
||||||
|
((LPWSTR)buffer)[len-1] = 0;
|
||||||
HeapFree( GetProcessHeap(), 0, bufferA);
|
HeapFree( GetProcessHeap(), 0, bufferA);
|
||||||
HeapFree( GetProcessHeap(), 0, sectionA );
|
HeapFree( GetProcessHeap(), 0, sectionA );
|
||||||
HeapFree( GetProcessHeap(), 0, keyA );
|
HeapFree( GetProcessHeap(), 0, keyA );
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "enhmetafile.h"
|
#include "enhmetafile.h"
|
||||||
#include "enhmetafiledrv.h"
|
#include "enhmetafiledrv.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
||||||
DEFAULT_DEBUG_CHANNEL(enhmetafile);
|
DEFAULT_DEBUG_CHANNEL(enhmetafile);
|
||||||
|
@ -211,7 +210,7 @@ HDC WINAPI CreateEnhMetaFileA(
|
||||||
LPWSTR filenameW = NULL;
|
LPWSTR filenameW = NULL;
|
||||||
LPWSTR descriptionW = NULL;
|
LPWSTR descriptionW = NULL;
|
||||||
HDC hReturnDC;
|
HDC hReturnDC;
|
||||||
DWORD len1, len2;
|
DWORD len1, len2, total;
|
||||||
|
|
||||||
if(filename)
|
if(filename)
|
||||||
filenameW = HEAP_strdupAtoW( GetProcessHeap(), 0, filename );
|
filenameW = HEAP_strdupAtoW( GetProcessHeap(), 0, filename );
|
||||||
|
@ -219,10 +218,9 @@ HDC WINAPI CreateEnhMetaFileA(
|
||||||
if(description) {
|
if(description) {
|
||||||
len1 = strlen(description);
|
len1 = strlen(description);
|
||||||
len2 = strlen(description + len1 + 1);
|
len2 = strlen(description + len1 + 1);
|
||||||
descriptionW = HeapAlloc( GetProcessHeap(), 0, (len1 + len2 + 3) * 2);
|
total = MultiByteToWideChar( CP_ACP, 0, description, len1 + len2 + 3, NULL, 0 );
|
||||||
lstrcpyAtoW(descriptionW, description );
|
descriptionW = HeapAlloc( GetProcessHeap(), 0, total * sizeof(WCHAR) );
|
||||||
lstrcpyAtoW(descriptionW + len1 + 1 , description + len1 + 1);
|
MultiByteToWideChar( CP_ACP, 0, description, len1 + len2 + 3, descriptionW, total );
|
||||||
*(descriptionW + len1 + len2 + 2) = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hReturnDC = CreateEnhMetaFileW(hdc, filenameW, rect, descriptionW);
|
hReturnDC = CreateEnhMetaFileW(hdc, filenameW, rect, descriptionW);
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "metafiledrv.h"
|
#include "metafiledrv.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
|
@ -69,6 +68,7 @@ MFDRV_ExtTextOut( DC *dc, INT x, INT y, UINT flags,
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
int i;
|
int i;
|
||||||
LPSTR ascii;
|
LPSTR ascii;
|
||||||
|
DWORD len;
|
||||||
|
|
||||||
if(lpDx)
|
if(lpDx)
|
||||||
lpdx16 = HeapAlloc( GetProcessHeap(), 0, sizeof(INT16)*count );
|
lpdx16 = HeapAlloc( GetProcessHeap(), 0, sizeof(INT16)*count );
|
||||||
|
@ -76,9 +76,10 @@ MFDRV_ExtTextOut( DC *dc, INT x, INT y, UINT flags,
|
||||||
if (lpdx16)
|
if (lpdx16)
|
||||||
for (i=count;i--;)
|
for (i=count;i--;)
|
||||||
lpdx16[i]=lpDx[i];
|
lpdx16[i]=lpDx[i];
|
||||||
ascii = HeapAlloc( GetProcessHeap(), 0, count+1 );
|
len = WideCharToMultiByte( CP_ACP, 0, str, count, NULL, 0, NULL, NULL );
|
||||||
lstrcpynWtoA(ascii, str, count+1);
|
ascii = HeapAlloc( GetProcessHeap(), 0, len );
|
||||||
ret = MFDRV_MetaExtTextOut(dc,x,y,flags,lprect?&rect16:NULL,ascii,count,
|
WideCharToMultiByte( CP_ACP, 0, str, count, ascii, len, NULL, NULL );
|
||||||
|
ret = MFDRV_MetaExtTextOut(dc,x,y,flags,lprect?&rect16:NULL,ascii,len,
|
||||||
lpdx16);
|
lpdx16);
|
||||||
HeapFree( GetProcessHeap(), 0, ascii );
|
HeapFree( GetProcessHeap(), 0, ascii );
|
||||||
if (lpdx16) HeapFree( GetProcessHeap(), 0, lpdx16 );
|
if (lpdx16) HeapFree( GetProcessHeap(), 0, lpdx16 );
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include "winnls.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "win16drv.h"
|
#include "win16drv.h"
|
||||||
#include "module.h"
|
#include "module.h"
|
||||||
#include "font.h"
|
#include "font.h"
|
||||||
|
@ -25,17 +25,19 @@ BOOL WIN16DRV_GetTextExtentPoint( DC *dc, LPCWSTR wstr, INT count,
|
||||||
LPSIZE size )
|
LPSIZE size )
|
||||||
{
|
{
|
||||||
WIN16DRV_PDEVICE *physDev = (WIN16DRV_PDEVICE *)dc->physDev;
|
WIN16DRV_PDEVICE *physDev = (WIN16DRV_PDEVICE *)dc->physDev;
|
||||||
DWORD dwRet;
|
DWORD dwRet, len;
|
||||||
char *str;
|
char *str;
|
||||||
|
|
||||||
TRACE("%04x %s %d %p\n",
|
TRACE("%04x %s %d %p\n",
|
||||||
dc->hSelf, debugstr_wn(wstr, count), count, size);
|
dc->hSelf, debugstr_wn(wstr, count), count, size);
|
||||||
|
|
||||||
str = HeapAlloc( GetProcessHeap(), 0, count+1 );
|
|
||||||
lstrcpynWtoA( str, wstr, count+1 );
|
len = WideCharToMultiByte( CP_ACP, 0, wstr, count, NULL, 0, NULL, NULL );
|
||||||
|
str = HeapAlloc( GetProcessHeap(), 0, len );
|
||||||
|
WideCharToMultiByte( CP_ACP, 0, wstr, count, str, len, NULL, NULL );
|
||||||
|
|
||||||
dwRet = PRTDRV_ExtTextOut(physDev->segptrPDEVICE, 0, 0,
|
dwRet = PRTDRV_ExtTextOut(physDev->segptrPDEVICE, 0, 0,
|
||||||
NULL, str,
|
NULL, str, -len, physDev->FontInfo,
|
||||||
-count, physDev->FontInfo,
|
|
||||||
win16drv_SegPtr_DrawMode,
|
win16drv_SegPtr_DrawMode,
|
||||||
win16drv_SegPtr_TextXForm, NULL, NULL, 0);
|
win16drv_SegPtr_TextXForm, NULL, NULL, 0);
|
||||||
size->cx = XDSTOLS(dc,LOWORD(dwRet));
|
size->cx = XDSTOLS(dc,LOWORD(dwRet));
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
#include "gdi.h"
|
#include "gdi.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wine/winestring.h"
|
#include "winnls.h"
|
||||||
|
|
||||||
DEFAULT_DEBUG_CHANNEL(win16drv);
|
DEFAULT_DEBUG_CHANNEL(win16drv);
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ BOOL WIN16DRV_ExtTextOut( DC *dc, INT x, INT y, UINT flags,
|
||||||
RECT16 opaqueRect;
|
RECT16 opaqueRect;
|
||||||
RECT16 *lpOpaqueRect = NULL;
|
RECT16 *lpOpaqueRect = NULL;
|
||||||
WORD wOptions = 0;
|
WORD wOptions = 0;
|
||||||
WORD wCount = count;
|
DWORD len;
|
||||||
INT16 width;
|
INT16 width;
|
||||||
char *str;
|
char *str;
|
||||||
DWORD dwRet;
|
DWORD dwRet;
|
||||||
|
@ -38,8 +38,9 @@ BOOL WIN16DRV_ExtTextOut( DC *dc, INT x, INT y, UINT flags,
|
||||||
TRACE("%04x %d %d %x %p %s %p\n",
|
TRACE("%04x %d %d %x %p %s %p\n",
|
||||||
dc->hSelf, x, y, flags, lprect, debugstr_wn(wstr, count), lpDx);
|
dc->hSelf, x, y, flags, lprect, debugstr_wn(wstr, count), lpDx);
|
||||||
|
|
||||||
str = HeapAlloc( GetProcessHeap(), 0, count+1 );
|
len = WideCharToMultiByte( CP_ACP, 0, wstr, count, NULL, 0, NULL, NULL );
|
||||||
lstrcpynWtoA( str, wstr, count+1 );
|
str = HeapAlloc( GetProcessHeap(), 0, len );
|
||||||
|
WideCharToMultiByte( CP_ACP, 0, wstr, count, str, len, NULL, NULL );
|
||||||
|
|
||||||
clipRect.left = 0;
|
clipRect.left = 0;
|
||||||
clipRect.top = 0;
|
clipRect.top = 0;
|
||||||
|
@ -65,7 +66,7 @@ BOOL WIN16DRV_ExtTextOut( DC *dc, INT x, INT y, UINT flags,
|
||||||
y = YLPTODP( dc, y );
|
y = YLPTODP( dc, y );
|
||||||
|
|
||||||
dwRet = PRTDRV_ExtTextOut(physDev->segptrPDEVICE, 0, 0,
|
dwRet = PRTDRV_ExtTextOut(physDev->segptrPDEVICE, 0, 0,
|
||||||
NULL, str, -count, physDev->FontInfo,
|
NULL, str, -len, physDev->FontInfo,
|
||||||
win16drv_SegPtr_DrawMode,
|
win16drv_SegPtr_DrawMode,
|
||||||
win16drv_SegPtr_TextXForm,
|
win16drv_SegPtr_TextXForm,
|
||||||
NULL, NULL, 0);
|
NULL, NULL, 0);
|
||||||
|
@ -99,7 +100,7 @@ BOOL WIN16DRV_ExtTextOut( DC *dc, INT x, INT y, UINT flags,
|
||||||
}
|
}
|
||||||
|
|
||||||
dwRet = PRTDRV_ExtTextOut(physDev->segptrPDEVICE,
|
dwRet = PRTDRV_ExtTextOut(physDev->segptrPDEVICE,
|
||||||
x, y, &clipRect, str, wCount,
|
x, y, &clipRect, str, (WORD)len,
|
||||||
physDev->FontInfo, win16drv_SegPtr_DrawMode,
|
physDev->FontInfo, win16drv_SegPtr_DrawMode,
|
||||||
win16drv_SegPtr_TextXForm, NULL, lpOpaqueRect,
|
win16drv_SegPtr_TextXForm, NULL, lpOpaqueRect,
|
||||||
wOptions);
|
wOptions);
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "builtin16.h"
|
#include "builtin16.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
#ifndef __WINE_WINE_WINESTRING_H
|
|
||||||
#define __WINE_WINE_WINESTRING_H
|
|
||||||
|
|
||||||
#include "windef.h"
|
|
||||||
#include "winnls.h"
|
|
||||||
|
|
||||||
LPWSTR WINAPI lstrcpynAtoW(LPWSTR,LPCSTR,INT);
|
|
||||||
LPSTR WINAPI lstrcpynWtoA(LPSTR,LPCWSTR,INT);
|
|
||||||
|
|
||||||
/* compatibility macros; will be removed some day, please don't use them */
|
|
||||||
#define lstrcpyAtoW(dst,src) ((void)MultiByteToWideChar(CP_ACP,0,(src),-1,(dst),0x7fffffff))
|
|
||||||
#define lstrcpyWtoA(dst,src) ((void)WideCharToMultiByte(CP_ACP,0,(src),-1,(dst),0x7fffffff,NULL,NULL))
|
|
||||||
|
|
||||||
#endif /* __WINE_WINE_WINESTRING_H */
|
|
|
@ -12,7 +12,6 @@
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "neexe.h"
|
#include "neexe.h"
|
||||||
|
@ -1212,7 +1211,8 @@ DWORD WINAPI GetModuleFileNameW( HMODULE hModule, LPWSTR lpFileName,
|
||||||
{
|
{
|
||||||
LPSTR fnA = (char*)HeapAlloc( GetProcessHeap(), 0, size );
|
LPSTR fnA = (char*)HeapAlloc( GetProcessHeap(), 0, size );
|
||||||
DWORD res = GetModuleFileNameA( hModule, fnA, size );
|
DWORD res = GetModuleFileNameA( hModule, fnA, size );
|
||||||
lstrcpynAtoW( lpFileName, fnA, size );
|
if (size > 0 && !MultiByteToWideChar( CP_ACP, 0, fnA, -1, lpFileName, size ))
|
||||||
|
lpFileName[size-1] = 0;
|
||||||
HeapFree( GetProcessHeap(), 0, fnA );
|
HeapFree( GetProcessHeap(), 0, fnA );
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "wine/winuser16.h"
|
#include "wine/winuser16.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "module.h"
|
#include "module.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
||||||
|
@ -47,7 +46,7 @@ VOID WINAPI ConvertDialog32To16( LPVOID dialog32, DWORD size, LPVOID dialog16 )
|
||||||
case 0x0000: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0; break;
|
case 0x0000: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0; break;
|
||||||
case 0xffff: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0xff;
|
case 0xffff: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0xff;
|
||||||
*((WORD *)dialog16)++ = *((WORD *)p)++; break;
|
*((WORD *)dialog16)++ = *((WORD *)p)++; break;
|
||||||
default: lstrcpyWtoA( (LPSTR)dialog16, (LPWSTR)p );
|
default: WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)dialog16, 0x7fffffff, NULL,NULL );
|
||||||
((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
|
((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
|
||||||
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
||||||
break;
|
break;
|
||||||
|
@ -59,14 +58,14 @@ VOID WINAPI ConvertDialog32To16( LPVOID dialog32, DWORD size, LPVOID dialog16 )
|
||||||
case 0x0000: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0; break;
|
case 0x0000: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0; break;
|
||||||
case 0xffff: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0xff;
|
case 0xffff: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0xff;
|
||||||
*((WORD *)dialog16)++ = *((WORD *)p)++; break;
|
*((WORD *)dialog16)++ = *((WORD *)p)++; break;
|
||||||
default: lstrcpyWtoA( (LPSTR)dialog16, (LPWSTR)p );
|
default: WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)dialog16, 0x7fffffff, NULL,NULL );
|
||||||
((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
|
((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
|
||||||
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Transfer window caption */
|
/* Transfer window caption */
|
||||||
lstrcpyWtoA( (LPSTR)dialog16, (LPWSTR)p );
|
WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)dialog16, 0x7fffffff, NULL,NULL );
|
||||||
((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
|
((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
|
||||||
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
||||||
|
|
||||||
|
@ -79,7 +78,7 @@ VOID WINAPI ConvertDialog32To16( LPVOID dialog32, DWORD size, LPVOID dialog16 )
|
||||||
*((WORD *)dialog16)++ = *((WORD *)p)++; /* weight */
|
*((WORD *)dialog16)++ = *((WORD *)p)++; /* weight */
|
||||||
*((WORD *)dialog16)++ = *((WORD *)p)++; /* italic */
|
*((WORD *)dialog16)++ = *((WORD *)p)++; /* italic */
|
||||||
}
|
}
|
||||||
lstrcpyWtoA( (LPSTR)dialog16, (LPWSTR)p ); /* faceName */
|
WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)dialog16, 0x7fffffff, NULL,NULL ); /* faceName */
|
||||||
((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
|
((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
|
||||||
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
||||||
}
|
}
|
||||||
|
@ -121,7 +120,7 @@ VOID WINAPI ConvertDialog32To16( LPVOID dialog32, DWORD size, LPVOID dialog16 )
|
||||||
case 0x0000: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0; break;
|
case 0x0000: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0; break;
|
||||||
case 0xffff: ((WORD *)p)++;
|
case 0xffff: ((WORD *)p)++;
|
||||||
*((BYTE *)dialog16)++ = (BYTE)*((WORD *)p)++; break;
|
*((BYTE *)dialog16)++ = (BYTE)*((WORD *)p)++; break;
|
||||||
default: lstrcpyWtoA( (LPSTR)dialog16, (LPWSTR)p );
|
default: WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)dialog16, 0x7fffffff, NULL,NULL );
|
||||||
((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
|
((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
|
||||||
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
||||||
break;
|
break;
|
||||||
|
@ -133,7 +132,7 @@ VOID WINAPI ConvertDialog32To16( LPVOID dialog32, DWORD size, LPVOID dialog16 )
|
||||||
case 0x0000: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0; break;
|
case 0x0000: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0; break;
|
||||||
case 0xffff: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0xff;
|
case 0xffff: ((WORD *)p)++; *((BYTE *)dialog16)++ = 0xff;
|
||||||
*((WORD *)dialog16)++ = *((WORD *)p)++; break;
|
*((WORD *)dialog16)++ = *((WORD *)p)++; break;
|
||||||
default: lstrcpyWtoA( (LPSTR)dialog16, (LPWSTR)p );
|
default: WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)dialog16, 0x7fffffff, NULL,NULL );
|
||||||
((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
|
((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
|
||||||
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
||||||
break;
|
break;
|
||||||
|
@ -296,7 +295,7 @@ VOID WINAPI ConvertMenu32To16( LPVOID menu32, DWORD size, LPVOID menu16 )
|
||||||
else
|
else
|
||||||
level++;
|
level++;
|
||||||
|
|
||||||
lstrcpyWtoA( (LPSTR)menu16, (LPWSTR)p );
|
WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)menu16, 0x7fffffff, NULL,NULL );
|
||||||
((LPSTR)menu16) += strlen( (LPSTR)menu16 ) + 1;
|
((LPSTR)menu16) += strlen( (LPSTR)menu16 ) + 1;
|
||||||
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
||||||
|
|
||||||
|
@ -310,7 +309,7 @@ VOID WINAPI ConvertMenu32To16( LPVOID menu32, DWORD size, LPVOID menu16 )
|
||||||
*((WORD *)menu16)++ = (WORD)*((DWORD *)p)++; /* ID */
|
*((WORD *)menu16)++ = (WORD)*((DWORD *)p)++; /* ID */
|
||||||
flags = *((BYTE *)menu16)++ = (BYTE)*((WORD *)p)++;
|
flags = *((BYTE *)menu16)++ = (BYTE)*((WORD *)p)++;
|
||||||
|
|
||||||
lstrcpyWtoA( (LPSTR)menu16, (LPWSTR)p );
|
WideCharToMultiByte( CP_ACP, 0, (LPWSTR)p, -1, (LPSTR)menu16, 0x7fffffff, NULL,NULL );
|
||||||
((LPSTR)menu16) += strlen( (LPSTR)menu16 ) + 1;
|
((LPSTR)menu16) += strlen( (LPSTR)menu16 ) + 1;
|
||||||
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
((LPWSTR)p) += strlenW( (LPWSTR)p ) + 1;
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winnls.h"
|
#include "winnls.h"
|
||||||
|
|
|
@ -7,11 +7,11 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "wine/winestring.h"
|
#include "winnls.h"
|
||||||
|
#include "winerror.h"
|
||||||
#include "process.h"
|
#include "process.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "selectors.h"
|
#include "selectors.h"
|
||||||
#include "winerror.h"
|
|
||||||
|
|
||||||
/* Format of an environment block:
|
/* Format of an environment block:
|
||||||
* ASCIIZ string 1 (xx=yy format)
|
* ASCIIZ string 1 (xx=yy format)
|
||||||
|
@ -259,7 +259,8 @@ DWORD WINAPI GetEnvironmentVariableW( LPCWSTR nameW, LPWSTR valW, DWORD size)
|
||||||
HeapFree( GetProcessHeap(), 0, name );
|
HeapFree( GetProcessHeap(), 0, name );
|
||||||
if (val)
|
if (val)
|
||||||
{
|
{
|
||||||
lstrcpynAtoW( valW, val, size );
|
if (size > 0 && !MultiByteToWideChar( CP_ACP, 0, val, -1, valW, size ))
|
||||||
|
valW[size-1] = 0;
|
||||||
HeapFree( GetProcessHeap(), 0, val );
|
HeapFree( GetProcessHeap(), 0, val );
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
|
@ -416,7 +417,7 @@ DWORD WINAPI ExpandEnvironmentStringsW( LPCWSTR src, LPWSTR dst, DWORD len )
|
||||||
DWORD ret = ExpandEnvironmentStringsA( srcA, dstA, len );
|
DWORD ret = ExpandEnvironmentStringsA( srcA, dstA, len );
|
||||||
if (dstA)
|
if (dstA)
|
||||||
{
|
{
|
||||||
lstrcpyAtoW( dst, dstA );
|
ret = MultiByteToWideChar( CP_ACP, 0, dstA, -1, dst, len );
|
||||||
HeapFree( GetProcessHeap(), 0, dstA );
|
HeapFree( GetProcessHeap(), 0, dstA );
|
||||||
}
|
}
|
||||||
HeapFree( GetProcessHeap(), 0, srcA );
|
HeapFree( GetProcessHeap(), 0, srcA );
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "server.h"
|
#include "server.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
|
|
@ -306,33 +306,6 @@ INT WINAPI lstrlenW( LPCWSTR str )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
|
||||||
* lstrcpynAtoW (Not a Windows API)
|
|
||||||
* Note: this function differs from the UNIX strncpy, it _always_ writes
|
|
||||||
* a terminating \0
|
|
||||||
*/
|
|
||||||
LPWSTR WINAPI lstrcpynAtoW( LPWSTR dst, LPCSTR src, INT n )
|
|
||||||
{
|
|
||||||
if (n > 0 && !MultiByteToWideChar( CP_ACP, 0, src, -1, dst, n )) dst[n-1] = 0;
|
|
||||||
return dst;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
|
||||||
* lstrcpynWtoA (Not a Windows API)
|
|
||||||
* Note: this function differs from the UNIX strncpy, it _always_ writes
|
|
||||||
* a terminating \0
|
|
||||||
*
|
|
||||||
* The terminating zero should be written at the end of the string, not
|
|
||||||
* the end of the buffer, as some programs specify the wrong size for
|
|
||||||
* the buffer (eg. winnt's sol.exe)
|
|
||||||
*/
|
|
||||||
LPSTR WINAPI lstrcpynWtoA( LPSTR dst, LPCWSTR src, INT n )
|
|
||||||
{
|
|
||||||
if (n > 0 && !WideCharToMultiByte( CP_ACP, 0, src, -1, dst, n, NULL, NULL )) dst[n-1] = 0;
|
|
||||||
return dst;
|
|
||||||
}
|
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* UnicodeToAnsi (KERNEL.434)
|
* UnicodeToAnsi (KERNEL.434)
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -13,11 +13,11 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
|
#include "winnls.h"
|
||||||
#include "cdrom.h"
|
#include "cdrom.h"
|
||||||
#include "drive.h"
|
#include "drive.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
|
|
||||||
DEFAULT_DEBUG_CHANNEL(cdrom);
|
DEFAULT_DEBUG_CHANNEL(cdrom);
|
||||||
|
|
||||||
|
@ -812,7 +812,8 @@ DWORD CDROM_Data_GetLabel(WINE_CDAUDIO* wcda, char *label, int parentdev)
|
||||||
ch = label_read[i];
|
ch = label_read[i];
|
||||||
label_read[i] = (ch << 8) | (ch >> 8);
|
label_read[i] = (ch << 8) | (ch >> 8);
|
||||||
}
|
}
|
||||||
lstrcpynWtoA(label, label_read, 11);
|
WideCharToMultiByte( CP_ACP, 0, label_read, -1, label, 12, NULL, NULL );
|
||||||
|
label[11] = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "winreg.h"
|
#include "winreg.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "winnt.h"
|
#include "winnt.h"
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "process.h"
|
#include "process.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
@ -450,7 +449,8 @@ BOOL WINAPI GetVersionExW(OSVERSIONINFOW *v)
|
||||||
v->dwMinorVersion = VersionData[ver].getVersionEx.dwMinorVersion;
|
v->dwMinorVersion = VersionData[ver].getVersionEx.dwMinorVersion;
|
||||||
v->dwBuildNumber = VersionData[ver].getVersionEx.dwBuildNumber;
|
v->dwBuildNumber = VersionData[ver].getVersionEx.dwBuildNumber;
|
||||||
v->dwPlatformId = VersionData[ver].getVersionEx.dwPlatformId;
|
v->dwPlatformId = VersionData[ver].getVersionEx.dwPlatformId;
|
||||||
lstrcpyAtoW( v->szCSDVersion, VersionData[ver].getVersionEx.szCSDVersion );
|
MultiByteToWideChar( CP_ACP, 0, VersionData[ver].getVersionEx.szCSDVersion, -1,
|
||||||
|
v->szCSDVersion, sizeof(v->szCSDVersion)/sizeof(WCHAR) );
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,9 +18,9 @@
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include "winnls.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "enhmetafile.h"
|
#include "enhmetafile.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
|
@ -197,29 +197,26 @@ UINT WINAPI GetEnhMetaFileDescriptionA(
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LPENHMETAHEADER emh = EMF_GetEnhMetaHeader(hmf);
|
LPENHMETAHEADER emh = EMF_GetEnhMetaHeader(hmf);
|
||||||
INT first, first_A;
|
DWORD len;
|
||||||
|
WCHAR *descrW;
|
||||||
|
|
||||||
if(!emh) return FALSE;
|
if(!emh) return FALSE;
|
||||||
if(emh->nDescription == 0 || emh->offDescription == 0) {
|
if(emh->nDescription == 0 || emh->offDescription == 0) {
|
||||||
EMF_ReleaseEnhMetaHeader(hmf);
|
EMF_ReleaseEnhMetaHeader(hmf);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
descrW = (WCHAR *) ((char *) emh + emh->offDescription);
|
||||||
|
len = WideCharToMultiByte( CP_ACP, 0, descrW, emh->nDescription, NULL, 0, NULL, NULL );
|
||||||
|
|
||||||
if (!buf || !size ) {
|
if (!buf || !size ) {
|
||||||
EMF_ReleaseEnhMetaHeader(hmf);
|
EMF_ReleaseEnhMetaHeader(hmf);
|
||||||
return emh->nDescription;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
first = lstrlenW( (WCHAR *) ((char *) emh + emh->offDescription));
|
len = min( size, len );
|
||||||
|
WideCharToMultiByte( CP_ACP, 0, descrW, emh->nDescription, buf, len, NULL, NULL );
|
||||||
lstrcpynWtoA(buf, (WCHAR *) ((char *) emh + emh->offDescription), size);
|
|
||||||
first_A = strlen( buf );
|
|
||||||
buf += first_A + 1;
|
|
||||||
lstrcpynWtoA(buf, (WCHAR *) ((char *) emh + emh->offDescription+2*(first+1)),
|
|
||||||
size - first_A - 1); /* i18n ready */
|
|
||||||
first_A += strlen(buf) + 1;
|
|
||||||
|
|
||||||
EMF_ReleaseEnhMetaHeader(hmf);
|
EMF_ReleaseEnhMetaHeader(hmf);
|
||||||
return min(size, first_A);
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
@ -250,7 +247,7 @@ UINT WINAPI GetEnhMetaFileDescriptionW(
|
||||||
}
|
}
|
||||||
|
|
||||||
memmove(buf, (char *) emh + emh->offDescription,
|
memmove(buf, (char *) emh + emh->offDescription,
|
||||||
min(size,emh->nDescription));
|
min(size,emh->nDescription)*sizeof(WCHAR));
|
||||||
EMF_ReleaseEnhMetaHeader(hmf);
|
EMF_ReleaseEnhMetaHeader(hmf);
|
||||||
return min(size, emh->nDescription);
|
return min(size, emh->nDescription);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,15 +7,14 @@
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "wine/winestring.h"
|
#include "winerror.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "font.h"
|
#include "font.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "metafile.h"
|
#include "metafile.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "winerror.h"
|
|
||||||
#include "gdi.h"
|
#include "gdi.h"
|
||||||
#include "winnls.h"
|
|
||||||
|
|
||||||
DEFAULT_DEBUG_CHANNEL(font);
|
DEFAULT_DEBUG_CHANNEL(font);
|
||||||
DECLARE_DEBUG_CHANNEL(gdi);
|
DECLARE_DEBUG_CHANNEL(gdi);
|
||||||
|
@ -126,7 +125,9 @@ void FONT_LogFont32WTo16( const LOGFONTW* font32, LPLOGFONT16 font16 )
|
||||||
font16->lfClipPrecision = font32->lfClipPrecision;
|
font16->lfClipPrecision = font32->lfClipPrecision;
|
||||||
font16->lfQuality = font32->lfQuality;
|
font16->lfQuality = font32->lfQuality;
|
||||||
font16->lfPitchAndFamily = font32->lfPitchAndFamily;
|
font16->lfPitchAndFamily = font32->lfPitchAndFamily;
|
||||||
lstrcpynWtoA( font16->lfFaceName, font32->lfFaceName, LF_FACESIZE );
|
WideCharToMultiByte( CP_ACP, 0, font32->lfFaceName, -1,
|
||||||
|
font16->lfFaceName, LF_FACESIZE, NULL, NULL );
|
||||||
|
font16->lfFaceName[LF_FACESIZE-1] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FONT_LogFont16To32A( const LPLOGFONT16 font16, LPLOGFONTA font32 )
|
void FONT_LogFont16To32A( const LPLOGFONT16 font16, LPLOGFONTA font32 )
|
||||||
|
@ -162,7 +163,8 @@ void FONT_LogFont16To32W( const LPLOGFONT16 font16, LPLOGFONTW font32 )
|
||||||
font32->lfClipPrecision = font16->lfClipPrecision;
|
font32->lfClipPrecision = font16->lfClipPrecision;
|
||||||
font32->lfQuality = font16->lfQuality;
|
font32->lfQuality = font16->lfQuality;
|
||||||
font32->lfPitchAndFamily = font16->lfPitchAndFamily;
|
font32->lfPitchAndFamily = font16->lfPitchAndFamily;
|
||||||
lstrcpynAtoW( font32->lfFaceName, font16->lfFaceName, LF_FACESIZE );
|
MultiByteToWideChar( CP_ACP, 0, font16->lfFaceName, -1, font32->lfFaceName, LF_FACESIZE );
|
||||||
|
font32->lfFaceName[LF_FACESIZE-1] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FONT_EnumLogFontEx16To32A( const LPENUMLOGFONTEX16 font16, LPENUMLOGFONTEXA font32 )
|
void FONT_EnumLogFontEx16To32A( const LPENUMLOGFONTEX16 font16, LPENUMLOGFONTEXA font32 )
|
||||||
|
@ -176,9 +178,13 @@ void FONT_EnumLogFontEx16To32A( const LPENUMLOGFONTEX16 font16, LPENUMLOGFONTEXA
|
||||||
void FONT_EnumLogFontEx16To32W( const LPENUMLOGFONTEX16 font16, LPENUMLOGFONTEXW font32 )
|
void FONT_EnumLogFontEx16To32W( const LPENUMLOGFONTEX16 font16, LPENUMLOGFONTEXW font32 )
|
||||||
{
|
{
|
||||||
FONT_LogFont16To32W( (LPLOGFONT16)font16, (LPLOGFONTW)font32);
|
FONT_LogFont16To32W( (LPLOGFONT16)font16, (LPLOGFONTW)font32);
|
||||||
lstrcpynAtoW( font32->elfFullName, font16->elfFullName, LF_FULLFACESIZE );
|
|
||||||
lstrcpynAtoW( font32->elfStyle, font16->elfStyle, LF_FACESIZE );
|
MultiByteToWideChar( CP_ACP, 0, font16->elfFullName, -1, font32->elfFullName, LF_FULLFACESIZE );
|
||||||
lstrcpynAtoW( font32->elfScript, font16->elfScript, LF_FACESIZE );
|
font32->elfFullName[LF_FULLFACESIZE-1] = 0;
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, font16->elfStyle, -1, font32->elfStyle, LF_FACESIZE );
|
||||||
|
font32->elfStyle[LF_FACESIZE-1] = 0;
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, font16->elfScript, -1, font32->elfScript, LF_FACESIZE );
|
||||||
|
font32->elfScript[LF_FACESIZE-1] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
|
@ -603,7 +609,11 @@ static INT FONT_EnumFontFamiliesEx( HDC hDC, LPLOGFONTW plf, FONTENUMPROCEXW efp
|
||||||
if( plf->lfFaceName[0] )
|
if( plf->lfFaceName[0] )
|
||||||
{
|
{
|
||||||
if( dwUnicode )
|
if( dwUnicode )
|
||||||
lstrcpynWtoA( lf16.lfFaceName, plf->lfFaceName, LF_FACESIZE );
|
{
|
||||||
|
WideCharToMultiByte( CP_ACP, 0, plf->lfFaceName, -1,
|
||||||
|
lf16.lfFaceName, LF_FACESIZE, NULL, NULL );
|
||||||
|
lf16.lfFaceName[LF_FACESIZE-1] = 0;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
lstrcpynA( lf16.lfFaceName, (LPCSTR)plf->lfFaceName, LF_FACESIZE );
|
lstrcpynA( lf16.lfFaceName, (LPCSTR)plf->lfFaceName, LF_FACESIZE );
|
||||||
}
|
}
|
||||||
|
@ -846,7 +856,7 @@ INT WINAPI GetTextFaceW( HDC hdc, INT count, LPWSTR name )
|
||||||
{
|
{
|
||||||
LPSTR nameA = HeapAlloc( GetProcessHeap(), 0, count );
|
LPSTR nameA = HeapAlloc( GetProcessHeap(), 0, count );
|
||||||
INT res = GetTextFaceA(hdc,count,nameA);
|
INT res = GetTextFaceA(hdc,count,nameA);
|
||||||
if (name) lstrcpyAtoW( name, nameA );
|
if (name) res = MultiByteToWideChar( CP_ACP, 0, nameA, -1, name, count );
|
||||||
HeapFree( GetProcessHeap(), 0, nameA );
|
HeapFree( GetProcessHeap(), 0, nameA );
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
@ -973,15 +983,12 @@ BOOL WINAPI GetTextExtentExPointA( HDC hdc, LPCSTR str, INT count,
|
||||||
INT maxExt, LPINT lpnFit,
|
INT maxExt, LPINT lpnFit,
|
||||||
LPINT alpDx, LPSIZE size )
|
LPINT alpDx, LPSIZE size )
|
||||||
{
|
{
|
||||||
LPWSTR p;
|
|
||||||
BOOL ret;
|
BOOL ret;
|
||||||
|
|
||||||
/* Docs say str should be 0 terminated here, but we'll use count just in case
|
DWORD len = MultiByteToWideChar( CP_ACP, 0, str, count, NULL, 0 );
|
||||||
*/
|
LPWSTR p = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) );
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, str, count, p, len );
|
||||||
p = HeapAlloc( GetProcessHeap(), 0, (count+1) * sizeof(WCHAR) );
|
ret = GetTextExtentExPointW( hdc, p, len, maxExt, lpnFit, alpDx, size);
|
||||||
lstrcpynAtoW(p, str, count+1);
|
|
||||||
ret = GetTextExtentExPointW( hdc, p, count, maxExt, lpnFit, alpDx, size);
|
|
||||||
HeapFree( GetProcessHeap(), 0, p );
|
HeapFree( GetProcessHeap(), 0, p );
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
#include "winver.h"
|
#include "winver.h"
|
||||||
|
|
|
@ -35,11 +35,11 @@
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include "winbase.h"
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
|
#include "winbase.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "wine/winuser16.h"
|
#include "wine/winuser16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "wine/keyboard16.h"
|
#include "wine/keyboard16.h"
|
||||||
#include "thread.h"
|
#include "thread.h"
|
||||||
#include "file.h"
|
#include "file.h"
|
||||||
|
@ -49,7 +49,6 @@
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "server.h"
|
#include "server.h"
|
||||||
#include "debugtools.h"
|
#include "debugtools.h"
|
||||||
#include "winnls.h"
|
|
||||||
|
|
||||||
DEFAULT_DEBUG_CHANNEL(console);
|
DEFAULT_DEBUG_CHANNEL(console);
|
||||||
|
|
||||||
|
@ -813,9 +812,9 @@ DWORD WINAPI GetConsoleTitleW( LPWSTR title, DWORD size )
|
||||||
char *tmp;
|
char *tmp;
|
||||||
DWORD ret;
|
DWORD ret;
|
||||||
|
|
||||||
if (!(tmp = HeapAlloc( GetProcessHeap(), 0, size ))) return 0;
|
if (!(tmp = HeapAlloc( GetProcessHeap(), 0, size*sizeof(WCHAR) ))) return 0;
|
||||||
ret = GetConsoleTitleA( tmp, size );
|
GetConsoleTitleA( tmp, size*sizeof(WCHAR) );
|
||||||
lstrcpyAtoW( title, tmp );
|
ret = MultiByteToWideChar( CP_ACP, 0, tmp, -1, title, size );
|
||||||
HeapFree( GetProcessHeap(), 0, tmp );
|
HeapFree( GetProcessHeap(), 0, tmp );
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -1056,7 +1055,8 @@ BOOL WINAPI ReadConsoleW( HANDLE hConsoleInput,
|
||||||
lpReserved
|
lpReserved
|
||||||
);
|
);
|
||||||
if (ret)
|
if (ret)
|
||||||
lstrcpynAtoW(lpBuffer,buf,nNumberOfCharsToRead);
|
MultiByteToWideChar( CP_ACP, 0, buf, -1, lpBuffer, nNumberOfCharsToRead );
|
||||||
|
|
||||||
HeapFree( GetProcessHeap(), 0, buf );
|
HeapFree( GetProcessHeap(), 0, buf );
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,8 +8,8 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include "winnls.h"
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "wine/exception.h"
|
#include "wine/exception.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
|
@ -55,7 +55,8 @@ BOOL WINAPI GetComputerNameW(LPWSTR name,LPDWORD size)
|
||||||
{
|
{
|
||||||
LPSTR nameA = (LPSTR)HeapAlloc( GetProcessHeap(), 0, *size);
|
LPSTR nameA = (LPSTR)HeapAlloc( GetProcessHeap(), 0, *size);
|
||||||
BOOL ret = GetComputerNameA(nameA,size);
|
BOOL ret = GetComputerNameA(nameA,size);
|
||||||
if (ret) lstrcpynAtoW(name,nameA,*size+1);
|
/* FIXME: should set *size in Unicode chars */
|
||||||
|
if (ret) MultiByteToWideChar( CP_ACP, 0, nameA, -1, name, *size+1 );
|
||||||
HeapFree( GetProcessHeap(), 0, nameA );
|
HeapFree( GetProcessHeap(), 0, nameA );
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,6 @@
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "wine/winuser16.h"
|
#include "wine/winuser16.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "message.h"
|
#include "message.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
|
@ -1131,7 +1130,9 @@ INT WINAPI GetClipboardFormatNameW( UINT wFormat, LPWSTR retStr, INT maxlen )
|
||||||
if(p == NULL) return 0; /* FIXME: is this the correct failure value? */
|
if(p == NULL) return 0; /* FIXME: is this the correct failure value? */
|
||||||
|
|
||||||
ret = GetClipboardFormatNameA( wFormat, p, maxlen );
|
ret = GetClipboardFormatNameA( wFormat, p, maxlen );
|
||||||
lstrcpynAtoW( retStr, p, maxlen );
|
|
||||||
|
if (maxlen > 0 && !MultiByteToWideChar( CP_ACP, 0, p, -1, retStr, maxlen ))
|
||||||
|
retStr[maxlen-1] = 0;
|
||||||
HeapFree( GetProcessHeap(), 0, p );
|
HeapFree( GetProcessHeap(), 0, p );
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#include "winnls.h"
|
#include "winnls.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winuser16.h"
|
#include "wine/winuser16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
|
|
||||||
DEFAULT_DEBUG_CHANNEL(win);
|
DEFAULT_DEBUG_CHANNEL(win);
|
||||||
|
|
||||||
|
@ -601,8 +600,10 @@ LRESULT WINAPI DefWindowProc16( HWND16 hwnd, UINT16 msg, WPARAM16 wParam,
|
||||||
case WM_GETTEXT:
|
case WM_GETTEXT:
|
||||||
if (wParam && wndPtr->text)
|
if (wParam && wndPtr->text)
|
||||||
{
|
{
|
||||||
lstrcpynWtoA( (LPSTR)PTR_SEG_TO_LIN(lParam), wndPtr->text, wParam );
|
LPSTR dest = PTR_SEG_TO_LIN(lParam);
|
||||||
result = (LRESULT)strlen( (LPSTR)PTR_SEG_TO_LIN(lParam) );
|
if (!WideCharToMultiByte( CP_ACP, 0, wndPtr->text, -1, dest, wParam, NULL, NULL ))
|
||||||
|
dest[wParam-1] = 0;
|
||||||
|
result = strlen(dest);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -665,7 +666,9 @@ LRESULT WINAPI DefWindowProcA( HWND hwnd, UINT msg, WPARAM wParam,
|
||||||
case WM_GETTEXT:
|
case WM_GETTEXT:
|
||||||
if (wParam && wndPtr->text)
|
if (wParam && wndPtr->text)
|
||||||
{
|
{
|
||||||
lstrcpynWtoA( (LPSTR)lParam, wndPtr->text, wParam );
|
if (!WideCharToMultiByte( CP_ACP, 0, wndPtr->text, -1,
|
||||||
|
(LPSTR)lParam, wParam, NULL, NULL ))
|
||||||
|
((LPSTR)lParam)[wParam-1] = 0;
|
||||||
result = (LRESULT)strlen( (LPSTR)lParam );
|
result = (LRESULT)strlen( (LPSTR)lParam );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -11,13 +11,13 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "windowsx.h"
|
#include "windowsx.h"
|
||||||
#include "wine/winuser16.h"
|
#include "wine/winuser16.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "dialog.h"
|
#include "dialog.h"
|
||||||
#include "drive.h"
|
#include "drive.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
|
@ -2196,7 +2196,11 @@ static BOOL DIALOG_DlgDirSelect( HWND hwnd, LPSTR str, INT len,
|
||||||
}
|
}
|
||||||
else ptr = buffer;
|
else ptr = buffer;
|
||||||
|
|
||||||
if (unicode) lstrcpynAtoW( (LPWSTR)str, ptr, len );
|
if (unicode)
|
||||||
|
{
|
||||||
|
if (len > 0 && !MultiByteToWideChar( CP_ACP, 0, ptr, -1, (LPWSTR)str, len ))
|
||||||
|
((LPWSTR)str)[len-1] = 0;
|
||||||
|
}
|
||||||
else lstrcpynA( str, ptr, len );
|
else lstrcpynA( str, ptr, len );
|
||||||
SEGPTR_FREE( buffer );
|
SEGPTR_FREE( buffer );
|
||||||
TRACE("Returning %d '%s'\n", ret, str );
|
TRACE("Returning %d '%s'\n", ret, str );
|
||||||
|
@ -2317,7 +2321,7 @@ static INT DIALOG_DlgDirListW( HWND hDlg, LPWSTR spec, INT idLBox,
|
||||||
LPSTR specA = HEAP_strdupWtoA( GetProcessHeap(), 0, spec );
|
LPSTR specA = HEAP_strdupWtoA( GetProcessHeap(), 0, spec );
|
||||||
INT ret = DIALOG_DlgDirList( hDlg, specA, idLBox, idStatic,
|
INT ret = DIALOG_DlgDirList( hDlg, specA, idLBox, idStatic,
|
||||||
attrib, combo );
|
attrib, combo );
|
||||||
lstrcpyAtoW( spec, specA );
|
MultiByteToWideChar( CP_ACP, 0, specA, -1, spec, 0x7fffffff );
|
||||||
HeapFree( GetProcessHeap(), 0, specA );
|
HeapFree( GetProcessHeap(), 0, specA );
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,11 +16,11 @@
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winuser16.h"
|
#include "wine/winuser16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "wine/keyboard16.h"
|
#include "wine/keyboard16.h"
|
||||||
#include "win.h"
|
#include "win.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
|
@ -734,9 +734,9 @@ INT WINAPI GetKeyboardLayoutNameA(LPSTR pwszKLID)
|
||||||
*/
|
*/
|
||||||
INT WINAPI GetKeyboardLayoutNameW(LPWSTR pwszKLID)
|
INT WINAPI GetKeyboardLayoutNameW(LPWSTR pwszKLID)
|
||||||
{
|
{
|
||||||
char buf[9];
|
char buf[KL_NAMELENGTH];
|
||||||
int res = GetKeyboardLayoutNameA(buf);
|
int res = GetKeyboardLayoutNameA(buf);
|
||||||
lstrcpyAtoW(pwszKLID,buf);
|
MultiByteToWideChar( CP_ACP, 0, buf, -1, pwszKLID, KL_NAMELENGTH );
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -758,7 +758,8 @@ INT WINAPI GetKeyNameTextW(LONG lParam, LPWSTR lpBuffer, INT nSize)
|
||||||
if(buf == NULL) return 0; /* FIXME: is this the correct failure value?*/
|
if(buf == NULL) return 0; /* FIXME: is this the correct failure value?*/
|
||||||
res = GetKeyNameTextA(lParam,buf,nSize);
|
res = GetKeyNameTextA(lParam,buf,nSize);
|
||||||
|
|
||||||
lstrcpynAtoW(lpBuffer,buf,nSize);
|
if (nSize > 0 && !MultiByteToWideChar( CP_ACP, 0, buf, -1, lpBuffer, nSize ))
|
||||||
|
lpBuffer[nSize-1] = 0;
|
||||||
HeapFree( GetProcessHeap(), 0, buf );
|
HeapFree( GetProcessHeap(), 0, buf );
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
@ -876,7 +877,7 @@ HKL WINAPI LoadKeyboardLayoutW(LPCWSTR pwszKLID, UINT Flags)
|
||||||
{
|
{
|
||||||
char buf[9];
|
char buf[9];
|
||||||
|
|
||||||
lstrcpynWtoA(buf,pwszKLID,8);
|
WideCharToMultiByte( CP_ACP, 0, pwszKLID, -1, buf, sizeof(buf), NULL, NULL );
|
||||||
buf[8] = 0;
|
buf[8] = 0;
|
||||||
return LoadKeyboardLayoutA(buf, Flags);
|
return LoadKeyboardLayoutA(buf, Flags);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winuser16.h"
|
#include "wine/winuser16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "dlgs.h"
|
#include "dlgs.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "ldt.h"
|
#include "ldt.h"
|
||||||
|
@ -389,13 +388,9 @@ INT WINAPI MessageBoxIndirectA( LPMSGBOXPARAMSA msgbox )
|
||||||
INT WINAPI MessageBoxIndirectW( LPMSGBOXPARAMSW msgbox )
|
INT WINAPI MessageBoxIndirectW( LPMSGBOXPARAMSW msgbox )
|
||||||
{
|
{
|
||||||
MSGBOXPARAMSA msgboxa;
|
MSGBOXPARAMSA msgboxa;
|
||||||
WARN("Messagebox\n");
|
|
||||||
|
|
||||||
memcpy(&msgboxa,msgbox,sizeof(msgboxa));
|
memcpy(&msgboxa,msgbox,sizeof(msgboxa));
|
||||||
if (msgbox->lpszCaption)
|
msgboxa.lpszCaption = HEAP_strdupWtoA( GetProcessHeap(), 0, msgbox->lpszCaption );
|
||||||
lstrcpyWtoA((LPSTR)msgboxa.lpszCaption,msgbox->lpszCaption);
|
msgboxa.lpszText = HEAP_strdupWtoA( GetProcessHeap(), 0, msgbox->lpszText );
|
||||||
if (msgbox->lpszText)
|
msgboxa.lpszIcon = HEAP_strdupWtoA( GetProcessHeap(), 0, msgbox->lpszIcon );
|
||||||
lstrcpyWtoA((LPSTR)msgboxa.lpszText,msgbox->lpszText);
|
|
||||||
|
|
||||||
return MessageBoxIndirectA(&msgboxa);
|
return MessageBoxIndirectA(&msgboxa);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,10 +9,10 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winreg.h"
|
#include "winreg.h"
|
||||||
#include "wine/winuser16.h"
|
#include "wine/winuser16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
|
|
||||||
#include "keyboard.h"
|
#include "keyboard.h"
|
||||||
|
@ -73,7 +73,8 @@ static void SYSPARAMS_LogFont32ATo32W( const LOGFONTA* font32A, LPLOGFONTW font3
|
||||||
font32W->lfClipPrecision = font32A->lfClipPrecision;
|
font32W->lfClipPrecision = font32A->lfClipPrecision;
|
||||||
font32W->lfQuality = font32A->lfQuality;
|
font32W->lfQuality = font32A->lfQuality;
|
||||||
font32W->lfPitchAndFamily = font32A->lfPitchAndFamily;
|
font32W->lfPitchAndFamily = font32A->lfPitchAndFamily;
|
||||||
lstrcpynAtoW( font32W->lfFaceName, font32A->lfFaceName, LF_FACESIZE );
|
MultiByteToWideChar( CP_ACP, 0, font32A->lfFaceName, -1, font32W->lfFaceName, LF_FACESIZE );
|
||||||
|
font32W->lfFaceName[LF_FACESIZE-1] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SYSPARAMS_NonClientMetrics32ATo16( const NONCLIENTMETRICSA* lpnm32, LPNONCLIENTMETRICS16 lpnm16 )
|
static void SYSPARAMS_NonClientMetrics32ATo16( const NONCLIENTMETRICSA* lpnm32, LPNONCLIENTMETRICS16 lpnm16 )
|
||||||
|
@ -639,7 +640,9 @@ BOOL WINAPI SystemParametersInfoW( UINT uiAction, UINT uiParam,
|
||||||
{
|
{
|
||||||
char buffer[256];
|
char buffer[256];
|
||||||
if (pvParam)
|
if (pvParam)
|
||||||
lstrcpynWtoA( buffer, (LPWSTR)pvParam, sizeof(buffer) );
|
if (!WideCharToMultiByte( CP_ACP, 0, (LPWSTR)pvParam, -1,
|
||||||
|
buffer, sizeof(buffer), NULL, NULL ))
|
||||||
|
buffer[sizeof(buffer)-1] = 0;
|
||||||
ret = SystemParametersInfoA( uiAction, uiParam, pvParam ? buffer : NULL, fuWinIni );
|
ret = SystemParametersInfoA( uiAction, uiParam, pvParam ? buffer : NULL, fuWinIni );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
#include "user.h"
|
#include "user.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
|
@ -469,8 +468,10 @@ BOOL WINAPI EnumDisplayDevicesW(
|
||||||
if (i)
|
if (i)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
FIXME_(system)("(%p,%ld,%p,0x%08lx), stub!\n",unused,i,lpDisplayDevice,dwFlags);
|
FIXME_(system)("(%p,%ld,%p,0x%08lx), stub!\n",unused,i,lpDisplayDevice,dwFlags);
|
||||||
lstrcpyAtoW(lpDisplayDevice->DeviceName,"X11");
|
MultiByteToWideChar( CP_ACP, 0, "X11", -1, lpDisplayDevice->DeviceName,
|
||||||
lstrcpyAtoW(lpDisplayDevice->DeviceString,"X 11 Windowing System");
|
sizeof(lpDisplayDevice->DeviceName)/sizeof(WCHAR) );
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, "X11 Windowing System", -1, lpDisplayDevice->DeviceString,
|
||||||
|
sizeof(lpDisplayDevice->DeviceString)/sizeof(WCHAR) );
|
||||||
lpDisplayDevice->StateFlags =
|
lpDisplayDevice->StateFlags =
|
||||||
DISPLAY_DEVICE_ATTACHED_TO_DESKTOP |
|
DISPLAY_DEVICE_ATTACHED_TO_DESKTOP |
|
||||||
DISPLAY_DEVICE_PRIMARY_DEVICE |
|
DISPLAY_DEVICE_PRIMARY_DEVICE |
|
||||||
|
|
|
@ -7,10 +7,10 @@
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
|
#include "winnls.h"
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "wine/winbase16.h"
|
#include "wine/winbase16.h"
|
||||||
#include "wine/winuser16.h"
|
#include "wine/winuser16.h"
|
||||||
#include "wine/winestring.h"
|
|
||||||
#include "stackframe.h"
|
#include "stackframe.h"
|
||||||
#include "builtin16.h"
|
#include "builtin16.h"
|
||||||
#include "heap.h"
|
#include "heap.h"
|
||||||
|
@ -700,7 +700,9 @@ void WINPROC_UnmapMsg32ATo32W( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
|
||||||
case WM_GETTEXT:
|
case WM_GETTEXT:
|
||||||
{
|
{
|
||||||
LPARAM *ptr = (LPARAM *)lParam - 1;
|
LPARAM *ptr = (LPARAM *)lParam - 1;
|
||||||
lstrcpynWtoA( (LPSTR)*ptr, (LPWSTR)lParam, wParam );
|
if (wParam > 0 && !WideCharToMultiByte( CP_ACP, 0, (LPWSTR)lParam, -1,
|
||||||
|
(LPSTR)*ptr, wParam, NULL, NULL ))
|
||||||
|
((LPSTR)*ptr)[wParam-1] = 0;
|
||||||
HeapFree( GetProcessHeap(), 0, ptr );
|
HeapFree( GetProcessHeap(), 0, ptr );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -755,7 +757,7 @@ void WINPROC_UnmapMsg32ATo32W( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
|
||||||
case LB_GETTEXT:
|
case LB_GETTEXT:
|
||||||
{ if ( WINPROC_TestLBForStr( hwnd ))
|
{ if ( WINPROC_TestLBForStr( hwnd ))
|
||||||
{ LPARAM *ptr = (LPARAM *)lParam - 1;
|
{ LPARAM *ptr = (LPARAM *)lParam - 1;
|
||||||
lstrcpyWtoA( (LPSTR)*ptr, (LPWSTR)(lParam) );
|
WideCharToMultiByte( CP_ACP, 0, (LPWSTR)lParam, -1, (LPSTR)*ptr, 0x7fffffff, NULL, NULL );
|
||||||
HeapFree( GetProcessHeap(), 0, ptr );
|
HeapFree( GetProcessHeap(), 0, ptr );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -771,7 +773,7 @@ void WINPROC_UnmapMsg32ATo32W( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
|
||||||
case CB_GETLBTEXT:
|
case CB_GETLBTEXT:
|
||||||
{ if ( WINPROC_TestCBForStr( hwnd ))
|
{ if ( WINPROC_TestCBForStr( hwnd ))
|
||||||
{ LPARAM *ptr = (LPARAM *)lParam - 1;
|
{ LPARAM *ptr = (LPARAM *)lParam - 1;
|
||||||
lstrcpyWtoA( (LPSTR)*ptr, (LPWSTR)(lParam) );
|
WideCharToMultiByte( CP_ACP, 0, (LPWSTR)lParam, -1, (LPSTR)*ptr, 0x7fffffff, NULL, NULL );
|
||||||
HeapFree( GetProcessHeap(), 0, ptr );
|
HeapFree( GetProcessHeap(), 0, ptr );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -781,7 +783,9 @@ void WINPROC_UnmapMsg32ATo32W( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
|
||||||
case EM_GETLINE:
|
case EM_GETLINE:
|
||||||
{ LPARAM * ptr = (LPARAM *)lParam - 1; /* get the old lParam */
|
{ LPARAM * ptr = (LPARAM *)lParam - 1; /* get the old lParam */
|
||||||
WORD len = *(WORD *) lParam;
|
WORD len = *(WORD *) lParam;
|
||||||
lstrcpynWtoA( (LPSTR)*ptr , (LPWSTR)lParam, len );
|
if (len > 0 && !WideCharToMultiByte( CP_ACP, 0, (LPWSTR)lParam, -1,
|
||||||
|
(LPSTR)*ptr, len, NULL, NULL ))
|
||||||
|
((LPSTR)*ptr)[len-1] = 0;
|
||||||
HeapFree( GetProcessHeap(), 0, ptr );
|
HeapFree( GetProcessHeap(), 0, ptr );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -937,7 +941,11 @@ void WINPROC_UnmapMsg32WTo32A( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
|
||||||
case WM_GETTEXT:
|
case WM_GETTEXT:
|
||||||
{
|
{
|
||||||
LPARAM *ptr = (LPARAM *)lParam - 1;
|
LPARAM *ptr = (LPARAM *)lParam - 1;
|
||||||
lstrcpynAtoW( (LPWSTR)*ptr, (LPSTR)lParam, wParam );
|
if (wParam)
|
||||||
|
{
|
||||||
|
if (!MultiByteToWideChar( CP_ACP, 0, (LPSTR)lParam, -1, (LPWSTR)*ptr, wParam ))
|
||||||
|
((LPWSTR)*ptr)[wParam-1] = 0;
|
||||||
|
}
|
||||||
HeapFree( GetProcessHeap(), 0, ptr );
|
HeapFree( GetProcessHeap(), 0, ptr );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -987,11 +995,11 @@ void WINPROC_UnmapMsg32WTo32A( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LB_GETTEXT:
|
case LB_GETTEXT:
|
||||||
{ if ( WINPROC_TestLBForStr( hwnd ))
|
if ( WINPROC_TestLBForStr( hwnd ))
|
||||||
{ LPARAM *ptr = (LPARAM *)lParam - 1;
|
{
|
||||||
lstrcpyAtoW( (LPWSTR)*ptr, (LPSTR)(lParam) );
|
LPARAM *ptr = (LPARAM *)lParam - 1;
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, (LPSTR)lParam, -1, (LPWSTR)*ptr, 0x7fffffff );
|
||||||
HeapFree( GetProcessHeap(), 0, ptr );
|
HeapFree( GetProcessHeap(), 0, ptr );
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1003,11 +1011,11 @@ void WINPROC_UnmapMsg32WTo32A( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CB_GETLBTEXT:
|
case CB_GETLBTEXT:
|
||||||
{ if ( WINPROC_TestCBForStr( hwnd ))
|
if ( WINPROC_TestCBForStr( hwnd ))
|
||||||
{ LPARAM *ptr = (LPARAM *)lParam - 1;
|
{
|
||||||
lstrcpyAtoW( (LPWSTR)*ptr, (LPSTR)(lParam) );
|
LPARAM *ptr = (LPARAM *)lParam - 1;
|
||||||
|
MultiByteToWideChar( CP_ACP, 0, (LPSTR)lParam, -1, (LPWSTR)*ptr, 0x7fffffff );
|
||||||
HeapFree( GetProcessHeap(), 0, ptr );
|
HeapFree( GetProcessHeap(), 0, ptr );
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1015,7 +1023,11 @@ void WINPROC_UnmapMsg32WTo32A( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
|
||||||
case EM_GETLINE:
|
case EM_GETLINE:
|
||||||
{ LPARAM * ptr = (LPARAM *)lParam - 1; /* get the old lparam */
|
{ LPARAM * ptr = (LPARAM *)lParam - 1; /* get the old lparam */
|
||||||
WORD len = *(WORD *)ptr;
|
WORD len = *(WORD *)ptr;
|
||||||
lstrcpynAtoW( (LPWSTR) *ptr, (LPSTR)lParam, len );
|
if (len)
|
||||||
|
{
|
||||||
|
if (!MultiByteToWideChar( CP_ACP, 0, (LPSTR)lParam, -1, (LPWSTR)*ptr, len ))
|
||||||
|
((LPWSTR)*ptr)[len-1] = 0;
|
||||||
|
}
|
||||||
HeapFree( GetProcessHeap(), 0, ptr );
|
HeapFree( GetProcessHeap(), 0, ptr );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -2291,7 +2303,7 @@ void WINPROC_UnmapMsg32WTo16( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam,
|
||||||
{
|
{
|
||||||
LPSTR str = (LPSTR)PTR_SEG_TO_LIN(p16->lParam);
|
LPSTR str = (LPSTR)PTR_SEG_TO_LIN(p16->lParam);
|
||||||
p16->lParam = *((LPARAM *)str - 1);
|
p16->lParam = *((LPARAM *)str - 1);
|
||||||
lstrcpyAtoW( (LPWSTR)(p16->lParam), str );
|
MultiByteToWideChar( CP_ACP, 0, str, -1, (LPWSTR)p16->lParam, 0x7fffffff );
|
||||||
SEGPTR_FREE( (LPARAM *)str - 1 );
|
SEGPTR_FREE( (LPARAM *)str - 1 );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -2300,7 +2312,7 @@ void WINPROC_UnmapMsg32WTo16( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam,
|
||||||
if ( WINPROC_TestLBForStr( hwnd ))
|
if ( WINPROC_TestLBForStr( hwnd ))
|
||||||
{
|
{
|
||||||
LPSTR str = (LPSTR)PTR_SEG_TO_LIN(p16->lParam);
|
LPSTR str = (LPSTR)PTR_SEG_TO_LIN(p16->lParam);
|
||||||
lstrcpyAtoW( (LPWSTR)lParam, str );
|
MultiByteToWideChar( CP_ACP, 0, str, -1, (LPWSTR)lParam, 0x7fffffff );
|
||||||
SEGPTR_FREE( (LPARAM *) str );
|
SEGPTR_FREE( (LPARAM *) str );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue