IWebDocument.idl revision 1cbdecfa9fc428ac2d8aca0fa91c9580b3d57353
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#ifndef DO_NO_IMPORTS
27import "oaidl.idl";
28import "ocidl.idl";
29import "IWebError.idl";
30import "IWebDataSource.idl";
31#endif
32
33interface IWebError;
34interface IWebDataSource;
35
36/*!
37    @protocol WebDocumentView
38    @discussion Protocol implemented by the document view of WebFrameView
39
40    @protocol WebDocumentView <NSObject>
41*/
42[
43    object,
44    oleautomation,
45    uuid(0A6397A7-90FE-49a0-B9C1-44693DD779F7),
46    pointer_default(unique)
47]
48interface IWebDocumentView : IUnknown
49{
50    /*!
51        @method setDataSource:
52        @abstract Called when the corresponding data source has been created.
53        @param dataSource The corresponding data source.
54        - (void)setDataSource:(WebDataSource *)dataSource;
55    */
56    HRESULT setDataSource([in] IWebDataSource* dataSource);
57
58    /*!
59        @method dataSourceUpdated:
60        @abstract Called when the corresponding data source has received data.
61        @param dataSource The corresponding data source.
62        - (void)dataSourceUpdated:(WebDataSource *)dataSource;
63    */
64    HRESULT dataSourceUpdated([in] IWebDataSource* dataSource);
65
66    /*!
67        @method setNeedsLayout:
68        @discussion Called when WebKit has determined that the document view needs to layout.
69        This method should simply set a flag and call layout from drawRect if the flag is YES.
70        @param flag YES to cause a layout, no to not cause a layout.
71        - (void)setNeedsLayout:(BOOL)flag;
72    */
73    HRESULT setNeedsLayout([in] BOOL flag);
74
75    /*!
76        @method layout
77        @discussion Called when the document view must immediately layout. For simple views,
78        setting the frame is a sufficient implementation of this method.
79        - (void)layout;
80    */
81    HRESULT layout();
82
83    /*!
84        @method viewWillMoveToHostWindow:
85        @param hostWindow The host window for the document view.
86        @abstract Called before the host window is set on the parent web view.
87        - (void)viewWillMoveToHostWindow:(NSWindow *)hostWindow;
88    */
89    HRESULT viewWillMoveToHostWindow([in] OLE_HANDLE hwnd);
90
91    /*!
92        @method viewDidMoveToHostWindow
93        @abstract Called after the host window is set on the parent web view.
94        - (void)viewDidMoveToHostWindow;
95    */
96    HRESULT viewDidMoveToHostWindow();
97}
98
99/*!
100    @protocol WebDocumentSearching
101    @discussion Optional protocol for searching document view of WebFrameView.
102
103    @protocol WebDocumentSearching <NSObject>
104*/
105[
106    object,
107    oleautomation,
108    uuid(0213643B-8DF9-4ba4-9534-61D92CB75007),
109    pointer_default(unique)
110]
111interface IWebDocumentSearching : IUnknown
112{
113    /*!
114        @method searchFor:direction:caseSensitive:wrap:
115        @abstract Searches a document view for a string and highlights the string if it is found.
116        @param string The string to search for.
117        @param forward YES to search forward, NO to seach backwards.
118        @param caseFlag YES to for case-sensitive search, NO for case-insensitive search.
119        @param wrapFlag YES to wrap around, NO to avoid wrapping.
120        @result YES if found, NO if not found.
121        - (BOOL)searchFor:(NSString *)string direction:(BOOL)forward caseSensitive:(BOOL)caseFlag wrap:(BOOL)wrapFlag;
122    */
123    HRESULT searchFor([in] BSTR str, [in] BOOL forwardDirection, [in] BOOL caseSensitive, [in] BOOL wrap, [out, retval] BOOL* result);
124}
125
126/*!
127    @protocol WebDocumentText
128    @discussion Optional protocol for supporting text operations.
129
130    @protocol WebDocumentText <NSObject>
131*/
132[
133    object,
134    oleautomation,
135    uuid(B6282B92-6F31-4948-A3A0-89763C56BBBF),
136    pointer_default(unique)
137]
138interface IWebDocumentText : IUnknown
139{
140    /*!
141        @method supportsTextEncoding
142        @result YES if the document view support text encoding, NO if it doesn't.
143        - (BOOL)supportsTextEncoding;
144    */
145    HRESULT supportsTextEncoding([out, retval] BOOL* result);
146
147    /*!
148        @method string
149        @result String that represents the entire document.
150        - (NSString *)string;
151    */
152    HRESULT string([out, retval] BSTR* result);
153
154    /*!
155        @method selectedString
156        @result String that represents the current selection.
157        - (NSString *)selectedString;
158    */
159    HRESULT selectedString([out, retval] BSTR* result);
160
161    /*!
162        @method selectAll
163        @abstract Selects all the text in the document.
164        - (void)selectAll;
165    */
166    HRESULT selectAll();
167
168    /*!
169        @method deselectText
170        @abstract Causes a text selection to lose its selection.
171        - (void)deselectAll;
172    */
173    HRESULT deselectAll();
174}
175
176/*!
177    @protocol WebDocumentRepresentation
178    @discussion Protocol implemented by the document representation of a data source.
179
180    @protocol WebDocumentRepresentation <NSObject>
181*/
182[
183    object,
184    oleautomation,
185    uuid(3C9F6251-CFD8-447a-B429-6B6AE627436C),
186    pointer_default(unique)
187]
188interface IWebDocumentRepresentation : IUnknown
189{
190    /*!
191        @method setDataSource:
192        @abstract Called soon after the document representation is created.
193        @param dataSource The data source that is set.
194        - (void)setDataSource:(WebDataSource *)dataSource;
195    */
196    HRESULT setDataSource([in] IWebDataSource* dataSource);
197
198    /*!
199        @method receivedData:withDataSource:
200        @abstract Called when the data source has received data.
201        @param data The data that the data source has received.
202        @param dataSource The data source that has received data.
203        - (void)receivedData:(NSData *)data withDataSource:(WebDataSource *)dataSource;
204    */
205    HRESULT receivedData([in] IStream* data, [in] IWebDataSource* dataSource);
206
207    /*!
208        @method receivedError:withDataSource:
209        @abstract Called when the data source has received an error.
210        @param error The error that the data source has received.
211        @param dataSource The data source that has received the error.
212        - (void)receivedError:(NSError *)error withDataSource:(WebDataSource *)dataSource;
213    */
214    HRESULT receivedError([in] IWebError* error, [in] IWebDataSource* dataSource);
215
216    /*!
217        @method finishedLoadingWithDataSource:
218        @abstract Called when the data source has finished loading.
219        @param dataSource The datasource that has finished loading.
220        - (void)finishedLoadingWithDataSource:(WebDataSource *)dataSource;
221    */
222    HRESULT finishedLoadingWithDataSource([in] IWebDataSource* dataSource);
223
224    /*!
225        @method canProvideDocumentSource
226        @result Returns true if the representation can provide document source.
227        - (BOOL)canProvideDocumentSource;
228    */
229    HRESULT canProvideDocumentSource([out, retval] BOOL* result);
230
231    /*!
232        @method documentSource
233        @result Returns the textual source representation of the document.  For HTML documents
234        this is the original HTML source.
235        - (NSString *)documentSource;
236    */
237    HRESULT documentSource([out, retval] BSTR* source);
238
239    /*!
240        @method title
241        @result Return the title for the document.
242        - (NSString *)title;
243    */
244    HRESULT title([out, retval] BSTR* docTitle);
245}
246