mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-14 18:37:17 +00:00
jscript: Added to_flat_string helper and use it to access string buffer in activex.c.
This commit is contained in:
parent
343122a494
commit
3bf7255d23
|
@ -143,7 +143,8 @@ static IUnknown *create_activex_object(script_ctx_t *ctx, const WCHAR *progid)
|
|||
static HRESULT ActiveXObject_value(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, unsigned argc, jsval_t *argv,
|
||||
jsval_t *r)
|
||||
{
|
||||
jsstr_t * progid;
|
||||
jsstr_t * progid_str;
|
||||
const WCHAR *progid;
|
||||
IDispatch *disp;
|
||||
IUnknown *obj;
|
||||
HRESULT hres;
|
||||
|
@ -166,12 +167,12 @@ static HRESULT ActiveXObject_value(script_ctx_t *ctx, vdisp_t *jsthis, WORD flag
|
|||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
hres = to_string(ctx, argv[0], &progid);
|
||||
hres = to_flat_string(ctx, argv[0], &progid_str, &progid);
|
||||
if(FAILED(hres))
|
||||
return hres;
|
||||
|
||||
obj = create_activex_object(ctx, progid->str);
|
||||
jsstr_release(progid);
|
||||
obj = create_activex_object(ctx, progid);
|
||||
jsstr_release(progid_str);
|
||||
if(!obj)
|
||||
return throw_generic_error(ctx, JS_E_CANNOT_CREATE_OBJ, NULL);
|
||||
|
||||
|
|
|
@ -322,6 +322,7 @@ HRESULT to_integer(script_ctx_t*,jsval_t,double*) DECLSPEC_HIDDEN;
|
|||
HRESULT to_int32(script_ctx_t*,jsval_t,INT*) DECLSPEC_HIDDEN;
|
||||
HRESULT to_uint32(script_ctx_t*,jsval_t,UINT32*) DECLSPEC_HIDDEN;
|
||||
HRESULT to_string(script_ctx_t*,jsval_t,jsstr_t**) DECLSPEC_HIDDEN;
|
||||
HRESULT to_flat_string(script_ctx_t*,jsval_t,jsstr_t**,const WCHAR**) DECLSPEC_HIDDEN;
|
||||
HRESULT to_object(script_ctx_t*,jsval_t,IDispatch**) DECLSPEC_HIDDEN;
|
||||
|
||||
HRESULT variant_change_type(script_ctx_t*,VARIANT*,VARIANT*,VARTYPE) DECLSPEC_HIDDEN;
|
||||
|
|
|
@ -776,6 +776,23 @@ HRESULT to_string(script_ctx_t *ctx, jsval_t val, jsstr_t **str)
|
|||
return *str ? S_OK : E_OUTOFMEMORY;
|
||||
}
|
||||
|
||||
HRESULT to_flat_string(script_ctx_t *ctx, jsval_t val, jsstr_t **str, const WCHAR **ret_str)
|
||||
{
|
||||
HRESULT hres;
|
||||
|
||||
hres = to_string(ctx, val, str);
|
||||
if(FAILED(hres))
|
||||
return hres;
|
||||
|
||||
*ret_str = jsstr_flatten(*str);
|
||||
if(!*ret_str) {
|
||||
jsstr_release(*str);
|
||||
return E_OUTOFMEMORY;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
/* ECMA-262 3rd Edition 9.9 */
|
||||
HRESULT to_object(script_ctx_t *ctx, jsval_t val, IDispatch **disp)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue