webengine/osswebengine/WebKit/win/Interfaces/IWebDownload.idl
changeset 0 dd21522fd290
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/osswebengine/WebKit/win/Interfaces/IWebDownload.idl	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,176 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc.  All rights reserved.
+ *               2007 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("/*")
+cpp_quote(" * Copyright (C) 2006, 2007 Apple Inc.  All rights reserved.")
+cpp_quote(" *               2007 Apple Inc.  All rights reserved.")
+cpp_quote(" *")
+cpp_quote(" * Redistribution and use in source and binary forms, with or without")
+cpp_quote(" * modification, are permitted provided that the following conditions")
+cpp_quote(" * are met:")
+cpp_quote(" * 1. Redistributions of source code must retain the above copyright")
+cpp_quote(" *    notice, this list of conditions and the following disclaimer.")
+cpp_quote(" * 2. Redistributions in binary form must reproduce the above copyright")
+cpp_quote(" *    notice, this list of conditions and the following disclaimer in the")
+cpp_quote(" *    documentation and/or other materials provided with the distribution.")
+cpp_quote(" *")
+cpp_quote(" * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY")
+cpp_quote(" * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE")
+cpp_quote(" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR")
+cpp_quote(" * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR")
+cpp_quote(" * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,")
+cpp_quote(" * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,")
+cpp_quote(" * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR")
+cpp_quote(" * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY")
+cpp_quote(" * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT")
+cpp_quote(" * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE")
+cpp_quote(" * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ")
+cpp_quote(" */")
+
+import "oaidl.idl";
+import "ocidl.idl";
+import "IWebError.idl";
+import "IWebMutableURLRequest.idl";
+import "IWebURLAuthenticationChallenge.idl";
+import "IWebURLResponse.idl";
+import "IWebURLRequest.idl";
+
+interface IWebDownloadDelegate;
+/*!
+    @class WebDownload
+    @discussion A WebDownload works just like an NSURLDownload, with
+    one extra feature: if you do not implement the
+    authentication-related delegate methods, it will automatically
+    prompt for authentication using the standard WebKit authentication
+    panel, as either a sheet or window. It provides no extra methods,
+    but does have one additional delegate method.
+*/
+
+[
+    object,
+    oleautomation,
+    hidden,
+    uuid(65EFE83B-A9E4-4516-8F3B-BAA25DA90FFD),
+    pointer_default(unique)
+]
+interface IWebDownload : IUnknown
+{
+    /*
+        + (BOOL)canResumeDownloadDecodedWithEncodingMIMEType:(NSString *)MIMEType
+    */
+    HRESULT canResumeDownloadDecodedWithEncodingMIMEType([in] BSTR mimeType, [out, retval] BOOL* result);
+
+    /*
+        - (void)cancel
+    */
+    HRESULT cancel();
+
+    /*
+        - (void)cancelForResume();
+    */
+    HRESULT cancelForResume();
+
+    /*
+        - (void)start
+    */
+    HRESULT start();
+
+    /*
+        - (BOOL)deletesFileUponFailure
+    */
+    HRESULT deletesFileUponFailure([out, retval] BOOL* result);
+
+    /*
+        - (id)initWithRequest:(NSURLRequest *)request delegate:(id)delegate
+    */
+    HRESULT initWithRequest([in] IWebURLRequest* request, [in] IWebDownloadDelegate* delegate);
+
+    /*
+        - (id)initWithResumeData:(NSData *)resumeData delegate:(id)delegate path:(NSString *)path
+    */
+    HRESULT initToResumeWithBundle([in] BSTR bundlePath, [in] IWebDownloadDelegate* delegate);
+
+    /*
+        - (String)bundlePathForTargetPath:(String)targetPath
+    */
+    HRESULT bundlePathForTargetPath([in] BSTR target, [out, retval] BSTR* bundle);
+
+    /*
+        - (NSURLRequest *)request
+    */
+    HRESULT request([out, retval] IWebURLRequest** request);
+
+    /*
+        - (void)setDeletesFileUponFailure:(BOOL)deletesFileUponFailure
+    */
+    HRESULT setDeletesFileUponFailure([in] BOOL deletesFileUponFailure);
+
+    /*
+        - (void)setDestination:(NSString *)path allowOverwrite:(BOOL)allowOverwrite
+    */
+    HRESULT setDestination([in] BSTR path, [in] BOOL allowOverwrite);
+}
+
+
+/*!
+    @protocol WebDownloadDelegate
+    @discussion The WebDownloadDelegate delegate has one extra method used to choose
+    the right window when automatically prompting with a sheet.
+    @interface NSObject (WebDownloadDelegate)
+*/
+
+[
+    object,
+    oleautomation,
+    uuid(16A32AE6-C862-40cd-9225-2CAF823F40F9),
+    pointer_default(unique)
+]
+interface IWebDownloadDelegate : IUnknown
+{
+    HRESULT decideDestinationWithSuggestedFilename([in] IWebDownload* download, [in] BSTR filename);
+
+    HRESULT didCancelAuthenticationChallenge([in] IWebDownload* download, [in] IWebURLAuthenticationChallenge* challenge);
+
+    HRESULT didCreateDestination([in] IWebDownload* download, [in] BSTR destination);
+
+    HRESULT didFailWithError([in] IWebDownload* download, [in] IWebError* error);
+
+    HRESULT didReceiveAuthenticationChallenge([in] IWebDownload* download, [in] IWebURLAuthenticationChallenge* challenge);
+
+    HRESULT didReceiveDataOfLength([in] IWebDownload* download, [in] unsigned length);
+
+    HRESULT didReceiveResponse([in] IWebDownload* download, [in] IWebURLResponse* response);
+
+    HRESULT shouldDecodeSourceDataOfMIMEType([in] IWebDownload* download, [in] BSTR encodingType, [out, retval] BOOL* shouldDecode);
+
+    HRESULT willResumeWithResponse([in] IWebDownload* download, [in] IWebURLResponse* response, [in] long long fromByte);
+
+    HRESULT willSendRequest([in] IWebDownload* download, [in] IWebMutableURLRequest* request, [in] IWebURLResponse* redirectResponse, [out] IWebMutableURLRequest** finalRequest);
+
+    HRESULT didBegin([in] IWebDownload* download);
+
+    HRESULT didFinish([in] IWebDownload* download);
+}