#ifndef WebError_h
#define WebError_h
#include "WebKit.h"
#include <WebCore/COMPtr.h>
#include <WebCore/ResourceError.h>
#include <wtf/RetainPtr.h>
class WebError : public IWebError, IWebErrorPrivate {
public:
static WebError* createInstance(const WebCore::ResourceError&, IPropertyBag* userInfo = 0);
static WebError* createInstance();
protected:
WebError(const WebCore::ResourceError&, IPropertyBag* userInfo);
~WebError();
public:
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
virtual ULONG STDMETHODCALLTYPE AddRef(void);
virtual ULONG STDMETHODCALLTYPE Release(void);
virtual HRESULT STDMETHODCALLTYPE init(
BSTR domain,
int code,
BSTR url);
virtual HRESULT STDMETHODCALLTYPE code(
int *result);
virtual HRESULT STDMETHODCALLTYPE domain(
BSTR *result);
virtual HRESULT STDMETHODCALLTYPE localizedDescription(
BSTR *result);
virtual HRESULT STDMETHODCALLTYPE localizedFailureReason(
BSTR *result);
virtual HRESULT STDMETHODCALLTYPE localizedRecoveryOptions(
IEnumVARIANT **result);
virtual HRESULT STDMETHODCALLTYPE localizedRecoverySuggestion(
BSTR *result);
virtual HRESULT STDMETHODCALLTYPE recoverAttempter(
IUnknown **result);
virtual HRESULT STDMETHODCALLTYPE userInfo(
IPropertyBag **result);
virtual HRESULT STDMETHODCALLTYPE failingURL(
BSTR *result);
virtual HRESULT STDMETHODCALLTYPE isPolicyChangeError(
BOOL *result);
virtual HRESULT STDMETHODCALLTYPE sslPeerCertificate(
OLE_HANDLE *result);
const WebCore::ResourceError& resourceError() const;
private:
ULONG m_refCount;
COMPtr<IPropertyBag> m_userInfo;
RetainPtr<CFDictionaryRef> m_cfErrorUserInfoDict;
WebCore::ResourceError m_error;
};
#endif