我可以帮您将C++中的结构体传递给JavaScript函数。我可以将VARIANT变量传递给JavaScript,但我不知道如何将结构体转换为VARIANT。
例如,我可以将转换为VARIANT的字符串传递给
例如,我可以将转换为VARIANT的字符串传递给
function f
:void f(VARIANT x);
f(_variant_t("hello!"));
现在我想传递这样的一个结构体:
struct TMyStruct
{
int x;
int y;
};
------- 我的代码部分如下:
// Load Html on CHtmlView and after load is completed, get its document.
LPDISPATCH pDoc = ... // document of CHtmlView
CComQIPtr<IHTMLDocument2> m_pViewDoc;
pDoc->QueryInterface(IID_IHTMLDocument2, (void**)&m_pViewDoc);
CComPtr<IDispatch> m_pScript;
m_pViewDoc->get_Script(&m_pScript);
struct TMyStruct
{
int x;
int y;
// .... other fields...
} z;
//z = .... Initialize z.
VARIANT myVariant;
// myVariant = z ???? // How to pass z to variant.
DISPID dispid = NULL;
HRESULT hr = m_pScript->GetIDsOfNames(IID_NULL, &CComBSTR(myJavaScriptFunctionName), 1, LOCALE_SYSTEM_DEFAULT, &dispid);
ATLASSERT(SUCCEEDED(hr));
if(SUCCEEDED(hr))
{
COleDispatchDriver ocOleDispatchDriver(pScript, FALSE);
ocOleDispatchDriver.InvokeHelperV(dispid, DISPATCH_METHOD, VT_NONE, nullptr, (BYTE*)VTS_VARIANT, myVariant);
}
VARIANT
是什么?所谓的“结构”是指什么?请提供更多信息。 - Lightness Races in Orbit