| /* |
| * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * |
| * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY |
| * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
| * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR |
| * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
| * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |
| * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| cpp_quote("/* identifiers for commands that can be called by the webview's frame */") |
| cpp_quote("enum WebViewCmd { Cut = 100, Copy, Paste, ForwardDelete, SelectAll, Undo, Redo };") |
| |
| cpp_quote("#define WebViewProgressStartedNotification TEXT(\"WebProgressStartedNotification\")") |
| cpp_quote("#define WebViewProgressEstimateChangedNotification TEXT(\"WebProgressEstimateChangedNotification\")") |
| cpp_quote("#define WebViewProgressFinishedNotification TEXT(\"WebProgressFinishedNotification\")") |
| cpp_quote("#define WebViewDidChangeSelectionNotification TEXT(\"WebViewDidChangeSelectionNotification\")") |
| |
| #ifndef DO_NO_IMPORTS |
| import "oaidl.idl"; |
| import "ocidl.idl"; |
| import "IWebUIDelegate.idl"; |
| import "IWebURLResponse.idl"; |
| import "IWebResourceLoadDelegate.idl"; |
| import "IWebDownload.idl"; |
| import "IWebFrameLoadDelegate.idl"; |
| import "IWebPolicyDelegate.idl"; |
| import "IWebBackForwardList.idl"; |
| import "IWebHistoryItem.idl"; |
| import "IWebPreferences.idl"; |
| import "DOMCSS.idl"; |
| import "IWebUndoManager.idl"; |
| import "IWebEditingDelegate.idl"; |
| import "DOMRange.idl"; |
| #endif |
| |
| interface IDOMCSSStyleDeclaration; |
| interface IDOMDocument; |
| interface IDOMElement; |
| interface IDOMNode; |
| interface IDOMRange; |
| |
| interface IWebArchive; |
| interface IWebBackForwardList; |
| interface IWebDataSource; |
| interface IWebFrame; |
| interface IWebFrameView; |
| interface IWebHistoryItem; |
| interface IWebPreferences; |
| interface IWebScriptObject; |
| |
| interface IWebUIDelegate; |
| interface IWebResourceLoadDelegate; |
| interface IWebDownloadDelegate; |
| interface IWebEditingDelegate; |
| interface IWebFrameLoadDelegate; |
| interface IWebPolicyDelegate; |
| interface IWebDocumentView; |
| interface IWebDocumentRepresentation; |
| interface IWebUndoManager; |
| |
| /* These are the keys for the WebElementPropertyBag */ |
| const LPCOLESTR WebElementDOMNodeKey = L"WebElementDOMNodeKey"; |
| const LPCOLESTR WebElementFrameKey = L"WebElementFrameKey"; |
| const LPCOLESTR WebElementImageAltStringKey = L"WebElementImageAltStringKey"; |
| const LPCOLESTR WebElementImageKey = L"WebElementImageKey"; |
| const LPCOLESTR WebElementImageRectKey = L"WebElementImageRectKey"; |
| const LPCOLESTR WebElementImageURLKey = L"WebElementImageURLKey"; |
| const LPCOLESTR WebElementIsSelectedKey = L"WebElementIsSelectedKey"; |
| const LPCOLESTR WebElementMediaURLKey = L"WebElementMediaURLKey"; |
| const LPCOLESTR WebElementSpellingToolTipKey = L"WebElementSpellingToolTipKey"; |
| const LPCOLESTR WebElementTitleKey = L"WebElementTitleKey"; |
| const LPCOLESTR WebElementLinkURLKey = L"WebElementLinkURLKey"; |
| const LPCOLESTR WebElementLinkTargetFrameKey = L"WebElementLinkTargetFrameKey"; |
| const LPCOLESTR WebElementLinkTitleKey = L"WebElementLinkTitleKey"; |
| const LPCOLESTR WebElementLinkLabelKey = L"WebElementLinkLabelKey"; |
| const LPCOLESTR WebElementIsContentEditableKey = L"WebElementIsContentEditableKey"; |
| |
| /*! |
| @class IEnumTextMatches |
| */ |
| [ |
| object, |
| oleautomation, |
| uuid(C0CDE63A-5ED1-453f-B937-93B1A61AD3B3), |
| pointer_default(unique) |
| ] |
| interface IEnumTextMatches : IUnknown |
| { |
| HRESULT Next(ULONG celt, RECT* rect, ULONG* pceltFetched); |
| HRESULT Skip(ULONG celt); |
| HRESULT Reset(void); |
| HRESULT Clone(IEnumTextMatches** ppenum); |
| }; |
| |
| /*! |
| @class WebView |
| WebView manages the interaction between WebFrameViews and WebDataSources. Modification |
| of the policies and behavior of the WebKit is largely managed by WebViews and their |
| delegates. |
| |
| <p> |
| Typical usage: |
| </p> |
| <pre> |
| WebView *webView; |
| WebFrame *mainFrame; |
| |
| webView = [[WebView alloc] initWithFrame: NSMakeRect (0,0,640,480)]; |
| mainFrame = [webView mainFrame]; |
| [mainFrame loadRequest:request]; |
| </pre> |
| |
| WebViews have the following delegates: WebUIDelegate, WebResourceLoadDelegate, |
| WebFrameLoadDelegate, and WebPolicyDelegate. |
| |
| WebKit depends on the WebView's WebUIDelegate for all window |
| related management, including opening new windows and controlling the user interface |
| elements in those windows. |
| |
| WebResourceLoadDelegate is used to monitor the progress of resources as they are |
| loaded. This delegate may be used to present users with a progress monitor. |
| |
| The WebFrameLoadDelegate receives messages when the URL in a WebFrame is |
| changed. |
| |
| WebView's WebPolicyDelegate can make determinations about how |
| content should be handled, based on the resource's URL and MIME type. |
| |
| @interface WebView : NSView |
| */ |
| [ |
| object, |
| oleautomation, |
| hidden, |
| uuid(174BBEFD-058E-49c7-91DF-6F110AA4AC28), |
| pointer_default(unique) |
| ] |
| interface IWebView : IUnknown |
| { |
| /*! |
| @method canShowMIMEType: |
| @abstract Checks if the WebKit can show content of a certain MIME type. |
| @param MIMEType The MIME type to check. |
| @result YES if the WebKit can show content with MIMEtype. |
| + (BOOL)canShowMIMEType:(NSString *)MIMEType; |
| */ |
| HRESULT canShowMIMEType([in] BSTR mimeType, [out, retval] BOOL* canShow); |
| |
| /*! |
| @method canShowMIMETypeAsHTML: |
| @abstract Checks if the the MIME type is a type that the WebKit will interpret as HTML. |
| @param MIMEType The MIME type to check. |
| @result YES if the MIMEtype in an HTML type. |
| + (BOOL)canShowMIMETypeAsHTML:(NSString *)MIMEType; |
| */ |
| HRESULT canShowMIMETypeAsHTML([in] BSTR mimeType, [out, retval] BOOL* canShow); |
| |
| /*! |
| @method MIMETypesShownAsHTML |
| @result Returns an array of NSStrings that describe the MIME types |
| WebKit will attempt to render as HTML. |
| + (NSArray *)MIMETypesShownAsHTML; |
| */ |
| HRESULT MIMETypesShownAsHTML([out, retval] IEnumVARIANT** enumVariant); |
| |
| /*! |
| @method setMIMETypesShownAsHTML: |
| @discussion Sets the array of NSString MIME types that WebKit will |
| attempt to render as HTML. Typically you will retrieve the built-in |
| array using MIMETypesShownAsHTML and add additional MIME types to that |
| array. |
| + (void)setMIMETypesShownAsHTML:(NSArray *)MIMETypes; |
| */ |
| HRESULT setMIMETypesShownAsHTML([in, size_is(cMimeTypes)] BSTR* mimeTypes, [in] int cMimeTypes); |
| |
| /*! |
| @method URLFromPasteboard: |
| @abstract Returns a URL from a pasteboard |
| @param pasteboard The pasteboard with a URL |
| @result A URL if the pasteboard has one. Nil if it does not. |
| @discussion This method differs than NSURL's URLFromPasteboard method in that it tries multiple pasteboard types |
| including NSURLPboardType to find a URL on the pasteboard. |
| + (NSURL *)URLFromPasteboard:(NSPasteboard *)pasteboard; |
| */ |
| HRESULT URLFromPasteboard([in] IDataObject* pasteboard, [out, retval] BSTR* url); |
| |
| /*! |
| @method URLTitleFromPasteboard: |
| @abstract Returns a URL title from a pasteboard |
| @param pasteboard The pasteboard with a URL title |
| @result A URL title if the pasteboard has one. Nil if it does not. |
| @discussion This method returns a title that refers a URL on the pasteboard. An example of this is the link label |
| which is the text inside the anchor tag. |
| + (NSString *)URLTitleFromPasteboard:(NSPasteboard *)pasteboard; |
| */ |
| HRESULT URLTitleFromPasteboard([in] IDataObject* pasteboard, [out, retval] BSTR* urlTitle); |
| |
| /*! |
| @method initWithFrame:frameName:groupName: |
| @abstract The designated initializer for WebView. |
| @discussion Initialize a WebView with the supplied parameters. This method will |
| create a main WebFrame with the view. Passing a top level frame name is useful if you |
| handle a targetted frame navigation that would normally open a window in some other |
| way that still ends up creating a new WebView. |
| @param frame The frame used to create the view. |
| @param frameName The name to use for the top level frame. May be nil. |
| @param groupName The name of the webView set to which this webView will be added. May be nil. |
| @result Returns an initialized WebView. |
| - (id)initWithFrame:(NSRect)frame frameName:(NSString *)frameName groupName:(NSString *)groupName; |
| */ |
| HRESULT initWithFrame([in] RECT frame, [in] BSTR frameName, [in] BSTR groupName); |
| |
| /*! |
| @method setUIDelegate: |
| @abstract Set the WebView's WebUIDelegate. |
| @param delegate The WebUIDelegate to set as the delegate. |
| - (void)setUIDelegate:(id)delegate; |
| */ |
| HRESULT setUIDelegate([in] IWebUIDelegate* d); |
| |
| /*! |
| @method UIDelegate |
| @abstract Return the WebView's WebUIDelegate. |
| @result The WebView's WebUIDelegate. |
| - (id)UIDelegate; |
| */ |
| HRESULT uiDelegate([retval, out] IWebUIDelegate** d); |
| |
| /*! |
| @method setResourceLoadDelegate: |
| @abstract Set the WebView's WebResourceLoadDelegate load delegate. |
| @param delegate The WebResourceLoadDelegate to set as the load delegate. |
| - (void)setResourceLoadDelegate:(id)delegate; |
| */ |
| HRESULT setResourceLoadDelegate([in] IWebResourceLoadDelegate* d); |
| |
| /*! |
| @method resourceLoadDelegate |
| @result Return the WebView's WebResourceLoadDelegate. |
| - (id)resourceLoadDelegate; |
| */ |
| HRESULT resourceLoadDelegate([retval, out] IWebResourceLoadDelegate** d); |
| |
| /*! |
| @method setDownloadDelegate: |
| @abstract Set the WebView's WebDownloadDelegate. |
| @discussion The download delegate is retained by WebDownload when any downloads are in progress. |
| @param delegate The WebDownloadDelegate to set as the download delegate. |
| - (void)setDownloadDelegate:(id)delegate; |
| */ |
| HRESULT setDownloadDelegate([in] IWebDownloadDelegate* d); |
| |
| /*! |
| @method downloadDelegate |
| @abstract Return the WebView's WebDownloadDelegate. |
| @result The WebView's WebDownloadDelegate. |
| - (id)downloadDelegate; |
| */ |
| HRESULT downloadDelegate([retval, out] IWebDownloadDelegate** d); |
| |
| /*! |
| @method setFrameLoadDelegate: |
| @abstract Set the WebView's WebFrameLoadDelegate delegate. |
| @param delegate The WebFrameLoadDelegate to set as the delegate. |
| - (void)setFrameLoadDelegate:(id)delegate; |
| */ |
| HRESULT setFrameLoadDelegate([in] IWebFrameLoadDelegate* d); |
| |
| /*! |
| @method frameLoadDelegate |
| @abstract Return the WebView's WebFrameLoadDelegate delegate. |
| @result The WebView's WebFrameLoadDelegate delegate. |
| - (id)frameLoadDelegate; |
| */ |
| HRESULT frameLoadDelegate([retval, out] IWebFrameLoadDelegate** d); |
| |
| /*! |
| @method setPolicyDelegate: |
| @abstract Set the WebView's WebPolicyDelegate delegate. |
| @param delegate The WebPolicyDelegate to set as the delegate. |
| - (void)setPolicyDelegate:(id)delegate; |
| */ |
| HRESULT setPolicyDelegate([in] IWebPolicyDelegate* d); |
| |
| /*! |
| @method policyDelegate |
| @abstract Return the WebView's WebPolicyDelegate. |
| @result The WebView's WebPolicyDelegate. |
| - (id)policyDelegate; |
| */ |
| HRESULT policyDelegate([retval, out] IWebPolicyDelegate** d); |
| |
| /*! |
| @method mainFrame |
| @abstract Return the top level frame. |
| @discussion Note that even document that are not framesets will have a |
| mainFrame. |
| @result The main frame. |
| - (WebFrame *)mainFrame; |
| */ |
| HRESULT mainFrame([retval, out] IWebFrame** frame); |
| |
| /*! |
| @method focusedFrame |
| @abstract Return the frame that has the current focus. |
| */ |
| HRESULT focusedFrame([retval, out] IWebFrame** frame); |
| |
| /*! |
| @method backForwardList |
| @result The backforward list for this webView. |
| - (WebBackForwardList *)backForwardList; |
| */ |
| HRESULT backForwardList([retval, out] IWebBackForwardList** list); |
| |
| /*! |
| @method setMaintainsBackForwardList: |
| @abstract Enable or disable the use of a backforward list for this webView. |
| @param flag Turns use of the back forward list on or off |
| - (void)setMaintainsBackForwardList:(BOOL)flag; |
| */ |
| HRESULT setMaintainsBackForwardList([in] BOOL flag); |
| |
| /*! |
| @method goBack |
| @abstract Go back to the previous URL in the backforward list. |
| @result YES if able to go back in the backforward list, NO otherwise. |
| - (BOOL)goBack; |
| */ |
| HRESULT goBack([out, retval] BOOL* succeeded); |
| |
| /*! |
| @method goForward |
| @abstract Go forward to the next URL in the backforward list. |
| @result YES if able to go forward in the backforward list, NO otherwise. |
| - (BOOL)goForward; |
| */ |
| HRESULT goForward([out, retval] BOOL* succeeded); |
| |
| /*! |
| @method goToBackForwardItem: |
| @abstract Go back or forward to an item in the backforward list. |
| @result YES if able to go to the item, NO otherwise. |
| - (BOOL)goToBackForwardItem:(WebHistoryItem *)item; |
| */ |
| HRESULT goToBackForwardItem([in] IWebHistoryItem* item, [out, retval] BOOL* succeeded); |
| |
| /*! |
| @method setTextSizeMultiplier: |
| @abstract Change the size of the text rendering in views managed by this webView. |
| @param multiplier A fractional percentage value, 1.0 is 100%. |
| - (void)setTextSizeMultiplier:(float)multiplier; |
| */ |
| HRESULT setTextSizeMultiplier([in] float multiplier); |
| |
| /*! |
| @method textSizeMultiplier |
| @result The text size multipler. |
| - (float)textSizeMultiplier; |
| */ |
| HRESULT textSizeMultiplier([out, retval] float* multiplier); |
| |
| /*! |
| @method setApplicationNameForUserAgent: |
| @abstract Set the application name. |
| @discussion This name will be used in user-agent strings |
| that are chosen for best results in rendering web pages. |
| @param applicationName The application name |
| - (void)setApplicationNameForUserAgent:(NSString *)applicationName; |
| */ |
| HRESULT setApplicationNameForUserAgent([in] BSTR applicationName); |
| |
| /*! |
| @method applicationNameForUserAgent |
| @result The name of the application as used in the user-agent string. |
| - (NSString *)applicationNameForUserAgent; |
| */ |
| HRESULT applicationNameForUserAgent([out, retval] BSTR* applicationName); |
| |
| /*! |
| @method setCustomUserAgent: |
| @abstract Set the user agent. |
| @discussion Setting this means that the webView should use this user-agent string |
| instead of constructing a user-agent string for each URL. Setting it to nil |
| causes the webView to construct the user-agent string for each URL |
| for best results rendering web pages. |
| @param userAgentString The user agent description |
| - (void)setCustomUserAgent:(NSString *)userAgentString; |
| */ |
| HRESULT setCustomUserAgent([in] BSTR userAgentString); |
| |
| /*! |
| @method customUserAgent |
| @result The custom user-agent string or nil if no custom user-agent string has been set. |
| - (NSString *)customUserAgent; |
| */ |
| HRESULT customUserAgent([out, retval] BSTR* userAgentString); |
| |
| /*! |
| @method userAgentForURL: |
| @abstract Get the appropriate user-agent string for a particular URL. |
| @param URL The URL. |
| @result The user-agent string for the supplied URL. |
| - (NSString *)userAgentForURL:(NSURL *)URL; |
| */ |
| HRESULT userAgentForURL([in] BSTR url, [out, retval] BSTR* userAgent); |
| |
| /*! |
| @method supportsTextEncoding |
| @abstract Find out if the current web page supports text encodings. |
| @result YES if the document view of the current web page can |
| support different text encodings. |
| - (BOOL)supportsTextEncoding; |
| */ |
| HRESULT supportsTextEncoding([out, retval] BOOL* supports); |
| |
| /*! |
| @method setCustomTextEncodingName: |
| @discussion Make the page display with a different text encoding; stops any load in progress. |
| The text encoding passed in overrides the normal text encoding smarts including |
| what's specified in a web page's header or HTTP response. |
| The text encoding automatically goes back to the default when the top level frame |
| changes to a new location. |
| Setting the text encoding name to nil makes the webView use default encoding rules. |
| @param encoding The text encoding name to use to display a page or nil. |
| - (void)setCustomTextEncodingName:(NSString *)encodingName; |
| */ |
| HRESULT setCustomTextEncodingName([in] BSTR encodingName); |
| |
| /*! |
| @method customTextEncodingName |
| @result The custom text encoding name or nil if no custom text encoding name has been set. |
| - (NSString *)customTextEncodingName; |
| */ |
| HRESULT customTextEncodingName([out, retval] BSTR* encodingName); |
| |
| /*! |
| @method setMediaStyle: |
| @discussion Set the media style for the WebView. The mediaStyle will override the normal value |
| of the CSS media property. Setting the value to nil will restore the normal value. |
| @param mediaStyle The value to use for the CSS media property. |
| - (void)setMediaStyle:(NSString *)mediaStyle; |
| */ |
| HRESULT setMediaStyle([in] BSTR media); |
| |
| /*! |
| @method mediaStyle |
| @result mediaStyle The value to use for the CSS media property, as set by setMediaStyle:. It |
| will be nil unless set by that method. |
| - (NSString *)mediaStyle; |
| */ |
| HRESULT mediaStyle([out, retval] BSTR* media); |
| |
| /*! |
| @method stringByEvaluatingJavaScriptFromString: |
| @param script The text of the JavaScript. |
| @result The result of the script, converted to a string, or nil for failure. |
| - (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script; |
| */ |
| HRESULT stringByEvaluatingJavaScriptFromString([in] BSTR script, [out, retval] BSTR* result); |
| |
| /*! |
| @method windowScriptObject |
| @discussion windowScriptObject return a WebScriptObject that represents the |
| window object from the script environment. |
| @result Returns the window object from the script environment. |
| - (WebScriptObject *)windowScriptObject; |
| */ |
| HRESULT windowScriptObject([out, retval] IWebScriptObject** webScriptObject); |
| |
| /*! |
| @method setPreferences: |
| @param preferences The preferences to use for the webView. |
| @abstract Override the standard setting for the webView. |
| - (void)setPreferences: (WebPreferences *)prefs; |
| */ |
| HRESULT setPreferences([in] IWebPreferences* prefs); |
| |
| /*! |
| @method preferences |
| @result Returns the preferences used by this webView. |
| @discussion This method will return [WebPreferences standardPreferences] if no |
| other instance of WebPreferences has been set. |
| - (WebPreferences *)preferences; |
| */ |
| HRESULT preferences([out, retval] IWebPreferences** prefs); |
| |
| /*! |
| @method setPreferencesIdentifier: |
| @param anIdentifier The string to use a prefix for storing values for this WebView in the user |
| defaults database. |
| @discussion If the WebPreferences for this WebView are stored in the user defaults database, the |
| string set in this method will be used a key prefix. |
| - (void)setPreferencesIdentifier:(NSString *)anIdentifier; |
| */ |
| HRESULT setPreferencesIdentifier([in] BSTR anIdentifier); |
| |
| /*! |
| @method preferencesIdentifier |
| @result Returns the WebPreferences key prefix. |
| - (NSString *)preferencesIdentifier; |
| */ |
| HRESULT preferencesIdentifier([out, retval] BSTR* anIdentifier); |
| |
| /*! |
| @method setHostWindow: |
| @param hostWindow The host window for the web view. |
| @discussion Parts of WebKit (such as plug-ins and JavaScript) depend on a window to function |
| properly. Set a host window so these parts continue to function even when the web view is |
| not in an actual window. |
| - (void)setHostWindow:(NSWindow *)hostWindow; |
| */ |
| HRESULT setHostWindow([in] OLE_HANDLE window); |
| |
| /*! |
| @method hostWindow |
| @result The host window for the web view. |
| - (NSWindow *)hostWindow; |
| */ |
| HRESULT hostWindow([out, retval] OLE_HANDLE* window); |
| |
| /*! |
| @method searchFor:direction:caseSensitive: |
| @abstract Searches a document view for a string and highlights the string if it is found. |
| Starts the search from the current selection. Will search across all frames. |
| @param string The string to search for. |
| @param forward YES to search forward, NO to seach backwards. |
| @param caseFlag YES to for case-sensitive search, NO for case-insensitive search. |
| @result YES if found, NO if not found. |
| - (BOOL)searchFor:(NSString *)string direction:(BOOL)forward caseSensitive:(BOOL)caseFlag wrap:(BOOL)wrapFlag; |
| */ |
| HRESULT searchFor([in] BSTR str, [in] BOOL forward, [in] BOOL caseFlag, [in] BOOL wrapFlag, [out, retval] BOOL* found); |
| |
| /*! |
| @method registerViewClass:representationClass:forMIMEType: |
| @discussion Register classes that implement WebDocumentView and WebDocumentRepresentation respectively. |
| A document class may register for a primary MIME type by excluding |
| a subtype, i.e. "video/" will match the document class with |
| all video types. More specific matching takes precedence |
| over general matching. |
| @param viewClass The WebDocumentView class to use to render data for a given MIME type. |
| @param representationClass The WebDocumentRepresentation class to use to represent data of the given MIME type. |
| @param MIMEType The MIME type to represent with an object of the given class. |
| + (void)registerViewClass:(Class)viewClass representationClass:(Class)representationClass forMIMEType:(NSString *)MIMEType; |
| */ |
| HRESULT registerViewClass([in] IWebDocumentView* view, [in] IWebDocumentRepresentation* representation, [in] BSTR forMIMEType); |
| |
| /*! |
| @method setGroupName: |
| @param groupName The name of the group for this WebView. |
| @discussion JavaScript may access named frames within the same group. |
| - (void)setGroupName:(NSString *)groupName; |
| */ |
| HRESULT setGroupName([in] BSTR groupName); |
| |
| /*! |
| @method groupName |
| @discussion The group name for this WebView. |
| - (NSString *)groupName; |
| */ |
| HRESULT groupName([out, retval] BSTR* groupName); |
| |
| /*! |
| @method estimatedProgress |
| @discussion An estimate of the percent complete for a document load. This |
| value will range from 0 to 1.0 and, once a load completes, will remain at 1.0 |
| until a new load starts, at which point it will be reset to 0. The value is an |
| estimate based on the total number of bytes expected to be received |
| for a document, including all it's possible subresources. For more accurate progress |
| indication it is recommended that you implement a WebFrameLoadDelegate and a |
| WebResourceLoadDelegate. |
| - (double)estimatedProgress; |
| */ |
| HRESULT estimatedProgress([out, retval] double* estimatedProgress); |
| |
| /*! |
| @method isLoading |
| @discussion Returns YES if there are any pending loads. |
| - (BOOL)isLoading; |
| */ |
| HRESULT isLoading([out, retval] BOOL* isLoading); |
| |
| /*! |
| @method elementAtPoint: |
| @param point A point in the coordinates of the WebView |
| @result An element dictionary describing the point |
| - (NSDictionary *)elementAtPoint:(NSPoint)point; |
| */ |
| HRESULT elementAtPoint([in] LPPOINT point, [out, retval] IPropertyBag** elementDictionary); |
| |
| /*! |
| @method pasteboardTypesForSelection |
| @abstract Returns the pasteboard types that WebView can use for the current selection |
| - (NSArray *)pasteboardTypesForSelection; |
| */ |
| HRESULT pasteboardTypesForSelection([out, retval] IEnumVARIANT** enumVariant); |
| |
| /*! |
| @method writeSelectionWithPasteboardTypes:toPasteboard: |
| @abstract Writes the current selection to the pasteboard |
| @param types The types that WebView will write to the pasteboard |
| @param pasteboard The pasteboard to write to |
| - (void)writeSelectionWithPasteboardTypes:(NSArray *)types toPasteboard:(NSPasteboard *)pasteboard; |
| */ |
| HRESULT writeSelectionWithPasteboardTypes([in, size_is(cTypes)] BSTR* types, [in] int cTypes, [in] IDataObject* pasteboard); |
| |
| /*! |
| @method pasteboardTypesForElement: |
| @abstract Returns the pasteboard types that WebView can use for an element |
| @param element The element |
| - (NSArray *)pasteboardTypesForElement:(NSDictionary *)element; |
| */ |
| HRESULT pasteboardTypesForElement([in] IPropertyBag* elementDictionary, [out, retval] IEnumVARIANT** enumVariant); |
| |
| /*! |
| @method writeElement:withPasteboardTypes:toPasteboard: |
| @abstract Writes an element to the pasteboard |
| @param element The element to write to the pasteboard |
| @param types The types that WebView will write to the pasteboard |
| @param pasteboard The pasteboard to write to |
| - (void)writeElement:(NSDictionary *)element withPasteboardTypes:(NSArray *)types toPasteboard:(NSPasteboard *)pasteboard; |
| */ |
| HRESULT writeElement([in] IPropertyBag* elementDictionary, [in, size_is(cWithPasteboardTypes)] BSTR* withPasteboardTypes, [in] int cWithPasteboardTypes, [in] IDataObject* pasteboard); |
| |
| /*! |
| @method selectedText |
| @abstract Returns the selection as a string |
| */ |
| HRESULT selectedText([out, retval] BSTR* text); |
| |
| /*! |
| @method centerSelectionInVisibleArea |
| @abstract Centers the selected text in the WebView |
| - (void)centerSelectionInVisibleArea:(id)sender; |
| */ |
| HRESULT centerSelectionInVisibleArea([in] IUnknown* sender); |
| |
| /*! |
| @method moveDragCaretToPoint: |
| @param point A point in the coordinates of the WebView |
| @discussion This method moves the caret that shows where something being dragged will be dropped. It may cause the WebView to scroll |
| to make the new position of the drag caret visible. |
| - (void)moveDragCaretToPoint:(NSPoint)point; |
| */ |
| HRESULT moveDragCaretToPoint([in] LPPOINT point); |
| |
| /*! |
| @method removeDragCaret |
| @abstract Removes the drag caret from the WebView |
| - (void)removeDragCaret; |
| */ |
| HRESULT removeDragCaret(); |
| |
| /*! |
| @method setDrawsBackground: |
| @param drawsBackround YES to cause the receiver to draw a default white background, NO otherwise. |
| @abstract Sets whether the receiver draws a default white background when the loaded page has no background specified. |
| - (void)setDrawsBackground:(BOOL)drawsBackround; |
| */ |
| HRESULT setDrawsBackground([in] BOOL drawsBackground); |
| |
| /*! |
| @method drawsBackground |
| @result Returns YES if the receiver draws a default white background, NO otherwise. |
| - (BOOL)drawsBackground; |
| */ |
| HRESULT drawsBackground([out, retval] BOOL* drawsBackground); |
| |
| /*! |
| @method setMainFrameURL: |
| @param URLString The URL to load in the mainFrame. |
| - (void)setMainFrameURL:(NSString *)URLString; |
| */ |
| HRESULT setMainFrameURL([in] BSTR urlString); |
| |
| /*! |
| @method mainFrameURL |
| @result Returns the main frame's current URL. |
| - (NSString *)mainFrameURL; |
| */ |
| HRESULT mainFrameURL([out, retval] BSTR* urlString); |
| |
| /*! |
| @method mainFrameDocument |
| @result Returns the main frame's DOMDocument. |
| - (DOMDocument *)mainFrameDocument; |
| */ |
| HRESULT mainFrameDocument([out, retval] IDOMDocument** document); |
| |
| /*! |
| @method mainFrameTitle |
| @result Returns the main frame's title if any, otherwise an empty string. |
| - (NSString *)mainFrameTitle; |
| */ |
| HRESULT mainFrameTitle([out, retval] BSTR* title); |
| |
| /*! |
| @method mainFrameIcon |
| @discussion The methods returns the site icon for the current page loaded in the mainFrame. |
| @result Returns the main frame's icon if any, otherwise nil. |
| - (NSImage *)mainFrameIcon; |
| */ |
| HRESULT mainFrameIcon([out, retval] OLE_HANDLE* hBitmap); |
| |
| /*! |
| @method registerURLSchemeAsLocal |
| @discussion Adds the scheme to the list of schemes to be treated as local. |
| @param scheme The scheme to register. |
| + (void)registerURLSchemeAsLocal:(NSString *)scheme; |
| */ |
| HRESULT registerURLSchemeAsLocal([in] BSTR scheme); |
| |
| /*! |
| @method close |
| @abstract Closes the receiver, unloading its web page and canceling any pending loads. |
| Once the receiver has closed, it will no longer respond to requests or fire delegate methods. |
| (However, the -close method itself may fire delegate methods.) |
| @discussion A garbage collected application is required to call close when the receiver is no longer needed. |
| The close method will be called automatically when the window or hostWindow closes and shouldCloseWithWindow returns YES. |
| A non-garbage collected application can still call close, providing a convenient way to prevent receiver |
| from doing any more loading and firing any future delegate methods. |
| */ |
| HRESULT close(); |
| } |
| |
| /* |
| @interface WebView (WebIBActions) <NSUserInterfaceValidations> |
| */ |
| [ |
| object, |
| oleautomation, |
| uuid(8F0E3A30-B924-44f8-990A-1AE61ED6C632), |
| pointer_default(unique) |
| ] |
| interface IWebIBActions : IUnknown |
| { |
| /* |
| - (IBAction)takeStringURLFrom:(id)sender; |
| */ |
| HRESULT takeStringURLFrom([in] IUnknown* sender); |
| |
| /* |
| - (IBAction)stopLoading:(id)sender; |
| */ |
| HRESULT stopLoading([in] IUnknown* sender); |
| |
| /* |
| - (IBAction)reload:(id)sender; |
| */ |
| HRESULT reload([in] IUnknown* sender); |
| |
| /* |
| - (BOOL)canGoBack; |
| */ |
| HRESULT canGoBack([in] IUnknown* sender, [out, retval] BOOL* result); |
| |
| /* |
| - (IBAction)goBack:(id)sender; |
| */ |
| HRESULT goBack([in] IUnknown* sender); |
| |
| /* |
| - (BOOL)canGoForward; |
| */ |
| HRESULT canGoForward([in] IUnknown* sender, [out, retval] BOOL* result); |
| |
| /* |
| - (IBAction)goForward:(id)sender; |
| */ |
| HRESULT goForward([in] IUnknown* sender); |
| |
| /* |
| - (BOOL)canMakeTextLarger; |
| */ |
| HRESULT canMakeTextLarger([in] IUnknown* sender, [out, retval] BOOL* result); |
| |
| /* |
| - (IBAction)makeTextLarger:(id)sender; |
| */ |
| HRESULT makeTextLarger([in] IUnknown* sender); |
| |
| /* |
| - (BOOL)canMakeTextSmaller; |
| */ |
| HRESULT canMakeTextSmaller([in] IUnknown* sender, [out, retval] BOOL* result); |
| |
| /* |
| - (IBAction)makeTextSmaller:(id)sender; |
| */ |
| HRESULT makeTextSmaller([in] IUnknown* sender); |
| |
| /* |
| - (BOOL)canMakeTextStandardSize; |
| */ |
| HRESULT canMakeTextStandardSize([in] IUnknown* sender, [out, retval] BOOL* result); |
| |
| /* |
| - (IBAction)makeTextStandardSize:(id)sender; |
| */ |
| HRESULT makeTextStandardSize([in] IUnknown* sender); |
| |
| /* |
| - (IBAction)toggleContinuousSpellChecking:(id)sender; |
| */ |
| HRESULT toggleContinuousSpellChecking([in] IUnknown* sender); |
| |
| /* |
| - (IBAction)toggleSmartInsertDelete:(id)sender; |
| */ |
| HRESULT toggleSmartInsertDelete([in] IUnknown* sender); |
| |
| /* |
| - (void)toggleGrammarChecking:(id)sender |
| */ |
| HRESULT toggleGrammarChecking([in] IUnknown* sender); |
| |
| /*! |
| @method setPageSizeMultiplier: |
| @abstract Set a zoom factor for all views managed by this webView. |
| @param multiplier A fractional percentage value, 1.0 is 100%. |
| - (void)setPageSizeMultiplier:(float)multiplier; |
| */ |
| HRESULT setPageSizeMultiplier([in] float multiplier); |
| |
| /*! |
| @method pageSizeMultiplier |
| @result The page size multipler. |
| - (float)pageSizeMultiplier; |
| */ |
| HRESULT pageSizeMultiplier([out, retval] float* multiplier); |
| |
| /* |
| - (BOOL)canZoomPageIn; |
| */ |
| HRESULT canZoomPageIn([in] IUnknown* sender, [out, retval] BOOL* result); |
| |
| /* |
| - (IBAction)zoomPageIn:(id)sender; |
| */ |
| HRESULT zoomPageIn([in] IUnknown* sender); |
| |
| /* |
| - (BOOL)canZoomPageOut; |
| */ |
| HRESULT canZoomPageOut([in] IUnknown* sender, [out, retval] BOOL* result); |
| |
| /* |
| - (IBAction)zoomPageOut:(id)sender; |
| */ |
| HRESULT zoomPageOut([in] IUnknown* sender); |
| |
| /* |
| - (BOOL)canResetPageZoom; |
| */ |
| HRESULT canResetPageZoom([in] IUnknown* sender, [out, retval] BOOL* result); |
| |
| /* |
| - (IBAction)resetPageZoom:(id)sender; |
| */ |
| HRESULT resetPageZoom([in] IUnknown* sender); |
| |
| /* |
| - (IBAction)reloadFromOrigin:(id)sender; |
| */ |
| HRESULT reloadFromOrigin([in] IUnknown* sender); |
| } |
| |
| /* |
| @interface WebView (WebViewCSS) |
| */ |
| [ |
| object, |
| oleautomation, |
| uuid(ADF68A8C-336F-405c-A053-3D11A9D5B092), |
| pointer_default(unique) |
| ] |
| interface IWebViewCSS : IUnknown |
| { |
| /* |
| - (DOMCSSStyleDeclaration *)computedStyleForElement:(DOMElement *)element pseudoElement:(NSString *)pseudoElement; |
| */ |
| HRESULT computedStyleForElement([in] IDOMElement* element, [in] BSTR pseudoElement, [out, retval] IDOMCSSStyleDeclaration** style); |
| } |
| |
| /* |
| @interface WebView (WebViewEditing) |
| */ |
| [ |
| object, |
| oleautomation, |
| uuid(07BDAC9A-19A1-4086-864D-BAD9E0F00D5C), |
| pointer_default(unique) |
| ] |
| interface IWebViewEditing : IUnknown |
| { |
| /* |
| - (DOMRange *)editableDOMRangeForPoint:(NSPoint)point; |
| */ |
| HRESULT editableDOMRangeForPoint([in] LPPOINT point, [out, retval] IDOMRange** range); |
| |
| /* |
| - (void)setSelectedDOMRange:(DOMRange *)range affinity:(NSSelectionAffinity)selectionAffinity; |
| */ |
| HRESULT setSelectedDOMRange([in] IDOMRange* range, [in] WebSelectionAffinity affinity); |
| |
| /* |
| - (DOMRange *)selectedDOMRange; |
| */ |
| HRESULT selectedDOMRange([out, retval] IDOMRange** range); |
| |
| /* |
| - (NSSelectionAffinity)selectionAffinity; |
| */ |
| HRESULT selectionAffinity([out, retval] [out, retval] WebSelectionAffinity* affinity); |
| |
| /* |
| - (void)setEditable:(BOOL)flag; |
| */ |
| HRESULT setEditable([in] BOOL flag); |
| |
| /* |
| - (BOOL)isEditable; |
| */ |
| HRESULT isEditable([out, retval] BOOL* isEditable); |
| |
| /* |
| - (void)setTypingStyle:(DOMCSSStyleDeclaration *)style; |
| */ |
| HRESULT setTypingStyle([in] IDOMCSSStyleDeclaration* style); |
| |
| /* |
| - (DOMCSSStyleDeclaration *)typingStyle; |
| */ |
| HRESULT typingStyle([out, retval] IDOMCSSStyleDeclaration** style); |
| |
| /* |
| - (void)setSmartInsertDeleteEnabled:(BOOL)flag; |
| */ |
| HRESULT setSmartInsertDeleteEnabled([in] BOOL flag); |
| |
| /* |
| - (BOOL)smartInsertDeleteEnabled; |
| */ |
| HRESULT smartInsertDeleteEnabled([out, retval] BOOL* enabled); |
| |
| /* |
| - (void)setContinuousSpellCheckingEnabled:(BOOL)flag; |
| */ |
| HRESULT setContinuousSpellCheckingEnabled([in] BOOL flag); |
| |
| /* |
| - (BOOL)isContinuousSpellCheckingEnabled; |
| */ |
| HRESULT isContinuousSpellCheckingEnabled([out, retval] BOOL* enabled); |
| |
| /* |
| - (WebNSInt)spellCheckerDocumentTag; |
| */ |
| HRESULT spellCheckerDocumentTag([out, retval] int* tag); |
| |
| /* |
| - (NSUndoManager *)undoManager; |
| */ |
| HRESULT undoManager([out, retval] IWebUndoManager** manager); |
| |
| /* |
| - (void)setEditingDelegate:(id)delegate; |
| */ |
| HRESULT setEditingDelegate([in] IWebEditingDelegate* d); |
| |
| /* |
| - (id)editingDelegate; |
| */ |
| HRESULT editingDelegate([out, retval] IWebEditingDelegate** d); |
| |
| /* |
| - (DOMCSSStyleDeclaration *)styleDeclarationWithText:(NSString *)text; |
| */ |
| HRESULT styleDeclarationWithText([in] BSTR text, [out, retval] IDOMCSSStyleDeclaration** style); |
| |
| /* |
| - (BOOL)hasSelectedRange; |
| */ |
| HRESULT hasSelectedRange([out, retval] BOOL* hasSelectedRange); |
| |
| /* |
| - (BOOL)cutEnabled; |
| */ |
| HRESULT cutEnabled([out, retval] BOOL* enabled); |
| |
| /* |
| - (BOOL)copyEnabled; |
| */ |
| HRESULT copyEnabled([out, retval] BOOL* enabled); |
| |
| /* |
| - (BOOL)pasteEnabled; |
| */ |
| HRESULT pasteEnabled([out, retval] BOOL* enabled); |
| |
| /* |
| - (BOOL)deleteEnabled; |
| */ |
| HRESULT deleteEnabled([out, retval] BOOL* enabled); |
| |
| /* |
| - (BOOL)editingEnabled; |
| */ |
| HRESULT editingEnabled([out, retval] BOOL* enabled); |
| |
| /* |
| - (BOOL)isGrammarCheckingEnabled |
| */ |
| HRESULT isGrammarCheckingEnabled([out, retval] BOOL* enabled); |
| |
| /* |
| - (void)setGrammarCheckingEnabled:(BOOL)flag |
| */ |
| HRESULT setGrammarCheckingEnabled(BOOL enabled); |
| |
| /* |
| - (void)setSelectTrailingWhitespaceEnabled:(BOOL)flag; |
| */ |
| HRESULT setSelectTrailingWhitespaceEnabled([in] BOOL flag); |
| |
| /* |
| - (BOOL)selectTrailingWhitespaceEnabled; |
| */ |
| HRESULT isSelectTrailingWhitespaceEnabled([out, retval] BOOL* enabled); |
| } |
| |
| /* |
| @interface WebView (WebViewUndoableEditing) |
| */ |
| [ |
| object, |
| oleautomation, |
| uuid(639E7121-13C8-4a12-BC18-6E1F3D68F3C3), |
| pointer_default(unique) |
| ] |
| interface IWebViewUndoableEditing : IUnknown |
| { |
| /* |
| - (void)replaceSelectionWithNode:(DOMNode *)node; |
| */ |
| HRESULT replaceSelectionWithNode([in] IDOMNode* node); |
| |
| /* |
| - (void)replaceSelectionWithText:(NSString *)text; |
| */ |
| HRESULT replaceSelectionWithText([in] BSTR text); |
| |
| /* |
| - (void)replaceSelectionWithMarkupString:(NSString *)markupString; |
| */ |
| HRESULT replaceSelectionWithMarkupString([in] BSTR markupString); |
| |
| /* |
| - (void)replaceSelectionWithArchive:(WebArchive *)archive; |
| */ |
| HRESULT replaceSelectionWithArchive([in] IWebArchive* archive); |
| |
| /* |
| - (void)deleteSelection; |
| */ |
| HRESULT deleteSelection(); |
| |
| /* |
| - (void)clearSelection; |
| */ |
| HRESULT clearSelection(); |
| |
| /* |
| - (void)applyStyle:(DOMCSSStyleDeclaration *)style; |
| */ |
| HRESULT applyStyle([in] IDOMCSSStyleDeclaration* style); |
| } |
| |
| /* |
| @interface WebView (WebViewEditingActions) |
| */ |
| [ |
| object, |
| oleautomation, |
| uuid(7E066C42-8E81-4778-888D-D6CC93E27D4C), |
| pointer_default(unique) |
| ] |
| interface IWebViewEditingActions : IUnknown |
| { |
| /* |
| - (void)copy:(id)sender; |
| */ |
| HRESULT copy([in] IUnknown* sender); |
| |
| /* |
| - (void)cut:(id)sender; |
| */ |
| HRESULT cut([in] IUnknown* sender); |
| |
| /* |
| - (void)paste:(id)sender; |
| */ |
| HRESULT paste([in] IUnknown* sender); |
| |
| /* |
| - (void)copyURL:(id)sender; |
| */ |
| HRESULT copyURL([in] BSTR url); |
| |
| /* |
| - (void)copyFont:(id)sender; |
| */ |
| HRESULT copyFont([in] IUnknown* sender); |
| |
| /* |
| - (void)pasteFont:(id)sender; |
| */ |
| HRESULT pasteFont([in] IUnknown* sender); |
| |
| /* |
| - (void)delete:(id)sender; |
| */ |
| HRESULT delete_([in] IUnknown* sender); |
| |
| /* |
| - (void)pasteAsPlainText:(id)sender; |
| */ |
| HRESULT pasteAsPlainText([in] IUnknown* sender); |
| |
| /* |
| - (void)pasteAsRichText:(id)sender; |
| */ |
| HRESULT pasteAsRichText([in] IUnknown* sender); |
| |
| |
| /* |
| - (void)changeFont:(id)sender; |
| */ |
| HRESULT changeFont([in] IUnknown* sender); |
| |
| /* |
| - (void)changeAttributes:(id)sender; |
| */ |
| HRESULT changeAttributes([in] IUnknown* sender); |
| |
| /* |
| - (void)changeDocumentBackgroundColor:(id)sender; |
| */ |
| HRESULT changeDocumentBackgroundColor([in] IUnknown* sender); |
| |
| /* |
| - (void)changeColor:(id)sender; |
| */ |
| HRESULT changeColor([in] IUnknown* sender); |
| |
| |
| /* |
| - (void)alignCenter:(id)sender; |
| */ |
| HRESULT alignCenter([in] IUnknown* sender); |
| |
| /* |
| - (void)alignJustified:(id)sender; |
| */ |
| HRESULT alignJustified([in] IUnknown* sender); |
| |
| /* |
| - (void)alignLeft:(id)sender; |
| */ |
| HRESULT alignLeft([in] IUnknown* sender); |
| |
| /* |
| - (void)alignRight:(id)sender; |
| */ |
| HRESULT alignRight([in] IUnknown* sender); |
| |
| |
| /* |
| - (void)checkSpelling:(id)sender; |
| */ |
| HRESULT checkSpelling([in] IUnknown* sender); |
| |
| /* |
| - (void)showGuessPanel:(id)sender; |
| */ |
| HRESULT showGuessPanel([in] IUnknown* sender); |
| |
| /* |
| - (void)performFindPanelAction:(id)sender; |
| */ |
| HRESULT performFindPanelAction([in] IUnknown* sender); |
| |
| |
| /* |
| - (void)startSpeaking:(id)sender; |
| */ |
| HRESULT startSpeaking([in] IUnknown* sender); |
| |
| /* |
| - (void)stopSpeaking:(id)sender; |
| */ |
| HRESULT stopSpeaking([in] IUnknown* sender); |
| } |
| |
| |
| |