/* * * wolar@qq.com * http://miniblink.net 文档地址 * https://github.com/weolar/miniblink49 * licence Apache-2.0 * */ #ifndef WKE_DEFINE_H #define WKE_DEFINE_H #include ////////////////////////////////////////////////////////////////////////// #define WKE_CALL_TYPE __cdecl typedef struct _wkeRect { int x; int y; int w; int h; } wkeRect; typedef struct _wkePoint { int x; int y; } wkePoint; typedef struct _wkeSize { int w; int h; } wkeSize; typedef enum _wkeMouseFlags { WKE_LBUTTON = 0x01, WKE_RBUTTON = 0x02, WKE_SHIFT = 0x04, WKE_CONTROL = 0x08, WKE_MBUTTON = 0x10, } wkeMouseFlags; typedef enum _wkeKeyFlags { WKE_EXTENDED = 0x0100, WKE_REPEAT = 0x4000, } wkeKeyFlags; typedef enum _wkeMouseMsg { WKE_MSG_MOUSEMOVE = 0x0200, WKE_MSG_LBUTTONDOWN = 0x0201, WKE_MSG_LBUTTONUP = 0x0202, WKE_MSG_LBUTTONDBLCLK = 0x0203, WKE_MSG_RBUTTONDOWN = 0x0204, WKE_MSG_RBUTTONUP = 0x0205, WKE_MSG_RBUTTONDBLCLK = 0x0206, WKE_MSG_MBUTTONDOWN = 0x0207, WKE_MSG_MBUTTONUP = 0x0208, WKE_MSG_MBUTTONDBLCLK = 0x0209, WKE_MSG_MOUSEWHEEL = 0x020A, } wkeMouseMsg; #if !defined(__cplusplus) #ifndef HAVE_WCHAR_T typedef unsigned short wchar_t; #endif #define bool _Bool #define false 0 #define true 1 #endif #if defined(__cplusplus) #define WKE_EXTERN_C extern "C" #else #define WKE_EXTERN_C #endif typedef char utf8; #if !defined(__cplusplus) typedef void* jsExecState; #else struct JsExecStateInfo; typedef JsExecStateInfo* jsExecState; #endif typedef __int64 jsValue; #if defined(__cplusplus) namespace wke { class CWebView; } typedef wke::CWebView* wkeWebView; namespace wke { class CString; } typedef wke::CString* wkeString; #else struct _tagWkeWebView; typedef struct _tagWkeWebView* wkeWebView; struct _tagWkeString; typedef struct _tagWkeString* wkeString; #endif #if defined(__cplusplus) namespace wke { class WkeMediaPlayer; } typedef wke::WkeMediaPlayer* wkeMediaPlayer; namespace wke { class WkeMediaPlayerClient; } typedef wke::WkeMediaPlayerClient* wkeMediaPlayerClient; namespace blink { class WebURLRequest; } typedef blink::WebURLRequest* blinkWebURLRequestPtr; #else typedef struct _tagWkeMediaPlayer* wkeMediaPlayer; typedef struct _tagWkeMediaPlayerClient* wkeMediaPlayerClient; typedef struct _tabblinkWebURLRequestPtr* blinkWebURLRequestPtr; #endif typedef enum _wkeProxyType { WKE_PROXY_NONE, WKE_PROXY_HTTP, WKE_PROXY_SOCKS4, WKE_PROXY_SOCKS4A, WKE_PROXY_SOCKS5, WKE_PROXY_SOCKS5HOSTNAME } wkeProxyType; typedef struct _wkeProxy { wkeProxyType type; char hostname[100]; unsigned short port; char username[50]; char password[50]; } wkeProxy; typedef enum _wkeSettingMask { WKE_SETTING_PROXY = 1, WKE_SETTING_EXTENSION = 1 << 2, // 测试功能,请勿调用 } wkeSettingMask; typedef struct _wkeSettings { wkeProxy proxy; unsigned int mask; const char* extension; } wkeSettings; typedef struct _wkeViewSettings { int size; unsigned int bgColor; } wkeViewSettings; typedef void* wkeWebFrameHandle; typedef struct _wkeGeolocationPosition{ double timestamp; double latitude; double longitude; double accuracy; bool providesAltitude; double altitude; bool providesAltitudeAccuracy; double altitudeAccuracy; bool providesHeading; double heading; bool providesSpeed; double speed; #if defined(__cplusplus) _wkeGeolocationPosition(const _wkeGeolocationPosition& other); #endif } wkeGeolocationPosition; #if defined(__cplusplus) inline _wkeGeolocationPosition::_wkeGeolocationPosition(const _wkeGeolocationPosition& other) { timestamp = other.timestamp; latitude = other.latitude; longitude = other.longitude; accuracy = other.accuracy; providesAltitude = other.providesAltitude; altitude = other.altitude; providesAltitudeAccuracy = other.providesAltitudeAccuracy; altitudeAccuracy = other.altitudeAccuracy; providesHeading = other.providesHeading; heading = other.heading; providesSpeed = other.providesSpeed; speed = other.speed; } #endif typedef enum _wkeMenuItemId { kWkeMenuSelectedAllId = 1 << 1, kWkeMenuSelectedTextId = 1 << 2, kWkeMenuUndoId = 1 << 3, kWkeMenuCopyImageId = 1 << 4, kWkeMenuInspectElementAtId = 1 << 5, kWkeMenuCutId = 1 << 6, kWkeMenuPasteId = 1 << 7, kWkeMenuPrintId = 1 << 8, kWkeMenuGoForwardId = 1 << 9, kWkeMenuGoBackId = 1 << 10, kWkeMenuReloadId = 1 << 11, kWkeMenuSaveImageId = 1 << 12, } wkeMenuItemId; typedef void* (WKE_CALL_TYPE *FILE_OPEN_) (const char* path); typedef void(WKE_CALL_TYPE *FILE_CLOSE_) (void* handle); typedef size_t(WKE_CALL_TYPE *FILE_SIZE) (void* handle); typedef int(WKE_CALL_TYPE *FILE_READ) (void* handle, void* buffer, size_t size); typedef int(WKE_CALL_TYPE *FILE_SEEK) (void* handle, int offset, int origin); typedef FILE_OPEN_ WKE_FILE_OPEN; typedef FILE_CLOSE_ WKE_FILE_CLOSE; typedef FILE_SIZE WKE_FILE_SIZE; typedef FILE_READ WKE_FILE_READ; typedef FILE_SEEK WKE_FILE_SEEK; typedef bool(WKE_CALL_TYPE *WKE_EXISTS_FILE)(const char * path); struct _wkeClientHandler; // declare warning fix typedef void(WKE_CALL_TYPE *ON_TITLE_CHANGED) (const struct _wkeClientHandler* clientHandler, const wkeString title); typedef void(WKE_CALL_TYPE *ON_URL_CHANGED) (const struct _wkeClientHandler* clientHandler, const wkeString url); typedef struct _wkeClientHandler { ON_TITLE_CHANGED onTitleChanged; ON_URL_CHANGED onURLChanged; } wkeClientHandler; typedef bool(WKE_CALL_TYPE * wkeCookieVisitor)( 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 _wkeCookieCommand { wkeCookieCommandClearAllCookies, wkeCookieCommandClearSessionCookies, wkeCookieCommandFlushCookiesToFile, wkeCookieCommandReloadCookiesFromFile, } wkeCookieCommand; typedef enum _wkeNavigationType { WKE_NAVIGATION_TYPE_LINKCLICK, WKE_NAVIGATION_TYPE_FORMSUBMITTE, WKE_NAVIGATION_TYPE_BACKFORWARD, WKE_NAVIGATION_TYPE_RELOAD, WKE_NAVIGATION_TYPE_FORMRESUBMITT, WKE_NAVIGATION_TYPE_OTHER } wkeNavigationType; typedef enum _WkeCursorInfoType { WkeCursorInfoPointer, WkeCursorInfoCross, WkeCursorInfoHand, WkeCursorInfoIBeam, WkeCursorInfoWait, WkeCursorInfoHelp, WkeCursorInfoEastResize, WkeCursorInfoNorthResize, WkeCursorInfoNorthEastResize, WkeCursorInfoNorthWestResize, WkeCursorInfoSouthResize, WkeCursorInfoSouthEastResize, WkeCursorInfoSouthWestResize, WkeCursorInfoWestResize, WkeCursorInfoNorthSouthResize, WkeCursorInfoEastWestResize, WkeCursorInfoNorthEastSouthWestResize, WkeCursorInfoNorthWestSouthEastResize, WkeCursorInfoColumnResize, WkeCursorInfoRowResize, WkeCursorInfoMiddlePanning, WkeCursorInfoEastPanning, WkeCursorInfoNorthPanning, WkeCursorInfoNorthEastPanning, WkeCursorInfoNorthWestPanning, WkeCursorInfoSouthPanning, WkeCursorInfoSouthEastPanning, WkeCursorInfoSouthWestPanning, WkeCursorInfoWestPanning, WkeCursorInfoMove, WkeCursorInfoVerticalText, WkeCursorInfoCell, WkeCursorInfoContextMenu, WkeCursorInfoAlias, WkeCursorInfoProgress, WkeCursorInfoNoDrop, WkeCursorInfoCopy, WkeCursorInfoNone, WkeCursorInfoNotAllowed, WkeCursorInfoZoomIn, WkeCursorInfoZoomOut, WkeCursorInfoGrab, WkeCursorInfoGrabbing, WkeCursorInfoCustom } WkeCursorInfoType; typedef struct _wkeWindowFeatures { int x; int y; int width; int height; bool menuBarVisible; bool statusBarVisible; bool toolBarVisible; bool locationBarVisible; bool scrollbarsVisible; bool resizable; bool fullscreen; } wkeWindowFeatures; typedef struct _wkeMemBuf { int unuse; void* data; size_t length; } wkeMemBuf; typedef struct _wkeWebDragData { struct Item { enum wkeStorageType { // 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. wkeMemBuf* stringType; wkeMemBuf* stringData; // Only valid when storageType == StorageTypeFilename. wkeMemBuf* filenameData; wkeMemBuf* displayNameData; // Only valid when storageType == StorageTypeBinaryData. wkeMemBuf* binaryData; // Title associated with a link when stringType == "text/uri-list". // Filename when storageType == StorageTypeBinaryData. wkeMemBuf* title; // Only valid when storageType == StorageTypeFileSystemFile. wkeMemBuf* fileSystemURL; __int64 fileSystemFileSize; // Only valid when stringType == "text/html". wkeMemBuf* baseURL; }; struct Item* m_itemList; int m_itemListLength; int m_modifierKeyState; // State of Shift/Ctrl/Alt/Meta keys. wkeMemBuf* m_filesystemId; } wkeWebDragData; typedef enum _wkeWebDragOperation { wkeWebDragOperationNone = 0, wkeWebDragOperationCopy = 1, wkeWebDragOperationLink = 2, wkeWebDragOperationGeneric = 4, wkeWebDragOperationPrivate = 8, wkeWebDragOperationMove = 16, wkeWebDragOperationDelete = 32, wkeWebDragOperationEvery = 0xffffffff } wkeWebDragOperation; typedef wkeWebDragOperation wkeWebDragOperationsMask; typedef enum _wkeResourceType { WKE_RESOURCE_TYPE_MAIN_FRAME = 0, // top level page WKE_RESOURCE_TYPE_SUB_FRAME = 1, // frame or iframe WKE_RESOURCE_TYPE_STYLESHEET = 2, // a CSS stylesheet WKE_RESOURCE_TYPE_SCRIPT = 3, // an external script WKE_RESOURCE_TYPE_IMAGE = 4, // an image (jpg/gif/png/etc) WKE_RESOURCE_TYPE_FONT_RESOURCE = 5, // a font WKE_RESOURCE_TYPE_SUB_RESOURCE = 6, // an "other" subresource. WKE_RESOURCE_TYPE_OBJECT = 7, // an object (or embed) tag for a plugin, // or a resource that a plugin requested. WKE_RESOURCE_TYPE_MEDIA = 8, // a media resource. WKE_RESOURCE_TYPE_WORKER = 9, // the main resource of a dedicated // worker. WKE_RESOURCE_TYPE_SHARED_WORKER = 10, // the main resource of a shared worker. WKE_RESOURCE_TYPE_PREFETCH = 11, // an explicitly requested prefetch WKE_RESOURCE_TYPE_FAVICON = 12, // a favicon WKE_RESOURCE_TYPE_XHR = 13, // a XMLHttpRequest WKE_RESOURCE_TYPE_PING = 14, // a ping request for WKE_RESOURCE_TYPE_SERVICE_WORKER = 15, // the main resource of a service worker. WKE_RESOURCE_TYPE_LAST_TYPE } wkeResourceType; typedef struct _wkeWillSendRequestInfo { wkeString url; wkeString newUrl; wkeResourceType resourceType; int httpResponseCode; wkeString method; wkeString referrer; void* headers; } wkeWillSendRequestInfo; typedef enum _wkeHttBodyElementType { wkeHttBodyElementTypeData, wkeHttBodyElementTypeFile, } wkeHttBodyElementType; typedef struct _wkePostBodyElement { int size; wkeHttBodyElementType type; wkeMemBuf* data; wkeString filePath; __int64 fileStart; __int64 fileLength; // -1 means to the end of the file. } wkePostBodyElement; typedef struct _wkePostBodyElements { int size; wkePostBodyElement** element; size_t elementSize; bool isDirty; } wkePostBodyElements; typedef void* wkeNetJob; typedef struct _wkeSlist { char* data; struct _wkeSlist* next; } wkeSlist; typedef struct _wkeTempCallbackInfo { int size; wkeWebFrameHandle frame; wkeWillSendRequestInfo* willSendRequestInfo; const char* url; wkePostBodyElements* postBody; wkeNetJob job; } wkeTempCallbackInfo; typedef enum _wkeRequestType { kWkeRequestTypeInvalidation, kWkeRequestTypeGet, kWkeRequestTypePost, kWkeRequestTypePut, } wkeRequestType; typedef struct _wkePdfDatas { int count; size_t* sizes; const void** datas; } wkePdfDatas; typedef struct _wkePrintSettings { int structSize; int dpi; int width; // in px int height; int marginTop; int marginBottom; int marginLeft; int marginRight; BOOL isPrintPageHeadAndFooter; BOOL isPrintBackgroud; BOOL isLandscape; BOOL isPrintToMultiPage; } wkePrintSettings; typedef struct _wkeScreenshotSettings { int structSize; int width; int height; } wkeScreenshotSettings; typedef void(WKE_CALL_TYPE*wkeCaretChangedCallback)(wkeWebView webView, void* param, const wkeRect* r); typedef void(WKE_CALL_TYPE*wkeTitleChangedCallback)(wkeWebView webView, void* param, const wkeString title); typedef void(WKE_CALL_TYPE*wkeURLChangedCallback)(wkeWebView webView, void* param, const wkeString url); typedef void(WKE_CALL_TYPE*wkeURLChangedCallback2)(wkeWebView webView, void* param, wkeWebFrameHandle frameId, const wkeString url); typedef void(WKE_CALL_TYPE*wkePaintUpdatedCallback)(wkeWebView webView, void* param, const HDC hdc, int x, int y, int cx, int cy); typedef void(WKE_CALL_TYPE*wkePaintBitUpdatedCallback)(wkeWebView webView, void* param, const void* buffer, const wkeRect* r, int width, int height); typedef void(WKE_CALL_TYPE*wkeAlertBoxCallback)(wkeWebView webView, void* param, const wkeString msg); typedef bool(WKE_CALL_TYPE*wkeConfirmBoxCallback)(wkeWebView webView, void* param, const wkeString msg); typedef bool(WKE_CALL_TYPE*wkePromptBoxCallback)(wkeWebView webView, void* param, const wkeString msg, const wkeString defaultResult, wkeString result); typedef bool(WKE_CALL_TYPE*wkeNavigationCallback)(wkeWebView webView, void* param, wkeNavigationType navigationType, wkeString url); typedef wkeWebView(WKE_CALL_TYPE*wkeCreateViewCallback)(wkeWebView webView, void* param, wkeNavigationType navigationType, const wkeString url, const wkeWindowFeatures* windowFeatures); typedef void(WKE_CALL_TYPE*wkeDocumentReadyCallback)(wkeWebView webView, void* param); typedef void(WKE_CALL_TYPE*wkeDocumentReady2Callback)(wkeWebView webView, void* param, wkeWebFrameHandle frameId); typedef void(WKE_CALL_TYPE*wkeOnShowDevtoolsCallback)(wkeWebView webView, void* param); typedef void(__stdcall *wkeNodeOnCreateProcessCallback)(wkeWebView webView, void* param, const WCHAR* applicationPath, const WCHAR* arguments, STARTUPINFOW* startup); typedef void(WKE_CALL_TYPE*wkeOnPluginFindCallback)(wkeWebView webView, void* param, const utf8* mime, void* initializeFunc, void* getEntryPointsFunc, void* shutdownFunc); typedef void(WKE_CALL_TYPE*wkeOnPrintCallback)(wkeWebView webView, void* param, wkeWebFrameHandle frameId, void* printParams); typedef void(WKE_CALL_TYPE*wkeOnScreenshot)(wkeWebView webView, void* param, const char* data, size_t size); typedef wkeString(WKE_CALL_TYPE*wkeImageBufferToDataURL)(wkeWebView webView, void* param, const char* data, size_t size); typedef struct _wkeMediaLoadInfo { int size; int width; int height; double duration; } wkeMediaLoadInfo; typedef void(WKE_CALL_TYPE*wkeWillMediaLoadCallback)(wkeWebView webView, void* param, const char* url, wkeMediaLoadInfo* info); typedef void(WKE_CALL_TYPE*wkeStartDraggingCallback)( wkeWebView webView, void* param, wkeWebFrameHandle frame, const wkeWebDragData* data, wkeWebDragOperationsMask mask, const void* image, const wkePoint* dragImageOffset ); typedef void(WKE_CALL_TYPE*wkeUiThreadRunCallback)(HWND hWnd, void* param); typedef int(WKE_CALL_TYPE*wkeUiThreadPostTaskCallback)(HWND hWnd, wkeUiThreadRunCallback callback, void* param); typedef enum _wkeOtherLoadType { WKE_DID_START_LOADING, WKE_DID_STOP_LOADING, WKE_DID_NAVIGATE, WKE_DID_NAVIGATE_IN_PAGE, WKE_DID_GET_RESPONSE_DETAILS, WKE_DID_GET_REDIRECT_REQUEST, WKE_DID_POST_REQUEST, } wkeOtherLoadType; typedef void(WKE_CALL_TYPE*wkeOnOtherLoadCallback)(wkeWebView webView, void* param, wkeOtherLoadType type, wkeTempCallbackInfo* info); typedef enum _wkeOnContextMenuItemClickType { kWkeContextMenuItemClickTypePrint = 0x01, } wkeOnContextMenuItemClickType; typedef enum _wkeOnContextMenuItemClickStep { kWkeContextMenuItemClickStepShow = 0x01, kWkeContextMenuItemClickStepClick = 0x02, } wkeOnContextMenuItemClickStep; typedef bool(WKE_CALL_TYPE* wkeOnContextMenuItemClickCallback)( wkeWebView webView, void* param, wkeOnContextMenuItemClickType type, wkeOnContextMenuItemClickStep step, wkeWebFrameHandle frameId, void* info ); typedef enum _wkeLoadingResult { WKE_LOADING_SUCCEEDED, WKE_LOADING_FAILED, WKE_LOADING_CANCELED } wkeLoadingResult; typedef enum _wkeDownloadOpt { kWkeDownloadOptCancel, kWkeDownloadOptCacheData, } wkeDownloadOpt; typedef void(WKE_CALL_TYPE*wkeNetJobDataRecvCallback)(void* ptr, wkeNetJob job, const char* data, int length); typedef void(WKE_CALL_TYPE*wkeNetJobDataFinishCallback)(void* ptr, wkeNetJob job, wkeLoadingResult result); typedef struct _wkeNetJobDataBind { void* param; wkeNetJobDataRecvCallback recvCallback; wkeNetJobDataFinishCallback finishCallback; } wkeNetJobDataBind; typedef void(WKE_CALL_TYPE* wkePopupDialogSaveNameCallback)(void* ptr, const wchar_t* filePath); typedef struct _wkeDownloadBind { void* param; wkeNetJobDataRecvCallback recvCallback; wkeNetJobDataFinishCallback finishCallback; wkePopupDialogSaveNameCallback saveNameCallback; } wkeDownloadBind; enum wkeDialogProperties { kWkeDialogPropertiesOpenFile = 1 << 1, // 允许选择文件 kWkeDialogPropertiesOpenDirectory = 1 << 2, // 允许选择文件夹 kWkeDialogPropertiesMultiSelections = 1 << 3, // 允许多选。 kWkeDialogPropertiesShowHiddenFiles = 1 << 4, // 显示对话框中的隐藏文件。 kWkeDialogPropertiesCreateDirectory = 1 << 5, // macOS - 允许你通过对话框的形式创建新的目录。 kWkeDialogPropertiesPromptToCreate = 1 << 6, // Windows - 如果输入的文件路径在对话框中不存在, 则提示创建。 这并不是真的在路径上创建一个文件,而是允许返回一些不存在的地址交由应用程序去创建。 kWkeDialogPropertiesNoResolveAliases = 1 << 7, // macOS - 禁用自动的别名路径(符号链接) 解析。 所选别名现在将会返回别名路径而非其目标路径。 kWkeDialogPropertiesTreatPackageAsDirectory = 1 << 8, // macOS - 将包(如.app 文件夹) 视为目录而不是文件。 kWkeDialogPropertiesDontAddToRecent = 1 << 9, // Windows - 不要将正在打开的项目添加到最近的文档列表中。 }; typedef struct _wkeFileFilter { const utf8* name; // 例如"image"、"Movies" const utf8* extensions; // 例如"jpg|png|gif" } wkeFileFilter; typedef struct _wkeDialogOptions { int magic; // 'mbdo' utf8* title; utf8* defaultPath; utf8* buttonLabel; wkeFileFilter* filters; int filtersCount; wkeDialogProperties prop; utf8* message; BOOL securityScopedBookmarks; } wkeDialogOptions; typedef wkeDownloadOpt(WKE_CALL_TYPE* wkeDownloadInBlinkThreadCallback)( wkeWebView webView, void* param, size_t expectedContentLength, const char* url, const char* mime, const char* disposition, wkeNetJob job, wkeNetJobDataBind* dataBind ); typedef void(WKE_CALL_TYPE*wkeLoadingFinishCallback)(wkeWebView webView, void* param, const wkeString url, wkeLoadingResult result, const wkeString failedReason); typedef bool(WKE_CALL_TYPE*wkeDownloadCallback)(wkeWebView webView, void* param, const char* url); typedef wkeDownloadOpt(WKE_CALL_TYPE*wkeDownload2Callback)( wkeWebView webView, void* param, size_t expectedContentLength, const char* url, const char* mime, const char* disposition, wkeNetJob job, wkeNetJobDataBind* dataBind); typedef enum _wkeConsoleLevel { wkeLevelDebug = 4, wkeLevelLog = 1, wkeLevelInfo = 5, wkeLevelWarning = 2, wkeLevelError = 3, wkeLevelRevokedError = 6, wkeLevelLast = wkeLevelInfo } wkeConsoleLevel; typedef void(WKE_CALL_TYPE*wkeConsoleCallback)(wkeWebView webView, void* param, wkeConsoleLevel level, const wkeString message, const wkeString sourceName, unsigned sourceLine, const wkeString stackTrace); typedef void(WKE_CALL_TYPE*wkeOnCallUiThread)(wkeWebView webView, void* paramOnInThread); typedef void(WKE_CALL_TYPE*wkeCallUiThread)(wkeWebView webView, wkeOnCallUiThread func, void* param); typedef wkeMediaPlayer(WKE_CALL_TYPE* wkeMediaPlayerFactory)(wkeWebView webView, wkeMediaPlayerClient client, void* npBrowserFuncs, void* npPluginFuncs); typedef bool(WKE_CALL_TYPE* wkeOnIsMediaPlayerSupportsMIMEType)(const utf8* mime); //wkeNet-------------------------------------------------------------------------------------- typedef struct wkeWebUrlRequest* wkeWebUrlRequestPtr; typedef struct wkeWebUrlResponse* wkeWebUrlResponsePtr; typedef void(WKE_CALL_TYPE* wkeOnUrlRequestWillRedirectCallback)(wkeWebView webView, void* param, wkeWebUrlRequestPtr oldRequest, wkeWebUrlRequestPtr request, wkeWebUrlResponsePtr redirectResponse); typedef void(WKE_CALL_TYPE* wkeOnUrlRequestDidReceiveResponseCallback)(wkeWebView webView, void* param, wkeWebUrlRequestPtr request, wkeWebUrlResponsePtr response); typedef void(WKE_CALL_TYPE* wkeOnUrlRequestDidReceiveDataCallback)(wkeWebView webView, void* param, wkeWebUrlRequestPtr request, const char* data, int dataLength); typedef void(WKE_CALL_TYPE* wkeOnUrlRequestDidFailCallback)(wkeWebView webView, void* param, wkeWebUrlRequestPtr request, const utf8* error); typedef void(WKE_CALL_TYPE* wkeOnUrlRequestDidFinishLoadingCallback)(wkeWebView webView, void* param, wkeWebUrlRequestPtr request, double finishTime); typedef struct _wkeUrlRequestCallbacks { wkeOnUrlRequestWillRedirectCallback willRedirectCallback; wkeOnUrlRequestDidReceiveResponseCallback didReceiveResponseCallback; wkeOnUrlRequestDidReceiveDataCallback didReceiveDataCallback; wkeOnUrlRequestDidFailCallback didFailCallback; wkeOnUrlRequestDidFinishLoadingCallback didFinishLoadingCallback; } wkeUrlRequestCallbacks; typedef bool(WKE_CALL_TYPE*wkeLoadUrlBeginCallback)(wkeWebView webView, void* param, const utf8* url, wkeNetJob job); typedef void(WKE_CALL_TYPE*wkeLoadUrlEndCallback)(wkeWebView webView, void* param, const utf8* url, wkeNetJob job, void* buf, int len); typedef void(WKE_CALL_TYPE*wkeLoadUrlFailCallback)(wkeWebView webView, void* param, const utf8* url, wkeNetJob job); typedef void(WKE_CALL_TYPE*wkeLoadUrlHeadersReceivedCallback)(wkeWebView webView, void* param, const utf8* url, wkeNetJob job); typedef void(WKE_CALL_TYPE*wkeLoadUrlFinishCallback)(wkeWebView webView, void* param, const utf8* url, wkeNetJob job, int len); typedef void(WKE_CALL_TYPE*wkeDidCreateScriptContextCallback)(wkeWebView webView, void* param, wkeWebFrameHandle frameId, void* context, int extensionGroup, int worldId); typedef void(WKE_CALL_TYPE*wkeWillReleaseScriptContextCallback)(wkeWebView webView, void* param, wkeWebFrameHandle frameId, void* context, int worldId); typedef bool(WKE_CALL_TYPE*wkeNetResponseCallback)(wkeWebView webView, void* param, const utf8* url, wkeNetJob job); typedef void(WKE_CALL_TYPE*wkeOnNetGetFaviconCallback)(wkeWebView webView, void* param, const utf8* url, wkeMemBuf* buf); typedef void* v8ContextPtr; typedef void* v8Isolate; //wke window----------------------------------------------------------------------------------- typedef enum _wkeWindowType { WKE_WINDOW_TYPE_POPUP, WKE_WINDOW_TYPE_TRANSPARENT, WKE_WINDOW_TYPE_CONTROL } wkeWindowType; typedef struct _wkeWindowCreateInfo { int size; HWND parent; DWORD style; DWORD styleEx; int x; int y; int width; int height; COLORREF color; } wkeWindowCreateInfo; typedef struct _wkeDefaultPrinterSettings { 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 _wkeDefaultPrinterSettings(); #endif } wkeDefaultPrinterSettings; typedef bool(WKE_CALL_TYPE*wkeWindowClosingCallback)(wkeWebView webWindow, void* param); typedef void(WKE_CALL_TYPE*wkeWindowDestroyCallback)(wkeWebView webWindow, void* param); typedef struct { RECT bounds; bool draggable; } wkeDraggableRegion; typedef void(WKE_CALL_TYPE*wkeDraggableRegionsChangedCallback)(wkeWebView webView, void* param, const wkeDraggableRegion* rects, int rectCount); //JavaScript Bind----------------------------------------------------------------------------------- #define JS_CALL __fastcall typedef jsValue(JS_CALL* jsNativeFunction) (jsExecState es); typedef jsValue(WKE_CALL_TYPE* wkeJsNativeFunction) (jsExecState es, void* param); typedef enum _jsType { JSTYPE_NUMBER, JSTYPE_STRING, JSTYPE_BOOLEAN, JSTYPE_OBJECT, JSTYPE_FUNCTION, JSTYPE_UNDEFINED, JSTYPE_ARRAY, JSTYPE_NULL, } jsType; // cexer JS对象、函数绑定支持 typedef jsValue(WKE_CALL_TYPE*jsGetPropertyCallback)(jsExecState es, jsValue object, const char* propertyName); typedef bool(WKE_CALL_TYPE*jsSetPropertyCallback)(jsExecState es, jsValue object, const char* propertyName, jsValue value); typedef jsValue(WKE_CALL_TYPE*jsCallAsFunctionCallback)(jsExecState es, jsValue object, jsValue* args, int argCount); struct tagjsData; // declare warning fix typedef void(WKE_CALL_TYPE*jsFinalizeCallback)(struct tagjsData* data); typedef struct tagjsData { char typeName[100]; jsGetPropertyCallback propertyGet; jsSetPropertyCallback propertySet; jsFinalizeCallback finalize; jsCallAsFunctionCallback callAsFunction; } jsData; typedef struct _jsExceptionInfo { const utf8* message; // Returns the exception message. const utf8* sourceLine; // Returns the line of source code that the exception occurred within. const utf8* scriptResourceName; // Returns the resource name for the script from where the function causing the error originates. int lineNumber; // Returns the 1-based number of the line where the error occurred or 0 if the line number is unknown. int startPosition; // Returns the index within the script of the first character where the error occurred. int endPosition; // Returns the index within the script of the last character where the error occurred. int startColumn; // Returns the index within the line of the first character where the error occurred. int endColumn; // Returns the index within the line of the last character where the error occurred. const utf8* callstackString; } jsExceptionInfo; typedef struct _jsKeys { unsigned int length; const char** keys; #if defined(__cplusplus) ~_jsKeys(); #endif } jsKeys; #if defined(__cplusplus) namespace wke { class IWebView { public: virtual void destroy() = 0; virtual const char* name() const = 0; virtual void setName(const char* name) = 0; virtual bool isTransparent() const = 0; virtual void setTransparent(bool transparent) = 0; virtual void loadURL(const utf8* url) = 0; virtual void loadURL(const wchar_t* url) = 0; virtual void loadHTML(const utf8* html) = 0; virtual void loadHTML(const wchar_t* html) = 0; virtual void loadFile(const utf8* filename) = 0; virtual void loadFile(const wchar_t* filename) = 0; virtual const utf8* url() const = 0; virtual bool isLoading() const = 0; /*document load sucessed*/ virtual bool isLoadingFailed() const = 0; /*document load failed*/ virtual bool isLoadingSucceeded() const = 0; /*document load complete*/ virtual bool isDocumentReady() const = 0; /*document ready*/ virtual void stopLoading() = 0; virtual void reload() = 0; virtual const utf8* title() = 0; virtual const wchar_t* titleW() = 0; virtual void resize(int w, int h) = 0; virtual int width() const = 0; /*viewport width*/ virtual int height() const = 0; /*viewport height*/ virtual int contentsWidth() const = 0; /*contents width*/ virtual int contentsHeight() const = 0; /*contents height*/ virtual void setDirty(bool dirty) = 0; virtual bool isDirty() const = 0; virtual void addDirtyArea(int x, int y, int w, int h) = 0; virtual void layoutIfNeeded() = 0; virtual void paint(void* bits, int pitch) = 0; virtual bool canGoBack() const = 0; virtual bool goBack() = 0; virtual bool canGoForward() const = 0; virtual bool goForward() = 0; virtual void editorSelectAll() = 0; virtual void editorUnSelect() = 0; virtual void editorCopy() = 0; virtual void editorCut() = 0; virtual void editorPaste() = 0; virtual void editorDelete() = 0; virtual void editorUndo() = 0; virtual void editorRedo() = 0; virtual void setCookieEnabled(bool enable) = 0; virtual bool isCookieEnabled() const = 0; virtual void setMediaVolume(float volume) = 0; virtual float mediaVolume() const = 0; virtual bool fireMouseEvent(unsigned int message, int x, int y, unsigned int flags) = 0; virtual bool fireContextMenuEvent(int x, int y, unsigned int flags) = 0; virtual bool fireMouseWheelEvent(int x, int y, int delta, unsigned int flags) = 0; virtual bool fireKeyUpEvent(unsigned int virtualKeyCode, unsigned int flags, bool systemKey) = 0; virtual bool fireKeyDownEvent(unsigned int virtualKeyCode, unsigned int flags, bool systemKey) = 0; virtual bool fireKeyPressEvent(unsigned int virtualKeyCode, unsigned int flags, bool systemKey) = 0; virtual void setFocus() = 0; virtual void killFocus() = 0; virtual wkeRect getCaret() = 0; virtual jsValue runJS(const utf8* script) = 0; virtual jsValue runJS(const wchar_t* script) = 0; virtual jsExecState globalExec() = 0; virtual void sleep() = 0; //moveOffscreen virtual void wake() = 0; //moveOnscreen virtual bool isAwake() const = 0; virtual void setZoomFactor(float factor) = 0; virtual float zoomFactor() const = 0; virtual void setEditable(bool editable) = 0; virtual void setClientHandler(const wkeClientHandler* handler) = 0; virtual const wkeClientHandler* getClientHandler() const = 0; }; } #endif ////////////////////////////////////////////////////////////////////////// #define WKE_DEFINE_ITERATOR0(returnVal, name, description) \ typedef returnVal(WKE_CALL_TYPE* FN_##name)(); \ __declspec(selectany) FN_##name name = ((FN_##name)0); #define WKE_DEFINE_ITERATOR1(returnVal, name, p1, description) \ typedef returnVal(WKE_CALL_TYPE* FN_##name)(p1); \ __declspec(selectany) FN_##name name = ((FN_##name)0); #define WKE_DEFINE_ITERATOR2(returnVal, name, p1, p2, description) \ typedef returnVal(WKE_CALL_TYPE* FN_##name)(p1, p2); \ __declspec(selectany) FN_##name name = ((FN_##name)0); #define WKE_DEFINE_ITERATOR3(returnVal, name, p1, p2, p3, description) \ typedef returnVal(WKE_CALL_TYPE* FN_##name)(p1, p2, p3); \ __declspec(selectany) FN_##name name = ((FN_##name)0); #define WKE_DEFINE_ITERATOR4(returnVal, name, p1, p2, p3, p4, description) \ typedef returnVal(WKE_CALL_TYPE* FN_##name)(p1, p2, p3, p4); \ __declspec(selectany) FN_##name name = ((FN_##name)0); #define WKE_DEFINE_ITERATOR5(returnVal, name, p1, p2, p3, p4, p5, description) \ typedef returnVal(WKE_CALL_TYPE* FN_##name)(p1, p2, p3, p4, p5); \ __declspec(selectany) FN_##name name = ((FN_##name)0); #define WKE_DEFINE_ITERATOR6(returnVal, name, p1, p2, p3, p4, p5, p6, description) \ typedef returnVal(WKE_CALL_TYPE* FN_##name)(p1, p2, p3, p4, p5, p6); \ __declspec(selectany) FN_##name name = ((FN_##name)0); #define WKE_DEFINE_ITERATOR9(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, description) \ typedef returnVal(WKE_CALL_TYPE* FN_##name)(p1, p2, p3, p4, p5, p6, p7, p8, p9); \ __declspec(selectany) FN_##name name = ((FN_##name)0); #define WKE_DEFINE_ITERATOR10(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, description) \ typedef returnVal(WKE_CALL_TYPE* FN_##name)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); \ __declspec(selectany) FN_##name name = ((FN_##name)0); #define WKE_DEFINE_ITERATOR11(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, description) \ typedef returnVal(WKE_CALL_TYPE* FN_##name)(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); \ __declspec(selectany) FN_##name name = ((FN_##name)0); // --- #define WKE_DECLARE_ITERATOR0(returnVal, name, description) \ WKE_EXTERN_C __declspec(dllexport) returnVal WKE_CALL_TYPE name(); #define WKE_DECLARE_ITERATOR1(returnVal, name, p1, description) \ WKE_EXTERN_C __declspec(dllexport) returnVal WKE_CALL_TYPE name(p1); #define WKE_DECLARE_ITERATOR2(returnVal, name, p1, p2, description) \ WKE_EXTERN_C __declspec(dllexport) returnVal WKE_CALL_TYPE name(p1, p2); #define WKE_DECLARE_ITERATOR3(returnVal, name, p1, p2, p3, description) \ WKE_EXTERN_C __declspec(dllexport) returnVal WKE_CALL_TYPE name(p1, p2, p3); #define WKE_DECLARE_ITERATOR4(returnVal, name, p1, p2, p3, p4, description) \ WKE_EXTERN_C __declspec(dllexport) returnVal WKE_CALL_TYPE name(p1, p2, p3, p4); #define WKE_DECLARE_ITERATOR5(returnVal, name, p1, p2, p3, p4, p5, description) \ WKE_EXTERN_C __declspec(dllexport) returnVal WKE_CALL_TYPE name(p1, p2, p3, p4, p5); #define WKE_DECLARE_ITERATOR6(returnVal, name, p1, p2, p3, p4, p5, p6, description) \ WKE_EXTERN_C __declspec(dllexport) returnVal WKE_CALL_TYPE name(p1, p2, p3, p4, p5, p6); #define WKE_DECLARE_ITERATOR9(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, description) \ WKE_EXTERN_C __declspec(dllexport) returnVal WKE_CALL_TYPE name(p1, p2, p3, p4, p5, p6, p7, p8, p9); #define WKE_DECLARE_ITERATOR10(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, description) \ WKE_EXTERN_C __declspec(dllexport) returnVal WKE_CALL_TYPE name(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); #define WKE_DECLARE_ITERATOR11(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, description) \ WKE_EXTERN_C __declspec(dllexport) returnVal WKE_CALL_TYPE name(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11); // --- #define WKE_GET_PTR_ITERATOR(name) \ name = (FN_##name)GetProcAddress(hMod, #name); \ if (!name) \ MessageBoxA(((HWND)0), "wke api not found", #name, 0); #define WKE_GET_PTR_ITERATOR0(returnVal, name, description) \ WKE_GET_PTR_ITERATOR(name); #define WKE_GET_PTR_ITERATOR1(returnVal, name, p1, description) \ WKE_GET_PTR_ITERATOR(name); #define WKE_GET_PTR_ITERATOR2(returnVal, name, p1, p2, description) \ WKE_GET_PTR_ITERATOR(name); #define WKE_GET_PTR_ITERATOR3(returnVal, name, p1, p2, p3, description) \ WKE_GET_PTR_ITERATOR(name); #define WKE_GET_PTR_ITERATOR4(returnVal, name, p1, p2, p3, p4, description) \ WKE_GET_PTR_ITERATOR(name); #define WKE_GET_PTR_ITERATOR5(returnVal, name, p1, p2, p3, p4, p5, description) \ WKE_GET_PTR_ITERATOR(name); #define WKE_GET_PTR_ITERATOR6(returnVal, name, p1, p2, p3, p4, p5, p6, description) \ WKE_GET_PTR_ITERATOR(name); #define WKE_GET_PTR_ITERATOR9(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, description) \ WKE_GET_PTR_ITERATOR(name); #define WKE_GET_PTR_ITERATOR10(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, description) \ WKE_GET_PTR_ITERATOR(name); #define WKE_GET_PTR_ITERATOR11(returnVal, name, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, description) \ WKE_GET_PTR_ITERATOR(name); // 以下是wke的导出函数。格式按照【返回类型】【函数名】【参数】来排列 #define WKE_FOR_EACH_DEFINE_FUNCTION(ITERATOR0, ITERATOR1, ITERATOR2, ITERATOR3, ITERATOR4, ITERATOR5, ITERATOR6, ITERATOR9, ITERATOR10, ITERATOR11) \ ITERATOR0(void, wkeShutdown, "") \ ITERATOR0(void, wkeShutdownForDebug, "测试使用,不了解千万别用!") \ \ ITERATOR0(unsigned int, wkeVersion, "") \ ITERATOR0(const utf8*, wkeVersionString, "") \ ITERATOR2(void, wkeGC, wkeWebView webView, long intervalSec, "") \ ITERATOR2(void, wkeSetResourceGc, wkeWebView webView, long intervalSec, "") \ \ ITERATOR5(void, wkeSetFileSystem, WKE_FILE_OPEN pfnOpen, WKE_FILE_CLOSE pfnClose, WKE_FILE_SIZE pfnSize, WKE_FILE_READ pfnRead, WKE_FILE_SEEK pfnSeek, "") \ \ ITERATOR1(const char*, wkeWebViewName, wkeWebView webView, "") \ ITERATOR2(void, wkeSetWebViewName, wkeWebView webView, const char* name, "") \ \ ITERATOR1(BOOL, wkeIsLoaded, wkeWebView webView, "") \ ITERATOR1(BOOL, wkeIsLoadFailed, wkeWebView webView, "") \ ITERATOR1(BOOL, wkeIsLoadComplete, wkeWebView webView, "") \ \ ITERATOR1(const utf8*, wkeGetSource, wkeWebView webView, "") \ ITERATOR1(const utf8*, wkeTitle, wkeWebView webView, "") \ ITERATOR1(const wchar_t*, wkeTitleW, wkeWebView webView, "") \ ITERATOR1(int, wkeWidth, wkeWebView webView, "") \ ITERATOR1(int, wkeHeight, wkeWebView webView, "") \ ITERATOR1(int, wkeContentsWidth, wkeWebView webView, "") \ ITERATOR1(int, wkeContentsHeight, wkeWebView webView, "") \ \ ITERATOR1(void, wkeSelectAll, wkeWebView webView, "") \ ITERATOR1(void, wkeCopy, wkeWebView webView, "") \ ITERATOR1(void, wkeCut, wkeWebView webView, "") \ ITERATOR1(void, wkePaste, wkeWebView webView, "") \ ITERATOR1(void, wkeDelete, wkeWebView webView, "") \ \ ITERATOR1(BOOL, wkeCookieEnabled, wkeWebView webView, "") \ ITERATOR1(float, wkeMediaVolume, wkeWebView webView, "") \ \ ITERATOR5(BOOL, wkeMouseEvent, wkeWebView webView, unsigned int message, int x, int y, unsigned int flags, "") \ ITERATOR4(BOOL, wkeContextMenuEvent, wkeWebView webView, int x, int y, unsigned int flags, "") \ ITERATOR5(BOOL, wkeMouseWheel, wkeWebView webView, int x, int y, int delta, unsigned int flags, "") \ ITERATOR4(BOOL, wkeKeyUp, wkeWebView webView, unsigned int virtualKeyCode, unsigned int flags, bool systemKey, "") \ ITERATOR4(BOOL, wkeKeyDown, wkeWebView webView, unsigned int virtualKeyCode, unsigned int flags, bool systemKey, "") \ ITERATOR4(BOOL, wkeKeyPress, wkeWebView webView, unsigned int virtualKeyCode, unsigned int flags, bool systemKey, "") \ \ ITERATOR1(void, wkeFocus, wkeWebView webView, "") \ ITERATOR1(void, wkeUnfocus, wkeWebView webView, "") \ \ ITERATOR1(wkeRect, wkeGetCaret, wkeWebView webView, "") \ \ ITERATOR1(void, wkeAwaken, wkeWebView webView, "") \ \ ITERATOR1(float, wkeZoomFactor, wkeWebView webView, "") \ \ ITERATOR2(void, wkeSetClientHandler, wkeWebView webView, const wkeClientHandler* handler, "") \ ITERATOR1(const wkeClientHandler*, wkeGetClientHandler, wkeWebView webView, "") \ \ ITERATOR1(const utf8*, wkeToString, const wkeString string, "") \ ITERATOR1(const wchar_t*, wkeToStringW, const wkeString string, "") \ \ ITERATOR2(const utf8*, jsToString, jsExecState es, jsValue v, "") \ ITERATOR2(const wchar_t*, jsToStringW, jsExecState es, jsValue v, "") \ \ ITERATOR1(void, wkeConfigure, const wkeSettings* settings, "") \ ITERATOR0(BOOL, wkeIsInitialize, "") \ \ ITERATOR2(void, wkeSetViewSettings, wkeWebView webView, const wkeViewSettings* settings, "") \ ITERATOR3(void, wkeSetDebugConfig, wkeWebView webView, const char* debugString, const char* param, "") \ ITERATOR2(void *, wkeGetDebugConfig, wkeWebView webView, const char* debugString, "") \ \ ITERATOR0(void, wkeFinalize, "") \ ITERATOR0(void, wkeUpdate, "") \ ITERATOR0(unsigned int, wkeGetVersion, "") \ ITERATOR0(const utf8*, wkeGetVersionString, "") \ \ ITERATOR0(wkeWebView, wkeCreateWebView, "") \ ITERATOR1(void, wkeDestroyWebView, wkeWebView webView, "") \ \ ITERATOR2(void, wkeSetMemoryCacheEnable, wkeWebView webView, bool b, "") \ ITERATOR2(void, wkeSetMouseEnabled, wkeWebView webView, bool b, "") \ ITERATOR2(void, wkeSetTouchEnabled, wkeWebView webView, bool b, "") \ ITERATOR2(void, wkeSetSystemTouchEnabled, wkeWebView webView, bool b, "") \ ITERATOR2(void, wkeSetContextMenuEnabled, wkeWebView webView, bool b, "") \ ITERATOR2(void, wkeSetNavigationToNewWindowEnable, wkeWebView webView, bool b, "") \ ITERATOR2(void, wkeSetCspCheckEnable, wkeWebView webView, bool b, "") \ ITERATOR2(void, wkeSetNpapiPluginsEnabled, wkeWebView webView, bool b, "") \ ITERATOR2(void, wkeSetHeadlessEnabled, wkeWebView webView, bool b, "可以关闭渲染") \ ITERATOR2(void, wkeSetDragEnable, wkeWebView webView, bool b, "可关闭拖拽文件加载网页") \ ITERATOR2(void, wkeSetDragDropEnable, wkeWebView webView, bool b, "可关闭拖拽到其他进程") \ ITERATOR3(void, wkeSetContextMenuItemShow, wkeWebView webView, wkeMenuItemId item, bool isShow, "设置某项menu是否显示") \ ITERATOR2(void, wkeSetLanguage, wkeWebView webView, const char* language, "") \ \ ITERATOR2(void, wkeSetViewNetInterface, wkeWebView webView, const char* netInterface, "") \ \ ITERATOR1(void, wkeSetProxy, const wkeProxy* proxy, "") \ ITERATOR2(void, wkeSetViewProxy, wkeWebView webView, wkeProxy *proxy, "") \ \ ITERATOR1(const char*, wkeGetName, wkeWebView webView, "") \ ITERATOR2(void, wkeSetName, wkeWebView webView, const char* name, "") \ \ ITERATOR2(void, wkeSetHandle, wkeWebView webView, HWND wnd, "") \ ITERATOR3(void, wkeSetHandleOffset, wkeWebView webView, int x, int y, "") \ \ ITERATOR1(BOOL, wkeIsTransparent, wkeWebView webView, "") \ ITERATOR2(void, wkeSetTransparent, wkeWebView webView, bool transparent, "") \ \ ITERATOR2(void, wkeSetUserAgent, wkeWebView webView, const utf8* userAgent, "") \ ITERATOR1(const char*, wkeGetUserAgent, wkeWebView webView, "") \ ITERATOR2(void, wkeSetUserAgentW, wkeWebView webView, const wchar_t* userAgent, "") \ \ ITERATOR4(void, wkeShowDevtools, wkeWebView webView, const wchar_t* path, wkeOnShowDevtoolsCallback callback, void* param, "") \ \ ITERATOR2(void, wkeLoadW, wkeWebView webView, const wchar_t* url, "") \ ITERATOR2(void, wkeLoadURL, wkeWebView webView, const utf8* url, "") \ ITERATOR2(void, wkeLoadURLW, wkeWebView webView, const wchar_t* url, "") \ ITERATOR4(void, wkePostURL, wkeWebView wkeView, const utf8* url, const char* postData, int postLen, "") \ ITERATOR4(void, wkePostURLW, wkeWebView wkeView, const wchar_t* url, const char* postData, int postLen, "") \ \ ITERATOR2(void, wkeLoadHTML, wkeWebView webView, const utf8* html, "") \ ITERATOR3(void, wkeLoadHtmlWithBaseUrl, wkeWebView webView, const utf8* html, const utf8* baseUrl, "") \ ITERATOR2(void, wkeLoadHTMLW, wkeWebView webView, const wchar_t* html, "") \ \ ITERATOR2(void, wkeLoadFile, wkeWebView webView, const utf8* filename, "") \ ITERATOR2(void, wkeLoadFileW, wkeWebView webView, const wchar_t* filename, "") \ \ ITERATOR1(const utf8*, wkeGetURL, wkeWebView webView, "") \ ITERATOR2(const utf8*, wkeGetFrameUrl, wkeWebView webView, wkeWebFrameHandle frameId, "") \ \ ITERATOR1(BOOL, wkeIsLoading, wkeWebView webView, "") \ ITERATOR1(BOOL, wkeIsLoadingSucceeded, wkeWebView webView, "") \ ITERATOR1(BOOL, wkeIsLoadingFailed, wkeWebView webView, "") \ ITERATOR1(BOOL, wkeIsLoadingCompleted, wkeWebView webView, "") \ ITERATOR1(BOOL, wkeIsDocumentReady, wkeWebView webView, "") \ ITERATOR1(void, wkeStopLoading, wkeWebView webView, "") \ ITERATOR1(void, wkeReload, wkeWebView webView, "") \ ITERATOR2(void, wkeGoToOffset, wkeWebView webView, int offset, "") \ ITERATOR2(void, wkeGoToIndex, wkeWebView webView, int index, "") \ \ ITERATOR1(int, wkeGetWebviewId, wkeWebView webView, "") \ ITERATOR1(BOOL, wkeIsWebviewAlive, int id, "") \ ITERATOR1(BOOL, wkeIsWebviewValid, wkeWebView webView, "") \ \ ITERATOR3(const utf8*, wkeGetDocumentCompleteURL, wkeWebView webView, wkeWebFrameHandle frameId, const utf8* partialURL, "") \ \ ITERATOR3(wkeMemBuf*, wkeCreateMemBuf, wkeWebView webView, void* buf, size_t length, "") \ ITERATOR1(void, wkeFreeMemBuf, wkeMemBuf* buf, "") \ \ ITERATOR1(const utf8*, wkeGetTitle, wkeWebView webView, "") \ ITERATOR1(const wchar_t*, wkeGetTitleW, wkeWebView webView, "") \ \ ITERATOR3(void, wkeResize, wkeWebView webView, int w, int h, "") \ ITERATOR1(int, wkeGetWidth, wkeWebView webView, "") \ ITERATOR1(int, wkeGetHeight, wkeWebView webView, "") \ ITERATOR1(int, wkeGetContentWidth, wkeWebView webView, "") \ ITERATOR1(int, wkeGetContentHeight, wkeWebView webView, "") \ \ ITERATOR2(void, wkeSetDirty, wkeWebView webView, bool dirty, "") \ ITERATOR1(BOOL, wkeIsDirty, wkeWebView webView, "") \ ITERATOR5(void, wkeAddDirtyArea, wkeWebView webView, int x, int y, int w, int h, "") \ ITERATOR1(void, wkeLayoutIfNeeded, wkeWebView webView, "") \ ITERATOR11(void, wkePaint2, wkeWebView webView, void* bits, int bufWid, int bufHei, int xDst, int yDst, int w, int h, int xSrc, int ySrc, bool bCopyAlpha, "") \ ITERATOR3(void, wkePaint, wkeWebView webView, void* bits, int pitch, "") \ ITERATOR1(void, wkeRepaintIfNeeded, wkeWebView webView, "") \ ITERATOR1(HDC, wkeGetViewDC, wkeWebView webView, "") \ ITERATOR1(void, wkeUnlockViewDC, wkeWebView webView, "") \ ITERATOR1(HWND, wkeGetHostHWND, wkeWebView webView, "") \ \ ITERATOR1(BOOL, wkeCanGoBack, wkeWebView webView, "") \ ITERATOR1(BOOL, wkeGoBack, wkeWebView webView, "") \ ITERATOR1(BOOL, wkeCanGoForward, wkeWebView webView, "") \ ITERATOR1(BOOL, wkeGoForward, wkeWebView webView, "") \ ITERATOR2(BOOL, wkeNavigateAtIndex, wkeWebView webView, int index, "") \ ITERATOR1(int, wkeGetNavigateIndex, wkeWebView webView, "") \ \ ITERATOR1(void, wkeEditorSelectAll, wkeWebView webView, "") \ ITERATOR1(void, wkeEditorUnSelect, wkeWebView webView, "") \ ITERATOR1(void, wkeEditorCopy, wkeWebView webView, "") \ ITERATOR1(void, wkeEditorCut, wkeWebView webView, "") \ ITERATOR1(void, wkeEditorPaste, wkeWebView webView, "") \ ITERATOR1(void, wkeEditorDelete, wkeWebView webView, "") \ ITERATOR1(void, wkeEditorUndo, wkeWebView webView, "") \ ITERATOR1(void, wkeEditorRedo, wkeWebView webView, "") \ \ ITERATOR1(const wchar_t*, wkeGetCookieW, wkeWebView webView, "") \ ITERATOR1(const utf8*, wkeGetCookie, wkeWebView webView, "") \ ITERATOR3(void, wkeSetCookie, wkeWebView webView, const utf8* url, const utf8* cookie, "cookie格式必须是类似:cna=4UvTFE12fEECAXFKf4SFW5eo; expires=Tue, 23-Jan-2029 13:17:21 GMT; path=/; domain=.youku.com") \ ITERATOR3(void, wkeVisitAllCookie, wkeWebView webView, void* params, wkeCookieVisitor visitor, "") \ ITERATOR2(void, wkePerformCookieCommand, wkeWebView webView, wkeCookieCommand command, "") \ ITERATOR2(void, wkeSetCookieEnabled, wkeWebView webView, bool enable, "") \ ITERATOR1(BOOL, wkeIsCookieEnabled, wkeWebView webView, "") \ ITERATOR2(void, wkeSetCookieJarPath, wkeWebView webView, const WCHAR* path, "") \ ITERATOR2(void, wkeSetCookieJarFullPath, wkeWebView webView, const WCHAR* path, "") \ ITERATOR1(void, wkeClearCookie, wkeWebView webView, "") \ ITERATOR2(void, wkeSetLocalStorageFullPath, wkeWebView webView, const WCHAR* path, "") \ ITERATOR2(void, wkeAddPluginDirectory, wkeWebView webView, const WCHAR* path, "") \ \ ITERATOR2(void, wkeSetMediaVolume, wkeWebView webView, float volume, "") \ ITERATOR1(float, wkeGetMediaVolume, wkeWebView webView, "") \ \ ITERATOR5(BOOL, wkeFireMouseEvent, wkeWebView webView, unsigned int message, int x, int y, unsigned int flags, "") \ ITERATOR4(BOOL, wkeFireContextMenuEvent, wkeWebView webView, int x, int y, unsigned int flags, "") \ ITERATOR5(BOOL, wkeFireMouseWheelEvent, wkeWebView webView, int x, int y, int delta, unsigned int flags, "") \ ITERATOR4(BOOL, wkeFireKeyUpEvent, wkeWebView webView, unsigned int virtualKeyCode, unsigned int flags, bool systemKey, "") \ ITERATOR4(BOOL, wkeFireKeyDownEvent, wkeWebView webView, unsigned int virtualKeyCode, unsigned int flags, bool systemKey, "") \ ITERATOR4(BOOL, wkeFireKeyPressEvent, wkeWebView webView, unsigned int charCode, unsigned int flags, bool systemKey, "") \ ITERATOR6(BOOL, wkeFireWindowsMessage, wkeWebView webView, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT* result, "") \ \ ITERATOR1(void, wkeSetFocus, wkeWebView webView, "") \ ITERATOR1(void, wkeKillFocus, wkeWebView webView, "") \ \ ITERATOR1(wkeRect, wkeGetCaretRect, wkeWebView webView, "") \ ITERATOR1(wkeRect*, wkeGetCaretRect2, wkeWebView webView, "给一些不方便获取返回结构体的语言调用") \ \ ITERATOR2(jsValue, wkeRunJS, wkeWebView webView, const utf8* script, "") \ ITERATOR2(jsValue, wkeRunJSW, wkeWebView webView, const wchar_t* script, "") \ \ ITERATOR1(jsExecState, wkeGlobalExec, wkeWebView webView, "") \ ITERATOR2(jsExecState, wkeGetGlobalExecByFrame, wkeWebView webView, wkeWebFrameHandle frameId, "") \ \ ITERATOR1(void, wkeSleep, wkeWebView webView, "") \ ITERATOR1(void, wkeWake, wkeWebView webView, "") \ ITERATOR1(BOOL, wkeIsAwake, wkeWebView webView, "") \ \ ITERATOR2(void, wkeSetZoomFactor, wkeWebView webView, float factor, "") \ ITERATOR1(float, wkeGetZoomFactor, wkeWebView webView, "") \ ITERATOR0(void, wkeEnableHighDPISupport, "") \ \ ITERATOR2(void, wkeSetEditable, wkeWebView webView, bool editable, "") \ \ ITERATOR1(const utf8*, wkeGetString, const wkeString string, "") \ ITERATOR1(const wchar_t*, wkeGetStringW, const wkeString string, "") \ \ ITERATOR3(void, wkeSetString, wkeString string, const utf8* str, size_t len, "") \ ITERATOR3(void, wkeSetStringWithoutNullTermination, wkeString string, const utf8* str, size_t len, "") \ ITERATOR3(void, wkeSetStringW, wkeString string, const wchar_t* str, size_t len, "") \ \ ITERATOR2(wkeString, wkeCreateString, const utf8* str, size_t len, "") \ ITERATOR2(wkeString, wkeCreateStringW, const wchar_t* str, size_t len, "") \ ITERATOR2(wkeString, wkeCreateStringWithoutNullTermination, const utf8* str, size_t len, "") \ ITERATOR1(size_t, wkeGetStringLen, wkeString str, "") \ ITERATOR1(void, wkeDeleteString, wkeString str, "") \ \ ITERATOR0(wkeWebView, wkeGetWebViewForCurrentContext, "") \ ITERATOR3(void, wkeSetUserKeyValue, wkeWebView webView, const char* key, void* value, "") \ ITERATOR2(void*, wkeGetUserKeyValue, wkeWebView webView, const char* key, "") \ \ ITERATOR1(int, wkeGetCursorInfoType, wkeWebView webView, "") \ ITERATOR2(void, wkeSetCursorInfoType, wkeWebView webView, int type, "") \ ITERATOR5(void, wkeSetDragFiles, wkeWebView webView, const POINT* clintPos, const POINT* screenPos, wkeString* files, int filesCount, "") \ \ ITERATOR5(void, wkeSetDeviceParameter, wkeWebView webView, const char* device, const char* paramStr, int paramInt, float paramFloat, "") \ ITERATOR1(wkeTempCallbackInfo*, wkeGetTempCallbackInfo, wkeWebView webView, "") \ \ ITERATOR3(void, wkeOnCaretChanged, wkeWebView webView, wkeCaretChangedCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnMouseOverUrlChanged, wkeWebView webView, wkeTitleChangedCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnTitleChanged, wkeWebView webView, wkeTitleChangedCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnURLChanged, wkeWebView webView, wkeURLChangedCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnURLChanged2, wkeWebView webView, wkeURLChangedCallback2 callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnPaintUpdated, wkeWebView webView, wkePaintUpdatedCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnPaintBitUpdated, wkeWebView webView, wkePaintBitUpdatedCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnAlertBox, wkeWebView webView, wkeAlertBoxCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnConfirmBox, wkeWebView webView, wkeConfirmBoxCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnPromptBox, wkeWebView webView, wkePromptBoxCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnNavigation, wkeWebView webView, wkeNavigationCallback callback, void* param, "") \ ITERATOR3(void, wkeOnCreateView, wkeWebView webView, wkeCreateViewCallback callback, void* param, "") \ ITERATOR3(void, wkeOnDocumentReady, wkeWebView webView, wkeDocumentReadyCallback callback, void* param, "") \ ITERATOR3(void, wkeOnDocumentReady2, wkeWebView webView, wkeDocumentReady2Callback callback, void* param, "") \ ITERATOR3(void, wkeOnLoadingFinish, wkeWebView webView, wkeLoadingFinishCallback callback, void* param, "") \ ITERATOR3(void, wkeOnDownload, wkeWebView webView, wkeDownloadCallback callback, void* param, "") \ ITERATOR3(void, wkeOnDownload2, wkeWebView webView, wkeDownload2Callback callback, void* param, "") \ ITERATOR3(void, wkeOnConsole, wkeWebView webView, wkeConsoleCallback callback, void* param, "") \ ITERATOR3(void, wkeSetUIThreadCallback, wkeWebView webView, wkeCallUiThread callback, void* param, "") \ ITERATOR3(void, wkeOnLoadUrlBegin, wkeWebView webView, wkeLoadUrlBeginCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnLoadUrlEnd, wkeWebView webView, wkeLoadUrlEndCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnLoadUrlHeadersReceived, wkeWebView webView, wkeLoadUrlHeadersReceivedCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnLoadUrlFinish, wkeWebView webView, wkeLoadUrlFinishCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnLoadUrlFail, wkeWebView webView, wkeLoadUrlFailCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnDidCreateScriptContext, wkeWebView webView, wkeDidCreateScriptContextCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnWillReleaseScriptContext, wkeWebView webView, wkeWillReleaseScriptContextCallback callback, void* callbackParam, "") \ ITERATOR3(void, wkeOnWindowClosing, wkeWebView webWindow, wkeWindowClosingCallback callback, void* param, "") \ ITERATOR3(void, wkeOnWindowDestroy, wkeWebView webWindow, wkeWindowDestroyCallback callback, void* param, "") \ ITERATOR3(void, wkeOnDraggableRegionsChanged, wkeWebView webView, wkeDraggableRegionsChangedCallback callback, void* param, "") \ ITERATOR3(void, wkeOnWillMediaLoad, wkeWebView webView, wkeWillMediaLoadCallback callback, void* param, "") \ ITERATOR3(void, wkeOnStartDragging, wkeWebView webView, wkeStartDraggingCallback callback, void* param, "") \ ITERATOR3(void, wkeOnPrint, wkeWebView webView, wkeOnPrintCallback callback, void* param, "") \ ITERATOR4(void, wkeScreenshot, wkeWebView webView, const wkeScreenshotSettings* settings, wkeOnScreenshot callback, void* param, "") \ \ ITERATOR3(void, wkeOnOtherLoad, wkeWebView webView, wkeOnOtherLoadCallback callback, void* param, "") \ ITERATOR3(void, wkeOnContextMenuItemClick, wkeWebView webView, wkeOnContextMenuItemClickCallback callback, void* param, "") \ \ ITERATOR1(BOOL, wkeIsProcessingUserGesture, wkeWebView webView, "") \ \ ITERATOR2(void, wkeNetSetMIMEType, wkeNetJob jobPtr, const char* type, "设置response的mime") \ ITERATOR2(const char*, wkeNetGetMIMEType, wkeNetJob jobPtr, wkeString mime, "获取response的mime") \ ITERATOR1(const char*, wkeNetGetReferrer, wkeNetJob jobPtr, "获取request的referrer") \ ITERATOR4(void, wkeNetSetHTTPHeaderField, wkeNetJob jobPtr, const wchar_t* key, const wchar_t* value, bool response, "") \ ITERATOR2(const char*, wkeNetGetHTTPHeaderField, wkeNetJob jobPtr, const char* key, "") \ ITERATOR2(const char*, wkeNetGetHTTPHeaderFieldFromResponse, wkeNetJob jobPtr, const char* key, "") \ ITERATOR3(void, wkeNetSetData, wkeNetJob jobPtr, void* buf, int len, "调用此函数后,网络层收到数据会存储在一buf内,接收数据完成后响应OnLoadUrlEnd事件.#此调用严重影响性能,慎用" \ "此函数和wkeNetSetData的区别是,wkeNetHookRequest会在接受到真正网络数据后再调用回调,并允许回调修改网络数据。"\ "而wkeNetSetData是在网络数据还没发送的时候修改") \ ITERATOR1(void, wkeNetHookRequest, wkeNetJob jobPtr, "") \ ITERATOR3(void, wkeNetOnResponse, wkeWebView webView, wkeNetResponseCallback callback, void* param, "") \ ITERATOR1(wkeRequestType, wkeNetGetRequestMethod, wkeNetJob jobPtr, "") \ ITERATOR3(int, wkeNetGetFavicon, wkeWebView webView, wkeOnNetGetFaviconCallback callback, void* param, "") \ \ ITERATOR1(void, wkeNetContinueJob, wkeNetJob jobPtr, "")\ ITERATOR1(const char*, wkeNetGetUrlByJob, wkeNetJob jobPtr, "")\ ITERATOR1(const wkeSlist*, wkeNetGetRawHttpHead, wkeNetJob jobPtr, "")\ ITERATOR1(const wkeSlist*, wkeNetGetRawResponseHead, wkeNetJob jobPtr, "")\ \ ITERATOR1(void, wkeNetCancelRequest, wkeNetJob jobPtr, "")\ ITERATOR1(BOOL, wkeNetHoldJobToAsynCommit, wkeNetJob jobPtr, "")\ ITERATOR2(void, wkeNetChangeRequestUrl, wkeNetJob jobPtr, const char* url, "")\ \ ITERATOR3(wkeWebUrlRequestPtr, wkeNetCreateWebUrlRequest, const utf8* url, const utf8* method, const utf8* mime, "")\ ITERATOR1(wkeWebUrlRequestPtr, wkeNetCreateWebUrlRequest2, const blinkWebURLRequestPtr request, "")\ ITERATOR2(blinkWebURLRequestPtr, wkeNetCopyWebUrlRequest, wkeNetJob jobPtr, bool needExtraData, "")\ ITERATOR1(void, wkeNetDeleteBlinkWebURLRequestPtr, blinkWebURLRequestPtr request, "")\ ITERATOR3(void, wkeNetAddHTTPHeaderFieldToUrlRequest, wkeWebUrlRequestPtr request, const utf8* name, const utf8* value, "")\ ITERATOR4(int, wkeNetStartUrlRequest, wkeWebView webView, wkeWebUrlRequestPtr request, void* param, const wkeUrlRequestCallbacks* callbacks, "")\ ITERATOR1(int, wkeNetGetHttpStatusCode, wkeWebUrlResponsePtr response, "")\ ITERATOR1(__int64, wkeNetGetExpectedContentLength, wkeWebUrlResponsePtr response, "")\ ITERATOR1(const utf8*, wkeNetGetResponseUrl, wkeWebUrlResponsePtr response, "")\ ITERATOR1(void, wkeNetCancelWebUrlRequest, int requestId, "")\ \ ITERATOR1(wkePostBodyElements*, wkeNetGetPostBody, wkeNetJob jobPtr, "") \ ITERATOR2(wkePostBodyElements*, wkeNetCreatePostBodyElements, wkeWebView webView, size_t length, "") \ ITERATOR1(void, wkeNetFreePostBodyElements, wkePostBodyElements* elements, "") \ ITERATOR1(wkePostBodyElement*, wkeNetCreatePostBodyElement, wkeWebView webView, "") \ ITERATOR1(void, wkeNetFreePostBodyElement, wkePostBodyElement* element, "") \ \ ITERATOR9(wkeDownloadOpt, wkePopupDialogAndDownload, wkeWebView webviewHandle, const wkeDialogOptions* dialogOpt, \ size_t expectedContentLength, const char* url, const char* mime, const char* disposition, wkeNetJob job,wkeNetJobDataBind* dataBind, wkeDownloadBind* callbackBind, "") \ ITERATOR10(wkeDownloadOpt, wkeDownloadByPath, wkeWebView webviewHandle, const wkeDialogOptions* dialogOpt, const WCHAR* path, size_t expectedContentLength,const char* url, \ const char* mime, const char* disposition, wkeNetJob job, wkeNetJobDataBind* dataBind, wkeDownloadBind* callbackBind, "") \ \ ITERATOR2(BOOL, wkeIsMainFrame, wkeWebView webView, wkeWebFrameHandle frameId, "") \ ITERATOR2(BOOL, wkeIsWebRemoteFrame, wkeWebView webView, wkeWebFrameHandle frameId, "") \ ITERATOR1(wkeWebFrameHandle, wkeWebFrameGetMainFrame, wkeWebView webView, "") \ ITERATOR4(jsValue, wkeRunJsByFrame, wkeWebView webView, wkeWebFrameHandle frameId, const utf8* script, bool isInClosure, "") \ ITERATOR3(void, wkeInsertCSSByFrame, wkeWebView webView, wkeWebFrameHandle frameId, const utf8* cssText, "") \ \ ITERATOR3(void, wkeWebFrameGetMainWorldScriptContext, wkeWebView webView, wkeWebFrameHandle webFrameId, v8ContextPtr contextOut, "") \ \ ITERATOR0(v8Isolate, wkeGetBlinkMainThreadIsolate, "") \ \ ITERATOR6(wkeWebView, wkeCreateWebWindow, wkeWindowType type, HWND parent, int x, int y, int width, int height, "") \ ITERATOR1(wkeWebView, wkeCreateWebCustomWindow, const wkeWindowCreateInfo* info, "") \ ITERATOR1(void, wkeDestroyWebWindow, wkeWebView webWindow, "") \ ITERATOR1(HWND, wkeGetWindowHandle, wkeWebView webWindow, "") \ \ ITERATOR2(void, wkeShowWindow, wkeWebView webWindow, bool show, "") \ ITERATOR2(void, wkeEnableWindow, wkeWebView webWindow, bool enable, "") \ \ ITERATOR5(void, wkeMoveWindow, wkeWebView webWindow, int x, int y, int width, int height, "") \ ITERATOR1(void, wkeMoveToCenter, wkeWebView webWindow, "") \ ITERATOR3(void, wkeResizeWindow, wkeWebView webWindow, int width, int height, "") \ \ ITERATOR6(wkeWebDragOperation, wkeDragTargetDragEnter, wkeWebView webView, const wkeWebDragData* webDragData, const POINT* clientPoint, const POINT* screenPoint, wkeWebDragOperationsMask operationsAllowed, int modifiers, "") \ ITERATOR5(wkeWebDragOperation, wkeDragTargetDragOver, wkeWebView webView, const POINT* clientPoint, const POINT* screenPoint, wkeWebDragOperationsMask operationsAllowed, int modifiers, "") \ ITERATOR1(void, wkeDragTargetDragLeave, wkeWebView webView, "") \ ITERATOR4(void, wkeDragTargetDrop, wkeWebView webView, const POINT* clientPoint, const POINT* screenPoint, int modifiers, "") \ ITERATOR4(void, wkeDragTargetEnd, wkeWebView webView, const POINT* clientPoint, const POINT* screenPoint, wkeWebDragOperation operation, "") \ \ ITERATOR1(void, wkeUtilSetUiCallback, wkeUiThreadPostTaskCallback callback, "") \ ITERATOR1(const utf8*, wkeUtilSerializeToMHTML, wkeWebView webView, "") \ ITERATOR3(const wkePdfDatas*, wkeUtilPrintToPdf, wkeWebView webView, wkeWebFrameHandle frameId, const wkePrintSettings* settings,"") \ ITERATOR3(const wkeMemBuf*, wkePrintToBitmap, wkeWebView webView, wkeWebFrameHandle frameId, const wkeScreenshotSettings* settings,"") \ ITERATOR1(void, wkeUtilRelasePrintPdfDatas, const wkePdfDatas* datas,"") \ \ ITERATOR2(void, wkeSetWindowTitle, wkeWebView webWindow, const utf8* title, "") \ ITERATOR2(void, wkeSetWindowTitleW, wkeWebView webWindow, const wchar_t* title, "") \ \ ITERATOR3(void, wkeNodeOnCreateProcess, wkeWebView webView, wkeNodeOnCreateProcessCallback callback, void* param, "") \ \ ITERATOR4(void, wkeOnPluginFind, wkeWebView webView, const char* mime, wkeOnPluginFindCallback callback, void* param, "") \ ITERATOR4(void, wkeAddNpapiPlugin, wkeWebView webView, void* initializeFunc, void* getEntryPointsFunc, void* shutdownFunc, "") \ \ ITERATOR4(void, wkePluginListBuilderAddPlugin, void* builder, const utf8* name, const utf8* description, const utf8* fileName, "") \ ITERATOR3(void, wkePluginListBuilderAddMediaTypeToLastPlugin, void* builder, const utf8* name, const utf8* description, "") \ ITERATOR2(void, wkePluginListBuilderAddFileExtensionToLastMediaType, void* builder, const utf8* fileExtension, "") \ \ ITERATOR1(wkeWebView, wkeGetWebViewByNData, void* ndata, "") \ \ ITERATOR5(BOOL, wkeRegisterEmbedderCustomElement, wkeWebView webView, wkeWebFrameHandle frameId, const char* name, void* options, void* outResult, "") \ \ ITERATOR3(void, wkeSetMediaPlayerFactory, wkeWebView webView, wkeMediaPlayerFactory factory, wkeOnIsMediaPlayerSupportsMIMEType callback, "") \ \ ITERATOR3(const utf8* , wkeGetContentAsMarkup, wkeWebView webView, wkeWebFrameHandle frame, size_t* size, "") \ \ ITERATOR1(const utf8*, wkeUtilDecodeURLEscape, const utf8* url, "") \ ITERATOR1(const utf8*, wkeUtilEncodeURLEscape, const utf8* url, "") \ ITERATOR1(const utf8*, wkeUtilBase64Encode, const utf8* str, "") \ ITERATOR1(const utf8*, wkeUtilBase64Decode, const utf8* str, "") \ ITERATOR1(const wkeMemBuf*, wkeUtilCreateV8Snapshot, const utf8* str, "") \ \ ITERATOR0(void, wkeRunMessageLoop, "") \ \ ITERATOR1(void, wkeSaveMemoryCache, wkeWebView webView, "") \ \ ITERATOR3(void, jsBindFunction, const char* name, jsNativeFunction fn, unsigned int argCount, "") \ ITERATOR2(void, jsBindGetter, const char* name, jsNativeFunction fn, "") \ ITERATOR2(void, jsBindSetter, const char* name, jsNativeFunction fn, "") \ \ ITERATOR4(void, wkeJsBindFunction, const char* name, wkeJsNativeFunction fn, void* param, unsigned int argCount, "") \ ITERATOR3(void, wkeJsBindGetter, const char* name, wkeJsNativeFunction fn, void* param, "") \ ITERATOR3(void, wkeJsBindSetter, const char* name, wkeJsNativeFunction fn, void* param, "") \ \ ITERATOR1(int, jsArgCount, jsExecState es, "") \ ITERATOR2(jsType, jsArgType, jsExecState es, int argIdx, "") \ ITERATOR2(jsValue, jsArg, jsExecState es, int argIdx, "") \ \ ITERATOR1(jsType, jsTypeOf, jsValue v, "") \ ITERATOR1(BOOL, jsIsNumber, jsValue v, "") \ ITERATOR1(BOOL, jsIsString, jsValue v, "") \ ITERATOR1(BOOL, jsIsBoolean, jsValue v, "") \ ITERATOR1(BOOL, jsIsObject, jsValue v, "") \ ITERATOR1(BOOL, jsIsFunction, jsValue v, "") \ ITERATOR1(BOOL, jsIsUndefined, jsValue v, "") \ ITERATOR1(BOOL, jsIsNull, jsValue v, "") \ ITERATOR1(BOOL, jsIsArray, jsValue v, "") \ ITERATOR1(BOOL, jsIsTrue, jsValue v, "") \ ITERATOR1(BOOL, jsIsFalse, jsValue v, "") \ \ ITERATOR2(int, jsToInt, jsExecState es, jsValue v, "") \ ITERATOR2(float, jsToFloat, jsExecState es, jsValue v, "") \ ITERATOR2(double, jsToDouble, jsExecState es, jsValue v, "") \ ITERATOR2(const char*, jsToDoubleString, jsExecState es, jsValue v, "") \ ITERATOR2(BOOL, jsToBoolean, jsExecState es, jsValue v, "") \ ITERATOR3(jsValue, jsArrayBuffer, jsExecState es, const char* buffer, size_t size, "") \ ITERATOR2(wkeMemBuf*, jsGetArrayBuffer, jsExecState es, jsValue value, "") \ ITERATOR2(const utf8*, jsToTempString, jsExecState es, jsValue v, "") \ ITERATOR2(const wchar_t*, jsToTempStringW, jsExecState es, jsValue v, "") \ ITERATOR2(void*, jsToV8Value, jsExecState es, jsValue v, "return v8::Persistent*") \ \ ITERATOR1(jsValue, jsInt, int n, "") \ ITERATOR1(jsValue, jsFloat, float f, "") \ ITERATOR1(jsValue, jsDouble, double d, "") \ ITERATOR1(jsValue, jsDoubleString, const char* str, "") \ ITERATOR1(jsValue, jsBoolean, bool b, "") \ \ ITERATOR0(jsValue, jsUndefined, "") \ ITERATOR0(jsValue, jsNull, "") \ ITERATOR0(jsValue, jsTrue, "") \ ITERATOR0(jsValue, jsFalse, "") \ \ ITERATOR2(jsValue, jsString, jsExecState es, const utf8* str, "") \ ITERATOR2(jsValue, jsStringW, jsExecState es, const wchar_t* str, "") \ ITERATOR1(jsValue, jsEmptyObject, jsExecState es, "") \ ITERATOR1(jsValue, jsEmptyArray, jsExecState es, "") \ \ ITERATOR2(jsValue, jsObject, jsExecState es, jsData* obj, "") \ ITERATOR2(jsValue, jsFunction, jsExecState es, jsData* obj, "") \ ITERATOR2(jsData*, jsGetData, jsExecState es, jsValue object, "") \ \ ITERATOR3(jsValue, jsGet, jsExecState es, jsValue object, const char* prop, "") \ ITERATOR4(void, jsSet, jsExecState es, jsValue object, const char* prop, jsValue v, "") \ \ ITERATOR3(jsValue, jsGetAt, jsExecState es, jsValue object, int index, "") \ ITERATOR4(void, jsSetAt, jsExecState es, jsValue object, int index, jsValue v, "") \ ITERATOR2(jsKeys*, jsGetKeys, jsExecState es, jsValue object, "") \ ITERATOR2(BOOL, jsIsJsValueValid, jsExecState es, jsValue object, "") \ ITERATOR1(BOOL, jsIsValidExecState, jsExecState es, "") \ ITERATOR3(void, jsDeleteObjectProp, jsExecState es, jsValue object, const char* prop, "") \ \ ITERATOR2(int, jsGetLength, jsExecState es, jsValue object, "") \ ITERATOR3(void, jsSetLength, jsExecState es, jsValue object, int length, "") \ \ ITERATOR1(jsValue, jsGlobalObject, jsExecState es, "") \ ITERATOR1(wkeWebView, jsGetWebView, jsExecState es, "") \ \ ITERATOR2(jsValue, jsEval, jsExecState es, const utf8* str, "") \ ITERATOR2(jsValue, jsEvalW, jsExecState es, const wchar_t* str, "") \ ITERATOR3(jsValue, jsEvalExW, jsExecState es, const wchar_t* str, bool isInClosure, "") \ \ ITERATOR5(jsValue, jsCall, jsExecState es, jsValue func, jsValue thisObject, jsValue* args, int argCount, "") \ ITERATOR4(jsValue, jsCallGlobal, jsExecState es, jsValue func, jsValue* args, int argCount, "") \ \ ITERATOR2(jsValue, jsGetGlobal, jsExecState es, const char* prop, "") \ ITERATOR3(void, jsSetGlobal, jsExecState es, const char* prop, jsValue v, "") \ \ ITERATOR0(void, jsGC, "") \ ITERATOR2(BOOL, jsAddRef, jsExecState es, jsValue val, "") \ ITERATOR2(BOOL, jsReleaseRef, jsExecState es, jsValue val, "") \ ITERATOR1(jsExceptionInfo*, jsGetLastErrorIfException, jsExecState es, "") \ ITERATOR2(jsValue, jsThrowException, jsExecState es, const utf8* exception, "") \ ITERATOR1(const utf8*, jsGetCallstack, jsExecState es, "") #if ENABLE_WKE == 1 WKE_EXTERN_C __declspec(dllexport) void WKE_CALL_TYPE wkeInit(); WKE_EXTERN_C __declspec(dllexport) void WKE_CALL_TYPE wkeInitialize(); WKE_EXTERN_C __declspec(dllexport) void WKE_CALL_TYPE wkeInitializeEx(const wkeSettings* settings); WKE_FOR_EACH_DEFINE_FUNCTION(WKE_DECLARE_ITERATOR0, WKE_DECLARE_ITERATOR1, WKE_DECLARE_ITERATOR2, \ WKE_DECLARE_ITERATOR3, WKE_DECLARE_ITERATOR4, WKE_DECLARE_ITERATOR5, WKE_DECLARE_ITERATOR6, WKE_DECLARE_ITERATOR9, WKE_DECLARE_ITERATOR10, WKE_DECLARE_ITERATOR11) #else WKE_FOR_EACH_DEFINE_FUNCTION(WKE_DEFINE_ITERATOR0, WKE_DEFINE_ITERATOR1, WKE_DEFINE_ITERATOR2, \ WKE_DEFINE_ITERATOR3, WKE_DEFINE_ITERATOR4, WKE_DEFINE_ITERATOR5, WKE_DEFINE_ITERATOR6, WKE_DEFINE_ITERATOR9, WKE_DEFINE_ITERATOR10, WKE_DEFINE_ITERATOR11) typedef void (WKE_CALL_TYPE *FN_wkeInitializeEx)(const wkeSettings* settings); __declspec(selectany) const wchar_t* s_wkeDllPath = L"node.dll"; __declspec(selectany) HMODULE s_wkeMainDllHandle = NULL; inline void wkeSetWkeDllHandle(const HMODULE mainDllHandle) { s_wkeMainDllHandle = mainDllHandle; } inline void wkeSetWkeDllPath(const wchar_t* dllPath) { s_wkeDllPath = dllPath; } inline int wkeInitializeEx(const wkeSettings* settings) { HMODULE hMod = s_wkeMainDllHandle; if (!hMod) hMod = LoadLibraryW(s_wkeDllPath); if (hMod) { FN_wkeInitializeEx wkeInitializeExFunc = (FN_wkeInitializeEx)GetProcAddress(hMod, "wkeInitializeEx"); wkeInitializeExFunc(settings); WKE_FOR_EACH_DEFINE_FUNCTION(WKE_GET_PTR_ITERATOR0, WKE_GET_PTR_ITERATOR1, WKE_GET_PTR_ITERATOR2, WKE_GET_PTR_ITERATOR3, \ WKE_GET_PTR_ITERATOR4, WKE_GET_PTR_ITERATOR5, WKE_GET_PTR_ITERATOR6, WKE_GET_PTR_ITERATOR9, WKE_GET_PTR_ITERATOR10, WKE_GET_PTR_ITERATOR11); return 1; } return 0; } inline int wkeInit() { return wkeInitializeEx(((const wkeSettings*)0)); } inline int wkeInitialize() { return wkeInitializeEx(((const wkeSettings*)0)); } #endif #endif // WKE_DEFINE_H