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 27 import "oaidl.idl"; 28 import "ocidl.idl"; 29 import "IWebError.idl"; 30 import "IWebURLResponse.idl"; 31 #endif 32 33 interface IWebError; 34 interface IWebURLAuthenticationChallengeSender; 35 interface IWebURLCredential; 36 interface IWebURLProtectionSpace; 37 interface IWebURLResponse; 38 39 typedef enum { 40 WebURLCredentialPersistenceNone, 41 WebURLCredentialPersistenceForSession, 42 WebURLCredentialPersistencePermanent 43 } WebURLCredentialPersistence; 44 45 [ 46 object, 47 oleautomation, 48 uuid(5382DABA-C3C3-40c5-AA40-04079F11A844), 49 pointer_default(unique) 50 ] 51 interface IWebURLAuthenticationChallenge : IUnknown 52 { 53 /* 54 - (NSError *)error 55 */ 56 HRESULT error([out, retval] IWebError** result); 57 58 /* 59 - (NSURLResponse *)failureResponse 60 */ 61 HRESULT failureResponse([out, retval] IWebURLResponse** result); 62 63 /* 64 - (id)initWithAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge sender:(id<NSURLAuthenticationChallengeSender>)sender 65 */ 66 HRESULT initWithAuthenticationChallenge([in] IWebURLAuthenticationChallenge* challenge, [in] IWebURLAuthenticationChallengeSender* sender); 67 68 /* 69 - (id)initWithProtectionSpace:(NSURLProtectionSpace *)space proposedCredential:(NSURLCredential *)credential previousFailureCount:(int)count failureResponse:(NSURLResponse *)response error:(NSError *)error sender:(id <NSURLAuthenticationChallengeSender>)sender 70 */ 71 HRESULT initWithProtectionSpace([in] IWebURLProtectionSpace* space, [in] IWebURLCredential* proposedCredential, [in] int previousFailureCount, [in] IWebURLResponse* failureResponse, [in] IWebError* error, [in] IWebURLAuthenticationChallengeSender* sender); 72 73 /* 74 -(unsigned)previousFailureCount 75 */ 76 HRESULT previousFailureCount([out, retval] UINT* result); 77 78 /* 79 -(NSURLCredential *)proposedCredential 80 */ 81 HRESULT proposedCredential([out, retval] IWebURLCredential** result); 82 83 /* 84 - (NSURLProtectionSpace *)protectionSpace 85 */ 86 HRESULT protectionSpace([out, retval] IWebURLProtectionSpace** result); 87 88 /* 89 - (id<NSURLAuthenticationChallengeSender>)sender 90 */ 91 HRESULT sender([out, retval] IWebURLAuthenticationChallengeSender** sender); 92 } 93 94 [ 95 object, 96 oleautomation, 97 uuid(9360D6FB-186C-4ff7-AE57-D1B973DA0D1C), 98 pointer_default(unique) 99 ] 100 interface IWebURLAuthenticationChallengeSender : IUnknown 101 { 102 /* 103 - (void)cancelAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge 104 */ 105 HRESULT cancelAuthenticationChallenge([in] IWebURLAuthenticationChallenge* challenge); 106 107 /* 108 - (void)continueWithoutCredentialForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge 109 */ 110 HRESULT continueWithoutCredentialForAuthenticationChallenge([in] IWebURLAuthenticationChallenge* challenge); 111 112 /* 113 - (void)useCredential:(NSURLCredential *)credential forAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge 114 */ 115 HRESULT useCredential([in] IWebURLCredential* credential, [in] IWebURLAuthenticationChallenge* challenge); 116 } 117 118 cpp_quote("#define WebURLProtectionSpaceHTTP TEXT(\"http\")") 119 cpp_quote("#define WebURLProtectionSpaceHTTPS TEXT(\"https\")") 120 cpp_quote("#define WebURLProtectionSpaceFTP TEXT(\"ftp\")") 121 cpp_quote("#define WebURLProtectionSpaceFTPS TEXT(\"ftps\")") 122 cpp_quote("#define WebURLProtectionSpaceHTTPProxy TEXT(\"http\")") 123 cpp_quote("#define WebURLProtectionSpaceHTTPSProxy TEXT(\"https\")") 124 cpp_quote("#define WebURLProtectionSpaceFTPProxy TEXT(\"ftp\")") 125 cpp_quote("#define WebURLProtectionSpaceSOCKSProxy TEXT(\"SOCKS\")") 126 cpp_quote("#define WebURLAuthenticationMethodDefault TEXT(\"WebURLAuthenticationMethodDefault\")") 127 cpp_quote("#define WebURLAuthenticationMethodHTTPBasic TEXT(\"WebURLAuthenticationMethodHTTPBasic\")") 128 cpp_quote("#define WebURLAuthenticationMethodHTTPDigest TEXT(\"WebURLAuthenticationMethodHTTPDigest\")") 129 cpp_quote("#define WebURLAuthenticationMethodHTMLForm TEXT(\"WebURLAuthenticationMethodHTMLForm\")") 130 131 [ 132 object, 133 oleautomation, 134 hidden, 135 uuid(71D2622A-3FF2-404b-BD45-C60659C901AF), 136 pointer_default(unique) 137 ] 138 interface IWebURLProtectionSpace : IUnknown 139 { 140 /* 141 -(NSString *)authenticationMethod 142 */ 143 HRESULT authenticationMethod([out, retval] BSTR* result); 144 145 /* 146 -(NSString *)host 147 */ 148 HRESULT host([out, retval] BSTR* result); 149 150 /* 151 -(id)initWithHost:(NSString *)host port:(int)port protocol:(NSString *)protocol realm:(NSString *)realm authenticationMethod:(NSString *)authenticationMethod 152 */ 153 HRESULT initWithHost([in] BSTR host, [in] int port, [in] BSTR protocol, [in] BSTR realm, [in] BSTR authenticationMethod); 154 155 /* 156 -(id)initWithProxyHost:(NSString *)host port:(int)port type:(NSString *)proxyType realm:(NSString *)realm authenticationMethod:(NSString *)authenticationMethod 157 */ 158 HRESULT initWithProxyHost([in] BSTR host, [in] int port, [in] BSTR proxyType, [in] BSTR realm, [in] BSTR authenticationMethod); 159 160 /* 161 -(BOOL)isProxy 162 */ 163 HRESULT isProxy([out, retval] BOOL* result); 164 165 /* 166 -(int)port 167 */ 168 HRESULT port([out, retval] int* result); 169 170 /* 171 -(NSString *)protocol 172 */ 173 HRESULT protocol([out, retval] BSTR* result); 174 175 /* 176 -(NSString *)proxyType 177 */ 178 HRESULT proxyType([out, retval] BSTR* result); 179 180 /* 181 -(NSString *)realm 182 */ 183 HRESULT realm([out, retval] BSTR* result); 184 185 /* 186 -(BOOL)receivesCredentialSecurely 187 */ 188 HRESULT receivesCredentialSecurely([out, retval] BOOL* result); 189 } 190 191 [ 192 object, 193 oleautomation, 194 hidden, 195 uuid(A1E9D765-FACE-4189-BBE3-AED7EBF65EBD), 196 pointer_default(unique) 197 ] 198 interface IWebURLCredential : IUnknown 199 { 200 /* 201 -(BOOL)hasPassword 202 */ 203 HRESULT hasPassword([out, retval] BOOL* result); 204 205 /* 206 -(id)initWithUser:(NSString *)user password:(NSString *)password persistence:(NSURLCredentialPersistence)persistence 207 */ 208 HRESULT initWithUser([in] BSTR user, [in] BSTR password, [in] WebURLCredentialPersistence persistence); 209 210 /* 211 -(NSString *)password 212 */ 213 HRESULT password([out, retval] BSTR* password); 214 215 /* 216 -(NSURLCredentialPersistence)persistence 217 */ 218 HRESULT persistence([out, retval] WebURLCredentialPersistence* result); 219 220 /* 221 -(NSString *)user 222 */ 223 HRESULT user([out, retval] BSTR* result); 224 } 225