Home | History | Annotate | Download | only in Interfaces
      1 /*
      2  * Copyright (C) 2006, 2007, 2008 Apple Inc.  All rights reserved.
      3  *
      4  * Redistribution and use in source and binary forms, with or without
      5  * modification, are permitted provided that the following conditions
      6  * are met:
      7  * 1. Redistributions of source code must retain the above copyright
      8  *    notice, this list of conditions and the following disclaimer.
      9  * 2. Redistributions in binary form must reproduce the above copyright
     10  *    notice, this list of conditions and the following disclaimer in the
     11  *    documentation and/or other materials provided with the distribution.
     12  *
     13  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
     14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
     17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
     21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     24  */
     25 
     26 cpp_quote("/* identifiers for commands that can be called by the webview's frame */")
     27 cpp_quote("enum WebViewCmd { Cut = 100, Copy, Paste, ForwardDelete, SelectAll, Undo, Redo };")
     28 
     29 cpp_quote("#define WebViewProgressStartedNotification TEXT(\"WebProgressStartedNotification\")")
     30 cpp_quote("#define WebViewProgressEstimateChangedNotification TEXT(\"WebProgressEstimateChangedNotification\")")
     31 cpp_quote("#define WebViewProgressFinishedNotification TEXT(\"WebProgressFinishedNotification\")")
     32 cpp_quote("#define WebViewDidChangeSelectionNotification TEXT(\"WebViewDidChangeSelectionNotification\")")
     33 
     34 #ifndef DO_NO_IMPORTS
     35 import "oaidl.idl";
     36 import "ocidl.idl";
     37 import "IWebUIDelegate.idl";
     38 import "IWebURLResponse.idl";
     39 import "IWebResourceLoadDelegate.idl";
     40 import "IWebDownload.idl";
     41 import "IWebFrameLoadDelegate.idl";
     42 import "IWebPolicyDelegate.idl";
     43 import "IWebBackForwardList.idl";
     44 import "IWebHistoryItem.idl";
     45 import "IWebPreferences.idl";
     46 import "DOMCSS.idl";
     47 import "IWebUndoManager.idl";
     48 import "IWebEditingDelegate.idl";
     49 import "DOMRange.idl";
     50 #endif
     51 
     52 interface IDOMCSSStyleDeclaration;
     53 interface IDOMDocument;
     54 interface IDOMElement;
     55 interface IDOMNode;
     56 interface IDOMRange;
     57 
     58 interface IWebArchive;
     59 interface IWebBackForwardList;
     60 interface IWebDataSource;
     61 interface IWebFrame;
     62 interface IWebFrameView;
     63 interface IWebHistoryItem;
     64 interface IWebPreferences;
     65 interface IWebScriptObject;
     66 
     67 interface IWebUIDelegate;
     68 interface IWebResourceLoadDelegate;
     69 interface IWebDownloadDelegate;
     70 interface IWebEditingDelegate;
     71 interface IWebFrameLoadDelegate;
     72 interface IWebPolicyDelegate;
     73 interface IWebDocumentView;
     74 interface IWebDocumentRepresentation;
     75 interface IWebUndoManager;
     76 
     77 /* These are the keys for the WebElementPropertyBag */
     78 const LPCOLESTR WebElementDOMNodeKey = L"WebElementDOMNodeKey";
     79 const LPCOLESTR WebElementFrameKey = L"WebElementFrameKey";
     80 const LPCOLESTR WebElementImageAltStringKey = L"WebElementImageAltStringKey";
     81 const LPCOLESTR WebElementImageKey = L"WebElementImageKey";
     82 const LPCOLESTR WebElementImageRectKey = L"WebElementImageRectKey";
     83 const LPCOLESTR WebElementImageURLKey = L"WebElementImageURLKey";
     84 const LPCOLESTR WebElementIsSelectedKey = L"WebElementIsSelectedKey";
     85 const LPCOLESTR WebElementSpellingToolTipKey = L"WebElementSpellingToolTipKey";
     86 const LPCOLESTR WebElementTitleKey = L"WebElementTitleKey";
     87 const LPCOLESTR WebElementLinkURLKey = L"WebElementLinkURLKey";
     88 const LPCOLESTR WebElementLinkTargetFrameKey = L"WebElementLinkTargetFrameKey";
     89 const LPCOLESTR WebElementLinkTitleKey = L"WebElementLinkTitleKey";
     90 const LPCOLESTR WebElementLinkLabelKey = L"WebElementLinkLabelKey";
     91 const LPCOLESTR WebElementIsContentEditableKey = L"WebElementIsContentEditableKey";
     92 
     93 /*!
     94     @class IEnumTextMatches
     95 */
     96 [
     97     object,
     98     oleautomation,
     99     uuid(C0CDE63A-5ED1-453f-B937-93B1A61AD3B3),
    100     pointer_default(unique)
    101 ]
    102 interface IEnumTextMatches : IUnknown
    103 {
    104     HRESULT Next(ULONG celt, RECT* rect, ULONG* pceltFetched);
    105     HRESULT Skip(ULONG celt);
    106     HRESULT Reset(void);
    107     HRESULT Clone(IEnumTextMatches** ppenum);
    108 };
    109 
    110 /*!
    111     @class WebView
    112     WebView manages the interaction between WebFrameViews and WebDataSources.  Modification
    113     of the policies and behavior of the WebKit is largely managed by WebViews and their
    114     delegates.
    115 
    116     <p>
    117     Typical usage:
    118     </p>
    119     <pre>
    120     WebView *webView;
    121     WebFrame *mainFrame;
    122 
    123     webView  = [[WebView alloc] initWithFrame: NSMakeRect (0,0,640,480)];
    124     mainFrame = [webView mainFrame];
    125     [mainFrame loadRequest:request];
    126     </pre>
    127 
    128     WebViews have the following delegates:  WebUIDelegate, WebResourceLoadDelegate,
    129     WebFrameLoadDelegate, and WebPolicyDelegate.
    130 
    131     WebKit depends on the WebView's WebUIDelegate for all window
    132     related management, including opening new windows and controlling the user interface
    133     elements in those windows.
    134 
    135     WebResourceLoadDelegate is used to monitor the progress of resources as they are
    136     loaded.  This delegate may be used to present users with a progress monitor.
    137 
    138     The WebFrameLoadDelegate receives messages when the URL in a WebFrame is
    139     changed.
    140 
    141     WebView's WebPolicyDelegate can make determinations about how
    142     content should be handled, based on the resource's URL and MIME type.
    143 
    144     @interface WebView : NSView
    145 */
    146 [
    147     object,
    148     oleautomation,
    149     hidden,
    150     uuid(174BBEFD-058E-49c7-91DF-6F110AA4AC28),
    151     pointer_default(unique)
    152 ]
    153 interface IWebView : IUnknown
    154 {
    155     /*!
    156         @method canShowMIMEType:
    157         @abstract Checks if the WebKit can show content of a certain MIME type.
    158         @param MIMEType The MIME type to check.
    159         @result YES if the WebKit can show content with MIMEtype.
    160         + (BOOL)canShowMIMEType:(NSString *)MIMEType;
    161     */
    162     HRESULT canShowMIMEType([in] BSTR mimeType, [out, retval] BOOL* canShow);
    163 
    164     /*!
    165         @method canShowMIMETypeAsHTML:
    166         @abstract Checks if the the MIME type is a type that the WebKit will interpret as HTML.
    167         @param MIMEType The MIME type to check.
    168         @result YES if the MIMEtype in an HTML type.
    169         + (BOOL)canShowMIMETypeAsHTML:(NSString *)MIMEType;
    170     */
    171     HRESULT canShowMIMETypeAsHTML([in] BSTR mimeType, [out, retval] BOOL* canShow);
    172 
    173     /*!
    174         @method MIMETypesShownAsHTML
    175         @result Returns an array of NSStrings that describe the MIME types
    176         WebKit will attempt to render as HTML.
    177         + (NSArray *)MIMETypesShownAsHTML;
    178     */
    179     HRESULT MIMETypesShownAsHTML([out, retval] IEnumVARIANT** enumVariant);
    180 
    181     /*!
    182         @method setMIMETypesShownAsHTML:
    183         @discussion Sets the array of NSString MIME types that WebKit will
    184         attempt to render as HTML.  Typically you will retrieve the built-in
    185         array using MIMETypesShownAsHTML and add additional MIME types to that
    186         array.
    187         + (void)setMIMETypesShownAsHTML:(NSArray *)MIMETypes;
    188     */
    189     HRESULT setMIMETypesShownAsHTML([in, size_is(cMimeTypes)] BSTR* mimeTypes, [in] int cMimeTypes);
    190 
    191     /*!
    192         @method URLFromPasteboard:
    193         @abstract Returns a URL from a pasteboard
    194         @param pasteboard The pasteboard with a URL
    195         @result A URL if the pasteboard has one. Nil if it does not.
    196         @discussion This method differs than NSURL's URLFromPasteboard method in that it tries multiple pasteboard types
    197         including NSURLPboardType to find a URL on the pasteboard.
    198         + (NSURL *)URLFromPasteboard:(NSPasteboard *)pasteboard;
    199     */
    200     HRESULT URLFromPasteboard([in] IDataObject* pasteboard, [out, retval] BSTR* url);
    201 
    202     /*!
    203         @method URLTitleFromPasteboard:
    204         @abstract Returns a URL title from a pasteboard
    205         @param pasteboard The pasteboard with a URL title
    206         @result A URL title if the pasteboard has one. Nil if it does not.
    207         @discussion This method returns a title that refers a URL on the pasteboard. An example of this is the link label
    208         which is the text inside the anchor tag.
    209         + (NSString *)URLTitleFromPasteboard:(NSPasteboard *)pasteboard;
    210     */
    211     HRESULT URLTitleFromPasteboard([in] IDataObject* pasteboard, [out, retval] BSTR* urlTitle);
    212 
    213     /*!
    214         @method initWithFrame:frameName:groupName:
    215         @abstract The designated initializer for WebView.
    216         @discussion Initialize a WebView with the supplied parameters. This method will
    217         create a main WebFrame with the view. Passing a top level frame name is useful if you
    218         handle a targetted frame navigation that would normally open a window in some other
    219         way that still ends up creating a new WebView.
    220         @param frame The frame used to create the view.
    221         @param frameName The name to use for the top level frame. May be nil.
    222         @param groupName The name of the webView set to which this webView will be added.  May be nil.
    223         @result Returns an initialized WebView.
    224         - (id)initWithFrame:(NSRect)frame frameName:(NSString *)frameName groupName:(NSString *)groupName;
    225     */
    226     HRESULT initWithFrame([in] RECT frame, [in] BSTR frameName, [in] BSTR groupName);
    227 
    228     /*!
    229         @method setUIDelegate:
    230         @abstract Set the WebView's WebUIDelegate.
    231         @param delegate The WebUIDelegate to set as the delegate.
    232         - (void)setUIDelegate:(id)delegate;
    233     */
    234     HRESULT setUIDelegate([in] IWebUIDelegate* d);
    235 
    236     /*!
    237         @method UIDelegate
    238         @abstract Return the WebView's WebUIDelegate.
    239         @result The WebView's WebUIDelegate.
    240         - (id)UIDelegate;
    241     */
    242     HRESULT uiDelegate([retval, out] IWebUIDelegate** d);
    243 
    244     /*!
    245         @method setResourceLoadDelegate:
    246         @abstract Set the WebView's WebResourceLoadDelegate load delegate.
    247         @param delegate The WebResourceLoadDelegate to set as the load delegate.
    248         - (void)setResourceLoadDelegate:(id)delegate;
    249     */
    250     HRESULT setResourceLoadDelegate([in] IWebResourceLoadDelegate* d);
    251 
    252     /*!
    253         @method resourceLoadDelegate
    254         @result Return the WebView's WebResourceLoadDelegate.
    255         - (id)resourceLoadDelegate;
    256     */
    257     HRESULT resourceLoadDelegate([retval, out] IWebResourceLoadDelegate** d);
    258 
    259     /*!
    260         @method setDownloadDelegate:
    261         @abstract Set the WebView's WebDownloadDelegate.
    262         @discussion The download delegate is retained by WebDownload when any downloads are in progress.
    263         @param delegate The WebDownloadDelegate to set as the download delegate.
    264         - (void)setDownloadDelegate:(id)delegate;
    265     */
    266     HRESULT setDownloadDelegate([in] IWebDownloadDelegate* d);
    267 
    268     /*!
    269         @method downloadDelegate
    270         @abstract Return the WebView's WebDownloadDelegate.
    271         @result The WebView's WebDownloadDelegate.
    272         - (id)downloadDelegate;
    273     */
    274     HRESULT downloadDelegate([retval, out] IWebDownloadDelegate** d);
    275 
    276     /*!
    277         @method setFrameLoadDelegate:
    278         @abstract Set the WebView's WebFrameLoadDelegate delegate.
    279         @param delegate The WebFrameLoadDelegate to set as the delegate.
    280         - (void)setFrameLoadDelegate:(id)delegate;
    281     */
    282     HRESULT setFrameLoadDelegate([in] IWebFrameLoadDelegate* d);
    283 
    284     /*!
    285         @method frameLoadDelegate
    286         @abstract Return the WebView's WebFrameLoadDelegate delegate.
    287         @result The WebView's WebFrameLoadDelegate delegate.
    288         - (id)frameLoadDelegate;
    289     */
    290     HRESULT frameLoadDelegate([retval, out] IWebFrameLoadDelegate** d);
    291 
    292     /*!
    293         @method setPolicyDelegate:
    294         @abstract Set the WebView's WebPolicyDelegate delegate.
    295         @param delegate The WebPolicyDelegate to set as the delegate.
    296         - (void)setPolicyDelegate:(id)delegate;
    297     */
    298     HRESULT setPolicyDelegate([in] IWebPolicyDelegate* d);
    299 
    300     /*!
    301         @method policyDelegate
    302         @abstract Return the WebView's WebPolicyDelegate.
    303         @result The WebView's WebPolicyDelegate.
    304         - (id)policyDelegate;
    305     */
    306     HRESULT policyDelegate([retval, out] IWebPolicyDelegate** d);
    307 
    308     /*!
    309         @method mainFrame
    310         @abstract Return the top level frame.
    311         @discussion Note that even document that are not framesets will have a
    312         mainFrame.
    313         @result The main frame.
    314         - (WebFrame *)mainFrame;
    315     */
    316     HRESULT mainFrame([retval, out] IWebFrame** frame);
    317 
    318     /*!
    319         @method focusedFrame
    320     @abstract Return the frame that has the current focus.
    321     */
    322     HRESULT focusedFrame([retval, out] IWebFrame** frame);
    323 
    324     /*!
    325         @method backForwardList
    326         @result The backforward list for this webView.
    327         - (WebBackForwardList *)backForwardList;
    328     */
    329     HRESULT backForwardList([retval, out] IWebBackForwardList** list);
    330 
    331     /*!
    332         @method setMaintainsBackForwardList:
    333         @abstract Enable or disable the use of a backforward list for this webView.
    334         @param flag Turns use of the back forward list on or off
    335         - (void)setMaintainsBackForwardList:(BOOL)flag;
    336     */
    337     HRESULT setMaintainsBackForwardList([in] BOOL flag);
    338 
    339     /*!
    340         @method goBack
    341         @abstract Go back to the previous URL in the backforward list.
    342         @result YES if able to go back in the backforward list, NO otherwise.
    343         - (BOOL)goBack;
    344     */
    345     HRESULT goBack([out, retval] BOOL* succeeded);
    346 
    347     /*!
    348         @method goForward
    349         @abstract Go forward to the next URL in the backforward list.
    350         @result YES if able to go forward in the backforward list, NO otherwise.
    351         - (BOOL)goForward;
    352     */
    353     HRESULT goForward([out, retval] BOOL* succeeded);
    354 
    355     /*!
    356         @method goToBackForwardItem:
    357         @abstract Go back or forward to an item in the backforward list.
    358         @result YES if able to go to the item, NO otherwise.
    359         - (BOOL)goToBackForwardItem:(WebHistoryItem *)item;
    360     */
    361     HRESULT goToBackForwardItem([in] IWebHistoryItem* item, [out, retval] BOOL* succeeded);
    362 
    363     /*!
    364         @method setTextSizeMultiplier:
    365         @abstract Change the size of the text rendering in views managed by this webView.
    366         @param multiplier A fractional percentage value, 1.0 is 100%.
    367         - (void)setTextSizeMultiplier:(float)multiplier;
    368     */
    369     HRESULT setTextSizeMultiplier([in] float multiplier);
    370 
    371     /*!
    372         @method textSizeMultiplier
    373         @result The text size multipler.
    374         - (float)textSizeMultiplier;
    375     */
    376     HRESULT textSizeMultiplier([out, retval] float* multiplier);
    377 
    378     /*!
    379         @method setApplicationNameForUserAgent:
    380         @abstract Set the application name.
    381         @discussion This name will be used in user-agent strings
    382         that are chosen for best results in rendering web pages.
    383         @param applicationName The application name
    384         - (void)setApplicationNameForUserAgent:(NSString *)applicationName;
    385     */
    386     HRESULT setApplicationNameForUserAgent([in] BSTR applicationName);
    387 
    388     /*!
    389         @method applicationNameForUserAgent
    390         @result The name of the application as used in the user-agent string.
    391         - (NSString *)applicationNameForUserAgent;
    392     */
    393     HRESULT applicationNameForUserAgent([out, retval] BSTR* applicationName);
    394 
    395     /*!
    396         @method setCustomUserAgent:
    397         @abstract Set the user agent.
    398         @discussion Setting this means that the webView should use this user-agent string
    399         instead of constructing a user-agent string for each URL. Setting it to nil
    400         causes the webView to construct the user-agent string for each URL
    401         for best results rendering web pages.
    402         @param userAgentString The user agent description
    403         - (void)setCustomUserAgent:(NSString *)userAgentString;
    404     */
    405     HRESULT setCustomUserAgent([in] BSTR userAgentString);
    406 
    407     /*!
    408         @method customUserAgent
    409         @result The custom user-agent string or nil if no custom user-agent string has been set.
    410         - (NSString *)customUserAgent;
    411     */
    412     HRESULT customUserAgent([out, retval] BSTR* userAgentString);
    413 
    414     /*!
    415         @method userAgentForURL:
    416         @abstract Get the appropriate user-agent string for a particular URL.
    417         @param URL The URL.
    418         @result The user-agent string for the supplied URL.
    419         - (NSString *)userAgentForURL:(NSURL *)URL;
    420     */
    421     HRESULT userAgentForURL([in] BSTR url, [out, retval] BSTR* userAgent);
    422 
    423     /*!
    424         @method supportsTextEncoding
    425         @abstract Find out if the current web page supports text encodings.
    426         @result YES if the document view of the current web page can
    427         support different text encodings.
    428         - (BOOL)supportsTextEncoding;
    429     */
    430     HRESULT supportsTextEncoding([out, retval] BOOL* supports);
    431 
    432     /*!
    433         @method setCustomTextEncodingName:
    434         @discussion Make the page display with a different text encoding; stops any load in progress.
    435         The text encoding passed in overrides the normal text encoding smarts including
    436         what's specified in a web page's header or HTTP response.
    437         The text encoding automatically goes back to the default when the top level frame
    438         changes to a new location.
    439         Setting the text encoding name to nil makes the webView use default encoding rules.
    440         @param encoding The text encoding name to use to display a page or nil.
    441         - (void)setCustomTextEncodingName:(NSString *)encodingName;
    442     */
    443     HRESULT setCustomTextEncodingName([in] BSTR encodingName);
    444 
    445     /*!
    446         @method customTextEncodingName
    447         @result The custom text encoding name or nil if no custom text encoding name has been set.
    448         - (NSString *)customTextEncodingName;
    449     */
    450     HRESULT customTextEncodingName([out, retval] BSTR* encodingName);
    451 
    452     /*!
    453         @method setMediaStyle:
    454         @discussion Set the media style for the WebView.  The mediaStyle will override the normal value
    455         of the CSS media property.  Setting the value to nil will restore the normal value.
    456         @param mediaStyle The value to use for the CSS media property.
    457         - (void)setMediaStyle:(NSString *)mediaStyle;
    458     */
    459     HRESULT setMediaStyle([in] BSTR media);
    460 
    461     /*!
    462         @method mediaStyle
    463         @result mediaStyle The value to use for the CSS media property, as set by setMediaStyle:.  It
    464         will be nil unless set by that method.
    465         - (NSString *)mediaStyle;
    466     */
    467     HRESULT mediaStyle([out, retval] BSTR* media);
    468 
    469     /*!
    470         @method stringByEvaluatingJavaScriptFromString:
    471         @param script The text of the JavaScript.
    472         @result The result of the script, converted to a string, or nil for failure.
    473         - (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
    474     */
    475     HRESULT stringByEvaluatingJavaScriptFromString([in] BSTR script, [out, retval] BSTR* result);
    476 
    477     /*!
    478         @method windowScriptObject
    479         @discussion windowScriptObject return a WebScriptObject that represents the
    480         window object from the script environment.
    481         @result Returns the window object from the script environment.
    482         - (WebScriptObject *)windowScriptObject;
    483     */
    484     HRESULT windowScriptObject([out, retval] IWebScriptObject** webScriptObject);
    485 
    486     /*!
    487         @method setPreferences:
    488         @param preferences The preferences to use for the webView.
    489         @abstract Override the standard setting for the webView.
    490         - (void)setPreferences: (WebPreferences *)prefs;
    491     */
    492     HRESULT setPreferences([in] IWebPreferences* prefs);
    493 
    494     /*!
    495         @method preferences
    496         @result Returns the preferences used by this webView.
    497         @discussion This method will return [WebPreferences standardPreferences] if no
    498         other instance of WebPreferences has been set.
    499         - (WebPreferences *)preferences;
    500     */
    501     HRESULT preferences([out, retval] IWebPreferences** prefs);
    502 
    503     /*!
    504         @method setPreferencesIdentifier:
    505         @param anIdentifier The string to use a prefix for storing values for this WebView in the user
    506         defaults database.
    507         @discussion If the WebPreferences for this WebView are stored in the user defaults database, the
    508         string set in this method will be used a key prefix.
    509         - (void)setPreferencesIdentifier:(NSString *)anIdentifier;
    510     */
    511     HRESULT setPreferencesIdentifier([in] BSTR anIdentifier);
    512 
    513     /*!
    514         @method preferencesIdentifier
    515         @result Returns the WebPreferences key prefix.
    516         - (NSString *)preferencesIdentifier;
    517     */
    518     HRESULT preferencesIdentifier([out, retval] BSTR* anIdentifier);
    519 
    520     /*!
    521         @method setHostWindow:
    522         @param hostWindow The host window for the web view.
    523         @discussion Parts of WebKit (such as plug-ins and JavaScript) depend on a window to function
    524         properly. Set a host window so these parts continue to function even when the web view is
    525         not in an actual window.
    526         - (void)setHostWindow:(NSWindow *)hostWindow;
    527     */
    528     HRESULT setHostWindow([in] OLE_HANDLE window);
    529 
    530     /*!
    531         @method hostWindow
    532         @result The host window for the web view.
    533         - (NSWindow *)hostWindow;
    534     */
    535     HRESULT hostWindow([out, retval] OLE_HANDLE* window);
    536 
    537     /*!
    538         @method searchFor:direction:caseSensitive:
    539         @abstract Searches a document view for a string and highlights the string if it is found.
    540         Starts the search from the current selection.  Will search across all frames.
    541         @param string The string to search for.
    542         @param forward YES to search forward, NO to seach backwards.
    543         @param caseFlag YES to for case-sensitive search, NO for case-insensitive search.
    544         @result YES if found, NO if not found.
    545         - (BOOL)searchFor:(NSString *)string direction:(BOOL)forward caseSensitive:(BOOL)caseFlag wrap:(BOOL)wrapFlag;
    546     */
    547     HRESULT searchFor([in] BSTR str, [in] BOOL forward, [in] BOOL caseFlag, [in] BOOL wrapFlag, [out, retval] BOOL* found);
    548 
    549     /*!
    550         @method registerViewClass:representationClass:forMIMEType:
    551         @discussion Register classes that implement WebDocumentView and WebDocumentRepresentation respectively.
    552         A document class may register for a primary MIME type by excluding
    553         a subtype, i.e. "video/" will match the document class with
    554         all video types.  More specific matching takes precedence
    555         over general matching.
    556         @param viewClass The WebDocumentView class to use to render data for a given MIME type.
    557         @param representationClass The WebDocumentRepresentation class to use to represent data of the given MIME type.
    558         @param MIMEType The MIME type to represent with an object of the given class.
    559         + (void)registerViewClass:(Class)viewClass representationClass:(Class)representationClass forMIMEType:(NSString *)MIMEType;
    560     */
    561     HRESULT registerViewClass([in] IWebDocumentView* view, [in] IWebDocumentRepresentation* representation, [in] BSTR forMIMEType);
    562 
    563     /*!
    564         @method setGroupName:
    565         @param groupName The name of the group for this WebView.
    566         @discussion JavaScript may access named frames within the same group.
    567         - (void)setGroupName:(NSString *)groupName;
    568     */
    569     HRESULT setGroupName([in] BSTR groupName);
    570 
    571     /*!
    572         @method groupName
    573         @discussion The group name for this WebView.
    574         - (NSString *)groupName;
    575     */
    576     HRESULT groupName([out, retval] BSTR* groupName);
    577 
    578     /*!
    579         @method estimatedProgress
    580         @discussion An estimate of the percent complete for a document load.  This
    581         value will range from 0 to 1.0 and, once a load completes, will remain at 1.0
    582         until a new load starts, at which point it will be reset to 0.  The value is an
    583         estimate based on the total number of bytes expected to be received
    584         for a document, including all it's possible subresources.  For more accurate progress
    585         indication it is recommended that you implement a WebFrameLoadDelegate and a
    586         WebResourceLoadDelegate.
    587         - (double)estimatedProgress;
    588     */
    589     HRESULT estimatedProgress([out, retval] double* estimatedProgress);
    590 
    591     /*!
    592         @method isLoading
    593         @discussion Returns YES if there are any pending loads.
    594         - (BOOL)isLoading;
    595     */
    596     HRESULT isLoading([out, retval] BOOL* isLoading);
    597 
    598     /*!
    599         @method elementAtPoint:
    600         @param point A point in the coordinates of the WebView
    601         @result An element dictionary describing the point
    602         - (NSDictionary *)elementAtPoint:(NSPoint)point;
    603     */
    604     HRESULT elementAtPoint([in] LPPOINT point, [out, retval] IPropertyBag** elementDictionary);
    605 
    606     /*!
    607         @method pasteboardTypesForSelection
    608         @abstract Returns the pasteboard types that WebView can use for the current selection
    609         - (NSArray *)pasteboardTypesForSelection;
    610     */
    611     HRESULT pasteboardTypesForSelection([out, retval] IEnumVARIANT** enumVariant);
    612 
    613     /*!
    614         @method writeSelectionWithPasteboardTypes:toPasteboard:
    615         @abstract Writes the current selection to the pasteboard
    616         @param types The types that WebView will write to the pasteboard
    617         @param pasteboard The pasteboard to write to
    618         - (void)writeSelectionWithPasteboardTypes:(NSArray *)types toPasteboard:(NSPasteboard *)pasteboard;
    619     */
    620     HRESULT writeSelectionWithPasteboardTypes([in, size_is(cTypes)] BSTR* types, [in] int cTypes, [in] IDataObject* pasteboard);
    621 
    622     /*!
    623         @method pasteboardTypesForElement:
    624         @abstract Returns the pasteboard types that WebView can use for an element
    625         @param element The element
    626         - (NSArray *)pasteboardTypesForElement:(NSDictionary *)element;
    627     */
    628     HRESULT pasteboardTypesForElement([in] IPropertyBag* elementDictionary, [out, retval] IEnumVARIANT** enumVariant);
    629 
    630     /*!
    631         @method writeElement:withPasteboardTypes:toPasteboard:
    632         @abstract Writes an element to the pasteboard
    633         @param element The element to write to the pasteboard
    634         @param types The types that WebView will write to the pasteboard
    635         @param pasteboard The pasteboard to write to
    636         - (void)writeElement:(NSDictionary *)element withPasteboardTypes:(NSArray *)types toPasteboard:(NSPasteboard *)pasteboard;
    637     */
    638     HRESULT writeElement([in] IPropertyBag* elementDictionary, [in, size_is(cWithPasteboardTypes)] BSTR* withPasteboardTypes, [in] int cWithPasteboardTypes, [in] IDataObject* pasteboard);
    639 
    640     /*!
    641         @method selectedText
    642         @abstract Returns the selection as a string
    643     */
    644     HRESULT selectedText([out, retval] BSTR* text);
    645 
    646     /*!
    647         @method centerSelectionInVisibleArea
    648         @abstract Centers the selected text in the WebView
    649         - (void)centerSelectionInVisibleArea:(id)sender;
    650     */
    651     HRESULT centerSelectionInVisibleArea([in] IUnknown* sender);
    652 
    653     /*!
    654         @method moveDragCaretToPoint:
    655         @param point A point in the coordinates of the WebView
    656         @discussion This method moves the caret that shows where something being dragged will be dropped. It may cause the WebView to scroll
    657         to make the new position of the drag caret visible.
    658         - (void)moveDragCaretToPoint:(NSPoint)point;
    659     */
    660     HRESULT moveDragCaretToPoint([in] LPPOINT point);
    661 
    662     /*!
    663         @method removeDragCaret
    664         @abstract Removes the drag caret from the WebView
    665         - (void)removeDragCaret;
    666     */
    667     HRESULT removeDragCaret();
    668 
    669     /*!
    670         @method setDrawsBackground:
    671         @param drawsBackround YES to cause the receiver to draw a default white background, NO otherwise.
    672         @abstract Sets whether the receiver draws a default white background when the loaded page has no background specified.
    673         - (void)setDrawsBackground:(BOOL)drawsBackround;
    674     */
    675     HRESULT setDrawsBackground([in] BOOL drawsBackground);
    676 
    677     /*!
    678         @method drawsBackground
    679         @result Returns YES if the receiver draws a default white background, NO otherwise.
    680         - (BOOL)drawsBackground;
    681     */
    682     HRESULT drawsBackground([out, retval] BOOL* drawsBackground);
    683 
    684     /*!
    685         @method setMainFrameURL:
    686         @param URLString The URL to load in the mainFrame.
    687         - (void)setMainFrameURL:(NSString *)URLString;
    688     */
    689     HRESULT setMainFrameURL([in] BSTR urlString);
    690 
    691     /*!
    692         @method mainFrameURL
    693         @result Returns the main frame's current URL.
    694         - (NSString *)mainFrameURL;
    695     */
    696     HRESULT mainFrameURL([out, retval] BSTR* urlString);
    697 
    698     /*!
    699         @method mainFrameDocument
    700         @result Returns the main frame's DOMDocument.
    701         - (DOMDocument *)mainFrameDocument;
    702     */
    703     HRESULT mainFrameDocument([out, retval] IDOMDocument** document);
    704 
    705     /*!
    706         @method mainFrameTitle
    707         @result Returns the main frame's title if any, otherwise an empty string.
    708         - (NSString *)mainFrameTitle;
    709     */
    710     HRESULT mainFrameTitle([out, retval] BSTR* title);
    711 
    712     /*!
    713         @method mainFrameIcon
    714         @discussion The methods returns the site icon for the current page loaded in the mainFrame.
    715         @result Returns the main frame's icon if any, otherwise nil.
    716         - (NSImage *)mainFrameIcon;
    717     */
    718     HRESULT mainFrameIcon([out, retval] OLE_HANDLE* hBitmap);
    719 
    720     /*!
    721         @method registerURLSchemeAsLocal
    722         @discussion Adds the scheme to the list of schemes to be treated as local.
    723         @param scheme The scheme to register.
    724         + (void)registerURLSchemeAsLocal:(NSString *)scheme;
    725     */
    726     HRESULT registerURLSchemeAsLocal([in] BSTR scheme);
    727 
    728     /*!
    729         @method close
    730         @abstract Closes the receiver, unloading its web page and canceling any pending loads.
    731         Once the receiver has closed, it will no longer respond to requests or fire delegate methods.
    732         (However, the -close method itself may fire delegate methods.)
    733         @discussion A garbage collected application is required to call close when the receiver is no longer needed.
    734         The close method will be called automatically when the window or hostWindow closes and shouldCloseWithWindow returns YES.
    735         A non-garbage collected application can still call close, providing a convenient way to prevent receiver
    736         from doing any more loading and firing any future delegate methods.
    737     */
    738     HRESULT close();
    739 }
    740 
    741 /*
    742     @interface WebView (WebIBActions) <NSUserInterfaceValidations>
    743 */
    744 [
    745     object,
    746     oleautomation,
    747     uuid(8F0E3A30-B924-44f8-990A-1AE61ED6C632),
    748     pointer_default(unique)
    749 ]
    750 interface IWebIBActions : IUnknown
    751 {
    752     /*
    753         - (IBAction)takeStringURLFrom:(id)sender;
    754     */
    755     HRESULT takeStringURLFrom([in] IUnknown* sender);
    756 
    757     /*
    758         - (IBAction)stopLoading:(id)sender;
    759     */
    760     HRESULT stopLoading([in] IUnknown* sender);
    761 
    762     /*
    763         - (IBAction)reload:(id)sender;
    764     */
    765     HRESULT reload([in] IUnknown* sender);
    766 
    767     /*
    768         - (BOOL)canGoBack;
    769     */
    770     HRESULT canGoBack([in] IUnknown* sender, [out, retval] BOOL* result);
    771 
    772     /*
    773         - (IBAction)goBack:(id)sender;
    774     */
    775     HRESULT goBack([in] IUnknown* sender);
    776 
    777     /*
    778         - (BOOL)canGoForward;
    779     */
    780     HRESULT canGoForward([in] IUnknown* sender, [out, retval] BOOL* result);
    781 
    782     /*
    783         - (IBAction)goForward:(id)sender;
    784     */
    785     HRESULT goForward([in] IUnknown* sender);
    786 
    787     /*
    788         - (BOOL)canMakeTextLarger;
    789     */
    790     HRESULT canMakeTextLarger([in] IUnknown* sender, [out, retval] BOOL* result);
    791 
    792     /*
    793         - (IBAction)makeTextLarger:(id)sender;
    794     */
    795     HRESULT makeTextLarger([in] IUnknown* sender);
    796 
    797     /*
    798         - (BOOL)canMakeTextSmaller;
    799     */
    800     HRESULT canMakeTextSmaller([in] IUnknown* sender, [out, retval] BOOL* result);
    801 
    802     /*
    803         - (IBAction)makeTextSmaller:(id)sender;
    804     */
    805     HRESULT makeTextSmaller([in] IUnknown* sender);
    806 
    807     /*
    808         - (BOOL)canMakeTextStandardSize;
    809     */
    810     HRESULT canMakeTextStandardSize([in] IUnknown* sender, [out, retval] BOOL* result);
    811 
    812     /*
    813         - (IBAction)makeTextStandardSize:(id)sender;
    814     */
    815     HRESULT makeTextStandardSize([in] IUnknown* sender);
    816 
    817     /*
    818         - (IBAction)toggleContinuousSpellChecking:(id)sender;
    819     */
    820     HRESULT toggleContinuousSpellChecking([in] IUnknown* sender);
    821 
    822     /*
    823         - (IBAction)toggleSmartInsertDelete:(id)sender;
    824     */
    825     HRESULT toggleSmartInsertDelete([in] IUnknown* sender);
    826 
    827     /*
    828         - (void)toggleGrammarChecking:(id)sender
    829     */
    830     HRESULT toggleGrammarChecking([in] IUnknown* sender);
    831 
    832        /*!
    833         @method setPageSizeMultiplier:
    834         @abstract Set a zoom factor for all views managed by this webView.
    835         @param multiplier A fractional percentage value, 1.0 is 100%.
    836         - (void)setPageSizeMultiplier:(float)multiplier;
    837     */
    838     HRESULT setPageSizeMultiplier([in] float multiplier);
    839 
    840     /*!
    841         @method pageSizeMultiplier
    842         @result The page size multipler.
    843         - (float)pageSizeMultiplier;
    844     */
    845     HRESULT pageSizeMultiplier([out, retval] float* multiplier);
    846 
    847     /*
    848         - (BOOL)canZoomPageIn;
    849     */
    850     HRESULT canZoomPageIn([in] IUnknown* sender, [out, retval] BOOL* result);
    851 
    852     /*
    853         - (IBAction)zoomPageIn:(id)sender;
    854     */
    855     HRESULT zoomPageIn([in] IUnknown* sender);
    856 
    857     /*
    858         - (BOOL)canZoomPageOut;
    859     */
    860     HRESULT canZoomPageOut([in] IUnknown* sender, [out, retval] BOOL* result);
    861 
    862     /*
    863         - (IBAction)zoomPageOut:(id)sender;
    864     */
    865     HRESULT zoomPageOut([in] IUnknown* sender);
    866 
    867     /*
    868         - (BOOL)canResetPageZoom;
    869     */
    870     HRESULT canResetPageZoom([in] IUnknown* sender, [out, retval] BOOL* result);
    871 
    872     /*
    873         - (IBAction)resetPageZoom:(id)sender;
    874     */
    875     HRESULT resetPageZoom([in] IUnknown* sender);
    876 
    877     /*
    878         - (IBAction)reloadFromOrigin:(id)sender;
    879     */
    880     HRESULT reloadFromOrigin([in] IUnknown* sender);
    881 }
    882 
    883 /*
    884     @interface WebView (WebViewCSS)
    885 */
    886 [
    887     object,
    888     oleautomation,
    889     uuid(ADF68A8C-336F-405c-A053-3D11A9D5B092),
    890     pointer_default(unique)
    891 ]
    892 interface IWebViewCSS : IUnknown
    893 {
    894     /*
    895         - (DOMCSSStyleDeclaration *)computedStyleForElement:(DOMElement *)element pseudoElement:(NSString *)pseudoElement;
    896     */
    897     HRESULT computedStyleForElement([in] IDOMElement* element, [in] BSTR pseudoElement, [out, retval] IDOMCSSStyleDeclaration** style);
    898 }
    899 
    900 /*
    901     @interface WebView (WebViewEditing)
    902 */
    903 [
    904     object,
    905     oleautomation,
    906     uuid(07BDAC9A-19A1-4086-864D-BAD9E0F00D5C),
    907     pointer_default(unique)
    908 ]
    909 interface IWebViewEditing : IUnknown
    910 {
    911     /*
    912         - (DOMRange *)editableDOMRangeForPoint:(NSPoint)point;
    913     */
    914     HRESULT editableDOMRangeForPoint([in] LPPOINT point, [out, retval] IDOMRange** range);
    915 
    916     /*
    917         - (void)setSelectedDOMRange:(DOMRange *)range affinity:(NSSelectionAffinity)selectionAffinity;
    918     */
    919     HRESULT setSelectedDOMRange([in] IDOMRange* range, [in] WebSelectionAffinity affinity);
    920 
    921     /*
    922         - (DOMRange *)selectedDOMRange;
    923     */
    924     HRESULT selectedDOMRange([out, retval] IDOMRange** range);
    925 
    926     /*
    927         - (NSSelectionAffinity)selectionAffinity;
    928     */
    929     HRESULT selectionAffinity([out, retval] [out, retval] WebSelectionAffinity* affinity);
    930 
    931     /*
    932         - (void)setEditable:(BOOL)flag;
    933     */
    934     HRESULT setEditable([in] BOOL flag);
    935 
    936     /*
    937         - (BOOL)isEditable;
    938     */
    939     HRESULT isEditable([out, retval] BOOL* isEditable);
    940 
    941     /*
    942         - (void)setTypingStyle:(DOMCSSStyleDeclaration *)style;
    943     */
    944     HRESULT setTypingStyle([in] IDOMCSSStyleDeclaration* style);
    945 
    946     /*
    947         - (DOMCSSStyleDeclaration *)typingStyle;
    948     */
    949     HRESULT typingStyle([out, retval] IDOMCSSStyleDeclaration** style);
    950 
    951     /*
    952         - (void)setSmartInsertDeleteEnabled:(BOOL)flag;
    953     */
    954     HRESULT setSmartInsertDeleteEnabled([in] BOOL flag);
    955 
    956     /*
    957         - (BOOL)smartInsertDeleteEnabled;
    958     */
    959     HRESULT smartInsertDeleteEnabled([out, retval] BOOL* enabled);
    960 
    961     /*
    962         - (void)setContinuousSpellCheckingEnabled:(BOOL)flag;
    963     */
    964     HRESULT setContinuousSpellCheckingEnabled([in] BOOL flag);
    965 
    966     /*
    967         - (BOOL)isContinuousSpellCheckingEnabled;
    968     */
    969     HRESULT isContinuousSpellCheckingEnabled([out, retval] BOOL* enabled);
    970 
    971     /*
    972         - (WebNSInt)spellCheckerDocumentTag;
    973     */
    974     HRESULT spellCheckerDocumentTag([out, retval] int* tag);
    975 
    976     /*
    977         - (NSUndoManager *)undoManager;
    978     */
    979     HRESULT undoManager([out, retval] IWebUndoManager** manager);
    980 
    981     /*
    982         - (void)setEditingDelegate:(id)delegate;
    983     */
    984     HRESULT setEditingDelegate([in] IWebEditingDelegate* d);
    985 
    986     /*
    987         - (id)editingDelegate;
    988     */
    989     HRESULT editingDelegate([out, retval] IWebEditingDelegate** d);
    990 
    991     /*
    992         - (DOMCSSStyleDeclaration *)styleDeclarationWithText:(NSString *)text;
    993     */
    994     HRESULT styleDeclarationWithText([in] BSTR text, [out, retval] IDOMCSSStyleDeclaration** style);
    995 
    996     /*
    997         - (BOOL)hasSelectedRange;
    998     */
    999     HRESULT hasSelectedRange([out, retval] BOOL* hasSelectedRange);
   1000 
   1001     /*
   1002         - (BOOL)cutEnabled;
   1003     */
   1004     HRESULT cutEnabled([out, retval] BOOL* enabled);
   1005 
   1006     /*
   1007         - (BOOL)copyEnabled;
   1008     */
   1009     HRESULT copyEnabled([out, retval] BOOL* enabled);
   1010 
   1011     /*
   1012         - (BOOL)pasteEnabled;
   1013     */
   1014     HRESULT pasteEnabled([out, retval] BOOL* enabled);
   1015 
   1016     /*
   1017         - (BOOL)deleteEnabled;
   1018     */
   1019     HRESULT deleteEnabled([out, retval] BOOL* enabled);
   1020 
   1021     /*
   1022         - (BOOL)editingEnabled;
   1023     */
   1024     HRESULT editingEnabled([out, retval] BOOL* enabled);
   1025 
   1026     /*
   1027         - (BOOL)isGrammarCheckingEnabled
   1028     */
   1029     HRESULT isGrammarCheckingEnabled([out, retval] BOOL* enabled);
   1030 
   1031     /*
   1032         - (void)setGrammarCheckingEnabled:(BOOL)flag
   1033     */
   1034     HRESULT setGrammarCheckingEnabled(BOOL enabled);
   1035 
   1036     /*
   1037         - (void)setSelectTrailingWhitespaceEnabled:(BOOL)flag;
   1038     */
   1039     HRESULT setSelectTrailingWhitespaceEnabled([in] BOOL flag);
   1040 
   1041     /*
   1042         - (BOOL)selectTrailingWhitespaceEnabled;
   1043     */
   1044     HRESULT isSelectTrailingWhitespaceEnabled([out, retval] BOOL* enabled);
   1045 }
   1046 
   1047 /*
   1048     @interface WebView (WebViewUndoableEditing)
   1049 */
   1050 [
   1051     object,
   1052     oleautomation,
   1053     uuid(639E7121-13C8-4a12-BC18-6E1F3D68F3C3),
   1054     pointer_default(unique)
   1055 ]
   1056 interface IWebViewUndoableEditing : IUnknown
   1057 {
   1058     /*
   1059         - (void)replaceSelectionWithNode:(DOMNode *)node;
   1060     */
   1061     HRESULT replaceSelectionWithNode([in] IDOMNode* node);
   1062 
   1063     /*
   1064         - (void)replaceSelectionWithText:(NSString *)text;
   1065     */
   1066     HRESULT replaceSelectionWithText([in] BSTR text);
   1067 
   1068     /*
   1069         - (void)replaceSelectionWithMarkupString:(NSString *)markupString;
   1070     */
   1071     HRESULT replaceSelectionWithMarkupString([in] BSTR markupString);
   1072 
   1073     /*
   1074         - (void)replaceSelectionWithArchive:(WebArchive *)archive;
   1075     */
   1076     HRESULT replaceSelectionWithArchive([in] IWebArchive* archive);
   1077 
   1078     /*
   1079         - (void)deleteSelection;
   1080     */
   1081     HRESULT deleteSelection();
   1082 
   1083     /*
   1084         - (void)clearSelection;
   1085     */
   1086     HRESULT clearSelection();
   1087 
   1088     /*
   1089         - (void)applyStyle:(DOMCSSStyleDeclaration *)style;
   1090     */
   1091     HRESULT applyStyle([in] IDOMCSSStyleDeclaration* style);
   1092 }
   1093 
   1094 /*
   1095     @interface WebView (WebViewEditingActions)
   1096 */
   1097 [
   1098     object,
   1099     oleautomation,
   1100     uuid(7E066C42-8E81-4778-888D-D6CC93E27D4C),
   1101     pointer_default(unique)
   1102 ]
   1103 interface IWebViewEditingActions : IUnknown
   1104 {
   1105     /*
   1106         - (void)copy:(id)sender;
   1107     */
   1108     HRESULT copy([in] IUnknown* sender);
   1109 
   1110     /*
   1111         - (void)cut:(id)sender;
   1112     */
   1113     HRESULT cut([in] IUnknown* sender);
   1114 
   1115     /*
   1116         - (void)paste:(id)sender;
   1117     */
   1118     HRESULT paste([in] IUnknown* sender);
   1119 
   1120     /*
   1121         - (void)copyURL:(id)sender;
   1122     */
   1123     HRESULT copyURL([in] BSTR url);
   1124 
   1125     /*
   1126         - (void)copyFont:(id)sender;
   1127     */
   1128     HRESULT copyFont([in] IUnknown* sender);
   1129 
   1130     /*
   1131         - (void)pasteFont:(id)sender;
   1132     */
   1133     HRESULT pasteFont([in] IUnknown* sender);
   1134 
   1135     /*
   1136         - (void)delete:(id)sender;
   1137     */
   1138     HRESULT delete_([in] IUnknown* sender);
   1139 
   1140     /*
   1141         - (void)pasteAsPlainText:(id)sender;
   1142     */
   1143     HRESULT pasteAsPlainText([in] IUnknown* sender);
   1144 
   1145     /*
   1146         - (void)pasteAsRichText:(id)sender;
   1147     */
   1148     HRESULT pasteAsRichText([in] IUnknown* sender);
   1149 
   1150 
   1151     /*
   1152         - (void)changeFont:(id)sender;
   1153     */
   1154     HRESULT changeFont([in] IUnknown* sender);
   1155 
   1156     /*
   1157         - (void)changeAttributes:(id)sender;
   1158     */
   1159     HRESULT changeAttributes([in] IUnknown* sender);
   1160 
   1161     /*
   1162         - (void)changeDocumentBackgroundColor:(id)sender;
   1163     */
   1164     HRESULT changeDocumentBackgroundColor([in] IUnknown* sender);
   1165 
   1166     /*
   1167         - (void)changeColor:(id)sender;
   1168     */
   1169     HRESULT changeColor([in] IUnknown* sender);
   1170 
   1171 
   1172     /*
   1173         - (void)alignCenter:(id)sender;
   1174     */
   1175     HRESULT alignCenter([in] IUnknown* sender);
   1176 
   1177     /*
   1178         - (void)alignJustified:(id)sender;
   1179     */
   1180     HRESULT alignJustified([in] IUnknown* sender);
   1181 
   1182     /*
   1183         - (void)alignLeft:(id)sender;
   1184     */
   1185     HRESULT alignLeft([in] IUnknown* sender);
   1186 
   1187     /*
   1188         - (void)alignRight:(id)sender;
   1189     */
   1190     HRESULT alignRight([in] IUnknown* sender);
   1191 
   1192 
   1193     /*
   1194         - (void)checkSpelling:(id)sender;
   1195     */
   1196     HRESULT checkSpelling([in] IUnknown* sender);
   1197 
   1198     /*
   1199         - (void)showGuessPanel:(id)sender;
   1200     */
   1201     HRESULT showGuessPanel([in] IUnknown* sender);
   1202 
   1203     /*
   1204         - (void)performFindPanelAction:(id)sender;
   1205     */
   1206     HRESULT performFindPanelAction([in] IUnknown* sender);
   1207 
   1208 
   1209     /*
   1210         - (void)startSpeaking:(id)sender;
   1211     */
   1212     HRESULT startSpeaking([in] IUnknown* sender);
   1213 
   1214     /*
   1215         - (void)stopSpeaking:(id)sender;
   1216     */
   1217     HRESULT stopSpeaking([in] IUnknown* sender);
   1218 }
   1219