Home | History | Annotate | Download | only in Interfaces
      1 /*
      2  * Copyright (C) 2006, 2007, 2008, 2009, 2010 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 #ifndef DO_NO_IMPORTS
     27 import "oaidl.idl";
     28 import "ocidl.idl";
     29 import "IWebGeolocationPolicyListener.idl";
     30 import "IWebSecurityOrigin.idl";
     31 import "IWebView.idl";
     32 #endif
     33 
     34 cpp_quote("#define WebEmbeddedViewAttributesKey TEXT(\"WebEmbeddedViewAttributesKey\")")
     35 cpp_quote("#define WebEmbeddedViewBaseURLKey TEXT(\"WebEmbeddedViewBaseURLKey\")")
     36 cpp_quote("#define WebEmbeddedViewContainingElementKey TEXT(\"WebEmbeddedViewContainingElementKey\")")
     37 cpp_quote("#define WebEmbeddedViewMIMETypeKey TEXT(\"WebEmbeddedViewMIMETypeKey\")")
     38 
     39 interface IWebEmbeddedView;
     40 interface IWebFrame;
     41 interface IWebGeolocationPolicyListener;
     42 interface IWebSecurityOrigin;
     43 interface IWebView;
     44 
     45 [
     46     object,
     47     oleautomation,
     48     uuid(df3b4283-6868-4a1f-97f6-baf0b33f239c),
     49     pointer_default(unique)
     50 ]
     51 interface IWebUIDelegatePrivate : IUnknown
     52 {
     53     HRESULT unused1();
     54     HRESULT unused2();
     55     HRESULT webViewScrolled([in] IWebView* sender);
     56     HRESULT webViewAddMessageToConsole([in] IWebView* sender, [in] BSTR message, [in] int lineNumber, [in] BSTR url, [in] BOOL isError);
     57     HRESULT webViewShouldInterruptJavaScript([in] IWebView* sender, [out, retval] BOOL* result);
     58     HRESULT webViewReceivedFocus([in] IWebView* sender);
     59     HRESULT webViewLostFocus([in] IWebView* sender, [in] OLE_HANDLE loseFocusToHWnd);
     60     HRESULT doDragDrop([in] IWebView* sender, [in] IDataObject* dataObject, [in] IDropSource* dropSource, [in] DWORD okEffect, [out, retval] DWORD* performedEffect);
     61     HRESULT webViewGetDlgCode([in] IWebView* sender, [in] UINT keyCode, [out, retval] LONG_PTR* code);
     62     HRESULT webViewPainted([in] IWebView* sender);
     63     HRESULT exceededDatabaseQuota([in] IWebView* sender, [in] IWebFrame* frame, [in] IWebSecurityOrigin* origin, [in] BSTR databaseIdentifier);
     64     HRESULT embeddedViewWithArguments([in] IWebView* sender, [in] IWebFrame* frame, [in] IPropertyBag* arguments, [out, retval] IWebEmbeddedView** view);
     65     HRESULT unused3();
     66     HRESULT webViewClosing([in] IWebView* sender);
     67     HRESULT webViewSetCursor([in] IWebView* sender, [in] OLE_HANDLE cursor);
     68     HRESULT webViewDidInvalidate([in] IWebView* sender);
     69 }
     70 
     71 cpp_quote("#define WebWindowFeaturesXKey L\"x\"")
     72 cpp_quote("#define WebWindowFeaturesYKey L\"y\"")
     73 cpp_quote("#define WebWindowFeaturesWidthKey L\"width\"")
     74 cpp_quote("#define WebWindowFeaturesHeightKey L\"height\"")
     75 cpp_quote("#define WebWindowFeaturesMenuBarVisibleKey L\"menuBarVisible\"")
     76 cpp_quote("#define WebWindowFeaturesStatusBarVisibleKey L\"statusBarVisible\"")
     77 cpp_quote("#define WebWindowFeaturesToolBarVisibleKey L\"toolBarVisible\"")
     78 cpp_quote("#define WebWindowFeaturesScrollbarsVisibleKey L\"scrollbarsVisible\"")
     79 cpp_quote("#define WebWindowFeaturesResizableKey L\"resizable\"")
     80 cpp_quote("#define WebWindowFeaturesFullscreenKey L\"fullscreen\"")
     81 cpp_quote("#define WebWindowFeaturesDialogKey L\"dialog\"")
     82 
     83 [
     84     object,
     85     oleautomation,
     86     uuid(b7d6a98e-9c4f-43f2-b6a7-0975a0b18421),
     87     pointer_default(unique)
     88 ]
     89 interface IWebUIDelegatePrivate2 : IWebUIDelegatePrivate
     90 {
     91     // This function obsoletes IWebUIDelegate::createWebViewWithRequest and
     92     // IWebUIDelegate::createModalDialog. Clients should determine whether to create a modal dialog
     93     // based on whether WebWindowFeaturesDialogKey returns a TRUE value from the windowFeatures
     94     // IPropertyBag. The keys of the windowFeatures IPropertyBag are the WebWindowFeatures*Key
     95     // strings above.
     96     HRESULT createWebViewWithRequest([in] IWebView* sender, [in] IWebURLRequest* request, [in] IPropertyBag* windowFeatures, [out, retval] IWebView** newWebView);
     97 
     98     HRESULT drawBackground([in] IWebView* sender, [in] OLE_HANDLE hdc, [in] const RECT* dirtyRect);
     99 
    100     HRESULT decidePolicyForGeolocationRequest([in] IWebView* sender, [in] IWebFrame* frame, [in] IWebSecurityOrigin* origin, [in] IWebGeolocationPolicyListener* listener);
    101 }
    102 
    103 [
    104     object,
    105     oleautomation,
    106     uuid(e9834891-233b-48a0-984b-8f8a19abdd0f),
    107     pointer_default(unique)
    108 ]
    109 interface IWebUIDelegatePrivate3 : IWebUIDelegatePrivate2
    110 {
    111     HRESULT didPressMissingPluginButton([in] IDOMElement*);
    112 }
    113