1177 lines
53 KiB
C++
1177 lines
53 KiB
C++
/*
|
||
*
|
||
* wolar@qq.com
|
||
* http://miniblink.net
|
||
* https://github.com/weolar/miniblink49
|
||
* https://miniblink.net/views/doc/index.html api文档地址
|
||
* licence Apache-2.0
|
||
*
|
||
*/
|
||
|
||
#ifndef MB_DEFINE_H
|
||
#define MB_DEFINE_H
|
||
|
||
#include <windows.h>
|
||
|
||
//////////////////////////////////////////////////////////////////////////
|
||
|
||
#define MB_CALL_TYPE __stdcall
|
||
|
||
typedef struct _mbRect {
|
||
int x;
|
||
int y;
|
||
int w;
|
||
int h;
|
||
|
||
#if defined(__cplusplus)
|
||
_mbRect()
|
||
{
|
||
x = 0;
|
||
y = 0;
|
||
w = 0;
|
||
h = 0;
|
||
}
|
||
_mbRect(int xVal, int yVal, int wVal, int hVal)
|
||
{
|
||
x = xVal;
|
||
y = yVal;
|
||
w = wVal;
|
||
h = hVal;
|
||
}
|
||
_mbRect(const _mbRect& other)
|
||
{
|
||
x = other.x;
|
||
y = other.y;
|
||
w = other.w;
|
||
h = other.h;
|
||
}
|
||
#endif
|
||
} mbRect;
|
||
|
||
typedef struct _mbPoint {
|
||
int x;
|
||
int y;
|
||
} mbPoint;
|
||
|
||
typedef struct _mbSize {
|
||
int w;
|
||
int h;
|
||
} mbSize;
|
||
|
||
typedef enum {
|
||
MB_LBUTTON = 0x01,
|
||
MB_RBUTTON = 0x02,
|
||
MB_SHIFT = 0x04,
|
||
MB_CONTROL = 0x08,
|
||
MB_MBUTTON = 0x10,
|
||
} mbMouseFlags;
|
||
|
||
typedef enum {
|
||
MB_EXTENDED = 0x0100,
|
||
MB_REPEAT = 0x4000,
|
||
} mbKeyFlags;
|
||
|
||
typedef enum {
|
||
MB_MSG_MOUSEMOVE = 0x0200,
|
||
MB_MSG_LBUTTONDOWN = 0x0201,
|
||
MB_MSG_LBUTTONUP = 0x0202,
|
||
MB_MSG_LBUTTONDBLCLK = 0x0203,
|
||
MB_MSG_RBUTTONDOWN = 0x0204,
|
||
MB_MSG_RBUTTONUP = 0x0205,
|
||
MB_MSG_RBUTTONDBLCLK = 0x0206,
|
||
MB_MSG_MBUTTONDOWN = 0x0207,
|
||
MB_MSG_MBUTTONUP = 0x0208,
|
||
MB_MSG_MBUTTONDBLCLK = 0x0209,
|
||
MB_MSG_MOUSEWHEEL = 0x020A,
|
||
} mbMouseMsg;
|
||
|
||
#if !defined(__cplusplus)
|
||
#ifndef HAVE_WCHAR_T
|
||
typedef unsigned short wchar_t;
|
||
#endif
|
||
#endif
|
||
|
||
#include <stdbool.h>
|
||
|
||
#if defined(__cplusplus)
|
||
#define MB_EXTERN_C extern "C"
|
||
#else
|
||
#define MB_EXTERN_C
|
||
#endif
|
||
|
||
typedef char utf8;
|
||
|
||
typedef enum {
|
||
MB_PROXY_NONE,
|
||
MB_PROXY_HTTP,
|
||
MB_PROXY_SOCKS4,
|
||
MB_PROXY_SOCKS4A,
|
||
MB_PROXY_SOCKS5,
|
||
MB_PROXY_SOCKS5HOSTNAME
|
||
} mbProxyType;
|
||
|
||
typedef struct {
|
||
mbProxyType type;
|
||
char hostname[100];
|
||
unsigned short port;
|
||
char username[50];
|
||
char password[50];
|
||
} mbProxy;
|
||
|
||
typedef enum _mbSettingMask {
|
||
MB_SETTING_PROXY = 1,
|
||
MB_ENABLE_NODEJS = 1 << 3,
|
||
MB_ENABLE_DISABLE_H5VIDEO = 1 << 4,
|
||
MB_ENABLE_DISABLE_PDFVIEW = 1 << 5,
|
||
MB_ENABLE_DISABLE_CC = 1 << 6,
|
||
MB_ENABLE_ENABLE_EGLGLES2 = 1 << 7, // 测试功能,请勿使用
|
||
MB_ENABLE_ENABLE_SWIFTSHAER = 1 << 8, // 测试功能,请勿使用
|
||
} mbSettingMask;
|
||
|
||
typedef void(MB_CALL_TYPE* mbOnBlinkThreadInitCallback)(void* param);
|
||
|
||
#define kMbVersion 20200319
|
||
#define kMbMaxVersion 20600319
|
||
|
||
typedef struct _mbSettings {
|
||
mbProxy proxy;
|
||
unsigned int mask; // 208 offset
|
||
mbOnBlinkThreadInitCallback blinkThreadInitCallback;
|
||
void* blinkThreadInitCallbackParam;
|
||
intptr_t version;
|
||
const wchar_t* mainDllPath;
|
||
HMODULE mainDllHandle;
|
||
const char* config;
|
||
} mbSettings;
|
||
|
||
typedef struct _mbViewSettings {
|
||
int size;
|
||
unsigned int bgColor;
|
||
} mbViewSettings;
|
||
|
||
typedef void* mbWebFrameHandle;
|
||
typedef void* mbNetJob;
|
||
|
||
#if defined(__cplusplus)
|
||
namespace mb { class MbWebView; }
|
||
#else
|
||
struct _tagMbWebView;
|
||
#endif
|
||
typedef intptr_t mbWebView;
|
||
|
||
#ifdef _WIN64
|
||
typedef __int64 mbWebView;
|
||
#else
|
||
typedef int mbWebView;
|
||
#endif
|
||
|
||
#define NULL_WEBVIEW 0
|
||
|
||
typedef BOOL(*mbCookieVisitor)(
|
||
void* params,
|
||
const char* name,
|
||
const char* value,
|
||
const char* domain,
|
||
const char* path, // If |path| is non-empty only URLs at or below the path will get the cookie value.
|
||
int secure, // If |secure| is true the cookie will only be sent for HTTPS requests.
|
||
int httpOnly, // If |httponly| is true the cookie will only be sent for HTTP requests.
|
||
int* expires // The cookie expiration date is only valid if |has_expires| is true.
|
||
);
|
||
|
||
typedef enum {
|
||
mbCookieCommandClearAllCookies,
|
||
mbCookieCommandClearSessionCookies,
|
||
mbCookieCommandFlushCookiesToFile,
|
||
mbCookieCommandReloadCookiesFromFile,
|
||
} mbCookieCommand;
|
||
|
||
typedef enum {
|
||
MB_NAVIGATION_TYPE_LINKCLICK,
|
||
MB_NAVIGATION_TYPE_FORMSUBMITTE,
|
||
MB_NAVIGATION_TYPE_BACKFORWARD,
|
||
MB_NAVIGATION_TYPE_RELOAD,
|
||
MB_NAVIGATION_TYPE_FORMRESUBMITT,
|
||
MB_NAVIGATION_TYPE_OTHER
|
||
} mbNavigationType;
|
||
|
||
typedef enum {
|
||
kMbCursorInfoPointer,
|
||
kMbCursorInfoCross,
|
||
kMbCursorInfoHand,
|
||
kMbCursorInfoIBeam,
|
||
kMbCursorInfoWait,
|
||
kMbCursorInfoHelp,
|
||
kMbCursorInfoEastResize,
|
||
kMbCursorInfoNorthResize,
|
||
kMbCursorInfoNorthEastResize,
|
||
kMbCursorInfoNorthWestResize,
|
||
kMbCursorInfoSouthResize,
|
||
kMbCursorInfoSouthEastResize,
|
||
kMbCursorInfoSouthWestResize,
|
||
kMbCursorInfoWestResize,
|
||
kMbCursorInfoNorthSouthResize,
|
||
kMbCursorInfoEastWestResize,
|
||
kMbCursorInfoNorthEastSouthWestResize,
|
||
kMbCursorInfoNorthWestSouthEastResize,
|
||
kMbCursorInfoColumnResize,
|
||
kMbCursorInfoRowResize,
|
||
kMbCursorInfoMiddlePanning,
|
||
kMbCursorInfoEastPanning,
|
||
kMbCursorInfoNorthPanning,
|
||
kMbCursorInfoNorthEastPanning,
|
||
kMbCursorInfoNorthWestPanning,
|
||
kMbCursorInfoSouthPanning,
|
||
kMbCursorInfoSouthEastPanning,
|
||
kMbCursorInfoSouthWestPanning,
|
||
kMbCursorInfoWestPanning,
|
||
kMbCursorInfoMove,
|
||
kMbCursorInfoVerticalText,
|
||
kMbCursorInfoCell,
|
||
kMbCursorInfoContextMenu,
|
||
kMbCursorInfoAlias,
|
||
kMbCursorInfoProgress,
|
||
kMbCursorInfoNoDrop,
|
||
kMbCursorInfoCopy,
|
||
kMbCursorInfoNone,
|
||
kMbCursorInfoNotAllowed,
|
||
kMbCursorInfoZoomIn,
|
||
kMbCursorInfoZoomOut,
|
||
kMbCursorInfoGrab,
|
||
kMbCursorInfoGrabbing,
|
||
kMbCursorInfoCustom
|
||
} mbCursorInfoType;
|
||
|
||
typedef struct {
|
||
int x;
|
||
int y;
|
||
int width;
|
||
int height;
|
||
|
||
BOOL menuBarVisible;
|
||
BOOL statusBarVisible;
|
||
BOOL toolBarVisible;
|
||
BOOL locationBarVisible;
|
||
BOOL scrollbarsVisible;
|
||
BOOL resizable;
|
||
BOOL fullscreen;
|
||
} mbWindowFeatures;
|
||
|
||
typedef struct _mbPrintSettings {
|
||
int structSize;
|
||
int dpi;
|
||
int width;
|
||
int height;
|
||
int marginTop;
|
||
int marginBottom;
|
||
int marginLeft;
|
||
int marginRight;
|
||
BOOL isPrintPageHeadAndFooter;
|
||
BOOL isPrintBackgroud;
|
||
BOOL isLandscape;
|
||
BOOL isPrintToMultiPage;
|
||
} mbPrintSettings;
|
||
|
||
struct mbString;
|
||
typedef mbString* mbStringPtr;
|
||
|
||
typedef struct _mbMemBuf {
|
||
int size;
|
||
void* data;
|
||
size_t length;
|
||
} mbMemBuf;
|
||
|
||
typedef struct {
|
||
struct Item {
|
||
enum mbStorageType {
|
||
// String data with an associated MIME type. Depending on the MIME type, there may be
|
||
// optional metadata attributes as well.
|
||
StorageTypeString,
|
||
// Stores the name of one file being dragged into the renderer.
|
||
StorageTypeFilename,
|
||
// An image being dragged out of the renderer. Contains a buffer holding the image data
|
||
// as well as the suggested name for saving the image to.
|
||
StorageTypeBinaryData,
|
||
// Stores the filesystem URL of one file being dragged into the renderer.
|
||
StorageTypeFileSystemFile,
|
||
} storageType;
|
||
|
||
// Only valid when storageType == StorageTypeString.
|
||
mbMemBuf* stringType;
|
||
mbMemBuf* stringData;
|
||
|
||
// Only valid when storageType == StorageTypeFilename.
|
||
mbMemBuf* filenameData;
|
||
mbMemBuf* displayNameData;
|
||
|
||
// Only valid when storageType == StorageTypeBinaryData.
|
||
mbMemBuf* binaryData;
|
||
|
||
// Title associated with a link when stringType == "text/uri-list".
|
||
// Filename when storageType == StorageTypeBinaryData.
|
||
mbMemBuf* title;
|
||
|
||
// Only valid when storageType == StorageTypeFileSystemFile.
|
||
mbMemBuf* fileSystemURL;
|
||
long long fileSystemFileSize;
|
||
|
||
// Only valid when stringType == "text/html".
|
||
mbMemBuf* baseURL;
|
||
};
|
||
|
||
struct Item* m_itemList;
|
||
int m_itemListLength;
|
||
|
||
int m_modifierKeyState; // State of Shift/Ctrl/Alt/Meta keys.
|
||
mbMemBuf* m_filesystemId;
|
||
} mbWebDragData;
|
||
|
||
typedef enum {
|
||
mbWebDragOperationNone = 0,
|
||
mbWebDragOperationCopy = 1,
|
||
mbWebDragOperationLink = 2,
|
||
mbWebDragOperationGeneric = 4,
|
||
mbWebDragOperationPrivate = 8,
|
||
mbWebDragOperationMove = 16,
|
||
mbWebDragOperationDelete = 32,
|
||
mbWebDragOperationEvery = 0xffffffff
|
||
} mbWebDragOperation;
|
||
|
||
typedef mbWebDragOperation mbWebDragOperationsMask;
|
||
|
||
typedef enum {
|
||
MB_RESOURCE_TYPE_MAIN_FRAME = 0, // top level page
|
||
MB_RESOURCE_TYPE_SUB_FRAME = 1, // frame or iframe
|
||
MB_RESOURCE_TYPE_STYLESHEET = 2, // a CSS stylesheet
|
||
MB_RESOURCE_TYPE_SCRIPT = 3, // an external script
|
||
MB_RESOURCE_TYPE_IMAGE = 4, // an image (jpg/gif/png/etc)
|
||
MB_RESOURCE_TYPE_FONT_RESOURCE = 5, // a font
|
||
MB_RESOURCE_TYPE_SUB_RESOURCE = 6, // an "other" subresource.
|
||
MB_RESOURCE_TYPE_OBJECT = 7, // an object (or embed) tag for a plugin,
|
||
// or a resource that a plugin requested.
|
||
MB_RESOURCE_TYPE_MEDIA = 8, // a media resource.
|
||
MB_RESOURCE_TYPE_WORKER = 9, // the main resource of a dedicated
|
||
// worker.
|
||
MB_RESOURCE_TYPE_SHARED_WORKER = 10, // the main resource of a shared worker.
|
||
MB_RESOURCE_TYPE_PREFETCH = 11, // an explicitly requested prefetch
|
||
MB_RESOURCE_TYPE_FAVICON = 12, // a favicon
|
||
MB_RESOURCE_TYPE_XHR = 13, // a XMLHttpRequest
|
||
MB_RESOURCE_TYPE_PING = 14, // a ping request for <a ping>
|
||
MB_RESOURCE_TYPE_SERVICE_WORKER = 15, // the main resource of a service worker.
|
||
MB_RESOURCE_TYPE_LAST_TYPE
|
||
} mbResourceType;
|
||
|
||
typedef enum _mbRequestType {
|
||
kMbRequestTypeInvalidation,
|
||
kMbRequestTypeGet,
|
||
kMbRequestTypePost,
|
||
kMbRequestTypePut,
|
||
} mbRequestType;
|
||
|
||
typedef struct _mbSlist {
|
||
char* data;
|
||
struct _mbSlist* next;
|
||
} mbSlist;
|
||
|
||
typedef enum _mbMenuItemId {
|
||
kMbMenuSelectedAllId = 1 << 1,
|
||
kMbMenuSelectedTextId = 1 << 2,
|
||
kMbMenuUndoId = 1 << 3,
|
||
kMbMenuCopyImageId = 1 << 4,
|
||
kMbMenuInspectElementAtId = 1 << 5,
|
||
kMbMenuCutId = 1 << 6,
|
||
kMbMenuPasteId = 1 << 7,
|
||
kMbMenuPrintId = 1 << 8,
|
||
kMbMenuGoForwardId = 1 << 9,
|
||
kMbMenuGoBackId = 1 << 10,
|
||
kMbMenuReloadId = 1 << 11,
|
||
} mbMenuItemId;
|
||
|
||
typedef void* mbWebSocketChannel;
|
||
|
||
typedef struct _mbWebsocketHookCallbacks {
|
||
mbStringPtr(MB_CALL_TYPE* onWillConnect)(mbWebView webView, void* param, mbWebSocketChannel channel, const utf8* url, BOOL* needHook);
|
||
|
||
BOOL(MB_CALL_TYPE* onConnected)(mbWebView webView, void* param, mbWebSocketChannel channel);
|
||
mbStringPtr(MB_CALL_TYPE* onReceive)(mbWebView webView, void* param, mbWebSocketChannel channel, int opCode, const char* buf, size_t len, BOOL* isContinue);
|
||
mbStringPtr(MB_CALL_TYPE* onSend)(mbWebView webView, void* param, mbWebSocketChannel channel, int opCode, const char* buf, size_t len, BOOL* isContinue);
|
||
void(MB_CALL_TYPE* onError)(mbWebView webView, void* param, mbWebSocketChannel channel);
|
||
} mbWebsocketHookCallbacks;
|
||
|
||
//////////////////////////////////////////////////////////////////////////
|
||
|
||
typedef enum {
|
||
kMbJsTypeNumber = 0,
|
||
kMbJsTypeString = 1,
|
||
kMbJsTypeBool = 2,
|
||
//kMbJsTypeObject = 3,
|
||
//kMbJsTypeFunction = 4,
|
||
kMbJsTypeUndefined = 5,
|
||
//kMbJsTypeArray = 6,
|
||
kMbJsTypeNull = 7,
|
||
kMbJsTypeV8Value = 8,
|
||
} mbJsType;
|
||
|
||
typedef long long int64_t;
|
||
typedef int64_t mbJsValue;
|
||
typedef void* mbJsExecState;
|
||
|
||
typedef void(MB_CALL_TYPE *mbOnGetPdfPageDataCallback)(mbWebView webView, void* param, void* data, size_t size);
|
||
|
||
typedef void(MB_CALL_TYPE *mbRunJsCallback)(mbWebView webView, void* param, mbJsExecState es, mbJsValue v);
|
||
typedef void(MB_CALL_TYPE* mbJsQueryCallback)(mbWebView webView, void* param, mbJsExecState es, int64_t queryId, int customMsg, const utf8* request);
|
||
|
||
typedef void(MB_CALL_TYPE *mbTitleChangedCallback)(mbWebView webView, void* param, const utf8* title);
|
||
typedef void(MB_CALL_TYPE *mbMouseOverUrlChangedCallback)(mbWebView webView, void* param, const utf8* url);
|
||
typedef void(MB_CALL_TYPE *mbURLChangedCallback)(mbWebView webView, void* param, const utf8* url, BOOL canGoBack, BOOL canGoForward);
|
||
typedef void(MB_CALL_TYPE *mbURLChangedCallback2)(mbWebView webView, void* param, mbWebFrameHandle frameId, const utf8* url);
|
||
typedef void(MB_CALL_TYPE *mbPaintUpdatedCallback)(mbWebView webView, void* param, const HDC hdc, int x, int y, int cx, int cy);
|
||
typedef void(MB_CALL_TYPE* mbAcceleratedPaintCallback)(mbWebView webView, void* param, int type, const mbRect* dirytRects, const size_t dirytRectsSize,void* sharedHandle);
|
||
typedef void(MB_CALL_TYPE *mbPaintBitUpdatedCallback)(mbWebView webView, void* param, const void* buffer, const mbRect* r, int width, int height);
|
||
typedef void(MB_CALL_TYPE *mbAlertBoxCallback)(mbWebView webView, void* param, const utf8* msg);
|
||
typedef BOOL(MB_CALL_TYPE *mbConfirmBoxCallback)(mbWebView webView, void* param, const utf8* msg);
|
||
typedef mbStringPtr(MB_CALL_TYPE *mbPromptBoxCallback)(mbWebView webView, void* param, const utf8* msg, const utf8* defaultResult);
|
||
typedef BOOL(MB_CALL_TYPE *mbNavigationCallback)(mbWebView webView, void* param, mbNavigationType navigationType, const utf8* url);
|
||
typedef mbWebView(MB_CALL_TYPE *mbCreateViewCallback)(mbWebView webView, void* param, mbNavigationType navigationType, const utf8* url, const mbWindowFeatures* windowFeatures);
|
||
typedef void(MB_CALL_TYPE *mbDocumentReadyCallback)(mbWebView webView, void* param, mbWebFrameHandle frameId);
|
||
typedef BOOL(MB_CALL_TYPE *mbCloseCallback)(mbWebView webView, void* param, void* unuse);
|
||
typedef BOOL(MB_CALL_TYPE *mbDestroyCallback)(mbWebView webView, void* param, void* unuse);
|
||
typedef void(MB_CALL_TYPE *mbOnShowDevtoolsCallback)(mbWebView webView, void* param);
|
||
typedef void(MB_CALL_TYPE *mbDidCreateScriptContextCallback)(mbWebView webView, void* param, mbWebFrameHandle frameId, void* context, int extensionGroup, int worldId);
|
||
typedef BOOL(MB_CALL_TYPE *mbGetPluginListCallback)(BOOL refresh, void* pluginListBuilder, void* param);
|
||
typedef BOOL(MB_CALL_TYPE *mbNetResponseCallback)(mbWebView webView, void* param, const utf8* url, mbNetJob job);
|
||
typedef void(MB_CALL_TYPE *mbThreadCallback)(void* param1, void* param2);
|
||
typedef void(MB_CALL_TYPE *mbNodeOnCreateProcessCallback)(mbWebView webView, void* param, const WCHAR* applicationPath, const WCHAR* arguments, STARTUPINFOW* startup);
|
||
|
||
typedef enum {
|
||
MB_LOADING_SUCCEEDED,
|
||
MB_LOADING_FAILED,
|
||
MB_LOADING_CANCELED
|
||
} mbLoadingResult;
|
||
|
||
typedef void(MB_CALL_TYPE *mbLoadingFinishCallback)(mbWebView webView, void* param, mbWebFrameHandle frameId, const utf8* url, mbLoadingResult result, const utf8* failedReason);
|
||
typedef BOOL(MB_CALL_TYPE *mbDownloadCallback)(mbWebView webView, void* param, mbWebFrameHandle frameId, const char* url, void* downloadJob);
|
||
|
||
typedef enum {
|
||
mbLevelDebug = 4,
|
||
mbLevelLog = 1,
|
||
mbLevelInfo = 5,
|
||
mbLevelWarning = 2,
|
||
mbLevelError = 3,
|
||
mbLevelRevokedError = 6,
|
||
mbLevelLast = mbLevelRevokedError
|
||
} mbConsoleLevel;
|
||
typedef void(MB_CALL_TYPE *mbConsoleCallback)(mbWebView webView, void* param, mbConsoleLevel level, const utf8* message, const utf8* sourceName, unsigned sourceLine, const utf8* stackTrace);
|
||
|
||
typedef void(MB_CALL_TYPE *mbOnCallUiThread)(mbWebView webView, void* paramOnInThread);
|
||
typedef void(MB_CALL_TYPE *mbCallUiThread)(mbWebView webView, mbOnCallUiThread func, void* param);
|
||
|
||
//mbNet--------------------------------------------------------------------------------------
|
||
typedef BOOL(MB_CALL_TYPE *mbLoadUrlBeginCallback)(mbWebView webView, void* param, const char* url, mbNetJob job);
|
||
typedef void(MB_CALL_TYPE *mbLoadUrlEndCallback)(mbWebView webView, void* param, const char* url, mbNetJob job, void* buf, int len);
|
||
typedef void(MB_CALL_TYPE *mbLoadUrlFailCallback)(mbWebView webView, void* param, const char* url, mbNetJob job);
|
||
typedef void(MB_CALL_TYPE *mbLoadUrlHeadersReceivedCallback)(mbWebView webView, void* param, const char* url, mbNetJob job);
|
||
typedef void(MB_CALL_TYPE *mbLoadUrlFinishCallback)(mbWebView webView, void* param, const utf8* url, mbNetJob job, int len);
|
||
|
||
typedef void(MB_CALL_TYPE *mbDidCreateScriptContextCallback)(mbWebView webView, void* param, mbWebFrameHandle frameId, void* context, int extensionGroup, int worldId);
|
||
typedef void(MB_CALL_TYPE *mbWillReleaseScriptContextCallback)(mbWebView webView, void* param, mbWebFrameHandle frameId, void* context, int worldId);
|
||
typedef BOOL(MB_CALL_TYPE *mbNetResponseCallback)(mbWebView webView, void* param, const char* url, void* job);
|
||
typedef void(MB_CALL_TYPE *mbNetGetFaviconCallback)(mbWebView webView, void* param, const utf8* url, mbMemBuf* buf);
|
||
|
||
enum MbAsynRequestState {
|
||
kMbAsynRequestStateOk = 0,
|
||
kMbAsynRequestStateFail = 1,
|
||
};
|
||
|
||
typedef void(MB_CALL_TYPE* mbCanGoBackForwardCallback)(mbWebView webView, void* param, MbAsynRequestState state, BOOL b);
|
||
typedef void(MB_CALL_TYPE* mbGetCookieCallback)(mbWebView webView, void* param, MbAsynRequestState state, const utf8* cookie);
|
||
|
||
typedef void* v8ContextPtr;
|
||
typedef void* v8Isolate;
|
||
|
||
typedef void(MB_CALL_TYPE* mbGetSourceCallback)(mbWebView webView, void* param, const utf8* mhtml);
|
||
typedef void(MB_CALL_TYPE* mbGetContentAsMarkupCallback)(mbWebView webView, void* param, const utf8* content, size_t size);
|
||
|
||
typedef struct mbWebUrlRequest* mbWebUrlRequestPtr;
|
||
typedef struct mbWebUrlResponse* mbWebUrlResponsePtr;
|
||
|
||
typedef void(MB_CALL_TYPE* mbOnUrlRequestWillRedirectCallback)(mbWebView webView, void* param, mbWebUrlRequestPtr oldRequest, mbWebUrlRequestPtr request, mbWebUrlResponsePtr redirectResponse);
|
||
typedef void(MB_CALL_TYPE* mbOnUrlRequestDidReceiveResponseCallback)(mbWebView webView, void* param, mbWebUrlRequestPtr request, mbWebUrlResponsePtr response);
|
||
typedef void(MB_CALL_TYPE* mbOnUrlRequestDidReceiveDataCallback)(mbWebView webView, void* param, mbWebUrlRequestPtr request, const char* data, int dataLength);
|
||
typedef void(MB_CALL_TYPE* mbOnUrlRequestDidFailCallback)(mbWebView webView, void* param, mbWebUrlRequestPtr request, const utf8* error);
|
||
typedef void(MB_CALL_TYPE* mbOnUrlRequestDidFinishLoadingCallback)(mbWebView webView, void* param, mbWebUrlRequestPtr request, double finishTime);
|
||
|
||
typedef struct _mbUrlRequestCallbacks {
|
||
mbOnUrlRequestWillRedirectCallback willRedirectCallback;
|
||
mbOnUrlRequestDidReceiveResponseCallback didReceiveResponseCallback;
|
||
mbOnUrlRequestDidReceiveDataCallback didReceiveDataCallback;
|
||
mbOnUrlRequestDidFailCallback didFailCallback;
|
||
mbOnUrlRequestDidFinishLoadingCallback didFinishLoadingCallback;
|
||
} mbUrlRequestCallbacks;
|
||
|
||
typedef enum _mbDownloadOpt {
|
||
kMbDownloadOptCancel,
|
||
kMbDownloadOptCacheData,
|
||
} mbDownloadOpt;
|
||
|
||
typedef void(MB_CALL_TYPE*mbNetJobDataRecvCallback)(void* ptr, mbNetJob job, const char* data, int length);
|
||
typedef void(MB_CALL_TYPE*mbNetJobDataFinishCallback)(void* ptr, mbNetJob job, mbLoadingResult result);
|
||
|
||
typedef struct _mbNetJobDataBind {
|
||
void* param;
|
||
mbNetJobDataRecvCallback recvCallback;
|
||
mbNetJobDataFinishCallback finishCallback;
|
||
} mbNetJobDataBind;
|
||
|
||
typedef void(MB_CALL_TYPE*mbPopupDialogSaveNameCallback)(void* ptr, const wchar_t* filePath);
|
||
|
||
typedef struct _mbDownloadBind {
|
||
void* param;
|
||
mbNetJobDataRecvCallback recvCallback;
|
||
mbNetJobDataFinishCallback finishCallback;
|
||
mbPopupDialogSaveNameCallback saveNameCallback;
|
||
} mbDownloadBind;
|
||
|
||
typedef struct _mbFileFilter {
|
||
const utf8* name; // 例如"image"、"Movies"
|
||
const utf8* extensions; // 例如"jpg|png|gif"
|
||
} mbFileFilter;
|
||
|
||
enum mbDialogProperties {
|
||
kMbDialogPropertiesOpenFile = 1 << 1, // 允许选择文件
|
||
kMbDialogPropertiesOpenDirectory = 1 << 2, // 允许选择文件夹
|
||
kMbDialogPropertiesMultiSelections = 1 << 3, // 允许多选。
|
||
kMbDialogPropertiesShowHiddenFiles = 1 << 4, // 显示对话框中的隐藏文件。
|
||
kMbDialogPropertiesCreateDirectory = 1 << 5, // macOS - 允许你通过对话框的形式创建新的目录。
|
||
kMbDialogPropertiesPromptToCreate = 1 << 6, // Windows - 如果输入的文件路径在对话框中不存在, 则提示创建。 这并不是真的在路径上创建一个文件,而是允许返回一些不存在的地址交由应用程序去创建。
|
||
kMbDialogPropertiesNoResolveAliases = 1 << 7, // macOS - 禁用自动的别名路径(符号链接) 解析。 所选别名现在将会返回别名路径而非其目标路径。
|
||
kMbDialogPropertiesTreatPackageAsDirectory = 1 << 8, // macOS - 将包(如.app 文件夹) 视为目录而不是文件。
|
||
kMbDialogPropertiesDontAddToRecent = 1 << 9, // Windows - 不要将正在打开的项目添加到最近的文档列表中。
|
||
};
|
||
|
||
typedef struct _mbDialogOptions {
|
||
int magic; // 'mbdo'
|
||
const utf8* title;
|
||
const utf8* defaultPath;
|
||
const utf8* buttonLabel;
|
||
mbFileFilter* filters;
|
||
int filtersCount;
|
||
mbDialogProperties prop;
|
||
const utf8* message;
|
||
BOOL securityScopedBookmarks;
|
||
} mbDialogOptions;
|
||
|
||
typedef struct _mbDownloadOptions {
|
||
int magic; // 'mbdo'
|
||
BOOL saveAsPathAndName;
|
||
} mbDownloadOptions;
|
||
|
||
typedef mbDownloadOpt(MB_CALL_TYPE* mbDownloadInBlinkThreadCallback)(
|
||
mbWebView webView,
|
||
void* params,
|
||
size_t expectedContentLength,
|
||
const char* url,
|
||
const char* mime,
|
||
const char* disposition,
|
||
mbNetJob job,
|
||
mbNetJobDataBind* dataBind
|
||
);
|
||
|
||
typedef struct _mbPdfDatas {
|
||
int count;
|
||
size_t* sizes;
|
||
const void** datas;
|
||
} mbPdfDatas;
|
||
|
||
typedef void(MB_CALL_TYPE* mbPrintPdfDataCallback)(mbWebView webview, void* param, const mbPdfDatas* datas);
|
||
|
||
typedef struct _mbScreenshotSettings {
|
||
int structSize;
|
||
int width;
|
||
int height;
|
||
} mbScreenshotSettings;
|
||
|
||
typedef void(MB_CALL_TYPE* mbPrintBitmapCallback)(mbWebView webview, void* param, const char* data, size_t size);
|
||
typedef void(MB_CALL_TYPE* mbOnScreenshot)(mbWebView webView, void* param, const char* data, size_t size);
|
||
|
||
typedef enum _mbHttBodyElementType {
|
||
mbHttBodyElementTypeData,
|
||
mbHttBodyElementTypeFile,
|
||
} mbHttBodyElementType;
|
||
|
||
typedef struct _mbPostBodyElement {
|
||
int size;
|
||
mbHttBodyElementType type;
|
||
mbMemBuf* data;
|
||
mbStringPtr filePath;
|
||
__int64 fileStart;
|
||
__int64 fileLength; // -1 means to the end of the file.
|
||
} mbPostBodyElement;
|
||
|
||
typedef struct _mbPostBodyElements {
|
||
int size;
|
||
mbPostBodyElement** element;
|
||
size_t elementSize;
|
||
bool isDirty;
|
||
} mbPostBodyElements;
|
||
|
||
typedef struct _mbWillSendRequestInfo {
|
||
mbStringPtr url;
|
||
mbStringPtr newUrl;
|
||
mbResourceType resourceType;
|
||
int httpResponseCode;
|
||
mbStringPtr method;
|
||
mbStringPtr referrer;
|
||
void* headers;
|
||
} mbWillSendRequestInfo;
|
||
|
||
typedef enum _mbViewLoadType {
|
||
MB_DID_START_LOADING,
|
||
MB_DID_STOP_LOADING,
|
||
MB_DID_NAVIGATE,
|
||
MB_DID_NAVIGATE_IN_PAGE,
|
||
MB_DID_GET_RESPONSE_DETAILS,
|
||
MB_DID_GET_REDIRECT_REQUEST,
|
||
MB_DID_POST_REQUEST,
|
||
} mbViewLoadType;
|
||
|
||
typedef struct _mbViewLoadCallbackInfo {
|
||
int size;
|
||
mbWebFrameHandle frame;
|
||
mbWillSendRequestInfo* willSendRequestInfo;
|
||
const char* url;
|
||
mbPostBodyElements* postBody;
|
||
mbNetJob job;
|
||
} mbViewLoadCallbackInfo;
|
||
|
||
typedef void(MB_CALL_TYPE* mbNetViewLoadInfoCallback)(mbWebView webView, void* param, mbViewLoadType type, mbViewLoadCallbackInfo* info);
|
||
|
||
//mbwindow-----------------------------------------------------------------------------------
|
||
typedef enum _mbWindowType {
|
||
MB_WINDOW_TYPE_POPUP,
|
||
MB_WINDOW_TYPE_TRANSPARENT,
|
||
MB_WINDOW_TYPE_CONTROL
|
||
} mbWindowType;
|
||
|
||
typedef enum _mbWindowInfo {
|
||
MB_WINDOW_INFO_SHARTD_TEXTURE_ENABLE = 1 << 16,
|
||
} mbWindowInfo;
|
||
|
||
typedef BOOL(MB_CALL_TYPE *mbWindowClosingCallback)(mbWebView webview, void* param);
|
||
typedef void(MB_CALL_TYPE *mbWindowDestroyCallback)(mbWebView webview, void* param);
|
||
|
||
typedef struct _mbDraggableRegion {
|
||
RECT bounds;
|
||
BOOL draggable;
|
||
} mbDraggableRegion;
|
||
typedef void(MB_CALL_TYPE *mbDraggableRegionsChangedCallback)(mbWebView webview, void* param, const mbDraggableRegion* rects, int rectCount);
|
||
|
||
typedef enum _mbPrintintStep {
|
||
kPrintintStepStart,
|
||
kPrintintStepPreview,
|
||
kPrintintStepPrinting,
|
||
} mbPrintintStep;
|
||
|
||
typedef struct _mbPrintintSettings {
|
||
int dpi;
|
||
int width;
|
||
int height;
|
||
float scale;
|
||
} mbPrintintSettings;
|
||
|
||
typedef struct _mbDefaultPrinterSettings {
|
||
int structSize; // 默认是4 * 10
|
||
BOOL isLandscape; // 是否为横向打印格式
|
||
BOOL isPrintHeadFooter; //
|
||
BOOL isPrintBackgroud; // 是否打印背景
|
||
int edgeDistanceLeft; // 上边距单位:毫米
|
||
int edgeDistanceTop;
|
||
int edgeDistanceRight;
|
||
int edgeDistanceBottom;
|
||
int copies; // 默认打印份数
|
||
int paperType; // DMPAPER_A4等
|
||
#if defined(__cplusplus)
|
||
inline _mbDefaultPrinterSettings();
|
||
#endif
|
||
} mbDefaultPrinterSettings;
|
||
|
||
#if defined(__cplusplus)
|
||
_mbDefaultPrinterSettings::_mbDefaultPrinterSettings()
|
||
{
|
||
isLandscape = false;
|
||
isPrintHeadFooter = false;
|
||
isPrintBackgroud = true;
|
||
edgeDistanceLeft = 0;
|
||
edgeDistanceTop = 10;
|
||
edgeDistanceRight = 0;
|
||
edgeDistanceBottom = 10;
|
||
copies = 1;
|
||
paperType = 9;
|
||
}
|
||
#endif
|
||
|
||
typedef BOOL(MB_CALL_TYPE *mbPrintingCallback)(mbWebView webview, void* param, mbPrintintStep step, HDC hDC, const mbPrintintSettings* settings, int pageCount);
|
||
|
||
typedef mbStringPtr(MB_CALL_TYPE *mbImageBufferToDataURLCallback)(mbWebView webView, void* param, const char* data, size_t size);
|
||
|
||
//JavaScript Bind-----------------------------------------------------------------------------------
|
||
|
||
//////////////////////////////////////////////////////////////////////////
|
||
|
||
#define MB_DEFINE_ITERATOR0(returnVal, name, description) \
|
||
typedef returnVal(MB_CALL_TYPE* FN_##name)(); \
|
||
__declspec(selectany) FN_##name name = ((FN_##name)0);
|
||
|
||
#define MB_DEFINE_ITERATOR1(returnVal, name, p1, description) \
|
||
typedef returnVal(MB_CALL_TYPE* FN_##name)(p1); \
|
||
__declspec(selectany) FN_##name name = ((FN_##name)0);
|
||
|
||
#define MB_DEFINE_ITERATOR2(returnVal, name, p1, p2, description) \
|
||
typedef returnVal(MB_CALL_TYPE* FN_##name)(p1, p2); \
|
||
__declspec(selectany) FN_##name name = ((FN_##name)0);
|
||
|
||
#define MB_DEFINE_ITERATOR3(returnVal, name, p1, p2, p3, description) \
|
||
typedef returnVal(MB_CALL_TYPE* FN_##name)(p1, p2, p3); \
|
||
__declspec(selectany) FN_##name name = ((FN_##name)0);
|
||
|
||
#define MB_DEFINE_ITERATOR4(returnVal, name, p1, p2, p3, p4, description) \
|
||
typedef returnVal(MB_CALL_TYPE* FN_##name)(p1, p2, p3, p4); \
|
||
__declspec(selectany) FN_##name name = ((FN_##name)0);
|
||
|
||
#define MB_DEFINE_ITERATOR5(returnVal, name, p1, p2, p3, p4, p5, description) \
|
||
typedef returnVal(MB_CALL_TYPE* FN_##name)(p1, p2, p3, p4, p5); \
|
||
__declspec(selectany) FN_##name name = ((FN_##name)0);
|
||
|
||
#define MB_DEFINE_ITERATOR6(returnVal, name, p1, p2, p3, p4, p5, p6, description) \
|
||
typedef returnVal(MB_CALL_TYPE* FN_##name)(p1, p2, p3, p4, p5, p6); \
|
||
__declspec(selectany) FN_##name name = ((FN_##name)0);
|
||
|
||
#define MB_DEFINE_ITERATOR7(returnVal, name, p1, p2, p3, p4, p5, p6, p7, description) \
|
||
typedef returnVal(MB_CALL_TYPE* FN_##name)(p1, p2, p3, p4, p5, p6, p7); \
|
||
__declspec(selectany) FN_##name name = ((FN_##name)0);
|
||
|
||
#define MB_DEFINE_ITERATOR8(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, description) \
|
||
typedef returnVal(MB_CALL_TYPE* FN_##name)(p1, p2, p3, p4, p5, p6, p7, p8); \
|
||
__declspec(selectany) FN_##name name = ((FN_##name)0);
|
||
|
||
#define MB_DEFINE_ITERATOR9(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, description) \
|
||
typedef returnVal(MB_CALL_TYPE* FN_##name)(p1, p2, p3, p4, p5, p6, p7, p8, p9); \
|
||
__declspec(selectany) FN_##name name = ((FN_##name)0);
|
||
|
||
#define MB_DEFINE_ITERATOR10(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, description) \
|
||
typedef returnVal(MB_CALL_TYPE* FN_##name)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); \
|
||
__declspec(selectany) FN_##name name = ((FN_##name)0);
|
||
|
||
#define MB_DEFINE_ITERATOR11(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, description) \
|
||
typedef returnVal(MB_CALL_TYPE* FN_##name)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); \
|
||
__declspec(selectany) FN_##name name = ((FN_##name)0);
|
||
|
||
// ---
|
||
|
||
#define MB_DLLEXPORT __declspec(dllexport)
|
||
|
||
#define MB_DECLARE_ITERATOR0(returnVal, name, description) \
|
||
MB_EXTERN_C MB_DLLEXPORT returnVal MB_CALL_TYPE name();
|
||
|
||
#define MB_DECLARE_ITERATOR1(returnVal, name, p1, description) \
|
||
MB_EXTERN_C MB_DLLEXPORT returnVal MB_CALL_TYPE name(p1);
|
||
|
||
#define MB_DECLARE_ITERATOR2(returnVal, name, p1, p2, description) \
|
||
MB_EXTERN_C MB_DLLEXPORT returnVal MB_CALL_TYPE name(p1, p2);
|
||
|
||
#define MB_DECLARE_ITERATOR3(returnVal, name, p1, p2, p3, description) \
|
||
MB_EXTERN_C MB_DLLEXPORT returnVal MB_CALL_TYPE name(p1, p2, p3);
|
||
|
||
#define MB_DECLARE_ITERATOR4(returnVal, name, p1, p2, p3, p4, description) \
|
||
MB_EXTERN_C MB_DLLEXPORT returnVal MB_CALL_TYPE name(p1, p2, p3, p4);
|
||
|
||
#define MB_DECLARE_ITERATOR5(returnVal, name, p1, p2, p3, p4, p5, description) \
|
||
MB_EXTERN_C MB_DLLEXPORT returnVal MB_CALL_TYPE name(p1, p2, p3, p4, p5);
|
||
|
||
#define MB_DECLARE_ITERATOR6(returnVal, name, p1, p2, p3, p4, p5, p6, description) \
|
||
MB_EXTERN_C MB_DLLEXPORT returnVal MB_CALL_TYPE name(p1, p2, p3, p4, p5, p6);
|
||
|
||
#define MB_DECLARE_ITERATOR7(returnVal, name, p1, p2, p3, p4, p5, p6, p7, description) \
|
||
MB_EXTERN_C MB_DLLEXPORT returnVal MB_CALL_TYPE name(p1, p2, p3, p4, p5, p6, p7);
|
||
|
||
#define MB_DECLARE_ITERATOR8(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, description) \
|
||
MB_EXTERN_C MB_DLLEXPORT returnVal MB_CALL_TYPE name(p1, p2, p3, p4, p5, p6, p7, p8);
|
||
|
||
#define MB_DECLARE_ITERATOR9(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, description) \
|
||
MB_EXTERN_C MB_DLLEXPORT returnVal MB_CALL_TYPE name(p1, p2, p3, p4, p5, p6, p7, p8, p9);
|
||
|
||
#define MB_DECLARE_ITERATOR10(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, description) \
|
||
MB_EXTERN_C MB_DLLEXPORT returnVal MB_CALL_TYPE name(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
|
||
|
||
#define MB_DECLARE_ITERATOR11(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, description) \
|
||
MB_EXTERN_C MB_DLLEXPORT returnVal MB_CALL_TYPE name(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11);
|
||
|
||
// ---
|
||
|
||
#define MB_GET_PTR_ITERATOR(name) \
|
||
name = (FN_##name)GetProcAddress(g_hMiniblinkMod, #name); \
|
||
if (!name) \
|
||
MessageBoxA(((HWND)0), "mb api not found", #name, 0);
|
||
|
||
#define MB_GET_PTR_ITERATOR0(returnVal, name, description) \
|
||
MB_GET_PTR_ITERATOR(name);
|
||
|
||
#define MB_GET_PTR_ITERATOR1(returnVal, name, p1, description) \
|
||
MB_GET_PTR_ITERATOR(name);
|
||
|
||
#define MB_GET_PTR_ITERATOR2(returnVal, name, p1, p2, description) \
|
||
MB_GET_PTR_ITERATOR(name);
|
||
|
||
#define MB_GET_PTR_ITERATOR3(returnVal, name, p1, p2, p3, description) \
|
||
MB_GET_PTR_ITERATOR(name);
|
||
|
||
#define MB_GET_PTR_ITERATOR4(returnVal, name, p1, p2, p3, p4, description) \
|
||
MB_GET_PTR_ITERATOR(name);
|
||
|
||
#define MB_GET_PTR_ITERATOR5(returnVal, name, p1, p2, p3, p4, p5, description) \
|
||
MB_GET_PTR_ITERATOR(name);
|
||
|
||
#define MB_GET_PTR_ITERATOR6(returnVal, name, p1, p2, p3, p4, p5, p6, description) \
|
||
MB_GET_PTR_ITERATOR(name);
|
||
|
||
#define MB_GET_PTR_ITERATOR7(returnVal, name, p1, p2, p3, p4, p5, p6, p7, description) \
|
||
MB_GET_PTR_ITERATOR(name);
|
||
|
||
#define MB_GET_PTR_ITERATOR8(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, description) \
|
||
MB_GET_PTR_ITERATOR(name);
|
||
|
||
#define MB_GET_PTR_ITERATOR9(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, description) \
|
||
MB_GET_PTR_ITERATOR(name);
|
||
|
||
#define MB_GET_PTR_ITERATOR10(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, description) \
|
||
MB_GET_PTR_ITERATOR(name);
|
||
|
||
#define MB_GET_PTR_ITERATOR11(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, description) \
|
||
MB_GET_PTR_ITERATOR(name);
|
||
|
||
// 以下是mb的导出函数。格式按照【返回类型】【函数名】【参数】来排列
|
||
#define MB_FOR_EACH_DEFINE_FUNCTION(ITERATOR0, ITERATOR1, ITERATOR2, ITERATOR3, ITERATOR4, ITERATOR5, ITERATOR6, ITERATOR7, ITERATOR8, ITERATOR9, ITERATOR10, ITERATOR11) \
|
||
ITERATOR0(void, mbUninit, "") \
|
||
ITERATOR0(mbSettings*, mbCreateInitSettings, "方便c#等其他语言创建setting结构体") \
|
||
ITERATOR3(void, mbSetInitSettings, mbSettings* settings, const char* name, const char* value, "") \
|
||
ITERATOR0(mbWebView, mbCreateWebView, "") \
|
||
ITERATOR1(void, mbDestroyWebView, mbWebView webview, "") \
|
||
ITERATOR6(mbWebView, mbCreateWebWindow, mbWindowType type, HWND parent, int x, int y, int width, int height, "") \
|
||
ITERATOR7(mbWebView, mbCreateWebCustomWindow, HWND parent, DWORD style, DWORD styleEx, int x, int y, int width, int height, "") \
|
||
ITERATOR5(void, mbMoveWindow, mbWebView webview, int x, int y, int w, int h, "") \
|
||
ITERATOR1(void, mbMoveToCenter, mbWebView webview, "") \
|
||
ITERATOR2(void, mbSetAutoDrawToHwnd, mbWebView webview, BOOL b, "离屏模式下控制是否自动上屏") \
|
||
ITERATOR2(void, mbGetCaretRect, mbWebView webviewHandle, mbRect* r, "") \
|
||
\
|
||
ITERATOR2(void, mbSetAudioMuted, mbWebView webview, BOOL b, "") \
|
||
ITERATOR1(BOOL, mbIsAudioMuted, mbWebView webview, "") \
|
||
\
|
||
ITERATOR2(mbStringPtr, mbCreateString, const utf8* str, size_t length, "") \
|
||
ITERATOR2(mbStringPtr, mbCreateStringWithoutNullTermination, const utf8* str, size_t length, "") \
|
||
ITERATOR1(void, mbDeleteString, mbStringPtr str, "") \
|
||
ITERATOR1(size_t, mbGetStringLen, mbStringPtr str, "") \
|
||
ITERATOR1(const utf8*, mbGetString, mbStringPtr str, "") \
|
||
\
|
||
ITERATOR2(void, mbSetProxy, mbWebView webView, const mbProxy* proxy, "") \
|
||
ITERATOR3(void, mbSetDebugConfig, mbWebView webView, const char* debugString, const char* param, "") \
|
||
\
|
||
ITERATOR3(void, mbNetSetData, mbNetJob jobPtr, void* buf, int len, "调用此函数后,网络层收到数据会存储在一buf内,接收数据完成后响应OnLoadUrlEnd事件.#此调用严重影响性能,慎用" \
|
||
"此函数和mbNetSetData的区别是,mbNetHookRequest会在接受到真正网络数据后再调用回调,并允许回调修改网络数据。"\
|
||
"而mbNetSetData是在网络数据还没发送的时候修改") \
|
||
ITERATOR1(void, mbNetHookRequest, mbNetJob jobPtr, "") \
|
||
ITERATOR2(void, mbNetChangeRequestUrl, mbNetJob jobPtr, const char* url, "") \
|
||
ITERATOR1(void, mbNetContinueJob, mbNetJob jobPtr, "") \
|
||
ITERATOR1(const mbSlist*, mbNetGetRawHttpHeadInBlinkThread, mbNetJob jobPtr, "") \
|
||
ITERATOR1(const mbSlist*, mbNetGetRawResponseHeadInBlinkThread, mbNetJob jobPtr, "") \
|
||
ITERATOR1(BOOL, mbNetHoldJobToAsynCommit, mbNetJob jobPtr, "") \
|
||
ITERATOR1(void, mbNetCancelRequest, mbNetJob jobPtr, "")\
|
||
ITERATOR3(void, mbNetOnResponse, mbWebView webviewHandle, mbNetResponseCallback callback, void* param, "注意此接口的回调是在另外个线程")\
|
||
\
|
||
ITERATOR3(void, mbNetSetWebsocketCallback, mbWebView webview, const mbWebsocketHookCallbacks* callbacks, void* param, "")\
|
||
ITERATOR3(void, mbNetSendWsText, mbWebSocketChannel channel, const char* buf, size_t len, "")\
|
||
ITERATOR3(void, mbNetSendWsBlob, mbWebSocketChannel channel, const char* buf, size_t len, "")\
|
||
\
|
||
ITERATOR2(void, mbNetEnableResPacket, mbWebView webviewHandle, const WCHAR* pathName, "")\
|
||
\
|
||
ITERATOR1(mbPostBodyElements*, mbNetGetPostBody, mbNetJob jobPtr, "") \
|
||
ITERATOR2(mbPostBodyElements*, mbNetCreatePostBodyElements, mbWebView webView, size_t length, "") \
|
||
ITERATOR1(void, mbNetFreePostBodyElements, mbPostBodyElements* elements, "") \
|
||
ITERATOR1(mbPostBodyElement*, mbNetCreatePostBodyElement, mbWebView webView, "") \
|
||
ITERATOR1(void, mbNetFreePostBodyElement, mbPostBodyElement* element, "") \
|
||
\
|
||
ITERATOR3(mbWebUrlRequestPtr, mbNetCreateWebUrlRequest, const utf8* url, const utf8* method, const utf8* mime, "")\
|
||
ITERATOR3(void, mbNetAddHTTPHeaderFieldToUrlRequest, mbWebUrlRequestPtr request, const utf8* name, const utf8* value, "")\
|
||
ITERATOR4(int, mbNetStartUrlRequest, mbWebView webView, mbWebUrlRequestPtr request, void* param, const mbUrlRequestCallbacks* callbacks, "")\
|
||
ITERATOR1(int, mbNetGetHttpStatusCode, mbWebUrlResponsePtr response, "")\
|
||
ITERATOR1(mbRequestType, mbNetGetRequestMethod, mbNetJob jobPtr, "")\
|
||
ITERATOR1(__int64, mbNetGetExpectedContentLength, mbWebUrlResponsePtr response, "")\
|
||
ITERATOR1(const utf8*, mbNetGetResponseUrl, mbWebUrlResponsePtr response, "")\
|
||
ITERATOR1(void, mbNetCancelWebUrlRequest, int requestId, "")\
|
||
ITERATOR2(void, mbSetViewProxy, mbWebView webView, const mbProxy* proxy, "")\
|
||
ITERATOR2(void, mbNetSetMIMEType, mbNetJob jobPtr, const char* type, "") \
|
||
ITERATOR1(const char*, mbNetGetMIMEType, mbNetJob jobPtr, "只能在blink线程调用(非主线程)") \
|
||
ITERATOR3(const utf8*, mbNetGetHTTPHeaderField, mbNetJob job, const char* key, BOOL fromRequestOrResponse, "") \
|
||
ITERATOR1(const char*, mbNetGetReferrer, mbNetJob jobPtr, "获取request的referrer") \
|
||
ITERATOR4(void, mbNetSetHTTPHeaderField, mbNetJob jobPtr, const wchar_t* key, const wchar_t* value, BOOL response, "") \
|
||
\
|
||
ITERATOR2(void, mbSetMouseEnabled, mbWebView webView, BOOL b, "") \
|
||
ITERATOR2(void, mbSetTouchEnabled, mbWebView webView, BOOL b, "") \
|
||
ITERATOR2(void, mbSetSystemTouchEnabled, mbWebView webView, BOOL b, "") \
|
||
ITERATOR2(void, mbSetContextMenuEnabled, mbWebView webView, BOOL b, "") \
|
||
ITERATOR2(void, mbSetNavigationToNewWindowEnable, mbWebView webView, BOOL b, "") \
|
||
ITERATOR2(void, mbSetHeadlessEnabled, mbWebView webView, BOOL b, "可以关闭渲染") \
|
||
ITERATOR2(void, mbSetDragDropEnable, mbWebView webView, BOOL b, "可以关闭拖拽文件、文字") \
|
||
ITERATOR2(void, mbSetDragEnable, mbWebView webView, BOOL b, "可关闭自动响应WM_DROPFILES消息让网页加载本地文件") \
|
||
ITERATOR3(void, mbSetContextMenuItemShow, mbWebView webView, mbMenuItemId item, BOOL isShow, "设置某项menu是否显示") \
|
||
\
|
||
ITERATOR2(void, mbSetHandle, mbWebView webView, HWND wnd, "") \
|
||
ITERATOR3(void, mbSetHandleOffset, mbWebView webView, int x, int y, "") \
|
||
ITERATOR1(HWND, mbGetHostHWND, mbWebView webView, "") \
|
||
ITERATOR2(void, mbSetTransparent, mbWebView webviewHandle, BOOL transparent, "") \
|
||
ITERATOR2(void, mbSetViewSettings, mbWebView webviewHandle, const mbViewSettings* settings, "") \
|
||
\
|
||
ITERATOR2(void, mbSetCspCheckEnable, mbWebView webView, BOOL b, "") \
|
||
ITERATOR2(void, mbSetNpapiPluginsEnabled, mbWebView webView, BOOL b, "") \
|
||
ITERATOR2(void, mbSetMemoryCacheEnable, mbWebView webView, BOOL b, "") \
|
||
ITERATOR3(void, mbSetCookie, mbWebView webView, const utf8* url, const utf8* cookie, "cookie格式必须是:PRODUCTINFO=webxpress; domain=.fidelity.com; path=/; secure") \
|
||
ITERATOR2(void, mbSetCookieEnabled, mbWebView webView, BOOL enable, "") \
|
||
ITERATOR2(void, mbSetCookieJarPath, mbWebView webView, const WCHAR* path, "") \
|
||
ITERATOR2(void, mbSetCookieJarFullPath, mbWebView webView, const WCHAR* path, "") \
|
||
ITERATOR2(void, mbSetLocalStorageFullPath, mbWebView webView, const WCHAR* path, "") \
|
||
ITERATOR1(const utf8*, mbGetTitle, mbWebView webView, "") \
|
||
ITERATOR2(void, mbSetWindowTitle, mbWebView webView, const utf8* title, "") \
|
||
ITERATOR2(void, mbSetWindowTitleW, mbWebView webView, const wchar_t* title, "") \
|
||
ITERATOR1(const utf8*, mbGetUrl, mbWebView webView, "") \
|
||
ITERATOR1(int, mbGetCursorInfoType, mbWebView webView, "") \
|
||
ITERATOR2(void, mbAddPluginDirectory, mbWebView webView, const WCHAR* path, "") \
|
||
ITERATOR2(void, mbSetUserAgent, mbWebView webView, const utf8* userAgent, "") \
|
||
ITERATOR2(void, mbSetZoomFactor, mbWebView webView, float factor, "") \
|
||
ITERATOR1(float, mbGetZoomFactor, mbWebView webView, "") \
|
||
ITERATOR2(void, mbSetDiskCacheEnabled, mbWebView webView, BOOL enable, "") \
|
||
ITERATOR2(void, mbSetDiskCachePath, mbWebView webView, const WCHAR* path, "") \
|
||
ITERATOR2(void, mbSetDiskCacheLimit, mbWebView webView, size_t limit, "") \
|
||
ITERATOR2(void, mbSetDiskCacheLimitDisk, mbWebView webView, size_t limit, "") \
|
||
ITERATOR2(void, mbSetDiskCacheLevel, mbWebView webView, int Level, "") \
|
||
\
|
||
ITERATOR2(void, mbSetResourceGc, mbWebView webView, int intervalSec, "") \
|
||
\
|
||
ITERATOR3(void, mbCanGoForward, mbWebView webView, mbCanGoBackForwardCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbCanGoBack, mbWebView webView, mbCanGoBackForwardCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbGetCookie, mbWebView webView, mbGetCookieCallback callback, void* param, "") \
|
||
ITERATOR1(const utf8*, mbGetCookieOnBlinkThread, mbWebView webView, "") \
|
||
ITERATOR1(void, mbClearCookie, mbWebView webView, "") \
|
||
\
|
||
ITERATOR3(void, mbResize, mbWebView webView, int w, int h, "") \
|
||
\
|
||
ITERATOR3(void, mbOnNavigation, mbWebView webView, mbNavigationCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbOnNavigationSync, mbWebView webView, mbNavigationCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbOnCreateView, mbWebView webView, mbCreateViewCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbOnDocumentReady, mbWebView webView, mbDocumentReadyCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbOnDocumentReadyInBlinkThread, mbWebView webView, mbDocumentReadyCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbOnPaintUpdated, mbWebView webView, mbPaintUpdatedCallback callback, void* callbackParam, "") \
|
||
ITERATOR3(void, mbOnPaintBitUpdated, mbWebView webView, mbPaintBitUpdatedCallback callback, void* callbackParam, "") \
|
||
ITERATOR3(void, mbOnAcceleratedPaint, mbWebView webView, mbAcceleratedPaintCallback callback, void* callbackParam, "") \
|
||
ITERATOR3(void, mbOnLoadUrlBegin, mbWebView webView, mbLoadUrlBeginCallback callback, void* callbackParam, "") \
|
||
ITERATOR3(void, mbOnLoadUrlEnd, mbWebView webView, mbLoadUrlEndCallback callback, void* callbackParam, "") \
|
||
ITERATOR3(void, mbOnLoadUrlFail, mbWebView webView, mbLoadUrlFailCallback callback, void* callbackParam, "") \
|
||
ITERATOR3(void, mbOnLoadUrlHeadersReceived, mbWebView webView, mbLoadUrlHeadersReceivedCallback callback, void* callbackParam, "") \
|
||
ITERATOR3(void, mbOnLoadUrlFinish, mbWebView webView, mbLoadUrlFinishCallback callback, void* callbackParam, "") \
|
||
ITERATOR3(void, mbOnTitleChanged, mbWebView webView, mbTitleChangedCallback callback, void* callbackParam, "") \
|
||
ITERATOR3(void, mbOnURLChanged, mbWebView webView, mbURLChangedCallback callback, void* callbackParam, "") \
|
||
ITERATOR3(void, mbOnLoadingFinish, mbWebView webView, mbLoadingFinishCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbOnDownload, mbWebView webView, mbDownloadCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbOnDownloadInBlinkThread, mbWebView webView, mbDownloadInBlinkThreadCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbOnAlertBox, mbWebView webView, mbAlertBoxCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbOnConfirmBox, mbWebView webView, mbConfirmBoxCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbOnPromptBox, mbWebView webView, mbPromptBoxCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbOnNetGetFavicon, mbWebView webView, mbNetGetFaviconCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbOnConsole, mbWebView webView, mbConsoleCallback callback, void* param, "") \
|
||
ITERATOR3(BOOL, mbOnClose, mbWebView webView, mbCloseCallback callback, void* param, "") \
|
||
ITERATOR3(BOOL, mbOnDestroy, mbWebView webView, mbDestroyCallback callback, void* param, "") \
|
||
ITERATOR3(BOOL, mbOnPrinting, mbWebView webView, mbPrintingCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbOnPluginList, mbWebView webView, mbGetPluginListCallback callback, void* callbackParam, "") \
|
||
ITERATOR3(void, mbOnImageBufferToDataURL, mbWebView webView, mbImageBufferToDataURLCallback callback, void* callbackParam, "") \
|
||
ITERATOR3(void, mbOnDidCreateScriptContext, mbWebView webView, mbDidCreateScriptContextCallback callback, void* callbackParam, "") \
|
||
ITERATOR3(void, mbOnWillReleaseScriptContext, mbWebView webView, mbWillReleaseScriptContextCallback callback, void* callbackParam, "") \
|
||
\
|
||
ITERATOR1(void, mbGoBack, mbWebView webView, "") \
|
||
ITERATOR1(void, mbGoForward, mbWebView webView, "") \
|
||
ITERATOR2(void, mbGoToOffset, mbWebView webView, int offset, "") \
|
||
ITERATOR2(void, mbGoToIndex, mbWebView webView, int index, "") \
|
||
ITERATOR2(void, mbNavigateAtIndex, mbWebView webView, int index, "") \
|
||
ITERATOR1(int, mbGetNavigateIndex, mbWebView webView, "") \
|
||
ITERATOR1(void, mbStopLoading, mbWebView webView, "") \
|
||
ITERATOR1(void, mbReload, mbWebView webView, "") \
|
||
ITERATOR2(void, mbPerformCookieCommand, mbWebView webView, mbCookieCommand command, "") \
|
||
ITERATOR3(void, mbInsertCSSByFrame, mbWebView webView, mbWebFrameHandle frameId, const utf8* cssText, "") \
|
||
\
|
||
ITERATOR1(void, mbEditorSelectAll, mbWebView webView, "") \
|
||
ITERATOR1(void, mbEditorUnSelect, mbWebView webView, "") \
|
||
ITERATOR1(void, mbEditorCopy, mbWebView webView, "") \
|
||
ITERATOR1(void, mbEditorCut, mbWebView webView, "") \
|
||
ITERATOR1(void, mbEditorPaste, mbWebView webView, "") \
|
||
ITERATOR1(void, mbEditorDelete, mbWebView webView, "") \
|
||
ITERATOR1(void, mbEditorUndo, mbWebView webView, "") \
|
||
ITERATOR1(void, mbEditorRedo, mbWebView webView, "") \
|
||
ITERATOR2(void, mbSetEditable, mbWebView webView, bool editable, "") \
|
||
\
|
||
ITERATOR5(BOOL, mbFireMouseEvent, mbWebView webView, unsigned int message, int x, int y, unsigned int flags, "") \
|
||
ITERATOR4(BOOL, mbFireContextMenuEvent, mbWebView webView, int x, int y, unsigned int flags, "") \
|
||
ITERATOR5(BOOL, mbFireMouseWheelEvent, mbWebView webView, int x, int y, int delta, unsigned int flags, "") \
|
||
ITERATOR4(BOOL, mbFireKeyUpEvent, mbWebView webView, unsigned int virtualKeyCode, unsigned int flags, BOOL systemKey, "") \
|
||
ITERATOR4(BOOL, mbFireKeyDownEvent, mbWebView webView, unsigned int virtualKeyCode, unsigned int flags, BOOL systemKey, "") \
|
||
ITERATOR4(BOOL, mbFireKeyPressEvent, mbWebView webView, unsigned int charCode, unsigned int flags, BOOL systemKey, "") \
|
||
ITERATOR6(BOOL, mbFireWindowsMessage, mbWebView webView, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT* result, "") \
|
||
\
|
||
ITERATOR1(void, mbSetFocus, mbWebView webView, "") \
|
||
ITERATOR1(void, mbKillFocus, mbWebView webView, "") \
|
||
\
|
||
ITERATOR2(void, mbShowWindow, mbWebView webview, BOOL show, "") \
|
||
\
|
||
ITERATOR2(void, mbLoadURL, mbWebView webView, const utf8* url, "") \
|
||
ITERATOR3(void, mbLoadHtmlWithBaseUrl, mbWebView webView, const utf8* html, const utf8* baseUrl, "") \
|
||
ITERATOR4(void, mbPostURL, mbWebView webView, const utf8* url, const char* postData, int postLen, "") \
|
||
\
|
||
ITERATOR1(HDC, mbGetLockedViewDC, mbWebView webView, "") \
|
||
ITERATOR1(void, mbUnlockViewDC, mbWebView webView, "") \
|
||
\
|
||
ITERATOR1(void, mbWake, mbWebView webView, "") \
|
||
\
|
||
ITERATOR2(void*, mbJsToV8Value, mbJsExecState es, mbJsValue v, "") \
|
||
ITERATOR2(mbJsExecState, mbGetGlobalExecByFrame, mbWebView webView, mbWebFrameHandle frameId, "") \
|
||
ITERATOR2(double, mbJsToDouble, mbJsExecState es, mbJsValue v, "") \
|
||
ITERATOR2(BOOL, mbJsToBoolean, mbJsExecState es, mbJsValue v, "") \
|
||
ITERATOR2(const utf8*, mbJsToString, mbJsExecState es, mbJsValue v, "") \
|
||
ITERATOR2(mbJsType, mbGetJsValueType, mbJsExecState es, mbJsValue v, "") \
|
||
ITERATOR3(void, mbOnJsQuery, mbWebView webView, mbJsQueryCallback callback, void* param, "") \
|
||
ITERATOR4(void, mbResponseQuery, mbWebView webView, int64_t queryId, int customMsg, const utf8* response, "") \
|
||
ITERATOR7(void, mbRunJs, mbWebView webView, mbWebFrameHandle frameId, const utf8* script, BOOL isInClosure, mbRunJsCallback callback, void* param, void* unuse, "") \
|
||
ITERATOR4(mbJsValue, mbRunJsSync, mbWebView webView, mbWebFrameHandle frameId, const utf8* script, BOOL isInClosure, "") \
|
||
ITERATOR1(mbWebFrameHandle, mbWebFrameGetMainFrame, mbWebView webView, "") \
|
||
ITERATOR2(BOOL, mbIsMainFrame, mbWebView webView, mbWebFrameHandle frameId, "") \
|
||
ITERATOR2(void, mbSetNodeJsEnable, mbWebView webView, BOOL b, "") \
|
||
\
|
||
ITERATOR5(void, mbSetDeviceParameter, mbWebView webView, const char* device, const char* paramStr, int paramInt, float paramFloat, "") \
|
||
\
|
||
ITERATOR4(void, mbGetContentAsMarkup, mbWebView webView, mbGetContentAsMarkupCallback calback, void* param, mbWebFrameHandle frameId, "") \
|
||
ITERATOR3(void, mbGetSource, mbWebView webView, mbGetSourceCallback calback, void* param, "") \
|
||
ITERATOR3(void, mbUtilSerializeToMHTML, mbWebView webView, mbGetSourceCallback calback, void* param, "") \
|
||
ITERATOR1(const char*, mbUtilCreateRequestCode, const char* registerInfo, "") \
|
||
ITERATOR1(BOOL, mbUtilIsRegistered, const wchar_t* defaultPath, "") \
|
||
ITERATOR3(BOOL, mbUtilPrint, mbWebView webView, mbWebFrameHandle frameId, const mbPrintSettings* printParams, "") \
|
||
ITERATOR1(const utf8*, mbUtilBase64Encode, const utf8* str, "") \
|
||
ITERATOR1(const utf8*, mbUtilBase64Decode, const utf8* str, "") \
|
||
ITERATOR1(const utf8*, mbUtilDecodeURLEscape, const utf8* url, "") \
|
||
ITERATOR1(const utf8*, mbUtilEncodeURLEscape, const utf8* url, "") \
|
||
ITERATOR1(const mbMemBuf*, mbUtilCreateV8Snapshot, const utf8* str, "") \
|
||
ITERATOR5(void, mbUtilPrintToPdf, mbWebView webView, mbWebFrameHandle frameId, const mbPrintSettings* settings, mbPrintPdfDataCallback callback, void* param, "") \
|
||
ITERATOR5(void, mbUtilPrintToBitmap, mbWebView webView, mbWebFrameHandle frameId, const mbScreenshotSettings* settings, mbPrintBitmapCallback callback, void* param, "") \
|
||
ITERATOR4(void, mbUtilScreenshot, mbWebView webView, const mbScreenshotSettings* settings, mbOnScreenshot callback, void* param, "") \
|
||
ITERATOR2(BOOL, mbUtilsSilentPrint, mbWebView webView, const char* settings, "") \
|
||
ITERATOR2(void, mbUtilSetDefaultPrinterSettings, mbWebView webView, const mbDefaultPrinterSettings* setting, "") \
|
||
\
|
||
ITERATOR3(BOOL, mbPopupDownloadMgr, mbWebView webView, const char* url, void* downloadJob, "") \
|
||
ITERATOR9(mbDownloadOpt, mbPopupDialogAndDownload, mbWebView webView, const mbDialogOptions* dialogOpt, size_t contentLength, const char* url, \
|
||
const char* mime, const char* disposition, mbNetJob job, mbNetJobDataBind* dataBind, mbDownloadBind* callbackBind, "") \
|
||
ITERATOR10(mbDownloadOpt, mbDownloadByPath, mbWebView webView, const mbDownloadOptions* downloadOptions, const WCHAR* path, size_t contentLength, const char* url, \
|
||
const char* mime, const char* disposition, mbNetJob job, mbNetJobDataBind* dataBind, mbDownloadBind* callbackBind, "") \
|
||
\
|
||
ITERATOR3(void, mbGetPdfPageData, mbWebView webView, mbOnGetPdfPageDataCallback callback, void* param, "") \
|
||
\
|
||
ITERATOR3(mbMemBuf*, mbCreateMemBuf, mbWebView webView, void* buf, size_t length, "") \
|
||
ITERATOR1(void, mbFreeMemBuf, mbMemBuf* buf, "") \
|
||
\
|
||
ITERATOR3(void, mbSetUserKeyValue, mbWebView webView, const char* key, void* value, "") \
|
||
ITERATOR2(void*, mbGetUserKeyValue, mbWebView webView, const char* key, "") \
|
||
\
|
||
ITERATOR4(void, mbPluginListBuilderAddPlugin, void* builder, const utf8* name, const utf8* description, const utf8* fileName, "") \
|
||
ITERATOR3(void, mbPluginListBuilderAddMediaTypeToLastPlugin, void* builder, const utf8* name, const utf8* description, "") \
|
||
ITERATOR2(void, mbPluginListBuilderAddFileExtensionToLastMediaType, void* builder, const utf8* fileExtension, "") \
|
||
\
|
||
ITERATOR0(v8Isolate, mbGetBlinkMainThreadIsolate, "") \
|
||
ITERATOR3(void, mbWebFrameGetMainWorldScriptContext, mbWebView webView, mbWebFrameHandle frameId, v8ContextPtr contextOut, "") \
|
||
ITERATOR0(void, mbEnableHighDPISupport, "") \
|
||
ITERATOR0(void, mbRunMessageLoop, "") \
|
||
\
|
||
ITERATOR1(int, mbGetContentWidth, mbWebView webView, "") \
|
||
ITERATOR1(int, mbGetContentHeight, mbWebView webView, "") \
|
||
ITERATOR0(mbWebView, mbGetWebViewForCurrentContext, "") \
|
||
ITERATOR5(BOOL, mbRegisterEmbedderCustomElement, mbWebView webviewHandle, mbWebFrameHandle frameId, const char* name, void* options, void* outResult, "") \
|
||
ITERATOR3(void, mbOnNodeCreateProcess, mbWebView webviewHandle, mbNodeOnCreateProcessCallback callback, void* param, "") \
|
||
ITERATOR3(void, mbOnThreadIdle, mbThreadCallback callback, void* param1, void* param2, "") \
|
||
ITERATOR3(void, mbOnBlinkThreadInit, mbThreadCallback callback, void* param1, void* param2, "") \
|
||
ITERATOR3(void, mbCallBlinkThreadAsync, mbThreadCallback callback, void* param1, void* param2, "") \
|
||
ITERATOR3(void, mbCallBlinkThreadSync, mbThreadCallback callback, void* param1, void* param2, "") \
|
||
ITERATOR3(void, mbCallUiThreadSync, mbThreadCallback callback, void* param1, void* param2, "") \
|
||
ITERATOR3(void, mbCallUiThreadAsync, mbThreadCallback callback, void* param1, void* param2, "") \
|
||
ITERATOR1(void*, mbGetProcAddr, const char* name, "")
|
||
|
||
#if ENABLE_MBVIP == 1
|
||
|
||
MB_EXTERN_C MB_DLLEXPORT void MB_CALL_TYPE mbInit(const mbSettings* settings);
|
||
|
||
MB_FOR_EACH_DEFINE_FUNCTION(MB_DECLARE_ITERATOR0, MB_DECLARE_ITERATOR1, MB_DECLARE_ITERATOR2, \
|
||
MB_DECLARE_ITERATOR3, MB_DECLARE_ITERATOR4, MB_DECLARE_ITERATOR5, MB_DECLARE_ITERATOR6, MB_DECLARE_ITERATOR7, MB_DECLARE_ITERATOR8, MB_DECLARE_ITERATOR9, MB_DECLARE_ITERATOR10, MB_DECLARE_ITERATOR11)
|
||
|
||
#elif DISABLE_MBVIP != 1
|
||
|
||
MB_FOR_EACH_DEFINE_FUNCTION(MB_DEFINE_ITERATOR0, MB_DEFINE_ITERATOR1, MB_DEFINE_ITERATOR2, \
|
||
MB_DEFINE_ITERATOR3, MB_DEFINE_ITERATOR4, MB_DEFINE_ITERATOR5, MB_DEFINE_ITERATOR6, MB_DEFINE_ITERATOR7, MB_DEFINE_ITERATOR8, MB_DEFINE_ITERATOR9, MB_DEFINE_ITERATOR10, MB_DEFINE_ITERATOR11)
|
||
|
||
typedef void (MB_CALL_TYPE *FN_mbInit)(const mbSettings* settings);
|
||
|
||
#ifdef _WIN64
|
||
__declspec(selectany) const wchar_t* kMbDllPath = L"mb_x64.dll";
|
||
__declspec(selectany) const wchar_t* kMbMainDllPath = L"miniblink_x64.dll";
|
||
#else
|
||
__declspec(selectany) const wchar_t* kMbDllPath = L"mb.dll";
|
||
__declspec(selectany) const wchar_t* kMbMainDllPath = L"node.dll";
|
||
#endif
|
||
|
||
__declspec(selectany) HMODULE g_hMiniblinkMod = nullptr;
|
||
|
||
inline void mbSetMbDllPath(const wchar_t* dllPath)
|
||
{
|
||
kMbDllPath = dllPath;
|
||
}
|
||
|
||
inline void mbSetMbMainDllPath(const wchar_t* dllPath)
|
||
{
|
||
kMbMainDllPath = dllPath;
|
||
}
|
||
|
||
inline void mbFillFuncPtr()
|
||
{
|
||
if (!g_hMiniblinkMod) {
|
||
LoadLibraryW(kMbMainDllPath);
|
||
g_hMiniblinkMod = LoadLibraryW(kMbDllPath);
|
||
}
|
||
|
||
if (!mbCreateWebView) {
|
||
MB_FOR_EACH_DEFINE_FUNCTION(MB_GET_PTR_ITERATOR0, MB_GET_PTR_ITERATOR1, MB_GET_PTR_ITERATOR2, MB_GET_PTR_ITERATOR3, \
|
||
MB_GET_PTR_ITERATOR4, MB_GET_PTR_ITERATOR5, MB_GET_PTR_ITERATOR6, MB_GET_PTR_ITERATOR7, MB_GET_PTR_ITERATOR8, MB_GET_PTR_ITERATOR9, MB_GET_PTR_ITERATOR10, MB_GET_PTR_ITERATOR11);
|
||
}
|
||
}
|
||
|
||
inline void mbInit(const mbSettings* settings)
|
||
{
|
||
bool needFill = nullptr == g_hMiniblinkMod;
|
||
if (!g_hMiniblinkMod) {
|
||
LoadLibraryW(kMbMainDllPath);
|
||
g_hMiniblinkMod = LoadLibraryW(kMbDllPath);
|
||
}
|
||
FN_mbInit mbInitExFunc = (FN_mbInit)GetProcAddress(g_hMiniblinkMod, "mbInit");
|
||
mbInitExFunc(settings);
|
||
|
||
if (needFill)
|
||
mbFillFuncPtr();
|
||
|
||
return;
|
||
}
|
||
|
||
#endif
|
||
|
||
|
||
|
||
#endif // MB_DEFINE_H
|
||
|