public static string CopyStringAndDestroyNativeSide(ref JsValue value) { NativeMyCefStringHolder ret_str = new NativeMyCefStringHolder(value.Ptr); string str = ret_str.ReadString(value.I32); ret_str.Dispose(); value.Ptr = IntPtr.Zero; return(str); }
public void PostData2(string url, byte[] data, int len) { //CefRefPtr<CefRequest> request(CefRequest::Create()); //MyCefStringHolder* url = (MyCefStringHolder*)v1->ptr; //request->SetURL(url->value); ////Add post data to request, the correct method and content-type header will be set by CEF //CefRefPtr<CefPostDataElement> postDataElement(CefPostDataElement::Create()); //char* buffer1 = new char[v2->i32]; //memcpy_s(buffer1, v2->i32, v2->ptr, v2->i32); //postDataElement->SetToBytes(v2->i32, buffer1); ////------ //CefRefPtr<CefPostData> postData(CefPostData::Create()); //postData->AddElement(postDataElement); //request->SetPostData(postData); ////add custom header (for test) //CefRequest::HeaderMap headerMap; //headerMap.insert( // std::make_pair("X-My-Header", "My Header Value")); //request->SetHeaderMap(headerMap); ////load request //myBw->bwWindow->GetBrowser()->GetMainFrame()->LoadRequest(request); //delete buffer1; JsValue a0 = new JsValue(); JsValue a1 = new JsValue(); JsValue ret; var v_url = NativeMyCefStringHolder.CreateHolder(url); a0.Ptr = v_url.nativePtr; // unsafe { fixed(byte *buffer = &data[0]) { a1.Ptr = new IntPtr(buffer); a1.I32 = data.Length; Cef3Binder.MyCefBwCall2(_myCefBw.ptr, (int)CefBwCallMsg.CefBw_PostData, out ret, ref a0, ref a1); } } v_url.Dispose(); }
public void PostData(string url, byte[] data, int len) { JsValue a0 = new JsValue(); JsValue a1 = new JsValue(); JsValue ret; var v_url = NativeMyCefStringHolder.CreateHolder(url); a0.Ptr = v_url.nativePtr; // unsafe { fixed(byte *buffer = &data[0]) { a1.Ptr = new IntPtr(buffer); a1.I32 = data.Length; Cef3Binder.MyCefBwCall2(_myCefBw.ptr, (int)CefBwCallMsg.CefBw_PostData, out ret, ref a0, ref a1); } } v_url.Dispose(); }