#ifndef WebURLResponse_H
#define WebURLResponse_H
#include "WebKit.h"
#include <WebCore/ResourceResponse.h>
class WebURLResponse : public IWebHTTPURLResponse, IWebURLResponsePrivate
{
public:
static WebURLResponse* createInstance();
static WebURLResponse* createInstance(const WebCore::ResourceResponse& response);
protected:
WebURLResponse();
~WebURLResponse();
public:
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
virtual ULONG STDMETHODCALLTYPE AddRef(void);
virtual ULONG STDMETHODCALLTYPE Release(void);
virtual HRESULT STDMETHODCALLTYPE expectedContentLength(
long long *result);
virtual HRESULT STDMETHODCALLTYPE initWithURL(
BSTR url,
BSTR mimeType,
int expectedContentLength,
BSTR textEncodingName);
virtual HRESULT STDMETHODCALLTYPE MIMEType(
BSTR *result);
virtual HRESULT STDMETHODCALLTYPE suggestedFilename(
BSTR *result);
virtual HRESULT STDMETHODCALLTYPE textEncodingName(
BSTR *result);
virtual HRESULT STDMETHODCALLTYPE URL(
BSTR *result);
virtual HRESULT STDMETHODCALLTYPE allHeaderFields(
IPropertyBag **headerFields);
virtual HRESULT STDMETHODCALLTYPE localizedStringForStatusCode(
int statusCode,
BSTR *statusString);
virtual HRESULT STDMETHODCALLTYPE statusCode(
int *statusCode);
virtual HRESULT STDMETHODCALLTYPE isAttachment(
BOOL *attachment);
virtual HRESULT STDMETHODCALLTYPE sslPeerCertificate( ULONG_PTR* result);
const WebCore::ResourceResponse& resourceResponse() const;
protected:
HRESULT suggestedFileExtension(BSTR* result);
#if USE(CFNETWORK)
CFDictionaryRef certificateDictionary() const;
#endif
protected:
ULONG m_refCount;
WebCore::ResourceResponse m_response;
#if USE(CFNETWORK)
mutable RetainPtr<CFDictionaryRef> m_SSLCertificateInfo; #endif
};
#endif