Слияние кода завершено, страница обновится автоматически
#include "CustomizeJS.h"
extern CefRefPtr<CefV8Handler> myV8handle;
CKLEXPORT void WINAPI Chrome_AddJSFunction(CefV8Context* context, wchar_t* name) {
auto myFun = CefV8Value::CreateFunction(name, myV8handle);
auto pObjApp = context->GetGlobal();
pObjApp->SetValue(name, myFun, V8_PROPERTY_ATTRIBUTE_NONE);
}
CKLEXPORT DWORD WINAPI Chrome_GetV8ValueListSize(const CefV8ValueList* arguments) {
return arguments->size();
}
//*************************
CKLEXPORT DWORD WINAPI Chrome_GetV8ValueInt(const CefV8ValueList* arguments, size_t pos) {
auto value = arguments->at(pos);
if (value->IsValid())
return value->GetUIntValue();
return 0;
}
CKLEXPORT DWORD WINAPI Chrome_GetV8ValueStringLength(const CefV8ValueList* arguments, size_t pos) {
auto value = arguments->at(pos);
if (value->IsValid())
return std::wstring(value->GetStringValue()).length();
return 0;
}
CKLEXPORT void WINAPI Chrome_GetV8ValueString(const CefV8ValueList* arguments, size_t pos, wchar_t* buffer, size_t buffer_length) {
auto value = arguments->at(pos);
if (value->IsValid()) {
auto Value = value->GetStringValue().ToWString();
_ECKL_CopyWString(Value, buffer, buffer_length * sizeof(wchar_t));
//std::wstring(value->GetStringValue()).copy(buffer, buffer_length);
//memset(buffer + buffer_length - 2, 0, 2);//最后两个字节置0
}
}
//*************************
CKLEXPORT void WINAPI Chrome_SetV8ReturnValueInt(CefRefPtr<CefV8Value>* lpretval, int value) {
if (lpretval) {
*lpretval = CefV8Value::CreateInt(value);
}
}
CKLEXPORT void WINAPI Chrome_SetV8ReturnValueString(CefRefPtr<CefV8Value>* lpretval, wchar_t* value) {
if (lpretval) {
*lpretval = CefV8Value::CreateString(value);
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )