Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
0d04d7ac
Commit
0d04d7ac
authored
Sep 16, 2008
by
Huw Davies
Committed by
Alexandre Julliard
Sep 17, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
inetcomm: Implement IMimeInternational_ConvertString.
parent
bc7b194b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
64 additions
and
4 deletions
+64
-4
mimeintl.c
dlls/inetcomm/mimeintl.c
+64
-4
No files found.
dlls/inetcomm/mimeintl.c
View file @
0d04d7ac
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
#include "mlang.h"
#include "mlang.h"
#include "wine/list.h"
#include "wine/list.h"
#include "wine/unicode.h"
#include "wine/debug.h"
#include "wine/debug.h"
#include "inetcomm_private.h"
#include "inetcomm_private.h"
...
@@ -395,12 +396,71 @@ static HRESULT WINAPI MimeInternat_ConvertBuffer(IMimeInternational *iface, CODE
...
@@ -395,12 +396,71 @@ static HRESULT WINAPI MimeInternat_ConvertBuffer(IMimeInternational *iface, CODE
}
}
static
HRESULT
WINAPI
MimeInternat_ConvertString
(
IMimeInternational
*
iface
,
CODEPAGEID
cpiSource
,
static
HRESULT
WINAPI
MimeInternat_ConvertString
(
IMimeInternational
*
iface
,
CODEPAGEID
cpiSource
,
CODEPAGEID
cpiDest
,
CODEPAGEID
cpiDest
,
LPPROPVARIANT
pIn
,
LPPROPVARIANT
pIn
,
LPPROPVARIANT
pOut
)
LPPROPVARIANT
pOut
)
{
{
FIXME
(
"stub
\n
"
);
HRESULT
hr
;
return
E_NOTIMPL
;
int
src_len
;
IMultiLanguage
*
ml
;
TRACE
(
"(%p)->(%d, %d, %p %p)
\n
"
,
iface
,
cpiSource
,
cpiDest
,
pIn
,
pOut
);
switch
(
pIn
->
vt
)
{
case
VT_LPSTR
:
if
(
cpiSource
==
CP_UNICODE
)
cpiSource
=
GetACP
();
src_len
=
strlen
(
pIn
->
u
.
pszVal
);
break
;
case
VT_LPWSTR
:
cpiSource
=
CP_UNICODE
;
src_len
=
strlenW
(
pIn
->
u
.
pwszVal
)
*
sizeof
(
WCHAR
);
break
;
default:
return
E_INVALIDARG
;
}
hr
=
get_mlang
(
&
ml
);
if
(
SUCCEEDED
(
hr
))
{
DWORD
mode
=
0
;
UINT
in_size
=
src_len
,
out_size
;
hr
=
IMultiLanguage_ConvertString
(
ml
,
&
mode
,
cpiSource
,
cpiDest
,
(
BYTE
*
)
pIn
->
u
.
pszVal
,
&
in_size
,
NULL
,
&
out_size
);
if
(
hr
==
S_OK
)
/* S_FALSE means the conversion could not be performed */
{
out_size
+=
(
cpiDest
==
CP_UNICODE
)
?
sizeof
(
WCHAR
)
:
sizeof
(
char
);
pOut
->
u
.
pszVal
=
CoTaskMemAlloc
(
out_size
);
if
(
!
pOut
->
u
.
pszVal
)
hr
=
E_OUTOFMEMORY
;
else
{
mode
=
0
;
in_size
=
src_len
;
hr
=
IMultiLanguage_ConvertString
(
ml
,
&
mode
,
cpiSource
,
cpiDest
,
(
BYTE
*
)
pIn
->
u
.
pszVal
,
&
in_size
,
(
BYTE
*
)
pOut
->
u
.
pszVal
,
&
out_size
);
if
(
hr
==
S_OK
)
{
if
(
cpiDest
==
CP_UNICODE
)
{
pOut
->
u
.
pwszVal
[
out_size
/
sizeof
(
WCHAR
)]
=
0
;
pOut
->
vt
=
VT_LPWSTR
;
}
else
{
pOut
->
u
.
pszVal
[
out_size
]
=
'\0'
;
pOut
->
vt
=
VT_LPSTR
;
}
}
else
CoTaskMemFree
(
pOut
->
u
.
pszVal
);
}
}
IMultiLanguage_Release
(
ml
);
}
return
hr
;
}
}
static
HRESULT
WINAPI
MimeInternat_MLANG_ConvertInetReset
(
IMimeInternational
*
iface
)
static
HRESULT
WINAPI
MimeInternat_MLANG_ConvertInetReset
(
IMimeInternational
*
iface
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment