-
Notifications
You must be signed in to change notification settings - Fork 0
/
CustomizeJS.cpp
53 lines (43 loc) · 1.67 KB
/
CustomizeJS.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#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);
}
}