1
我可以在一个窗口的IWebBrowser2创建Uint8array:的IWebBrowser2:使用Uint8array(不包括循环填充)
IHTMLWindow2 window = ...;
DISPID dispid_uint8array = ...;
VARIANT self;
self.vt = VT_NULL;
VARIANT length;
length.vt = VT_I4;
length.lVal = 100;
VARIANT args[2] = { self, length };
DISPID named_args[1] = { DISPID_THIS };
DISPPARAMS params;
params.rgvarg = args;
params.rgdispidNamedArgs = named_args;
params.cArgs = 2;
params.cNamedArgs = 1;
VARIANT result;
result.vt = VT_EMPTY;
HRESULT hr = container->Invoke(
dispid_uint8array, IID_NULL, LOCALE_USER_DEFAULT,
DISPATCH_METHOD, ¶ms, &result, nullptr, nullptr
);
assert(hr == S_OK);
assert(result.vt == VT_DISPATCH);
IDispatch my_new_uint8array = result.pdispVal;
现在我可以在循环中使用IDispatch::Invoke(..., DISPATCH_PROPERTYPUT, ...)
设置的my_new_uint8array
项目领域。
但是,是不是有一个适当的接口来填充整个缓冲区只有一个电话?例如。我可以以某种方式检索包含的缓冲区?
有没有界面的定义,像IUint8Array
?
这些数组不是更多javascript(查克拉)的东西? https://docs.microsoft.com/en-us/scripting/chakra-hosting/jscreatetypedarray-function我很好奇,你怎么得到dispid_uint8array在第一位? –
@SimonMourier,我只是使用'window-> GetIDsOfNames(...)'提供''Uint8Array“'。 – kay
你有任何机会准备好复制项目吗? –