[Win] Update Windows tools for revised MIDL interfaces
authorbfulgham@apple.com <bfulgham@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 20 Aug 2015 22:11:17 +0000 (22:11 +0000)
committerbfulgham@apple.com <bfulgham@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 20 Aug 2015 22:11:17 +0000 (22:11 +0000)
https://bugs.webkit.org/show_bug.cgi?id=148249

Reviewed by Dean Jackson.

This is a follow-up to Bug 148001.

Revise the testing software to use compatible signatures and
implementations to match the requirements of the IDL generated
with the SAL annotations.

* DumpRenderTree/win/DRTDataObject.cpp:
* DumpRenderTree/win/DRTDataObject.h:
* DumpRenderTree/win/DRTDesktopNotificationPresenter.cpp:
* DumpRenderTree/win/DRTDesktopNotificationPresenter.h:
* DumpRenderTree/win/DRTDropSource.cpp:
* DumpRenderTree/win/DRTDropSource.h:
* DumpRenderTree/win/DumpRenderTree.cpp:
* DumpRenderTree/win/EditingDelegate.cpp:
* DumpRenderTree/win/EditingDelegate.h:
* DumpRenderTree/win/FrameLoadDelegate.cpp:
* DumpRenderTree/win/FrameLoadDelegate.h:
* DumpRenderTree/win/HistoryDelegate.cpp:
* DumpRenderTree/win/HistoryDelegate.h:
* DumpRenderTree/win/PolicyDelegate.cpp:
* DumpRenderTree/win/PolicyDelegate.h:
* DumpRenderTree/win/ResourceLoadDelegate.cpp:
* DumpRenderTree/win/ResourceLoadDelegate.h:
* DumpRenderTree/win/TestRunnerWin.cpp:
* DumpRenderTree/win/UIDelegate.cpp:
* DumpRenderTree/win/UIDelegate.h:
* WinLauncher/AccessibilityDelegate.cpp:
* WinLauncher/AccessibilityDelegate.h:
* WinLauncher/Common.cpp:
* WinLauncher/DOMDefaultImpl.cpp:
* WinLauncher/DOMDefaultImpl.h:
* WinLauncher/PageLoadTestClient.cpp:
* WinLauncher/PageLoadTestClient.h:
* WinLauncher/PrintWebUIDelegate.cpp:
* WinLauncher/PrintWebUIDelegate.h:
* WinLauncher/ResourceLoadDelegate.cpp:
* WinLauncher/ResourceLoadDelegate.h:
* WinLauncher/WebDownloadDelegate.cpp:
* WinLauncher/WebDownloadDelegate.h:
* WinLauncher/WinLauncherWebHost.cpp:
* WinLauncher/WinLauncherWebHost.h:
* WinLauncher/WinMain.cpp:
* win/DLLLauncher/DLLLauncherMain.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@188709 268f45cc-cd09-0410-ab3c-d52691b4dbfc

38 files changed:
Tools/ChangeLog
Tools/DumpRenderTree/win/DRTDataObject.cpp
Tools/DumpRenderTree/win/DRTDataObject.h
Tools/DumpRenderTree/win/DRTDesktopNotificationPresenter.cpp
Tools/DumpRenderTree/win/DRTDesktopNotificationPresenter.h
Tools/DumpRenderTree/win/DRTDropSource.cpp
Tools/DumpRenderTree/win/DRTDropSource.h
Tools/DumpRenderTree/win/DumpRenderTree.cpp
Tools/DumpRenderTree/win/EditingDelegate.cpp
Tools/DumpRenderTree/win/EditingDelegate.h
Tools/DumpRenderTree/win/FrameLoadDelegate.cpp
Tools/DumpRenderTree/win/FrameLoadDelegate.h
Tools/DumpRenderTree/win/HistoryDelegate.cpp
Tools/DumpRenderTree/win/HistoryDelegate.h
Tools/DumpRenderTree/win/PolicyDelegate.cpp
Tools/DumpRenderTree/win/PolicyDelegate.h
Tools/DumpRenderTree/win/ResourceLoadDelegate.cpp
Tools/DumpRenderTree/win/ResourceLoadDelegate.h
Tools/DumpRenderTree/win/TestRunnerWin.cpp
Tools/DumpRenderTree/win/UIDelegate.cpp
Tools/DumpRenderTree/win/UIDelegate.h
Tools/WinLauncher/AccessibilityDelegate.cpp
Tools/WinLauncher/AccessibilityDelegate.h
Tools/WinLauncher/Common.cpp
Tools/WinLauncher/DOMDefaultImpl.cpp
Tools/WinLauncher/DOMDefaultImpl.h
Tools/WinLauncher/PageLoadTestClient.cpp
Tools/WinLauncher/PageLoadTestClient.h
Tools/WinLauncher/PrintWebUIDelegate.cpp
Tools/WinLauncher/PrintWebUIDelegate.h
Tools/WinLauncher/ResourceLoadDelegate.cpp
Tools/WinLauncher/ResourceLoadDelegate.h
Tools/WinLauncher/WebDownloadDelegate.cpp
Tools/WinLauncher/WebDownloadDelegate.h
Tools/WinLauncher/WinLauncherWebHost.cpp
Tools/WinLauncher/WinLauncherWebHost.h
Tools/WinLauncher/WinMain.cpp
Tools/win/DLLLauncher/DLLLauncherMain.cpp

index 1b92ca0..112dc45 100644 (file)
@@ -1,3 +1,54 @@
+2015-08-20  Brent Fulgham  <bfulgham@apple.com>
+
+        [Win] Update Windows tools for revised MIDL interfaces
+        https://bugs.webkit.org/show_bug.cgi?id=148249
+
+        Reviewed by Dean Jackson.
+
+        This is a follow-up to Bug 148001.
+
+        Revise the testing software to use compatible signatures and
+        implementations to match the requirements of the IDL generated
+        with the SAL annotations.
+
+        * DumpRenderTree/win/DRTDataObject.cpp:
+        * DumpRenderTree/win/DRTDataObject.h:
+        * DumpRenderTree/win/DRTDesktopNotificationPresenter.cpp:
+        * DumpRenderTree/win/DRTDesktopNotificationPresenter.h:
+        * DumpRenderTree/win/DRTDropSource.cpp:
+        * DumpRenderTree/win/DRTDropSource.h:
+        * DumpRenderTree/win/DumpRenderTree.cpp:
+        * DumpRenderTree/win/EditingDelegate.cpp:
+        * DumpRenderTree/win/EditingDelegate.h:
+        * DumpRenderTree/win/FrameLoadDelegate.cpp:
+        * DumpRenderTree/win/FrameLoadDelegate.h:
+        * DumpRenderTree/win/HistoryDelegate.cpp:
+        * DumpRenderTree/win/HistoryDelegate.h:
+        * DumpRenderTree/win/PolicyDelegate.cpp:
+        * DumpRenderTree/win/PolicyDelegate.h:
+        * DumpRenderTree/win/ResourceLoadDelegate.cpp:
+        * DumpRenderTree/win/ResourceLoadDelegate.h:
+        * DumpRenderTree/win/TestRunnerWin.cpp:
+        * DumpRenderTree/win/UIDelegate.cpp:
+        * DumpRenderTree/win/UIDelegate.h:
+        * WinLauncher/AccessibilityDelegate.cpp:
+        * WinLauncher/AccessibilityDelegate.h:
+        * WinLauncher/Common.cpp:
+        * WinLauncher/DOMDefaultImpl.cpp:
+        * WinLauncher/DOMDefaultImpl.h:
+        * WinLauncher/PageLoadTestClient.cpp:
+        * WinLauncher/PageLoadTestClient.h:
+        * WinLauncher/PrintWebUIDelegate.cpp:
+        * WinLauncher/PrintWebUIDelegate.h:
+        * WinLauncher/ResourceLoadDelegate.cpp:
+        * WinLauncher/ResourceLoadDelegate.h:
+        * WinLauncher/WebDownloadDelegate.cpp:
+        * WinLauncher/WebDownloadDelegate.h:
+        * WinLauncher/WinLauncherWebHost.cpp:
+        * WinLauncher/WinLauncherWebHost.h:
+        * WinLauncher/WinMain.cpp:
+        * win/DLLLauncher/DLLLauncherMain.cpp:
+
 2015-08-20  Filip Pizlo  <fpizlo@apple.com>
 
         Unreviewed, shorten a test that runs too long and times out.
index 235d489..a6dbea3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007, 2014 Apple Inc.  All rights reserved.
+ * Copyright (C) 2007, 2014-2015 Apple Inc.  All rights reserved.
  * Copyright (C) 2012 Baidu Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -53,40 +53,38 @@ public:
     explicit WCEnumFormatEtc(const Vector<std::unique_ptr<FORMATETC>>& formats);
 
     // IUnknown members
-    STDMETHOD(QueryInterface)(REFIID, void**);
+    STDMETHOD(QueryInterface)(_In_ REFIID, _COM_Outptr_ void**);
     STDMETHOD_(ULONG, AddRef)();
     STDMETHOD_(ULONG, Release)();
 
     // IEnumFORMATETC members
-    STDMETHOD(Next)(ULONG, LPFORMATETC, ULONG*);
+    STDMETHOD(Next)(ULONG celt, _Out_writes_to_(celt, *pceltFetched) LPFORMATETC, _Out_opt_ ULONG* pceltFetched);
     STDMETHOD(Skip)(ULONG);
     STDMETHOD(Reset)();
-    STDMETHOD(Clone)(IEnumFORMATETC**);
+    STDMETHOD(Clone)(_COM_Outptr_opt_ IEnumFORMATETC**);
 
 private:
-    long m_ref;
     Vector<FORMATETC> m_formats;
-    size_t m_current;
+    long m_ref { 1 };
+    size_t m_current { 0 };
 };
 
 WCEnumFormatEtc::WCEnumFormatEtc(const Vector<FORMATETC>& formats)
-    : m_ref(1)
-    , m_current(0)
-    , m_formats(formats)
+    : m_formats(formats)
 {
 }
 
 WCEnumFormatEtc::WCEnumFormatEtc(const Vector<std::unique_ptr<FORMATETC>>& formats)
-    : m_ref(1)
-    , m_current(0)
 {
     for (auto& format : formats)
         m_formats.append(*format);
 }
 
-STDMETHODIMP WCEnumFormatEtc::QueryInterface(REFIID riid, void** ppvObject)
+STDMETHODIMP WCEnumFormatEtc::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IEnumFORMATETC)) {
         *ppvObject = this;
         AddRef();
@@ -109,7 +107,7 @@ STDMETHODIMP_(ULONG) WCEnumFormatEtc::Release()
     return refCount;
 }
 
-STDMETHODIMP WCEnumFormatEtc::Next(ULONG celt, LPFORMATETC lpFormatEtc, ULONG* pceltFetched)
+STDMETHODIMP WCEnumFormatEtc::Next(ULONG celt, _Out_writes_to_(celt, *pceltFetched) LPFORMATETC lpFormatEtc, _Out_opt_ ULONG* pceltFetched)
 {
     if (pceltFetched)
         *pceltFetched = 0;
@@ -146,7 +144,7 @@ STDMETHODIMP WCEnumFormatEtc::Reset()
     return S_OK;
 }
 
-STDMETHODIMP WCEnumFormatEtc::Clone(IEnumFORMATETC** ppCloneEnumFormatEtc)
+STDMETHODIMP WCEnumFormatEtc::Clone(_COM_Outptr_opt_ IEnumFORMATETC** ppCloneEnumFormatEtc)
 {
     if (!ppCloneEnumFormatEtc)
         return E_POINTER;
@@ -171,13 +169,14 @@ HRESULT DRTDataObject::createInstance(DRTDataObject** result)
 }
 
 DRTDataObject::DRTDataObject()
-    : m_ref(1)
 {
 }
 
-STDMETHODIMP DRTDataObject::QueryInterface(REFIID riid, void** ppvObject)
+STDMETHODIMP DRTDataObject::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IDataObject))
         *ppvObject = this;
 
@@ -201,11 +200,11 @@ STDMETHODIMP_(ULONG) DRTDataObject::Release()
     return refCount;
 }
 
-STDMETHODIMP DRTDataObject::GetData(FORMATETC* pformatetcIn, STGMEDIUM* pmedium)
+STDMETHODIMP DRTDataObject::GetData(_In_ FORMATETC* pformatetcIn, _Out_ STGMEDIUM* pmedium)
 { 
     if (!pformatetcIn || !pmedium)
         return E_POINTER;
-    pmedium->hGlobal = 0;
+    pmedium->hGlobal = nullptr;
 
     for (size_t i = 0; i < m_formats.size(); ++i) {
         if (pformatetcIn->lindex == m_formats[i]->lindex && pformatetcIn->dwAspect == m_formats[i]->dwAspect && pformatetcIn->cfFormat == m_formats[i]->cfFormat) {
@@ -216,12 +215,12 @@ STDMETHODIMP DRTDataObject::GetData(FORMATETC* pformatetcIn, STGMEDIUM* pmedium)
     return DV_E_FORMATETC;
 }
 
-STDMETHODIMP DRTDataObject::GetDataHere(FORMATETC*, STGMEDIUM*)
+STDMETHODIMP DRTDataObject::GetDataHere(_In_ FORMATETC*, _Inout_ STGMEDIUM*)
 { 
     return E_NOTIMPL;
 }
 
-STDMETHODIMP DRTDataObject::QueryGetData(FORMATETC* pformatetc)
+STDMETHODIMP DRTDataObject::QueryGetData(_In_opt_ FORMATETC* pformatetc)
 { 
     if (!pformatetc)
         return E_POINTER;
@@ -238,12 +237,14 @@ STDMETHODIMP DRTDataObject::QueryGetData(FORMATETC* pformatetc)
     return DV_E_TYMED;
 }
 
-STDMETHODIMP DRTDataObject::GetCanonicalFormatEtc(FORMATETC*, FORMATETC*)
+STDMETHODIMP DRTDataObject::GetCanonicalFormatEtc(_In_opt_ FORMATETC*, _Out_ FORMATETC* formatOut)
 { 
+    if (!formatOut)
+        return E_POINTER;
     return DATA_S_SAMEFORMATETC;
 }
 
-STDMETHODIMP DRTDataObject::SetData(FORMATETC* pformatetc, STGMEDIUM* pmedium, BOOL fRelease)
+STDMETHODIMP DRTDataObject::SetData(_In_ FORMATETC* pformatetc, _In_ STGMEDIUM* pmedium, BOOL fRelease)
 { 
     if (!pformatetc || !pmedium)
         return E_POINTER;
@@ -296,18 +297,18 @@ void DRTDataObject::CopyMedium(STGMEDIUM* pMedDest, STGMEDIUM* pMedSrc, FORMATET
         break;
     }
     pMedDest->tymed = pMedSrc->tymed;
-    pMedDest->pUnkForRelease = 0;
+    pMedDest->pUnkForRelease = nullptr;
     if (pMedSrc->pUnkForRelease) {
         pMedDest->pUnkForRelease = pMedSrc->pUnkForRelease;
         pMedSrc->pUnkForRelease->AddRef();
     }
 }
-STDMETHODIMP DRTDataObject::EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC** ppenumFormatEtc)
+STDMETHODIMP DRTDataObject::EnumFormatEtc(DWORD dwDirection, _COM_Outptr_opt_ IEnumFORMATETC** ppenumFormatEtc)
 { 
     if (!ppenumFormatEtc)
         return E_POINTER;
 
-    *ppenumFormatEtc = 0;
+    *ppenumFormatEtc = nullptr;
     switch (dwDirection) {
     case DATADIR_GET:
         *ppenumFormatEtc = new WCEnumFormatEtc(m_formats);
@@ -324,7 +325,7 @@ STDMETHODIMP DRTDataObject::EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC** pp
     return S_OK;
 }
 
-STDMETHODIMP DRTDataObject::DAdvise(FORMATETC*, DWORD, IAdviseSink*, DWORD*)
+STDMETHODIMP DRTDataObject::DAdvise(_In_ FORMATETC*, DWORD, _Inout_ IAdviseSink*, _Out_ DWORD*)
 { 
     return OLE_E_ADVISENOTSUPPORTED;
 }
@@ -334,8 +335,11 @@ STDMETHODIMP DRTDataObject::DUnadvise(DWORD)
     return E_NOTIMPL;
 }
 
-HRESULT STDMETHODCALLTYPE DRTDataObject::EnumDAdvise(IEnumSTATDATA**)
+HRESULT DRTDataObject::EnumDAdvise(_COM_Outptr_opt_ IEnumSTATDATA** dadvise)
 {
+    if (!dadvise)
+        return E_POINTER;
+    *dadvise = nullptr;
     return OLE_E_ADVISENOTSUPPORTED;
 }
 
index 3107b39..15c7f15 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007, 2014 Apple Inc.  All rights reserved.
+ * Copyright (C) 2007, 2014-2015 Apple Inc.  All rights reserved.
  * Copyright (C) 2012 Baidu Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -49,27 +49,27 @@ public:
     void CopyMedium(STGMEDIUM* pMedDest, STGMEDIUM* pMedSrc, FORMATETC* pFmtSrc);
 
     // IUnknown
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);        
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);        
     virtual ULONG STDMETHODCALLTYPE AddRef();
     virtual ULONG STDMETHODCALLTYPE Release();
 
     // IDataObject
-    virtual HRESULT STDMETHODCALLTYPE GetData(FORMATETC* pformatIn, STGMEDIUM* pmedium);
-    virtual HRESULT STDMETHODCALLTYPE GetDataHere(FORMATETC* pformat, STGMEDIUM* pmedium);
-    virtual HRESULT STDMETHODCALLTYPE QueryGetData(FORMATETC* pformat);
-    virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc(FORMATETC* pformatectIn, FORMATETC* pformatOut);
-    virtual HRESULT STDMETHODCALLTYPE SetData(FORMATETC* pformat, STGMEDIUM*pmedium, BOOL release);
-    virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC** ppenumFormatEtc);
-    virtual HRESULT STDMETHODCALLTYPE DAdvise(FORMATETC*, DWORD, IAdviseSink*, DWORD*);
+    virtual HRESULT STDMETHODCALLTYPE GetData(_In_ FORMATETC*, _Out_ STGMEDIUM*);
+    virtual HRESULT STDMETHODCALLTYPE GetDataHere(_In_ FORMATETC*, _Inout_ STGMEDIUM*);
+    virtual HRESULT STDMETHODCALLTYPE QueryGetData(_In_opt_ FORMATETC*);
+    virtual HRESULT STDMETHODCALLTYPE GetCanonicalFormatEtc(_In_opt_ FORMATETC*, _Out_ FORMATETC*);
+    virtual HRESULT STDMETHODCALLTYPE SetData(_In_ FORMATETC*, _In_ STGMEDIUM*, BOOL release);
+    virtual HRESULT STDMETHODCALLTYPE EnumFormatEtc(DWORD dwDirection, _COM_Outptr_opt_ IEnumFORMATETC**);
+    virtual HRESULT STDMETHODCALLTYPE DAdvise(_In_ FORMATETC*, DWORD, _Inout_ IAdviseSink*, _Out_ DWORD*);
     virtual HRESULT STDMETHODCALLTYPE DUnadvise(DWORD);
-    virtual HRESULT STDMETHODCALLTYPE EnumDAdvise(IEnumSTATDATA**);
+    virtual HRESULT STDMETHODCALLTYPE EnumDAdvise(_COM_Outptr_opt_ IEnumSTATDATA**);
 
     void clearData(CLIPFORMAT);
     
     static HRESULT createInstance(DRTDataObject**);
 private:
     DRTDataObject();
-    long m_ref;
+    long m_ref { 1 };
     Vector<std::unique_ptr<FORMATETC>> m_formats;
     Vector<std::unique_ptr<STGMEDIUM, StgMediumDeleter>> m_medium;
 };
index f919ef9..09275e9 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2009 Google Inc. All rights reserved.
- * Copyright (C) 2014 Apple Inc.  All rights reserved.
+ * Copyright (C) 2014-2015 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
 #include <comutil.h>
 
 DRTDesktopNotificationPresenter::DRTDesktopNotificationPresenter()
-    : m_refCount(1) {} 
+{
+} 
 
-HRESULT DRTDesktopNotificationPresenter::QueryInterface(REFIID riid, void** ppvObject)
+HRESULT DRTDesktopNotificationPresenter::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualGUID(riid, IID_IUnknown))
         *ppvObject = static_cast<DRTDesktopNotificationPresenter*>(this);
     else if (IsEqualGUID(riid, IID_IWebDesktopNotificationsDelegate))
@@ -70,7 +73,7 @@ ULONG DRTDesktopNotificationPresenter::Release()
     return newRef;
 }
 
-HRESULT DRTDesktopNotificationPresenter::showDesktopNotification(IWebDesktopNotification* notification)
+HRESULT DRTDesktopNotificationPresenter::showDesktopNotification(_In_opt_ IWebDesktopNotification* notification)
 {
     _bstr_t title, text, url;
     BOOL html;
@@ -92,7 +95,7 @@ HRESULT DRTDesktopNotificationPresenter::showDesktopNotification(IWebDesktopNoti
     return S_OK;
 }
 
-HRESULT DRTDesktopNotificationPresenter::cancelDesktopNotification(IWebDesktopNotification* notification)
+HRESULT DRTDesktopNotificationPresenter::cancelDesktopNotification(_In_opt_ IWebDesktopNotification* notification)
 {
     _bstr_t identifier;
     BOOL html;
@@ -108,15 +111,20 @@ HRESULT DRTDesktopNotificationPresenter::cancelDesktopNotification(IWebDesktopNo
     return S_OK;
 }
 
-HRESULT DRTDesktopNotificationPresenter::notificationDestroyed(IWebDesktopNotification* /*notification*/)
+HRESULT DRTDesktopNotificationPresenter::notificationDestroyed(_In_opt_ IWebDesktopNotification* /*notification*/)
 {
     // Since in these tests events happen immediately, we don't hold on to
     // Notification pointers.  So there's no cleanup to do.
     return S_OK;
 }
 
-HRESULT DRTDesktopNotificationPresenter::checkNotificationPermission(BSTR /*origin*/, int* /*result*/)
+HRESULT DRTDesktopNotificationPresenter::checkNotificationPermission(_In_ BSTR /*origin*/, _Out_ int* result)
 {
+    if (!result)
+        return E_POINTER;
+
+    *result = 0;
+
 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
     JSStringRef jsOrigin = JSStringCreateWithBSTR(origin);
     bool allowed = ::gTestRunner->checkDesktopNotificationPermission(jsOrigin);
@@ -131,7 +139,7 @@ HRESULT DRTDesktopNotificationPresenter::checkNotificationPermission(BSTR /*orig
     return S_OK;
 }
 
-HRESULT DRTDesktopNotificationPresenter::requestNotificationPermission(BSTR origin)
+HRESULT DRTDesktopNotificationPresenter::requestNotificationPermission(_In_ BSTR origin)
 {
     printf("DESKTOP NOTIFICATION PERMISSION REQUESTED: %S\n", origin ? origin : L"");
     return S_OK;
index d2f17a6..eb0c7df 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005, 2006, 2007 Apple Inc.  All rights reserved.
+ * Copyright (C) 2005-2007, 2015 Apple Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -37,29 +37,19 @@ public:
     DRTDesktopNotificationPresenter();
 
     // IUnknown
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
-    virtual ULONG STDMETHODCALLTYPE AddRef(void);
-    virtual ULONG STDMETHODCALLTYPE Release(void);
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
+    virtual ULONG STDMETHODCALLTYPE AddRef();
+    virtual ULONG STDMETHODCALLTYPE Release();
 
     // IWebDesktopNotificationsDelegate
-    virtual HRESULT STDMETHODCALLTYPE showDesktopNotification(
-        /* [in] */ IWebDesktopNotification* notification);
-
-    virtual HRESULT STDMETHODCALLTYPE cancelDesktopNotification(
-        /* [in] */ IWebDesktopNotification* notification);
-
-    virtual HRESULT STDMETHODCALLTYPE notificationDestroyed(
-        /* [in] */ IWebDesktopNotification* notification);
-
-    virtual HRESULT STDMETHODCALLTYPE checkNotificationPermission(
-        /* [in] */ BSTR origin, 
-        /* [out, retval] */ int* result);
-
-    virtual HRESULT STDMETHODCALLTYPE requestNotificationPermission(
-        /* [in] */ BSTR origin);
+    virtual HRESULT STDMETHODCALLTYPE showDesktopNotification(_In_opt_ IWebDesktopNotification*);
+    virtual HRESULT STDMETHODCALLTYPE cancelDesktopNotification(_In_opt_ IWebDesktopNotification*);
+    virtual HRESULT STDMETHODCALLTYPE notificationDestroyed(_In_opt_ IWebDesktopNotification*);
+    virtual HRESULT STDMETHODCALLTYPE checkNotificationPermission(_In_ BSTR origin, _Out_ int* result);
+    virtual HRESULT STDMETHODCALLTYPE requestNotificationPermission(_In_ BSTR origin);
 
 private:
-    ULONG m_refCount;
+    ULONG m_refCount { 1 };
 };
 
 #endif
index 47889a6..9839cd2 100644 (file)
@@ -1,4 +1,5 @@
 /*
+* Copyright (C) 2015 Apple Inc.  All rights reserved.
 * Copyright (C) 2012 Baidu Inc. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
@@ -27,8 +28,6 @@
 #include "DRTDropSource.h"
 
 DRTDropSource::DRTDropSource()
-    : m_ref(1)
-    , m_dropped(false)
 {
 }
 
@@ -36,9 +35,11 @@ DRTDropSource::~DRTDropSource()
 {
 }
 
-STDMETHODIMP DRTDropSource::QueryInterface(REFIID riid, void** ppvObject)
+STDMETHODIMP DRTDropSource::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IDropSource)) {
         *ppvObject = this;
         AddRef();
@@ -70,7 +71,7 @@ HRESULT DRTDropSource::createInstance(IDropSource** result)
     return S_OK;
 }
 
-STDMETHODIMP DRTDropSource::QueryContinueDrag(BOOL fEscapePressed, DWORD grfKeyState)
+STDMETHODIMP DRTDropSource::QueryContinueDrag(_In_ BOOL fEscapePressed, _In_ DWORD grfKeyState)
 {
     if (fEscapePressed || !(grfKeyState & (MK_LBUTTON | MK_RBUTTON))) {
         m_dropped = !fEscapePressed;
@@ -80,7 +81,7 @@ STDMETHODIMP DRTDropSource::QueryContinueDrag(BOOL fEscapePressed, DWORD grfKeyS
     return S_OK;
 }
 
-STDMETHODIMP DRTDropSource::GiveFeedback(DWORD dwEffect)
+STDMETHODIMP DRTDropSource::GiveFeedback(_In_ DWORD dwEffect)
 {
     return DRAGDROP_S_USEDEFAULTCURSORS;
 }
index 4606acd..662c7d6 100644 (file)
@@ -1,4 +1,5 @@
 /*
+* Copyright (C) 2015 Apple Inc.  All rights reserved.
 * Copyright (C) 2012 Baidu Inc. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 
 class DRTDropSource : public IDropSource {
 public:
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);        
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);        
     virtual ULONG STDMETHODCALLTYPE AddRef();
     virtual ULONG STDMETHODCALLTYPE Release();
-    virtual HRESULT STDMETHODCALLTYPE QueryContinueDrag(BOOL fEscapePressed, DWORD grfKeyState);
-    virtual HRESULT STDMETHODCALLTYPE GiveFeedback(DWORD dwEffect);
+    virtual HRESULT STDMETHODCALLTYPE QueryContinueDrag(_In_ BOOL fEscapePressed, _In_ DWORD grfKeyState);
+    virtual HRESULT STDMETHODCALLTYPE GiveFeedback(_In_ DWORD dwEffect);
 
     static HRESULT createInstance(IDropSource** result);
 private:
     DRTDropSource();
     ~DRTDropSource();
-    long m_ref;
-    bool m_dropped;
+    long m_ref { 1 };
+    bool m_dropped { false };
 };
 
 #endif // DRTDropSource_h
index 1767e66..e56eb1f 100644 (file)
@@ -1439,7 +1439,7 @@ int main(int argc, const char* argv[])
     prepareConsistentTestingEnvironment(standardPreferences.get(), standardPreferencesPrivate.get());
 
     if (printSupportedFeatures) {
-        BOOL acceleratedCompositingAvailable;
+        BOOL acceleratedCompositingAvailable = FALSE;
         standardPreferences->acceleratedCompositingEnabled(&acceleratedCompositingAvailable);
 
 #if ENABLE(3D_TRANSFORMS)
index ffbf35b..cc26ec7 100644 (file)
 using std::wstring;
 
 EditingDelegate::EditingDelegate()
-    : m_refCount(1)
-    , m_acceptsEditing(true)
 {
 }
 
 // IUnknown
-HRESULT EditingDelegate::QueryInterface(REFIID riid, void** ppvObject)
+HRESULT EditingDelegate::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualGUID(riid, IID_IUnknown))
         *ppvObject = static_cast<IWebEditingDelegate2*>(this);
     else if (IsEqualGUID(riid, IID_IWebEditingDelegate))
@@ -66,12 +66,12 @@ HRESULT EditingDelegate::QueryInterface(REFIID riid, void** ppvObject)
     return S_OK;
 }
 
-ULONG EditingDelegate::AddRef(void)
+ULONG EditingDelegate::AddRef()
 {
     return ++m_refCount;
 }
 
-ULONG EditingDelegate::Release(void)
+ULONG EditingDelegate::Release()
 {
     ULONG newRef = --m_refCount;
     if (!newRef)
@@ -124,7 +124,7 @@ static std::string dump(IDOMRange* range)
     return buffer;
 }
 
-HRESULT EditingDelegate::shouldBeginEditingInDOMRange(IWebView* /*webView*/, IDOMRange* range, BOOL* result)
+HRESULT EditingDelegate::shouldBeginEditingInDOMRange(_In_opt_ IWebView*, _In_opt_ IDOMRange* range, _Out_ BOOL* result)
 {
     if (!result) {
         ASSERT_NOT_REACHED();
@@ -138,7 +138,7 @@ HRESULT EditingDelegate::shouldBeginEditingInDOMRange(IWebView* /*webView*/, IDO
     return S_OK;
 }
 
-HRESULT EditingDelegate::shouldEndEditingInDOMRange(IWebView* /*webView*/, IDOMRange* range, BOOL* result)
+HRESULT EditingDelegate::shouldEndEditingInDOMRange(_In_opt_ IWebView*, _In_opt_ IDOMRange* range, _Out_ BOOL* result)
 {
     if (!result) {
         ASSERT_NOT_REACHED();
@@ -153,14 +153,14 @@ HRESULT EditingDelegate::shouldEndEditingInDOMRange(IWebView* /*webView*/, IDOMR
 }
 
 // IWebEditingDelegate
-HRESULT EditingDelegate::shouldInsertNode(IWebView* webView, IDOMNode* node, IDOMRange* range, WebViewInsertAction action)
+HRESULT EditingDelegate::shouldInsertNode(_In_opt_ IWebView* webView, _In_opt_ IDOMNode* node, _In_opt_ IDOMRange* range, WebViewInsertAction action)
 {
     BOOL ignore;
     return shouldInsertNode(webView, node, range, action, &ignore);
 }
 
 // IWebEditingDelegate2
-HRESULT EditingDelegate::shouldInsertNode(IWebView* /*webView*/, IDOMNode* node, IDOMRange* range, WebViewInsertAction action, BOOL* result)
+HRESULT EditingDelegate::shouldInsertNode(_In_opt_ IWebView* /*webView*/, _In_opt_ IDOMNode* node, _In_opt_ IDOMRange* range, WebViewInsertAction action, _Out_ BOOL* result)
 {
     static const char* insertActionString[] = {
         "WebViewInsertActionTyped",
@@ -168,6 +168,9 @@ HRESULT EditingDelegate::shouldInsertNode(IWebView* /*webView*/, IDOMNode* node,
         "WebViewInsertActionDropped",
     };
 
+    if (!result)
+        return E_POINTER;
+
     if (::gTestRunner->dumpEditingCallbacks() && !done)
         printf("EDITING DELEGATE: shouldInsertNode:%s replacingDOMRange:%s givenAction:%s\n", dumpPath(node).c_str(), dump(range).c_str(), insertActionString[action]);
 
@@ -175,7 +178,7 @@ HRESULT EditingDelegate::shouldInsertNode(IWebView* /*webView*/, IDOMNode* node,
     return S_OK;
 }
 
-HRESULT EditingDelegate::shouldInsertText(IWebView* /*webView*/, BSTR text, IDOMRange* range, WebViewInsertAction action, BOOL* result)
+HRESULT EditingDelegate::shouldInsertText(_In_opt_ IWebView* /*webView*/, _In_ BSTR text, _In_opt_ IDOMRange* range, WebViewInsertAction action, _Out_ BOOL* result)
 {
     if (!result) {
         ASSERT_NOT_REACHED();
@@ -197,7 +200,7 @@ HRESULT EditingDelegate::shouldInsertText(IWebView* /*webView*/, BSTR text, IDOM
     return S_OK;
 }
 
-HRESULT EditingDelegate::shouldDeleteDOMRange(IWebView* /*webView*/, IDOMRange* range, BOOL* result)
+HRESULT EditingDelegate::shouldDeleteDOMRange(_In_opt_ IWebView* /*webView*/, _In_opt_ IDOMRange* range, _Out_ BOOL* result)
 {
     if (!result) {
         ASSERT_NOT_REACHED();
@@ -211,8 +214,8 @@ HRESULT EditingDelegate::shouldDeleteDOMRange(IWebView* /*webView*/, IDOMRange*
     return S_OK;
 }
 
-HRESULT EditingDelegate::shouldChangeSelectedDOMRange(IWebView* /*webView*/, IDOMRange* currentRange, IDOMRange* proposedRange,
-    WebSelectionAffinity selectionAffinity, BOOL stillSelecting, BOOL* result)
+HRESULT EditingDelegate::shouldChangeSelectedDOMRange(_In_opt_ IWebView* /*webView*/, _In_opt_ IDOMRange* currentRange, _In_opt_ IDOMRange* proposedRange,
+    WebSelectionAffinity selectionAffinity, BOOL stillSelecting, _Out_ BOOL* result)
 {
     if (!result) {
         ASSERT_NOT_REACHED();
@@ -235,7 +238,7 @@ HRESULT EditingDelegate::shouldChangeSelectedDOMRange(IWebView* /*webView*/, IDO
     return S_OK;
 }
 
-HRESULT EditingDelegate::shouldApplyStyle(IWebView* /*webView*/, IDOMCSSStyleDeclaration* style, IDOMRange* range, BOOL* result)
+HRESULT EditingDelegate::shouldApplyStyle(_In_opt_ IWebView* /*webView*/, _In_opt_ IDOMCSSStyleDeclaration* style, _In_opt_ IDOMRange* range, _Out_ BOOL* result)
 {
     if (!result) {
         ASSERT_NOT_REACHED();
@@ -249,7 +252,8 @@ HRESULT EditingDelegate::shouldApplyStyle(IWebView* /*webView*/, IDOMCSSStyleDec
     return S_OK;
 }
 
-HRESULT EditingDelegate::shouldChangeTypingStyle(IWebView* /*webView*/, IDOMCSSStyleDeclaration* currentStyle, IDOMCSSStyleDeclaration* proposedStyle, BOOL* result)
+HRESULT EditingDelegate::shouldChangeTypingStyle(_In_opt_ IWebView* /*webView*/, _In_opt_ IDOMCSSStyleDeclaration* currentStyle,
+    _In_opt_ IDOMCSSStyleDeclaration* proposedStyle, _Out_ BOOL* result)
 {
     if (!result) {
         ASSERT_NOT_REACHED();
@@ -263,7 +267,7 @@ HRESULT EditingDelegate::shouldChangeTypingStyle(IWebView* /*webView*/, IDOMCSSS
     return S_OK;
 }
 
-HRESULT EditingDelegate::doPlatformCommand(IWebView* /*webView*/, BSTR command, BOOL* result)
+HRESULT EditingDelegate::doPlatformCommand(_In_opt_ IWebView* /*webView*/, _In_ BSTR command, _Out_ BOOL* result)
 {
     if (!result) {
         ASSERT_NOT_REACHED();
@@ -279,8 +283,11 @@ HRESULT EditingDelegate::doPlatformCommand(IWebView* /*webView*/, BSTR command,
     return S_OK;
 }
 
-HRESULT EditingDelegate::webViewDidBeginEditing(IWebNotification* notification)
+HRESULT EditingDelegate::webViewDidBeginEditing(_In_opt_ IWebNotification* notification)
 {
+    if (!notification)
+        return S_OK;
+
     if (::gTestRunner->dumpEditingCallbacks() && !done) {
         _bstr_t name;
         notification->name(&name.GetBSTR());
@@ -289,8 +296,11 @@ HRESULT EditingDelegate::webViewDidBeginEditing(IWebNotification* notification)
     return S_OK;
 }
 
-HRESULT EditingDelegate::webViewDidChange(IWebNotification* notification)
+HRESULT EditingDelegate::webViewDidChange(_In_opt_ IWebNotification* notification)
 {
+    if (!notification)
+        return S_OK;
+
     if (::gTestRunner->dumpEditingCallbacks() && !done) {
         _bstr_t name;
         notification->name(&name.GetBSTR());
@@ -299,8 +309,11 @@ HRESULT EditingDelegate::webViewDidChange(IWebNotification* notification)
     return S_OK;
 }
 
-HRESULT EditingDelegate::webViewDidEndEditing(IWebNotification* notification)
+HRESULT EditingDelegate::webViewDidEndEditing(_In_opt_ IWebNotification* notification)
 {
+    if (!notification)
+        return S_OK;
+
     if (::gTestRunner->dumpEditingCallbacks() && !done) {
         _bstr_t name;
         notification->name(&name.GetBSTR());
@@ -309,8 +322,11 @@ HRESULT EditingDelegate::webViewDidEndEditing(IWebNotification* notification)
     return S_OK;
 }
 
-HRESULT EditingDelegate::webViewDidChangeTypingStyle(IWebNotification* notification)
+HRESULT EditingDelegate::webViewDidChangeTypingStyle(_In_opt_ IWebNotification* notification)
 {
+    if (!notification)
+        return S_OK;
+
     if (::gTestRunner->dumpEditingCallbacks() && !done) {
         _bstr_t name;
         notification->name(&name.GetBSTR());
@@ -319,8 +335,11 @@ HRESULT EditingDelegate::webViewDidChangeTypingStyle(IWebNotification* notificat
     return S_OK;
 }
 
-HRESULT EditingDelegate::webViewDidChangeSelection(IWebNotification* notification)
+HRESULT EditingDelegate::webViewDidChangeSelection(_In_opt_ IWebNotification* notification)
 {
+    if (!notification)
+        return S_OK;
+
     if (::gTestRunner->dumpEditingCallbacks() && !done) {
         _bstr_t name;
         notification->name(&name.GetBSTR());
@@ -329,6 +348,14 @@ HRESULT EditingDelegate::webViewDidChangeSelection(IWebNotification* notificatio
     return S_OK;
 }
 
+HRESULT EditingDelegate::undoManagerForWebView(_In_opt_ IWebView*, _COM_Outptr_opt_ IWebUndoManager** undoManager)
+{
+    if (!undoManager)
+        return E_POINTER;
+    *undoManager = nullptr;
+    return E_NOTIMPL;
+}
+
 static int indexOfFirstWordCharacter(const TCHAR* text)
 {
     const TCHAR* cursor = text;
@@ -345,12 +372,8 @@ static int wordLength(const TCHAR* text)
     return cursor - text;
 };
 
-HRESULT EditingDelegate::checkSpellingOfString(
-            /* [in] */ IWebView* view,
-            /* [in] */ LPCTSTR text,
-            /* [in] */ int length,
-            /* [out] */ int* misspellingLocation,
-            /* [out] */ int* misspellingLength)
+HRESULT EditingDelegate::checkSpellingOfString(_In_opt_ IWebView* view, _In_ LPCTSTR text,
+    int length, _Out_ int* misspellingLocation, _Out_ int* misspellingLength)
 {
     static const TCHAR* misspelledWords[] = {
         // These words are known misspelled words in webkit tests.
@@ -382,10 +405,17 @@ HRESULT EditingDelegate::checkSpellingOfString(
         0,
     };
 
+    if (!misspellingLocation || !misspellingLength)
+        return E_POINTER;
+
+    *misspellingLocation = 0;
+    *misspellingLength = 0;
+
     wstring textString(text, length);
     int wordStart = indexOfFirstWordCharacter(textString.c_str());
     if (-1 == wordStart)
         return S_OK;
+
     wstring word = textString.substr(wordStart, wordLength(textString.c_str() + wordStart));
     for (size_t i = 0; misspelledWords[i]; ++i) {
         if (word == misspelledWords[i]) {
@@ -398,7 +428,25 @@ HRESULT EditingDelegate::checkSpellingOfString(
     return S_OK;
 }
 
-HRESULT EditingDelegate::onNotify(IWebNotification* notification)
+HRESULT EditingDelegate::checkGrammarOfString(_In_opt_ IWebView*, _In_ LPCTSTR text, int length, _COM_Outptr_opt_ IEnumWebGrammarDetails** details,
+    _Out_ int* badGrammarLocation, _Out_ int* badGrammarLength)
+{
+    if (!details)
+        return E_POINTER;
+    *details = nullptr;
+    return E_NOTIMPL;
+}
+
+HRESULT EditingDelegate::guessesForWord(_In_ BSTR word, _COM_Outptr_opt_ IEnumSpellingGuesses** guesses)
+{
+    if (!guesses)
+        return E_POINTER;
+    *guesses = nullptr;
+    return E_NOTIMPL;
+}
+
+
+HRESULT EditingDelegate::onNotify(_In_opt_ IWebNotification* notification)
 {
     _bstr_t notificationName;
     HRESULT hr = notification->name(&notificationName.GetBSTR());
index 5939c98..7d95a5e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007 Apple Inc.  All rights reserved.
+ * Copyright (C) 2007, 2015 Apple Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -38,141 +38,57 @@ public:
     void setAcceptsEditing(bool b) { m_acceptsEditing = b; }
 
     // IUnknown
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
-    virtual ULONG STDMETHODCALLTYPE AddRef(void);
-    virtual ULONG STDMETHODCALLTYPE Release(void);
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
+    virtual ULONG STDMETHODCALLTYPE AddRef();
+    virtual ULONG STDMETHODCALLTYPE Release();
 
     // IWebEditingDelegate
-    virtual HRESULT STDMETHODCALLTYPE shouldBeginEditingInDOMRange( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IDOMRange *range,
-        /* [retval][out] */ BOOL *result);
-    
-    virtual HRESULT STDMETHODCALLTYPE shouldEndEditingInDOMRange( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IDOMRange *range,
-        /* [retval][out] */ BOOL *result);
-    
-    virtual HRESULT STDMETHODCALLTYPE shouldInsertNode(IWebView*, IDOMNode*, IDOMRange*, WebViewInsertAction);
-    
-    virtual HRESULT STDMETHODCALLTYPE shouldInsertText( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ BSTR text,
-        /* [in] */ IDOMRange *range,
-        /* [in] */ WebViewInsertAction action,
-        /* [retval][out] */ BOOL *result);
-    
-    virtual HRESULT STDMETHODCALLTYPE shouldDeleteDOMRange( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IDOMRange *range,
-        /* [retval][out] */ BOOL *result);
-    
-    virtual HRESULT STDMETHODCALLTYPE shouldChangeSelectedDOMRange( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IDOMRange *currentRange,
-        /* [in] */ IDOMRange *proposedRange,
-        /* [in] */ WebSelectionAffinity selectionAffinity,
-        /* [in] */ BOOL stillSelecting,
-        /* [retval][out] */ BOOL *result);
-    
-    virtual HRESULT STDMETHODCALLTYPE shouldApplyStyle( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IDOMCSSStyleDeclaration *style,
-        /* [in] */ IDOMRange *range,
-        /* [retval][out] */ BOOL *result);
-    
-    virtual HRESULT STDMETHODCALLTYPE shouldChangeTypingStyle( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IDOMCSSStyleDeclaration *currentStyle,
-        /* [in] */ IDOMCSSStyleDeclaration *proposedStyle,
-        /* [retval][out] */ BOOL *result);
-    
-    virtual HRESULT STDMETHODCALLTYPE doPlatformCommand( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ BSTR command,
-        /* [retval][out] */ BOOL *result);
-    
-    virtual HRESULT STDMETHODCALLTYPE webViewDidBeginEditing( 
-        /* [in] */ IWebNotification *notification);
-    
-    virtual HRESULT STDMETHODCALLTYPE webViewDidChange( 
-        /* [in] */ IWebNotification *notification);
-    
-    virtual HRESULT STDMETHODCALLTYPE webViewDidEndEditing( 
-        /* [in] */ IWebNotification *notification);
-    
-    virtual HRESULT STDMETHODCALLTYPE webViewDidChangeTypingStyle( 
-        /* [in] */ IWebNotification *notification);
-    
-    virtual HRESULT STDMETHODCALLTYPE webViewDidChangeSelection( 
-        /* [in] */ IWebNotification *notification);
-    
-    virtual HRESULT STDMETHODCALLTYPE undoManagerForWebView( 
-        /* [in] */ IWebView *webView,
-        /* [retval][out] */ IWebUndoManager **undoManager) { return E_NOTIMPL; }
-
-        virtual HRESULT STDMETHODCALLTYPE ignoreWordInSpellDocument( 
-            /* [in] */ IWebView *view,
-            /* [in] */ BSTR word) { return E_NOTIMPL; }
-        
-        virtual HRESULT STDMETHODCALLTYPE learnWord( 
-            /* [in] */ BSTR word) { return E_NOTIMPL; }
-        
-        virtual HRESULT STDMETHODCALLTYPE checkSpellingOfString( 
-            /* [in] */ IWebView *view,
-            /* [in] */ LPCTSTR text,
-            /* [in] */ int length,
-            /* [out] */ int *misspellingLocation,
-            /* [out] */ int *misspellingLength);
-        
-        virtual HRESULT STDMETHODCALLTYPE checkGrammarOfString( 
-            /* [in] */ IWebView *view,
-            /* [in] */ LPCTSTR text,
-            /* [in] */ int length,
-            /* [out] */ IEnumWebGrammarDetails **grammarDetails,
-            /* [out] */ int *badGrammarLocation,
-            /* [out] */ int *badGrammarLength) { return E_NOTIMPL; }
-        
-        virtual HRESULT STDMETHODCALLTYPE updateSpellingUIWithGrammarString( 
-            /* [in] */ BSTR string,
-            /* [in] */ int location,
-            /* [in] */ int length,
-            /* [in] */ BSTR userDescription,
-            /* [in] */ BSTR *guesses,
-            /* [in] */ int guessesCount) { return E_NOTIMPL; }
-        
-        virtual HRESULT STDMETHODCALLTYPE updateSpellingUIWithMisspelledWord( 
-            /* [in] */ BSTR word) { return E_NOTIMPL; }
-        
-        virtual HRESULT STDMETHODCALLTYPE showSpellingUI( 
-            /* [in] */ BOOL show) { return E_NOTIMPL; }
-        
-        virtual HRESULT STDMETHODCALLTYPE spellingUIIsShowing( 
-            /* [retval][out] */ BOOL *result) { return E_NOTIMPL; }
-        
-        virtual HRESULT STDMETHODCALLTYPE guessesForWord( 
-            /* [in] */ BSTR word,
-            /* [retval][out] */ IEnumSpellingGuesses **guesses) { return E_NOTIMPL; }
-        
-        virtual HRESULT STDMETHODCALLTYPE closeSpellDocument( 
-            /* [in] */ IWebView *view) { return E_NOTIMPL; }
-        
-        virtual HRESULT STDMETHODCALLTYPE sharedSpellCheckerExists( 
-            /* [retval][out] */ BOOL *exists) { return E_NOTIMPL; }
-        
-        virtual HRESULT STDMETHODCALLTYPE preflightChosenSpellServer( void) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE shouldBeginEditingInDOMRange(_In_opt_ IWebView*, _In_opt_ IDOMRange*, _Out_ BOOL* result);
+    virtual HRESULT STDMETHODCALLTYPE shouldEndEditingInDOMRange(_In_opt_ IWebView*, _In_opt_ IDOMRange*, _Out_ BOOL* result);
+    virtual HRESULT STDMETHODCALLTYPE shouldInsertNode(_In_opt_ IWebView*, _In_opt_ IDOMNode*, _In_opt_ IDOMRange*, WebViewInsertAction);
+    virtual HRESULT STDMETHODCALLTYPE shouldInsertText(_In_opt_ IWebView*, _In_ BSTR text, _In_opt_ IDOMRange*, WebViewInsertAction, _Out_ BOOL* result);
+    virtual HRESULT STDMETHODCALLTYPE shouldDeleteDOMRange(_In_opt_ IWebView*, _In_opt_ IDOMRange*, _Out_ BOOL* result);
+    virtual HRESULT STDMETHODCALLTYPE shouldChangeSelectedDOMRange(_In_opt_ IWebView*, _In_opt_ IDOMRange*, _In_opt_ IDOMRange*,
+        WebSelectionAffinity, BOOL stillSelecting, _Out_ BOOL* result);
+    virtual HRESULT STDMETHODCALLTYPE shouldApplyStyle(_In_opt_ IWebView*, _In_opt_ IDOMCSSStyleDeclaration*, _In_opt_ IDOMRange*, _Out_ BOOL* result);
+    virtual HRESULT STDMETHODCALLTYPE shouldChangeTypingStyle(_In_opt_ IWebView*, _In_opt_ IDOMCSSStyleDeclaration* currentStyle,
+        _In_opt_ IDOMCSSStyleDeclaration* proposedStyle, _Out_ BOOL* result);
+    virtual HRESULT STDMETHODCALLTYPE doPlatformCommand(_In_opt_ IWebView*, _In_ BSTR command, _Out_ BOOL* result);
+    virtual HRESULT STDMETHODCALLTYPE webViewDidBeginEditing(_In_opt_ IWebNotification*);
+    virtual HRESULT STDMETHODCALLTYPE webViewDidChange(_In_opt_ IWebNotification*);
+    virtual HRESULT STDMETHODCALLTYPE webViewDidEndEditing(_In_opt_ IWebNotification*);
+    virtual HRESULT STDMETHODCALLTYPE webViewDidChangeTypingStyle(_In_opt_ IWebNotification*);
+    virtual HRESULT STDMETHODCALLTYPE webViewDidChangeSelection(_In_opt_ IWebNotification*);    
+    virtual HRESULT STDMETHODCALLTYPE undoManagerForWebView(_In_opt_ IWebView*, _COM_Outptr_opt_ IWebUndoManager **);
+    virtual HRESULT STDMETHODCALLTYPE ignoreWordInSpellDocument(_In_opt_ IWebView*, _In_ BSTR word) { return E_NOTIMPL; }        
+    virtual HRESULT STDMETHODCALLTYPE learnWord(_In_ BSTR word) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE checkSpellingOfString(_In_opt_ IWebView*, _In_ LPCTSTR text, int length, _Out_ int* misspellingLocation, _Out_ int* misspellingLength);
+    virtual HRESULT STDMETHODCALLTYPE checkGrammarOfString(_In_opt_ IWebView*, _In_ LPCTSTR text, int length, _COM_Outptr_opt_ IEnumWebGrammarDetails**,
+        _Out_ int* badGrammarLocation, _Out_ int* badGrammarLength);       
+    virtual HRESULT STDMETHODCALLTYPE updateSpellingUIWithGrammarString(_In_ BSTR string, int location, int length, _In_ BSTR userDescription,
+        _In_opt_ BSTR* guesses, int guessesCount)
+    {
+        return E_NOTIMPL;
+    }
         
-        virtual HRESULT STDMETHODCALLTYPE updateGrammar( void) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE updateSpellingUIWithMisspelledWord(_In_ BSTR) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE showSpellingUI(BOOL) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE spellingUIIsShowing(_Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE guessesForWord(_In_ BSTR word, _COM_Outptr_opt_ IEnumSpellingGuesses** guesses);
+    virtual HRESULT STDMETHODCALLTYPE closeSpellDocument(_In_opt_ IWebView*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE sharedSpellCheckerExists(_Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE preflightChosenSpellServer() { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE updateGrammar() { return E_NOTIMPL; }
 
-        // IWebNotificationObserver
-        virtual HRESULT STDMETHODCALLTYPE onNotify(IWebNotification* notification);
+    // IWebNotificationObserver
+    virtual HRESULT STDMETHODCALLTYPE onNotify(_In_opt_ IWebNotification*);
 
-        // IWebEditingDelegate2
-        virtual HRESULT STDMETHODCALLTYPE shouldInsertNode(IWebView*, IDOMNode*, IDOMRange*, WebViewInsertAction, BOOL* result);
+    // IWebEditingDelegate2
+    virtual HRESULT STDMETHODCALLTYPE shouldInsertNode(_In_opt_ IWebView*, _In_opt_ IDOMNode*, _In_opt_ IDOMRange*, WebViewInsertAction, _Out_ BOOL* result);
 
 private:
-    bool m_acceptsEditing;
-    ULONG m_refCount;
+    ULONG m_refCount { 1 };
+    bool m_acceptsEditing { true };
 };
 
 #endif // !defined(EditingDelegate_h)
index 01f4990..7f06a92 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005, 2006, 2007, 2009, 2014 Apple Inc. All rights reserved.
+ * Copyright (C) 2005-2007, 2009, 2014-2015 Apple Inc. All rights reserved.
  * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -74,8 +74,7 @@ string descriptionSuitableForTestResult(IWebFrame* webFrame)
 }
 
 FrameLoadDelegate::FrameLoadDelegate()
-    : m_refCount(1)
-    , m_gcController(std::make_unique<GCController>())
+    : m_gcController(std::make_unique<GCController>())
     , m_accessibilityController(std::make_unique<AccessibilityController>())
     , m_textInputController(std::make_unique<TextInputController>())
 {
@@ -85,9 +84,11 @@ FrameLoadDelegate::~FrameLoadDelegate()
 {
 }
 
-HRESULT FrameLoadDelegate::QueryInterface(REFIID riid, void** ppvObject)
+HRESULT FrameLoadDelegate::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualGUID(riid, IID_IUnknown))
         *ppvObject = static_cast<IWebFrameLoadDelegate*>(this);
     else if (IsEqualGUID(riid, IID_IWebFrameLoadDelegate))
@@ -105,12 +106,12 @@ HRESULT FrameLoadDelegate::QueryInterface(REFIID riid, void** ppvObject)
     return S_OK;
 }
 
-ULONG FrameLoadDelegate::AddRef(void)
+ULONG FrameLoadDelegate::AddRef()
 {
     return ++m_refCount;
 }
 
-ULONG FrameLoadDelegate::Release(void)
+ULONG FrameLoadDelegate::Release()
 {
     ULONG newRef = --m_refCount;
     if (!newRef)
@@ -119,8 +120,7 @@ ULONG FrameLoadDelegate::Release(void)
     return newRef;
 }
 
-
-HRESULT FrameLoadDelegate::didStartProvisionalLoadForFrame(IWebView* /*webView*/, IWebFrame* frame)
+HRESULT FrameLoadDelegate::didStartProvisionalLoadForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame* frame)
 {
     if (!done && gTestRunner->dumpFrameLoadCallbacks())
         printf("%s - didStartProvisionalLoadForFrame\n", descriptionSuitableForTestResult(frame).c_str());
@@ -133,7 +133,7 @@ HRESULT FrameLoadDelegate::didStartProvisionalLoadForFrame(IWebView* /*webView*/
     return S_OK; 
 }
 
-HRESULT FrameLoadDelegate::didReceiveServerRedirectForProvisionalLoadForFrame(IWebView* /*webView*/, IWebFrame* frame)
+HRESULT FrameLoadDelegate::didReceiveServerRedirectForProvisionalLoadForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*)
 { 
     if (!done && gTestRunner->dumpFrameLoadCallbacks())
         printf("%s - didReceiveServerRedirectForProvisionalLoadForFrame\n", descriptionSuitableForTestResult(frame).c_str());
@@ -141,7 +141,7 @@ HRESULT FrameLoadDelegate::didReceiveServerRedirectForProvisionalLoadForFrame(IW
     return S_OK;
 }
 
-HRESULT FrameLoadDelegate::didChangeLocationWithinPageForFrame(IWebView* , IWebFrame* frame)
+HRESULT FrameLoadDelegate::didChangeLocationWithinPageForFrame(_In_opt_ IWebView* , _In_opt_ IWebFrame* frame)
 {
     if (!done && gTestRunner->dumpFrameLoadCallbacks())
         printf("%s - didChangeLocationWithinPageForFrame\n", descriptionSuitableForTestResult(frame).c_str());
@@ -149,7 +149,7 @@ HRESULT FrameLoadDelegate::didChangeLocationWithinPageForFrame(IWebView* , IWebF
     return S_OK;
 }
 
-HRESULT FrameLoadDelegate::didFailProvisionalLoadWithError(IWebView* /*webView*/, IWebError* error, IWebFrame* frame)
+HRESULT FrameLoadDelegate::didFailProvisionalLoadWithError(_In_opt_ IWebView*, _In_opt_ IWebError* error, _In_opt_ IWebFrame* frame)
 {
     if (!done && gTestRunner->dumpFrameLoadCallbacks())
         printf("%s - didFailProvisionalLoadWithError\n", descriptionSuitableForTestResult(frame).c_str());
@@ -158,7 +158,7 @@ HRESULT FrameLoadDelegate::didFailProvisionalLoadWithError(IWebView* /*webView*/
     return S_OK;
 }
 
-HRESULT FrameLoadDelegate::didCommitLoadForFrame(IWebView* webView, IWebFrame* frame)
+HRESULT FrameLoadDelegate::didCommitLoadForFrame(_In_opt_ IWebView* webView, _In_opt_ IWebFrame* frame)
 {
     if (!done && gTestRunner->dumpFrameLoadCallbacks())
         printf("%s - didCommitLoadForFrame\n", descriptionSuitableForTestResult(frame).c_str());
@@ -172,7 +172,7 @@ HRESULT FrameLoadDelegate::didCommitLoadForFrame(IWebView* webView, IWebFrame* f
     return S_OK;
 }
 
-HRESULT FrameLoadDelegate::didReceiveTitle(IWebView* /*webView*/, BSTR title, IWebFrame* frame)
+HRESULT FrameLoadDelegate::didReceiveTitle(_In_opt_ IWebView*, _In_ BSTR title, _In_opt_ IWebFrame* frame)
 {
     if (!done && gTestRunner->dumpFrameLoadCallbacks())
         printf("%s - didReceiveTitle: %S\n", descriptionSuitableForTestResult(frame).c_str(), title);
@@ -182,9 +182,7 @@ HRESULT FrameLoadDelegate::didReceiveTitle(IWebView* /*webView*/, BSTR title, IW
     return S_OK;
 }
 
-HRESULT FrameLoadDelegate::didChangeIcons(
-    /* [in] */ IWebView* webView,
-    /* [in] */ IWebFrame* frame)
+HRESULT FrameLoadDelegate::didChangeIcons(_In_opt_ IWebView*, _In_opt_ IWebFrame* frame)
 {
     if (!done && gTestRunner->dumpIconChanges())
         printf("%s - didChangeIcons\n", descriptionSuitableForTestResult(frame).c_str());
@@ -252,7 +250,7 @@ void FrameLoadDelegate::locationChangeDone(IWebError*, IWebFrame* frame)
     dump();
 }
 
-HRESULT FrameLoadDelegate::didFinishLoadForFrame(IWebView* /*webView*/, IWebFrame* frame)
+HRESULT FrameLoadDelegate::didFinishLoadForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame* frame)
 {
     if (!done && gTestRunner->dumpFrameLoadCallbacks())
         printf("%s - didFinishLoadForFrame\n", descriptionSuitableForTestResult(frame).c_str());
@@ -261,7 +259,7 @@ HRESULT FrameLoadDelegate::didFinishLoadForFrame(IWebView* /*webView*/, IWebFram
     return S_OK;
 }
 
-HRESULT FrameLoadDelegate::didFailLoadWithError(IWebView* /*webView*/, IWebError* error, IWebFrame* frame)
+HRESULT FrameLoadDelegate::didFailLoadWithError(_In_opt_ IWebView*, _In_opt_ IWebError* error, _In_opt_ IWebFrame* frame)
 {
     if (!done && gTestRunner->dumpFrameLoadCallbacks())
         printf("%s - didFailLoadWithError\n", descriptionSuitableForTestResult(frame).c_str());
@@ -270,7 +268,7 @@ HRESULT FrameLoadDelegate::didFailLoadWithError(IWebView* /*webView*/, IWebError
     return S_OK;
 }
 
-HRESULT FrameLoadDelegate::willPerformClientRedirectToURL(IWebView* /*webView*/, BSTR url, double /*delaySeconds*/, DATE /*fireDate*/, IWebFrame* frame)
+HRESULT FrameLoadDelegate::willPerformClientRedirectToURL(_In_opt_ IWebView*, _In_ BSTR url, double /*delaySeconds*/, DATE /*fireDate*/, _In_opt_ IWebFrame*)
 {
     if (!done && gTestRunner->dumpFrameLoadCallbacks())
         printf("%s - willPerformClientRedirectToURL: %S \n", descriptionSuitableForTestResult(frame).c_str(),
@@ -279,7 +277,7 @@ HRESULT FrameLoadDelegate::willPerformClientRedirectToURL(IWebView* /*webView*/,
     return S_OK;
 }
 
-HRESULT FrameLoadDelegate::didCancelClientRedirectForFrame(IWebView* /*webView*/, IWebFrame* frame)
+HRESULT FrameLoadDelegate::didCancelClientRedirectForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame* frame)
 {
     if (!done && gTestRunner->dumpFrameLoadCallbacks())
         printf("%s - didCancelClientRedirectForFrame\n", descriptionSuitableForTestResult(frame).c_str());
@@ -288,7 +286,7 @@ HRESULT FrameLoadDelegate::didCancelClientRedirectForFrame(IWebView* /*webView*/
 }
 
 
-HRESULT FrameLoadDelegate::willCloseFrame(IWebView* /*webView*/, IWebFrame* /*frame*/)
+HRESULT FrameLoadDelegate::willCloseFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*)
 {
     return E_NOTIMPL;
 }
@@ -308,7 +306,7 @@ HRESULT FrameLoadDelegate::didClearWindowObject(IWebView*, JSContextRef, JSObjec
     return E_NOTIMPL;
 }
 
-HRESULT FrameLoadDelegate::didClearWindowObjectForFrameInScriptWorld(IWebView* webView, IWebFrame* frame, IWebScriptWorld* world)
+HRESULT FrameLoadDelegate::didClearWindowObjectForFrameInScriptWorld(_In_opt_ IWebView* webView, _In_opt_ IWebFrame* frame, _In_opt_ IWebScriptWorld* world)
 {
     ASSERT_ARG(webView, webView);
     ASSERT_ARG(frame, frame);
@@ -375,7 +373,7 @@ void FrameLoadDelegate::didClearWindowObjectForFrameInStandardWorld(IWebFrame* f
     WebCoreTestSupport::injectInternalsObject(context);
 }
 
-HRESULT FrameLoadDelegate::didFinishDocumentLoadForFrame(IWebView* /*sender*/, IWebFrame* frame)
+HRESULT FrameLoadDelegate::didFinishDocumentLoadForFrame(_In_opt_ IWebView* /*sender*/, _In_opt_ IWebFrame* frame)
 {
     if (!done && gTestRunner->dumpFrameLoadCallbacks())
         printf("%s - didFinishDocumentLoadForFrame\n",
@@ -397,7 +395,7 @@ HRESULT FrameLoadDelegate::didFinishDocumentLoadForFrame(IWebView* /*sender*/, I
     return S_OK;
 }
 
-HRESULT FrameLoadDelegate::didHandleOnloadEventsForFrame(IWebView* /*sender*/, IWebFrame* frame)
+HRESULT FrameLoadDelegate::didHandleOnloadEventsForFrame(_In_opt_ IWebView* /*sender*/, _In_opt_ IWebFrame* frame)
 {
     if (!done && gTestRunner->dumpFrameLoadCallbacks())
         printf("%s - didHandleOnloadEventsForFrame\n",
@@ -406,12 +404,12 @@ HRESULT FrameLoadDelegate::didHandleOnloadEventsForFrame(IWebView* /*sender*/, I
     return S_OK;
 }
 
-HRESULT FrameLoadDelegate::didFirstVisuallyNonEmptyLayoutInFrame(IWebView* /*sender*/, IWebFrame* /*frame*/)
+HRESULT FrameLoadDelegate::didFirstVisuallyNonEmptyLayoutInFrame(_In_opt_ IWebView* /*sender*/, _In_opt_ IWebFrame* /*frame*/)
 {
     return S_OK;
 }
 
-HRESULT FrameLoadDelegate::didDisplayInsecureContent(IWebView* /*sender*/)
+HRESULT FrameLoadDelegate::didDisplayInsecureContent(_In_opt_ IWebView* /*sender*/)
 {
     if (!done && gTestRunner->dumpFrameLoadCallbacks())
         printf("didDisplayInsecureContent\n");
@@ -419,7 +417,7 @@ HRESULT FrameLoadDelegate::didDisplayInsecureContent(IWebView* /*sender*/)
     return S_OK;
 }
 
-HRESULT FrameLoadDelegate::didRunInsecureContent(IWebView* /*sender*/, IWebSecurityOrigin* /*origin*/)
+HRESULT FrameLoadDelegate::didRunInsecureContent(_In_opt_ IWebView* /*sender*/, _In_opt_ IWebSecurityOrigin* /*origin*/)
 {
     if (!done && gTestRunner->dumpFrameLoadCallbacks())
         printf("didRunInsecureContent\n");
@@ -427,7 +425,7 @@ HRESULT FrameLoadDelegate::didRunInsecureContent(IWebView* /*sender*/, IWebSecur
     return S_OK;
 }
 
-HRESULT FrameLoadDelegate::onNotify(IWebNotification* notification)
+HRESULT FrameLoadDelegate::onNotify(_In_opt_ IWebNotification* notification)
 {
     _bstr_t notificationName;
     HRESULT hr = notification->name(&notificationName.GetBSTR());
index 8cca571..8695c42 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005, 2006, 2007 Apple Inc.  All rights reserved.
+ * Copyright (C) 2005-2007, 2015 Apple Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -47,111 +47,43 @@ public:
     AccessibilityController* accessibilityController() const { return m_accessibilityController.get(); }
 
     // IUnknown
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
-    virtual ULONG STDMETHODCALLTYPE AddRef(void);
-    virtual ULONG STDMETHODCALLTYPE Release(void);
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
+    virtual ULONG STDMETHODCALLTYPE AddRef();
+    virtual ULONG STDMETHODCALLTYPE Release();
 
     // IWebFrameLoadDelegate
-    virtual HRESULT STDMETHODCALLTYPE didStartProvisionalLoadForFrame( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IWebFrame *frame); 
-
-    virtual HRESULT STDMETHODCALLTYPE didReceiveServerRedirectForProvisionalLoadForFrame( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IWebFrame *frame);
-
-    virtual HRESULT STDMETHODCALLTYPE didFailProvisionalLoadWithError( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IWebError *error,
-        /* [in] */ IWebFrame *frame);
-
-    virtual HRESULT STDMETHODCALLTYPE didCommitLoadForFrame( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IWebFrame *frame);
-
-    virtual HRESULT STDMETHODCALLTYPE didReceiveTitle( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ BSTR title,
-        /* [in] */ IWebFrame *frame);
-
-    virtual HRESULT STDMETHODCALLTYPE didChangeIcons(
-        /* [in] */ IWebView *webView,
-        /* [in] */ IWebFrame *frame);
-
-    virtual HRESULT STDMETHODCALLTYPE didReceiveIcon(/* [in] */ IWebView*, /* [in] */ HBITMAP, /* [in] */ IWebFrame*) { return E_NOTIMPL; } 
-
-    virtual HRESULT STDMETHODCALLTYPE didFinishLoadForFrame( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IWebFrame *frame);
-
-    virtual HRESULT STDMETHODCALLTYPE didFailLoadWithError( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IWebError *error,
-        /* [in] */ IWebFrame *forFrame);
-
-    virtual HRESULT STDMETHODCALLTYPE didChangeLocationWithinPageForFrame(IWebView*, IWebFrame*);
-
-    virtual HRESULT STDMETHODCALLTYPE willPerformClientRedirectToURL( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ BSTR url,
-        /* [in] */ double delaySeconds,
-        /* [in] */ DATE fireDate,
-        /* [in] */ IWebFrame *frame);
-
-    virtual HRESULT STDMETHODCALLTYPE didCancelClientRedirectForFrame( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IWebFrame *frame);
-
-    virtual HRESULT STDMETHODCALLTYPE willCloseFrame( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IWebFrame *frame);
-
-    virtual HRESULT STDMETHODCALLTYPE windowScriptObjectAvailable(IWebView*,
-JSContextRef, JSObjectRef windowObject);
-
+    virtual HRESULT STDMETHODCALLTYPE didStartProvisionalLoadForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didReceiveServerRedirectForProvisionalLoadForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didFailProvisionalLoadWithError(_In_opt_ IWebView*, _In_opt_ IWebError*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didCommitLoadForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didReceiveTitle(_In_opt_ IWebView*, _In_ BSTR title, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didChangeIcons(_In_opt_ IWebView*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didReceiveIcon(_In_opt_ IWebView*, _In_ HBITMAP, _In_opt_ IWebFrame*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE didFinishLoadForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didFailLoadWithError(_In_opt_ IWebView*, _In_opt_ IWebError*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didChangeLocationWithinPageForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE willPerformClientRedirectToURL(_In_opt_ IWebView*, _In_ BSTR url, double delaySeconds, DATE fireDate, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didCancelClientRedirectForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE willCloseFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE windowScriptObjectAvailable(IWebView*, JSContextRef, JSObjectRef windowObject);
     virtual /* [local] */ HRESULT STDMETHODCALLTYPE didClearWindowObject(IWebView*, JSContextRef, JSObjectRef windowObject, IWebFrame*);
 
     // IWebFrameLoadDelegatePrivate
-    virtual HRESULT STDMETHODCALLTYPE didFinishDocumentLoadForFrame( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ IWebFrame *frame);
-        
-    virtual HRESULT STDMETHODCALLTYPE didFirstLayoutInFrame( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ IWebFrame *frame) { return E_NOTIMPL; } 
-        
-    virtual HRESULT STDMETHODCALLTYPE didHandleOnloadEventsForFrame( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ IWebFrame *frame);
-
-    virtual HRESULT STDMETHODCALLTYPE didFirstVisuallyNonEmptyLayoutInFrame( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ IWebFrame *frame);
+    virtual HRESULT STDMETHODCALLTYPE didFinishDocumentLoadForFrame(_In_opt_ IWebView* sender, _In_opt_ IWebFrame*);      
+    virtual HRESULT STDMETHODCALLTYPE didFirstLayoutInFrame(_In_opt_ IWebView* sender, _In_opt_ IWebFrame*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE didHandleOnloadEventsForFrame(_In_opt_ IWebView* sender, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didFirstVisuallyNonEmptyLayoutInFrame(_In_opt_ IWebView* sender, _In_opt_ IWebFrame*);
 
     // IWebFrameLoadDelegatePrivate2
-    virtual HRESULT STDMETHODCALLTYPE didDisplayInsecureContent( 
-        /* [in] */ IWebView *sender);
-
-    virtual HRESULT STDMETHODCALLTYPE didRunInsecureContent( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ IWebSecurityOrigin *origin);
-
-    virtual HRESULT STDMETHODCALLTYPE didClearWindowObjectForFrameInScriptWorld(IWebView*, IWebFrame*, IWebScriptWorld*);
-
-    virtual HRESULT STDMETHODCALLTYPE didPushStateWithinPageForFrame( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ IWebFrame *frame) { return E_NOTIMPL; } 
-    
-    virtual HRESULT STDMETHODCALLTYPE didReplaceStateWithinPageForFrame( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ IWebFrame *frame) { return E_NOTIMPL; } 
-
-    virtual HRESULT STDMETHODCALLTYPE didPopStateWithinPageForFrame( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ IWebFrame *frame) { return E_NOTIMPL; } 
+    virtual HRESULT STDMETHODCALLTYPE didDisplayInsecureContent(_In_opt_ IWebView*);
+    virtual HRESULT STDMETHODCALLTYPE didRunInsecureContent(_In_opt_ IWebView*, _In_opt_ IWebSecurityOrigin*);
+    virtual HRESULT STDMETHODCALLTYPE didClearWindowObjectForFrameInScriptWorld(_In_opt_ IWebView*, _In_opt_ IWebFrame*, _In_opt_ IWebScriptWorld*);
+    virtual HRESULT STDMETHODCALLTYPE didPushStateWithinPageForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*) { return E_NOTIMPL; }    
+    virtual HRESULT STDMETHODCALLTYPE didReplaceStateWithinPageForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE didPopStateWithinPageForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*) { return E_NOTIMPL; }
 
     // IWebNotificationObserver
-    virtual HRESULT STDMETHODCALLTYPE onNotify(IWebNotification*);
+    virtual HRESULT STDMETHODCALLTYPE onNotify(_In_opt_ IWebNotification*);
 
 private:
     void didClearWindowObjectForFrameInIsolatedWorld(IWebFrame*, IWebScriptWorld*);
@@ -160,10 +92,10 @@ private:
     void locationChangeDone(IWebError*, IWebFrame*);
     void webViewProgressFinishedNotification();
 
-    ULONG m_refCount;
     std::unique_ptr<GCController> m_gcController;
     std::unique_ptr<AccessibilityController> m_accessibilityController;
     std::unique_ptr<TextInputController> m_textInputController;
+    ULONG m_refCount { 1 };
 };
 
 #endif // FrameLoadDelegate_h
index f93cbb6..a2ba25e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009, 2014 Apple Inc.  All rights reserved.
+ * Copyright (C) 2009, 2014-2015 Apple Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -41,7 +41,6 @@ static inline wstring wstringFromBSTR(BSTR str)
 }
 
 HistoryDelegate::HistoryDelegate()
-    : m_refCount(1)
 {
 }
 
@@ -49,10 +48,12 @@ HistoryDelegate::~HistoryDelegate()
 {
 }
 
-    // IUnknown
-HRESULT HistoryDelegate::QueryInterface(REFIID riid, void** ppvObject)
+// IUnknown
+HRESULT HistoryDelegate::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualGUID(riid, IID_IUnknown))
         *ppvObject = static_cast<IWebHistoryDelegate*>(this);
     else if (IsEqualGUID(riid, IID_IWebHistoryDelegate))
@@ -64,12 +65,12 @@ HRESULT HistoryDelegate::QueryInterface(REFIID riid, void** ppvObject)
     return S_OK;
 }
 
-ULONG HistoryDelegate::AddRef(void)
+ULONG HistoryDelegate::AddRef()
 {
     return ++m_refCount;
 }
 
-ULONG HistoryDelegate::Release(void)
+ULONG HistoryDelegate::Release()
 {
     ULONG newRef = --m_refCount;
     if (!newRef)
@@ -79,7 +80,7 @@ ULONG HistoryDelegate::Release(void)
 }
 
 // IWebHistoryDelegate
-HRESULT HistoryDelegate::didNavigateWithNavigationData(IWebView* webView, IWebNavigationData* navigationData, IWebFrame* webFrame)
+HRESULT HistoryDelegate::didNavigateWithNavigationData(_In_opt_ IWebView* webView, _In_opt_ IWebNavigationData* navigationData, _In_opt_ IWebFrame* webFrame)
 {
     if (!gTestRunner->dumpHistoryDelegateCallbacks())
         return S_OK;
@@ -150,7 +151,7 @@ HRESULT HistoryDelegate::didNavigateWithNavigationData(IWebView* webView, IWebNa
     return S_OK;
 }
 
-HRESULT HistoryDelegate::didPerformClientRedirectFromURL(IWebView*, BSTR sourceURL, BSTR destinationURL, IWebFrame*)
+HRESULT HistoryDelegate::didPerformClientRedirectFromURL(_In_opt_ IWebView*, _In_ BSTR sourceURL, _In_ BSTR destinationURL, _In_opt_ IWebFrame*)
 {
     if (!gTestRunner->dumpHistoryDelegateCallbacks())
         return S_OK;
@@ -167,7 +168,7 @@ HRESULT HistoryDelegate::didPerformClientRedirectFromURL(IWebView*, BSTR sourceU
     return S_OK;
 }
     
-HRESULT HistoryDelegate::didPerformServerRedirectFromURL(IWebView* webView, BSTR sourceURL, BSTR destinationURL, IWebFrame* webFrame)
+HRESULT HistoryDelegate::didPerformServerRedirectFromURL(_In_opt_ IWebView* webView, _In_ BSTR sourceURL, _In_ BSTR destinationURL, _In_opt_ IWebFrame* webFrame)
 {
     if (!gTestRunner->dumpHistoryDelegateCallbacks())
         return S_OK;
@@ -184,7 +185,7 @@ HRESULT HistoryDelegate::didPerformServerRedirectFromURL(IWebView* webView, BSTR
     return S_OK;
 }
 
-HRESULT HistoryDelegate::updateHistoryTitle(IWebView* webView, BSTR titleBSTR, BSTR urlBSTR)
+HRESULT HistoryDelegate::updateHistoryTitle(_In_opt_ IWebView* webView, _In_ BSTR titleBSTR, _In_ BSTR urlBSTR)
 {
     if (!gTestRunner->dumpHistoryDelegateCallbacks())
         return S_OK;
@@ -197,7 +198,7 @@ HRESULT HistoryDelegate::updateHistoryTitle(IWebView* webView, BSTR titleBSTR, B
     return S_OK;
 }
     
-HRESULT HistoryDelegate::populateVisitedLinksForWebView(IWebView* webView)
+HRESULT HistoryDelegate::populateVisitedLinksForWebView(_In_opt_ IWebView* webView)
 {
     if (!gTestRunner->dumpHistoryDelegateCallbacks())
         return S_OK;
index c854ae0..281c883 100644 (file)
@@ -34,38 +34,19 @@ public:
     virtual ~HistoryDelegate();
 
     // IUnknown
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
-    virtual ULONG STDMETHODCALLTYPE AddRef(void);
-    virtual ULONG STDMETHODCALLTYPE Release(void);
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
+    virtual ULONG STDMETHODCALLTYPE AddRef();
+    virtual ULONG STDMETHODCALLTYPE Release();
 
     // IWebHistoryDelegate
-    virtual HRESULT STDMETHODCALLTYPE didNavigateWithNavigationData(
-        /* [in] */ IWebView* webView, 
-        /* [in] */ IWebNavigationData* navigationData, 
-        /* [in] */ IWebFrame* webFrame);
-
-    virtual HRESULT STDMETHODCALLTYPE didPerformClientRedirectFromURL(
-        /* [in] */ IWebView* webView, 
-        /* [in] */ BSTR sourceURL, 
-        /* [in] */ BSTR destinationURL, 
-        /* [in] */ IWebFrame* webFrame);
-    
-    virtual HRESULT STDMETHODCALLTYPE didPerformServerRedirectFromURL(
-        /* [in] */ IWebView* webView, 
-        /* [in] */ BSTR sourceURL, 
-        /* [in] */ BSTR destinationURL, 
-        /* [in] */ IWebFrame* webFrame);
-    
-    virtual HRESULT STDMETHODCALLTYPE updateHistoryTitle(
-        /* [in] */ IWebView* webView, 
-        /* [in] */ BSTR title, 
-        /* [in] */ BSTR url);
-    
-    virtual HRESULT STDMETHODCALLTYPE populateVisitedLinksForWebView(
-        /* [in] */ IWebView* webView);
+    virtual HRESULT STDMETHODCALLTYPE didNavigateWithNavigationData(_In_opt_ IWebView*, _In_opt_ IWebNavigationData*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didPerformClientRedirectFromURL(_In_opt_ IWebView*, _In_ BSTR sourceURL, _In_ BSTR destinationURL, _In_opt_ IWebFrame*);    
+    virtual HRESULT STDMETHODCALLTYPE didPerformServerRedirectFromURL(_In_opt_ IWebView*, _In_ BSTR sourceURL, _In_ BSTR destinationURL, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE updateHistoryTitle(_In_opt_ IWebView*, _In_ BSTR title, _In_ BSTR url);    
+    virtual HRESULT STDMETHODCALLTYPE populateVisitedLinksForWebView(_In_opt_ IWebView*);
 
 private:
-    ULONG m_refCount;
+    ULONG m_refCount { 1 };
 };
 
 #endif // HistoryDelegate_h
index a0ee9f8..be14134 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007, 2009, 2014 Apple Inc. All rights reserved.
+ * Copyright (C) 2007, 2009, 2014-2015 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -55,16 +55,15 @@ static wstring dumpPath(IDOMNode* node)
 }
 
 PolicyDelegate::PolicyDelegate()
-    : m_refCount(1)
-    , m_permissiveDelegate(false)
-    , m_controllerToNotifyDone(0)
 {
 }
 
 // IUnknown
-HRESULT PolicyDelegate::QueryInterface(REFIID riid, void** ppvObject)
+HRESULT PolicyDelegate::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualGUID(riid, IID_IUnknown))
         *ppvObject = static_cast<IWebPolicyDelegate*>(this);
     else if (IsEqualGUID(riid, IID_IWebPolicyDelegate))
@@ -76,12 +75,12 @@ HRESULT PolicyDelegate::QueryInterface(REFIID riid, void** ppvObject)
     return S_OK;
 }
 
-ULONG PolicyDelegate::AddRef(void)
+ULONG PolicyDelegate::AddRef()
 {
     return ++m_refCount;
 }
 
-ULONG PolicyDelegate::Release(void)
+ULONG PolicyDelegate::Release()
 {
     ULONG newRef = --m_refCount;
     if (!newRef)
@@ -90,8 +89,8 @@ ULONG PolicyDelegate::Release(void)
     return newRef;
 }
 
-HRESULT PolicyDelegate::decidePolicyForNavigationAction(IWebView* /*webView*/, IPropertyBag* actionInformation, 
-    IWebURLRequest* request, IWebFrame* frame, IWebPolicyDecisionListener* listener)
+HRESULT PolicyDelegate::decidePolicyForNavigationAction(_In_opt_ IWebView*, _In_opt_ IPropertyBag* actionInformation,
+    _In_opt_ IWebURLRequest* request, _In_opt_ IWebFrame* frame, _In_opt_ IWebPolicyDecisionListener* listener)
 {
     _bstr_t url;
     request->URL(&url.GetBSTR());
@@ -156,10 +155,7 @@ HRESULT PolicyDelegate::decidePolicyForNavigationAction(IWebView* /*webView*/, I
 }
 
 
-HRESULT PolicyDelegate::unableToImplementPolicyWithError(
-    /*[in]*/ IWebView* /*webView*/, 
-    /*[in]*/ IWebError* error, 
-    /*[in]*/ IWebFrame* frame)
+HRESULT PolicyDelegate::unableToImplementPolicyWithError(_In_opt_ IWebView*, _In_opt_ IWebError* error, _In_opt_ IWebFrame* frame)
 {
     _bstr_t domainStr;
     error->domain(&domainStr.GetBSTR());
index 7bdbe73..bd099b4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2007, 2009, 2015 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -38,45 +38,35 @@ public:
     PolicyDelegate();
 
     // IUnknown
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
-    virtual ULONG STDMETHODCALLTYPE AddRef(void);
-    virtual ULONG STDMETHODCALLTYPE Release(void);
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
+    virtual ULONG STDMETHODCALLTYPE AddRef();
+    virtual ULONG STDMETHODCALLTYPE Release();
 
     // IWebPolicyDelegate
-    virtual HRESULT STDMETHODCALLTYPE decidePolicyForNavigationAction( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IPropertyBag *actionInformation,
-        /* [in] */ IWebURLRequest *request,
-        /* [in] */ IWebFrame *frame,
-        /* [in] */ IWebPolicyDecisionListener *listener);
-    
-    virtual HRESULT STDMETHODCALLTYPE decidePolicyForNewWindowAction( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IPropertyBag *actionInformation,
-        /* [in] */ IWebURLRequest *request,
-        /* [in] */ BSTR frameName,
-        /* [in] */ IWebPolicyDecisionListener *listener){ return E_NOTIMPL; }
-    
-    virtual HRESULT STDMETHODCALLTYPE decidePolicyForMIMEType( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ BSTR type,
-        /* [in] */ IWebURLRequest *request,
-        /* [in] */ IWebFrame *frame,
-        /* [in] */ IWebPolicyDecisionListener *listener){ return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE decidePolicyForNavigationAction(_In_opt_ IWebView*, _In_opt_ IPropertyBag* actionInformation,
+        _In_opt_ IWebURLRequest*, _In_opt_ IWebFrame*, _In_opt_ IWebPolicyDecisionListener*);    
+    virtual HRESULT STDMETHODCALLTYPE decidePolicyForNewWindowAction(_In_opt_ IWebView*, _In_opt_ IPropertyBag* actionInformation,
+        _In_opt_ IWebURLRequest*, _In_ BSTR frameName, _In_opt_ IWebPolicyDecisionListener*)
+    {
+        return E_NOTIMPL;
+    }
+
+    virtual HRESULT STDMETHODCALLTYPE decidePolicyForMIMEType(_In_opt_ IWebView*, _In_ BSTR type, _In_opt_ IWebURLRequest*,
+        _In_opt_ IWebFrame*, _In_opt_ IWebPolicyDecisionListener*)
+    {
+        return E_NOTIMPL;
+    }
     
-    virtual HRESULT STDMETHODCALLTYPE unableToImplementPolicyWithError( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IWebError *error,
-        /* [in] */ IWebFrame *frame);
+    virtual HRESULT STDMETHODCALLTYPE unableToImplementPolicyWithError(_In_opt_ IWebView*, _In_opt_ IWebError*, _In_opt_ IWebFrame*);
 
     // PolicyDelegate
     void setPermissive(bool permissive) { m_permissiveDelegate = permissive; }
     void setControllerToNotifyDone(TestRunner* controller) { m_controllerToNotifyDone = controller; }
 
 private:
-    ULONG m_refCount;
-    bool m_permissiveDelegate;
-    TestRunner* m_controllerToNotifyDone;
+    TestRunner* m_controllerToNotifyDone { nullptr };
+    ULONG m_refCount { 1 };
+    bool m_permissiveDelegate { false };
 };
 
 #endif // PolicyDelegate_h
index 8e08584..d80d9da 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007, 2014 Apple Inc.  All rights reserved.
+ * Copyright (C) 2007, 2014-2015 Apple Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -157,7 +157,6 @@ wstring ResourceLoadDelegate::descriptionSuitableForTestResult(IWebError* error,
 }
 
 ResourceLoadDelegate::ResourceLoadDelegate()
-    : m_refCount(1)
 {
 }
 
@@ -165,9 +164,11 @@ ResourceLoadDelegate::~ResourceLoadDelegate()
 {
 }
 
-HRESULT ResourceLoadDelegate::QueryInterface(REFIID riid, void** ppvObject)
+HRESULT ResourceLoadDelegate::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualGUID(riid, IID_IUnknown))
         *ppvObject = static_cast<IWebResourceLoadDelegate*>(this);
     else if (IsEqualGUID(riid, IID_IWebResourceLoadDelegate))
@@ -181,12 +182,12 @@ HRESULT ResourceLoadDelegate::QueryInterface(REFIID riid, void** ppvObject)
     return S_OK;
 }
 
-ULONG ResourceLoadDelegate::AddRef(void)
+ULONG ResourceLoadDelegate::AddRef()
 {
     return ++m_refCount;
 }
 
-ULONG ResourceLoadDelegate::Release(void)
+ULONG ResourceLoadDelegate::Release()
 {
     ULONG newRef = --m_refCount;
     if (!newRef)
@@ -195,7 +196,8 @@ ULONG ResourceLoadDelegate::Release(void)
     return newRef;
 }
 
-HRESULT ResourceLoadDelegate::identifierForInitialRequest(IWebView* webView, IWebURLRequest* request, IWebDataSource* dataSource, unsigned long identifier)
+HRESULT ResourceLoadDelegate::identifierForInitialRequest(_In_opt_ IWebView* webView, _In_opt_ IWebURLRequest* request,
+    _In_opt_ IWebDataSource* dataSource, unsigned long identifier)
 { 
     if (!done && gTestRunner->dumpResourceLoadCallbacks()) {
         _bstr_t urlStr;
@@ -209,9 +211,7 @@ HRESULT ResourceLoadDelegate::identifierForInitialRequest(IWebView* webView, IWe
     return S_OK;
 }
 
-HRESULT ResourceLoadDelegate::removeIdentifierForRequest(
-    /* [in] */ IWebView* webView,
-    /* [in] */ unsigned long identifier)
+HRESULT ResourceLoadDelegate::removeIdentifierForRequest(_In_opt_ IWebView* webView, unsigned long identifier)
 {
     urlMap().remove(identifier);
 
@@ -229,9 +229,14 @@ static bool hostIsUsedBySomeTestsToGenerateError(CFStringRef host)
     return kCFCompareEqualTo == CFStringCompare(host, CFSTR("255.255.255.255"), 0);
 }
 
-HRESULT ResourceLoadDelegate::willSendRequest(IWebView* webView, unsigned long identifier, IWebURLRequest* request,
-    IWebURLResponse* redirectResponse, IWebDataSource* dataSource, IWebURLRequest** newRequest)
+HRESULT ResourceLoadDelegate::willSendRequest(_In_opt_ IWebView* webView, unsigned long identifier, _In_opt_ IWebURLRequest* request,
+    _In_opt_ IWebURLResponse* redirectResponse, _In_opt_ IWebDataSource* dataSource, _COM_Outptr_opt_ IWebURLRequest** newRequest)
 {
+    if (!newRequest)
+        return E_POINTER;
+
+    *newRequest = nullptr;
+
     if (!done && gTestRunner->dumpResourceLoadCallbacks()) {
         printf("%S - willSendRequest %S redirectResponse %S\n", 
             descriptionSuitableForTestResult(identifier).c_str(),
@@ -241,28 +246,23 @@ HRESULT ResourceLoadDelegate::willSendRequest(IWebView* webView, unsigned long i
 
     if (!done && !gTestRunner->deferMainResourceDataLoad()) {
         COMPtr<IWebDataSourcePrivate> dataSourcePrivate(Query, dataSource);
-        if (!dataSourcePrivate) {
-            *newRequest = nullptr;
+        if (!dataSourcePrivate)
             return E_FAIL;
-        }
+
         dataSourcePrivate->setDeferMainResourceDataLoad(FALSE);
     }
 
-    if (!done && gTestRunner->willSendRequestReturnsNull()) {
-        *newRequest = nullptr;
+    if (!done && gTestRunner->willSendRequestReturnsNull())
         return S_OK;
-    }
 
     if (!done && gTestRunner->willSendRequestReturnsNullOnRedirect() && redirectResponse) {
         printf("Returning null for this redirect\n");
-        *newRequest = nullptr;
         return S_OK;
     }
 
     _bstr_t urlBstr;
     if (FAILED(request->URL(&urlBstr.GetBSTR()))) {
         printf("Request has no URL\n");
-        *newRequest = nullptr;
         return E_FAIL;
     }
 
@@ -285,7 +285,6 @@ HRESULT ResourceLoadDelegate::willSendRequest(IWebView* webView, unsigned long i
             }
             if (!isLocalhost(host.get()) && !hostIsUsedBySomeTestsToGenerateError(host.get()) && (!testHost || isLocalhost(testHost.get()))) {
                 printf("Blocked access to external URL %s\n", static_cast<const char*>(urlBstr));
-                *newRequest = nullptr;
                 return S_OK;
             }
         }
@@ -303,7 +302,8 @@ HRESULT ResourceLoadDelegate::willSendRequest(IWebView* webView, unsigned long i
     return S_OK;
 }
 
-HRESULT ResourceLoadDelegate::didReceiveAuthenticationChallenge(IWebView* webView, unsigned long identifier, IWebURLAuthenticationChallenge* challenge, IWebDataSource* dataSource)
+HRESULT ResourceLoadDelegate::didReceiveAuthenticationChallenge(_In_opt_ IWebView* webView, unsigned long identifier,
+    _In_opt_ IWebURLAuthenticationChallenge* challenge, _In_opt_ IWebDataSource* dataSource)
 {
     COMPtr<IWebURLAuthenticationChallengeSender> sender;
     if (!challenge || FAILED(challenge->sender(&sender)))
@@ -329,11 +329,8 @@ HRESULT ResourceLoadDelegate::didReceiveAuthenticationChallenge(IWebView* webVie
     return S_OK;
 }
 
-HRESULT ResourceLoadDelegate::didReceiveResponse(
-    /* [in] */ IWebView* webView, 
-    /* [in] */ unsigned long identifier, 
-    /* [in] */ IWebURLResponse* response, 
-    /* [in] */ IWebDataSource* dataSource)
+HRESULT ResourceLoadDelegate::didReceiveResponse(_In_opt_ IWebView* webView, unsigned long identifier, 
+    _In_opt_ IWebURLResponse* response, _In_opt_ IWebDataSource* dataSource)
 {
     if (!done && gTestRunner->dumpResourceLoadCallbacks()) {
         printf("%S - didReceiveResponse %S\n",
@@ -358,7 +355,7 @@ HRESULT ResourceLoadDelegate::didReceiveResponse(
 }
 
 
-HRESULT ResourceLoadDelegate::didFinishLoadingFromDataSource(IWebView* webView, unsigned long identifier, IWebDataSource* dataSource)
+HRESULT ResourceLoadDelegate::didFinishLoadingFromDataSource(_In_opt_ IWebView* webView, unsigned long identifier, _In_opt_ IWebDataSource* dataSource)
 {
     if (!done && gTestRunner->dumpResourceLoadCallbacks()) {
         printf("%S - didFinishLoading\n",
@@ -370,7 +367,7 @@ HRESULT ResourceLoadDelegate::didFinishLoadingFromDataSource(IWebView* webView,
     return S_OK;
 }
         
-HRESULT ResourceLoadDelegate::didFailLoadingWithError(IWebView* webView, unsigned long identifier, IWebError* error, IWebDataSource* dataSource)
+HRESULT ResourceLoadDelegate::didFailLoadingWithError(_In_opt_ IWebView* webView, unsigned long identifier, _In_opt_ IWebError* error, _In_opt_ IWebDataSource* dataSource)
 {
     if (!done && gTestRunner->dumpResourceLoadCallbacks()) {
         printf("%S - didFailLoadingWithError: %S\n", 
index fe45615..59e24f6 100644 (file)
@@ -39,69 +39,33 @@ public:
     virtual ~ResourceLoadDelegate();
 
     // IUnknown
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
-    virtual ULONG STDMETHODCALLTYPE AddRef(void);
-    virtual ULONG STDMETHODCALLTYPE Release(void);
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
+    virtual ULONG STDMETHODCALLTYPE AddRef();
+    virtual ULONG STDMETHODCALLTYPE Release();
 
     // IWebResourceLoadDelegate
-    virtual HRESULT STDMETHODCALLTYPE identifierForInitialRequest( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IWebURLRequest *request,
-        /* [in] */ IWebDataSource *dataSource,
-        /* [in] */ unsigned long identifier);
+    virtual HRESULT STDMETHODCALLTYPE identifierForInitialRequest(_In_opt_ IWebView*, _In_opt_ IWebURLRequest*, _In_opt_ IWebDataSource*, unsigned long identifier);        
+    virtual HRESULT STDMETHODCALLTYPE willSendRequest(_In_opt_ IWebView*, unsigned long identifier, _In_opt_ IWebURLRequest*, _In_opt_ IWebURLResponse*,
+        _In_opt_ IWebDataSource*, _COM_Outptr_opt_ IWebURLRequest**);
+    virtual HRESULT STDMETHODCALLTYPE didReceiveAuthenticationChallenge(_In_opt_ IWebView*, unsigned long identifier, _In_opt_ IWebURLAuthenticationChallenge*, _In_opt_ IWebDataSource*);
+    virtual HRESULT STDMETHODCALLTYPE didCancelAuthenticationChallenge(_In_opt_ IWebView*, unsigned long identifier, _In_opt_ IWebURLAuthenticationChallenge*, _In_opt_ IWebDataSource *dataSource)
+    {
+        return E_NOTIMPL;
+    }
         
-    virtual HRESULT STDMETHODCALLTYPE willSendRequest( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ unsigned long identifier,
-        /* [in] */ IWebURLRequest *request,
-        /* [in] */ IWebURLResponse *redirectResponse,
-        /* [in] */ IWebDataSource *dataSource,
-        /* [retval][out] */ IWebURLRequest **newRequest);
+    virtual HRESULT STDMETHODCALLTYPE didReceiveResponse(_In_opt_ IWebView*, unsigned long identifier, _In_opt_ IWebURLResponse*, _In_opt_ IWebDataSource*);
         
-    virtual HRESULT STDMETHODCALLTYPE didReceiveAuthenticationChallenge( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ unsigned long identifier,
-        /* [in] */ IWebURLAuthenticationChallenge *challenge,
-        /* [in] */ IWebDataSource *dataSource);
+    virtual HRESULT STDMETHODCALLTYPE didReceiveContentLength(_In_opt_ IWebView*, unsigned long identifier, UINT length, _In_opt_ IWebDataSource*)
+    {
+        return E_NOTIMPL; 
+    }
         
-    virtual HRESULT STDMETHODCALLTYPE didCancelAuthenticationChallenge( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ unsigned long identifier,
-        /* [in] */ IWebURLAuthenticationChallenge *challenge,
-        /* [in] */ IWebDataSource *dataSource) { return E_NOTIMPL; }
-        
-    virtual HRESULT STDMETHODCALLTYPE didReceiveResponse( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ unsigned long identifier,
-        /* [in] */ IWebURLResponse *response,
-        /* [in] */ IWebDataSource *dataSource);
-        
-    virtual HRESULT STDMETHODCALLTYPE didReceiveContentLength( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ unsigned long identifier,
-        /* [in] */ UINT length,
-        /* [in] */ IWebDataSource *dataSource) { return E_NOTIMPL; }
-        
-    virtual HRESULT STDMETHODCALLTYPE didFinishLoadingFromDataSource( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ unsigned long identifier,
-        /* [in] */ IWebDataSource *dataSource);
-        
-    virtual HRESULT STDMETHODCALLTYPE didFailLoadingWithError( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ unsigned long identifier,
-        /* [in] */ IWebError *error,
-        /* [in] */ IWebDataSource *dataSource);
-        
-    virtual HRESULT STDMETHODCALLTYPE plugInFailedWithError( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IWebError *error,
-        /* [in] */ IWebDataSource *dataSource) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE didFinishLoadingFromDataSource(_In_opt_ IWebView*, unsigned long identifier, _In_opt_ IWebDataSource*);
+    virtual HRESULT STDMETHODCALLTYPE didFailLoadingWithError(_In_opt_ IWebView*, unsigned long identifier, _In_opt_ IWebError*, _In_opt_ IWebDataSource*);
+    virtual HRESULT STDMETHODCALLTYPE plugInFailedWithError(_In_opt_ IWebView*, _In_opt_ IWebError*, _In_opt_ IWebDataSource*) { return E_NOTIMPL; }
 
     // IWebResourceLoadDelegatePrivate2
-    virtual HRESULT STDMETHODCALLTYPE removeIdentifierForRequest(
-        /* [in] */ IWebView *webView,
-        /* [in] */ unsigned long identifier);
+    virtual HRESULT STDMETHODCALLTYPE removeIdentifierForRequest(_In_opt_ IWebView*, unsigned long identifier);
     
 private:
     static std::wstring descriptionSuitableForTestResult(IWebURLRequest*);
@@ -113,7 +77,7 @@ private:
     IdentifierMap& urlMap() { return m_urlMap; }
     IdentifierMap m_urlMap;
 
-    ULONG m_refCount;
+    ULONG m_refCount { 1 };
 };
 
 #endif // ResourceLoadDelegate_h
index 5a29ee6..37d0bf2 100644 (file)
@@ -262,7 +262,7 @@ size_t TestRunner::webHistoryItemCount()
     if (FAILED(sharedHistory->QueryInterface(&sharedHistoryPrivate)))
         return 0;
 
-    int count;
+    int count = 0;
     if (FAILED(sharedHistoryPrivate->allItems(&count, 0)))
         return 0;
 
index a358152..0d19e14 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005, 2006, 2007, 2008, 2014 Apple Inc. All rights reserved.
+ * Copyright (C) 2005-2008, 2014-2015 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -96,15 +96,13 @@ public:
 private:
     std::unique_ptr<DRTUndoStack> m_redoStack;
     std::unique_ptr<DRTUndoStack> m_undoStack;
-    bool m_isRedoing;
-    bool m_isUndoing;
+    bool m_isRedoing { false };
+    bool m_isUndoing { false };
 };
 
 DRTUndoManager::DRTUndoManager()
     : m_redoStack(std::make_unique<DRTUndoStack>())
     , m_undoStack(std::make_unique<DRTUndoStack>())
-    , m_isRedoing(false)
-    , m_isUndoing(false)
 {
 }
 
@@ -148,8 +146,7 @@ void DRTUndoManager::undo()
 }
 
 UIDelegate::UIDelegate()
-    : m_refCount(1)
-    , m_undoManager(std::make_unique<DRTUndoManager>())
+    : m_undoManager(std::make_unique<DRTUndoManager>())
     , m_desktopNotifications(new DRTDesktopNotificationPresenter)
 {
     m_frame.bottom = 0;
@@ -163,9 +160,11 @@ void UIDelegate::resetUndoManager()
     m_undoManager = std::make_unique<DRTUndoManager>();
 }
 
-HRESULT UIDelegate::QueryInterface(REFIID riid, void** ppvObject)
+HRESULT UIDelegate::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualGUID(riid, IID_IUnknown))
         *ppvObject = static_cast<IWebUIDelegate*>(this);
     else if (IsEqualGUID(riid, IID_IWebUIDelegate))
@@ -199,32 +198,40 @@ ULONG UIDelegate::Release()
     return newRef;
 }
 
-HRESULT UIDelegate::hasCustomMenuImplementation(BOOL* hasCustomMenus)
+HRESULT UIDelegate::willPerformDragSourceAction(_In_opt_ IWebView*, WebDragSourceAction, _In_ LPPOINT, _In_opt_ IDataObject* pasteboard, _COM_Outptr_opt_ IDataObject** newPasteboard)
+{
+    if (!newPasteboard)
+        return E_POINTER;
+    *newPasteboard = nullptr;
+    return E_NOTIMPL;
+}
+
+HRESULT UIDelegate::hasCustomMenuImplementation(_Out_ BOOL* hasCustomMenus)
 {
     *hasCustomMenus = TRUE;
 
     return S_OK;
 }
 
-HRESULT UIDelegate::trackCustomPopupMenu(IWebView* /*sender*/, HMENU /*menu*/, LPPOINT /*point*/)
+HRESULT UIDelegate::trackCustomPopupMenu(_In_opt_ IWebView* /*sender*/, _In_ HMENU /*menu*/, _In_ LPPOINT /*point*/)
 {
     // Do nothing
     return S_OK;
 }
 
-HRESULT UIDelegate::registerUndoWithTarget(IWebUndoTarget* target, BSTR actionName, IUnknown* actionArg)
+HRESULT UIDelegate::registerUndoWithTarget(_In_opt_ IWebUndoTarget* target, _In_ BSTR actionName, _In_opt_ IUnknown* actionArg)
 {
     m_undoManager->registerUndoWithTarget(target, actionName, actionArg);
     return S_OK;
 }
 
-HRESULT UIDelegate::removeAllActionsWithTarget(IWebUndoTarget*)
+HRESULT UIDelegate::removeAllActionsWithTarget(_In_opt_ IWebUndoTarget*)
 {
     m_undoManager->removeAllActions();
     return S_OK;
 }
 
-HRESULT UIDelegate::setActionTitle(BSTR /*actionTitle*/)
+HRESULT UIDelegate::setActionTitle(_In_ BSTR /*actionTitle*/)
 {
     // It is not neccessary to implement this for DRT because there is
     // menu to write out the title to.
@@ -243,7 +250,7 @@ HRESULT UIDelegate::redo()
     return S_OK;
 }
 
-HRESULT UIDelegate::canUndo(BOOL* result)
+HRESULT UIDelegate::canUndo(_Out_ BOOL* result)
 {
     if (!result)
         return E_POINTER;
@@ -252,7 +259,7 @@ HRESULT UIDelegate::canUndo(BOOL* result)
     return S_OK;
 }
 
-HRESULT UIDelegate::canRedo(BOOL* result)
+HRESULT UIDelegate::canRedo(_Out_ BOOL* result)
 {
     if (!result)
         return E_POINTER;
@@ -261,21 +268,21 @@ HRESULT UIDelegate::canRedo(BOOL* result)
     return S_OK;
 }
 
-HRESULT UIDelegate::printFrame(IWebView* /*webView*/, IWebFrame* /*frame*/)
+HRESULT UIDelegate::printFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*)
 {
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::ftpDirectoryTemplatePath(IWebView* /*webView*/, BSTR* path)
+HRESULT UIDelegate::ftpDirectoryTemplatePath(_In_opt_ IWebView*, __deref_opt_out BSTR* path)
 {
     if (!path)
         return E_POINTER;
-    *path = 0;
+    *path = nullptr;
     return E_NOTIMPL;
 }
 
 
-HRESULT UIDelegate::webViewHeaderHeight(IWebView* /*webView*/, float* result)
+HRESULT UIDelegate::webViewHeaderHeight(_In_opt_ IWebView*, _Out_ float* result)
 {
     if (!result)
         return E_POINTER;
@@ -283,7 +290,7 @@ HRESULT UIDelegate::webViewHeaderHeight(IWebView* /*webView*/, float* result)
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::webViewFooterHeight(IWebView* /*webView*/, float* result)
+HRESULT UIDelegate::webViewFooterHeight(_In_opt_ IWebView*, _Out_ float* result)
 {
     if (!result)
         return E_POINTER;
@@ -291,37 +298,40 @@ HRESULT UIDelegate::webViewFooterHeight(IWebView* /*webView*/, float* result)
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::drawHeaderInRect(IWebView* /*webView*/, RECT* /*rect*/, ULONG_PTR /*drawingContext*/)
+HRESULT UIDelegate::drawHeaderInRect(_In_opt_ IWebView*, _In_ RECT*, ULONG_PTR /*drawingContext*/)
 {
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::drawFooterInRect(IWebView* /*webView*/, RECT* /*rect*/, ULONG_PTR /*drawingContext*/, UINT /*pageIndex*/, UINT /*pageCount*/)
+HRESULT UIDelegate::drawFooterInRect(_In_opt_ IWebView*, _In_ RECT*, ULONG_PTR /*drawingContext*/, UINT /*pageIndex*/, UINT /*pageCount*/)
 {
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::webViewPrintingMarginRect(IWebView* /*webView*/, RECT* /*rect*/)
+HRESULT UIDelegate::webViewPrintingMarginRect(_In_opt_ IWebView*, _Out_ RECT*)
 {
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::canRunModal(IWebView* /*webView*/, BOOL* /*canRunBoolean*/)
+HRESULT UIDelegate::canRunModal(_In_opt_ IWebView*, _Out_ BOOL* /*canRunBoolean*/)
 {
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::createModalDialog(IWebView* /*sender*/, IWebURLRequest* /*request*/, IWebView** /*newWebView*/)
+HRESULT UIDelegate::createModalDialog(_In_opt_ IWebView* /*sender*/, _In_opt_ IWebURLRequest* /*request*/, _COM_Outptr_opt_ IWebView** newWebView)
 {
+    if (!newWebView)
+        return E_POINTER;
+    *newWebView = nullptr;
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::runModal(IWebView* /*webView*/)
+HRESULT UIDelegate::runModal(_In_opt_ IWebView*)
 {
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::isMenuBarVisible(IWebView* /*webView*/, BOOL* visible)
+HRESULT UIDelegate::isMenuBarVisible(_In_opt_ IWebView*, _Out_ BOOL* visible)
 {
     if (!visible)
         return E_POINTER;
@@ -329,12 +339,12 @@ HRESULT UIDelegate::isMenuBarVisible(IWebView* /*webView*/, BOOL* visible)
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::setMenuBarVisible(IWebView* /*webView*/, BOOL /*visible*/)
+HRESULT UIDelegate::setMenuBarVisible(_In_opt_ IWebView*, BOOL /*visible*/)
 {
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::runDatabaseSizeLimitPrompt(IWebView* /*webView*/, BSTR /*displayName*/, IWebFrame* /*initiatedByFrame*/, BOOL* allowed)
+HRESULT UIDelegate::runDatabaseSizeLimitPrompt(_In_opt_ IWebView*, _In_ BSTR /*displayName*/, _In_opt_ IWebFrame* /*initiatedByFrame*/, _Out_ BOOL* allowed)
 {
     if (!allowed)
         return E_POINTER;
@@ -342,30 +352,30 @@ HRESULT UIDelegate::runDatabaseSizeLimitPrompt(IWebView* /*webView*/, BSTR /*dis
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::paintCustomScrollbar(IWebView* /*webView*/, HDC /*hDC*/, RECT /*rect*/, WebScrollBarControlSize /*size*/, WebScrollbarControlState /*state*/,
-    WebScrollbarControlPart /*pressedPart*/, BOOL /*vertical*/, float /*value*/, float /*proportion*/, WebScrollbarControlPartMask /*parts*/)
+HRESULT UIDelegate::paintCustomScrollbar(_In_opt_ IWebView*, _In_ HDC, RECT, WebScrollBarControlSize, WebScrollbarControlState,
+    WebScrollbarControlPart /*pressedPart*/, BOOL /*vertical*/, float /*value*/, float /*proportion*/, WebScrollbarControlPartMask)
 {
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::paintCustomScrollCorner(IWebView* /*webView*/, HDC /*hDC*/, RECT /*rect*/)
+HRESULT UIDelegate::paintCustomScrollCorner(_In_opt_ IWebView*, _In_ HDC, RECT)
 {
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::setFrame(IWebView* /*sender*/, RECT* frame)
+HRESULT UIDelegate::setFrame(_In_opt_ IWebView* /*sender*/, _In_ RECT* frame)
 {
     m_frame = *frame;
     return S_OK;
 }
 
-HRESULT UIDelegate::webViewFrame(IWebView* /*sender*/, RECT* frame)
+HRESULT UIDelegate::webViewFrame(_In_opt_ IWebView* /*sender*/, _Out_ RECT* frame)
 {
     *frame = m_frame;
     return S_OK;
 }
 
-HRESULT UIDelegate::runJavaScriptAlertPanelWithMessage(IWebView* /*sender*/, BSTR message)
+HRESULT UIDelegate::runJavaScriptAlertPanelWithMessage(_In_opt_ IWebView* /*sender*/, _In_ BSTR message)
 {
     if (!done) {
         printf("ALERT: %S\n", message ? message : L"");
@@ -375,7 +385,7 @@ HRESULT UIDelegate::runJavaScriptAlertPanelWithMessage(IWebView* /*sender*/, BST
     return S_OK;
 }
 
-HRESULT UIDelegate::runJavaScriptConfirmPanelWithMessage(IWebView* /*sender*/, BSTR message, BOOL* result)
+HRESULT UIDelegate::runJavaScriptConfirmPanelWithMessage(_In_opt_ IWebView* /*sender*/, _In_ BSTR message, _Out_ BOOL* result)
 {
     if (!done)
         printf("CONFIRM: %S\n", message ? message : L"");
@@ -385,7 +395,7 @@ HRESULT UIDelegate::runJavaScriptConfirmPanelWithMessage(IWebView* /*sender*/, B
     return S_OK;
 }
 
-HRESULT UIDelegate::runJavaScriptTextInputPanelWithPrompt(IWebView* /*sender*/, BSTR message, BSTR defaultText, BSTR* result)
+HRESULT UIDelegate::runJavaScriptTextInputPanelWithPrompt(_In_opt_ IWebView* /*sender*/, _In_ BSTR message, _In_ BSTR defaultText, __deref_opt_out BSTR* result)
 {
     if (!done)
         printf("PROMPT: %S, default text: %S\n", message ? message : L"", defaultText ? defaultText : L"");
@@ -395,7 +405,7 @@ HRESULT UIDelegate::runJavaScriptTextInputPanelWithPrompt(IWebView* /*sender*/,
     return S_OK;
 }
 
-HRESULT UIDelegate::runBeforeUnloadConfirmPanelWithMessage(IWebView* /*sender*/, BSTR message, IWebFrame* /*initiatedByFrame*/, BOOL* result)
+HRESULT UIDelegate::runBeforeUnloadConfirmPanelWithMessage(_In_opt_ IWebView* /*sender*/, _In_ BSTR message, _In_opt_ IWebFrame* /*initiatedByFrame*/, _Out_ BOOL* result)
 {
     if (!result)
         return E_POINTER;
@@ -408,7 +418,7 @@ HRESULT UIDelegate::runBeforeUnloadConfirmPanelWithMessage(IWebView* /*sender*/,
     return S_OK;
 }
 
-HRESULT UIDelegate::webViewAddMessageToConsole(IWebView* /*sender*/, BSTR message, int lineNumber, BSTR url, BOOL isError)
+HRESULT UIDelegate::webViewAddMessageToConsole(_In_opt_ IWebView* /*sender*/, _In_ BSTR message, int lineNumber, _In_ BSTR url, BOOL isError)
 {
     if (done)
         return S_OK;
@@ -429,7 +439,7 @@ HRESULT UIDelegate::webViewAddMessageToConsole(IWebView* /*sender*/, BSTR messag
     return S_OK;
 }
 
-HRESULT UIDelegate::doDragDrop(IWebView* /*sender*/, IDataObject* object, IDropSource* source, DWORD /*okEffect*/, DWORD* performedEffect)
+HRESULT UIDelegate::doDragDrop(_In_opt_ IWebView* /*sender*/, _In_opt_ IDataObject* object, _In_opt_ IDropSource* source, DWORD /*okEffect*/, _Out_ DWORD* performedEffect)
 {
     if (!performedEffect)
         return E_POINTER;
@@ -447,7 +457,7 @@ HRESULT UIDelegate::doDragDrop(IWebView* /*sender*/, IDataObject* object, IDropS
     return oleDragAndDropReturnValue;
 }
 
-HRESULT UIDelegate::webViewGetDlgCode(IWebView* /*sender*/, UINT /*keyCode*/, LONG_PTR* code)
+HRESULT UIDelegate::webViewGetDlgCode(_In_opt_ IWebView* /*sender*/, UINT /*keyCode*/, _Out_ LONG_PTR* code)
 {
     if (!code)
         return E_POINTER;
@@ -455,15 +465,20 @@ HRESULT UIDelegate::webViewGetDlgCode(IWebView* /*sender*/, UINT /*keyCode*/, LO
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::createWebViewWithRequest(IWebView* /*sender*/, IWebURLRequest* /*request*/, IWebView** newWebView)
+HRESULT UIDelegate::createWebViewWithRequest(_In_opt_ IWebView* /*sender*/, _In_opt_ IWebURLRequest* /*request*/, _COM_Outptr_opt_ IWebView** newWebView)
 {
+    if (!newWebView)
+        return E_POINTER;
+    *newWebView = nullptr;
+
     if (!::gTestRunner->canOpenWindows())
         return E_FAIL;
+
     *newWebView = createWebViewAndOffscreenWindow();
     return S_OK;
 }
 
-HRESULT UIDelegate::webViewClose(IWebView* sender)
+HRESULT UIDelegate::webViewClose(_In_opt_ IWebView* sender)
 {
     HWND hostWindow;
     sender->hostWindow(&hostWindow);
@@ -471,7 +486,7 @@ HRESULT UIDelegate::webViewClose(IWebView* sender)
     return S_OK;
 }
 
-HRESULT UIDelegate::webViewFocus(IWebView* sender)
+HRESULT UIDelegate::webViewFocus(_In_opt_ IWebView* sender)
 {
     HWND hostWindow;
     sender->hostWindow(&hostWindow);
@@ -479,18 +494,18 @@ HRESULT UIDelegate::webViewFocus(IWebView* sender)
     return S_OK; 
 }
 
-HRESULT UIDelegate::webViewUnfocus(IWebView* /*sender*/)
+HRESULT UIDelegate::webViewUnfocus(_In_opt_ IWebView* /*sender*/)
 {
     SetForegroundWindow(GetDesktopWindow());
     return S_OK; 
 }
 
-HRESULT UIDelegate::webViewPainted(IWebView* /*sender*/)
+HRESULT UIDelegate::webViewPainted(_In_opt_ IWebView* /*sender*/)
 {
     return S_OK;
 }
 
-HRESULT UIDelegate::exceededDatabaseQuota(IWebView* sender, IWebFrame* frame, IWebSecurityOrigin* origin, BSTR databaseIdentifier)
+HRESULT UIDelegate::exceededDatabaseQuota(_In_opt_ IWebView* sender, _In_opt_ IWebFrame* frame, _In_opt_ IWebSecurityOrigin* origin, _In_ BSTR databaseIdentifier)
 {
     _bstr_t protocol;
     _bstr_t host;
@@ -541,60 +556,65 @@ HRESULT UIDelegate::exceededDatabaseQuota(IWebView* sender, IWebFrame* frame, IW
     return S_OK;
 }
 
-HRESULT UIDelegate::embeddedViewWithArguments(IWebView* /*sender*/, IWebFrame* /*frame*/, IPropertyBag* /*arguments*/, IWebEmbeddedView** view)
+HRESULT UIDelegate::embeddedViewWithArguments(_In_opt_ IWebView* /*sender*/, _In_opt_ IWebFrame* /*frame*/, _In_opt_ IPropertyBag* /*arguments*/, _COM_Outptr_opt_ IWebEmbeddedView** view)
 {
     if (!view)
         return E_POINTER;
-    *view = 0;
+    *view = nullptr;
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::webViewClosing(IWebView* /*sender*/)
+HRESULT UIDelegate::webViewClosing(_In_opt_ IWebView* /*sender*/)
 {
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::webViewSetCursor(IWebView* /*sender*/, HCURSOR /*cursor*/)
+HRESULT UIDelegate::webViewSetCursor(_In_opt_ IWebView* /*sender*/, _In_ HCURSOR /*cursor*/)
 {
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::webViewDidInvalidate(IWebView* /*sender*/)
+HRESULT UIDelegate::webViewDidInvalidate(_In_opt_ IWebView* /*sender*/)
 {
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::setStatusText(IWebView*, BSTR text)
+HRESULT UIDelegate::setStatusText(_In_opt_ IWebView*, _In_ BSTR text)
 { 
     if (gTestRunner->dumpStatusCallbacks())
         printf("UI DELEGATE STATUS CALLBACK: setStatusText:%S\n", text ? text : L"");
     return S_OK;
 }
 
-HRESULT UIDelegate::desktopNotificationsDelegate(IWebDesktopNotificationsDelegate** result)
+HRESULT UIDelegate::desktopNotificationsDelegate(_COM_Outptr_opt_ IWebDesktopNotificationsDelegate** result)
 {
+    if (!result)
+        return E_POINTER;
+    *result = nullptr;
     m_desktopNotifications.copyRefTo(result);
     return S_OK;
 }
 
-HRESULT UIDelegate::createWebViewWithRequest(IWebView* /*sender*/, IWebURLRequest* /*request*/, IPropertyBag* /*windowFeatures*/, IWebView** /*newWebView*/)
+HRESULT UIDelegate::createWebViewWithRequest(_In_opt_ IWebView* /*sender*/, _In_opt_ IWebURLRequest* /*request*/, _In_opt_ IPropertyBag* /*windowFeatures*/, _COM_Outptr_opt_ IWebView** newWebView)
 {
+    if (!newWebView)
+        return E_POINTER;
+    *newWebView = nullptr;
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::drawBackground(IWebView* /*sender*/, HDC /*hdc*/, const RECT* /*dirtyRect*/)
+HRESULT UIDelegate::drawBackground(_In_opt_ IWebView* /*sender*/, _In_ HDC, _In_ const RECT* /*dirtyRect*/)
 {
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::decidePolicyForGeolocationRequest(IWebView* /*sender*/, IWebFrame* frame, IWebSecurityOrigin* /*origin*/, IWebGeolocationPolicyListener* /*listener*/)
+HRESULT UIDelegate::decidePolicyForGeolocationRequest(_In_opt_ IWebView* /*sender*/, _In_opt_ IWebFrame*, _In_opt_ IWebSecurityOrigin*, _In_opt_ IWebGeolocationPolicyListener*)
 {
     return E_NOTIMPL;
 }
 
-HRESULT UIDelegate::didPressMissingPluginButton(IDOMElement* /*element*/)
+HRESULT UIDelegate::didPressMissingPluginButton(_In_opt_ IDOMElement* /*element*/)
 {
     printf("MISSING PLUGIN BUTTON PRESSED\n");
     return S_OK;
 }
-
index f7d9786..785489a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005, 2006, 2007, 2014 Apple Inc.  All rights reserved.
+ * Copyright (C) 2005-2007, 2014-2015 Apple Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -43,337 +43,101 @@ public:
     void resetUndoManager();
 
     // IUnknown
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
-    virtual ULONG STDMETHODCALLTYPE AddRef(void);
-    virtual ULONG STDMETHODCALLTYPE Release(void);
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
+    virtual ULONG STDMETHODCALLTYPE AddRef();
+    virtual ULONG STDMETHODCALLTYPE Release();
 
     // IWebUIDelegate
-    virtual HRESULT STDMETHODCALLTYPE createWebViewWithRequest( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ IWebURLRequest *request,
-        /* [retval][out] */ IWebView **newWebView);
-
-    virtual HRESULT STDMETHODCALLTYPE webViewShow( 
-        /* [in] */ IWebView *sender) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE webViewClose( 
-        /* [in] */ IWebView *sender);
-
-    virtual HRESULT STDMETHODCALLTYPE webViewFocus( 
-        /* [in] */ IWebView *sender);
-
-    virtual HRESULT STDMETHODCALLTYPE webViewUnfocus( 
-        /* [in] */ IWebView *sender);
-
-    virtual HRESULT STDMETHODCALLTYPE webViewFirstResponder(IWebView*, HWND*) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE makeFirstResponder(IWebView*, HWND) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE setStatusText( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ BSTR text);
-
-    virtual HRESULT STDMETHODCALLTYPE webViewStatusText( 
-        /* [in] */ IWebView *sender,
-        /* [retval][out] */ BSTR *text) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE webViewAreToolbarsVisible( 
-        /* [in] */ IWebView *sender,
-        /* [retval][out] */ BOOL *visible) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE setToolbarsVisible( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ BOOL visible) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE webViewIsStatusBarVisible( 
-        /* [in] */ IWebView *sender,
-        /* [retval][out] */ BOOL *visible) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE setStatusBarVisible( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ BOOL visible) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE webViewIsResizable( 
-        /* [in] */ IWebView *sender,
-        /* [retval][out] */ BOOL *resizable) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE setResizable( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ BOOL resizable) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE setFrame( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ RECT *frame);
-
-    virtual HRESULT STDMETHODCALLTYPE webViewFrame( 
-        /* [in] */ IWebView *sender,
-        /* [retval][out] */ RECT *frame);
-
-    virtual HRESULT STDMETHODCALLTYPE setContentRect( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ RECT *contentRect) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE webViewContentRect( 
-        /* [in] */ IWebView *sender,
-        /* [retval][out] */ RECT *contentRect) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE runJavaScriptAlertPanelWithMessage( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ BSTR message);
-
-    virtual HRESULT STDMETHODCALLTYPE runJavaScriptConfirmPanelWithMessage( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ BSTR message,
-        /* [retval][out] */ BOOL *result);
-
-    virtual HRESULT STDMETHODCALLTYPE runJavaScriptTextInputPanelWithPrompt( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ BSTR message,
-        /* [in] */ BSTR defaultText,
-        /* [retval][out] */ BSTR *result);
-
-    virtual HRESULT STDMETHODCALLTYPE runBeforeUnloadConfirmPanelWithMessage( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ BSTR message,
-        /* [in] */ IWebFrame *initiatedByFrame,
-        /* [retval][out] */ BOOL *result);
-
-    virtual HRESULT STDMETHODCALLTYPE runOpenPanelForFileButtonWithResultListener( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ IWebOpenPanelResultListener *resultListener) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE mouseDidMoveOverElement( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ IPropertyBag *elementInformation,
-        /* [in] */ UINT modifierFlags) { return E_NOTIMPL; }
-
+    virtual HRESULT STDMETHODCALLTYPE createWebViewWithRequest(_In_opt_ IWebView* sender, _In_opt_ IWebURLRequest*, _COM_Outptr_opt_ IWebView**);
+    virtual HRESULT STDMETHODCALLTYPE webViewShow(_In_opt_ IWebView* sender) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewClose(_In_opt_ IWebView* sender);
+    virtual HRESULT STDMETHODCALLTYPE webViewFocus(_In_opt_ IWebView* sender);
+    virtual HRESULT STDMETHODCALLTYPE webViewUnfocus(_In_opt_ IWebView* sender);
+    virtual HRESULT STDMETHODCALLTYPE webViewFirstResponder(_In_opt_ IWebView*, _Out_ HWND*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE makeFirstResponder(_In_opt_ IWebView*, _In_ HWND) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setStatusText(_In_opt_ IWebView* sender, _In_ BSTR text);
+    virtual HRESULT STDMETHODCALLTYPE webViewStatusText(_In_opt_ IWebView* sender, __deref_opt_out BSTR* text) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewAreToolbarsVisible(_In_opt_ IWebView* sender, _Out_ BOOL* visible) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setToolbarsVisible(_In_opt_ IWebView* sender, BOOL visible) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewIsStatusBarVisible(_In_opt_ IWebView* sender, _Out_ BOOL* visible) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setStatusBarVisible(_In_opt_ IWebView* sender, BOOL visible) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewIsResizable(_In_opt_ IWebView* sender, _Out_ BOOL *resizable) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setResizable(_In_opt_ IWebView* sender, BOOL resizable) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setFrame(_In_opt_ IWebView* sender, _In_ RECT* frame);
+    virtual HRESULT STDMETHODCALLTYPE webViewFrame(_In_opt_ IWebView* sender, _Out_ RECT* frame);
+    virtual HRESULT STDMETHODCALLTYPE setContentRect(_In_opt_ IWebView* sender, _In_ RECT* contentRect) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewContentRect(_In_opt_ IWebView* sender, _Out_ RECT *contentRect) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE runJavaScriptAlertPanelWithMessage(_In_opt_ IWebView* sender, _In_ BSTR message);
+    virtual HRESULT STDMETHODCALLTYPE runJavaScriptConfirmPanelWithMessage(_In_opt_ IWebView* sender, _In_ BSTR message, _Out_ BOOL *result);
+    virtual HRESULT STDMETHODCALLTYPE runJavaScriptTextInputPanelWithPrompt(_In_opt_ IWebView* sender, _In_ BSTR message, _In_ BSTR defaultText, __deref_opt_out BSTR* result);
+    virtual HRESULT STDMETHODCALLTYPE runBeforeUnloadConfirmPanelWithMessage(_In_opt_ IWebView* sender, _In_ BSTR message, _In_opt_ IWebFrame* initiatedByFrame, _Out_ BOOL *result);
+    virtual HRESULT STDMETHODCALLTYPE runOpenPanelForFileButtonWithResultListener(_In_opt_ IWebView* sender, _In_opt_ IWebOpenPanelResultListener*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE mouseDidMoveOverElement(_In_opt_ IWebView* sender, _In_opt_ IPropertyBag* elementInformation, UINT modifierFlags) { return E_NOTIMPL; }
     virtual HRESULT STDMETHODCALLTYPE contextMenuItemsForElement(IWebView*, IPropertyBag*, HMENU, HMENU*) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE validateUserInterfaceItem( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ UINT itemCommandID,
-        /* [in] */ BOOL defaultValidation,
-        /* [retval][out] */ BOOL *isValid) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE shouldPerformAction( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ UINT itemCommandID,
-        /* [in] */ UINT sender) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE dragDestinationActionMaskForDraggingInfo( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IDataObject *draggingInfo,
-        /* [retval][out] */ WebDragDestinationAction *action) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE willPerformDragDestinationAction( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ WebDragDestinationAction action,
-        /* [in] */ IDataObject *draggingInfo) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE dragSourceActionMaskForPoint( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ LPPOINT point,
-        /* [retval][out] */ WebDragSourceAction *action) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE willPerformDragSourceAction( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ WebDragSourceAction action,
-        /* [in] */ LPPOINT point,
-        /* [in] */ IDataObject *pasteboard,
-        /* [retval][out] */ IDataObject **newPasteboard) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE contextMenuItemSelected( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ void *item,
-        /* [in] */ IPropertyBag *element) { return E_NOTIMPL; } 
-        
-    virtual HRESULT STDMETHODCALLTYPE hasCustomMenuImplementation( 
-        /* [retval][out] */ BOOL *hasCustomMenus);
-    
-    virtual HRESULT STDMETHODCALLTYPE trackCustomPopupMenu(/* [in] */ IWebView* sender, /* [in] */ HMENU, /* [in] */ LPPOINT);
-       
-    virtual HRESULT STDMETHODCALLTYPE measureCustomMenuItem( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ void *measureItem) { return E_NOTIMPL; }
-        
-    virtual HRESULT STDMETHODCALLTYPE drawCustomMenuItem( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ void *drawItem) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE addCustomMenuDrawingData(IWebView*, HMENU) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE cleanUpCustomMenuDrawingData(IWebView*, HMENU) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE canTakeFocus( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ BOOL forward,
-        /* [out] */ BOOL *result) { return E_NOTIMPL; }
-        
-    virtual HRESULT STDMETHODCALLTYPE takeFocus( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ BOOL forward) { return E_NOTIMPL; }
-    
-    virtual HRESULT STDMETHODCALLTYPE registerUndoWithTarget( 
-        /* [in] */ IWebUndoTarget *target,
-        /* [in] */ BSTR actionName,
-        /* [in] */ IUnknown *actionArg);
-    
-    virtual HRESULT STDMETHODCALLTYPE removeAllActionsWithTarget( 
-        /* [in] */ IWebUndoTarget *target);
-    
-    virtual HRESULT STDMETHODCALLTYPE setActionTitle( 
-        /* [in] */ BSTR actionTitle);
-    
+    virtual HRESULT STDMETHODCALLTYPE validateUserInterfaceItem(_In_opt_ IWebView*, UINT itemCommandID, BOOL defaultValidation, _Out_ BOOL *isValid) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE shouldPerformAction(_In_opt_ IWebView*, UINT itemCommandID, UINT sender) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE dragDestinationActionMaskForDraggingInfo(_In_opt_ IWebView*, _In_opt_ IDataObject* draggingInfo, _Out_ WebDragDestinationAction* action) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE willPerformDragDestinationAction(_In_opt_ IWebView*, WebDragDestinationAction action, _In_opt_ IDataObject* draggingInfo) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE dragSourceActionMaskForPoint(_In_opt_ IWebView*, _In_ LPPOINT, _Out_ WebDragSourceAction*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE willPerformDragSourceAction(_In_opt_ IWebView*, WebDragSourceAction, _In_ LPPOINT, _In_opt_ IDataObject* pasteboard, _COM_Outptr_opt_ IDataObject** newPasteboard);
+    virtual HRESULT STDMETHODCALLTYPE contextMenuItemSelected(_In_opt_ IWebView* sender, _In_opt_ void* item, _In_opt_ IPropertyBag* element) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE hasCustomMenuImplementation(_Out_ BOOL* hasCustomMenus);
+    virtual HRESULT STDMETHODCALLTYPE trackCustomPopupMenu(_In_opt_ IWebView* sender, _In_ HMENU, _In_ LPPOINT);
+    virtual HRESULT STDMETHODCALLTYPE measureCustomMenuItem(_In_opt_ IWebView* sender, _In_ void* measureItem) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE drawCustomMenuItem(_In_opt_ IWebView* sender, _In_ void* drawItem) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE addCustomMenuDrawingData(_In_opt_ IWebView*, HMENU) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE cleanUpCustomMenuDrawingData(_In_opt_ IWebView*, HMENU) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE canTakeFocus(_In_opt_ IWebView* sender, BOOL forward, _Out_ BOOL* result) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE takeFocus(_In_opt_ IWebView* sender, BOOL forward) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE registerUndoWithTarget(_In_opt_ IWebUndoTarget*, _In_ BSTR actionName, _In_opt_ IUnknown* actionArg);
+    virtual HRESULT STDMETHODCALLTYPE removeAllActionsWithTarget(_In_opt_ IWebUndoTarget*);
+    virtual HRESULT STDMETHODCALLTYPE setActionTitle(_In_ BSTR);
     virtual HRESULT STDMETHODCALLTYPE undo();
-    
     virtual HRESULT STDMETHODCALLTYPE redo();
-    
-    virtual HRESULT STDMETHODCALLTYPE canUndo( 
-        /* [retval][out] */ BOOL *result);
-    
-    virtual HRESULT STDMETHODCALLTYPE canRedo( 
-        /* [retval][out] */ BOOL *result);
-
-    virtual HRESULT STDMETHODCALLTYPE printFrame( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ IWebFrame *frame);
-    
-    virtual HRESULT STDMETHODCALLTYPE ftpDirectoryTemplatePath( 
-        /* [in] */ IWebView *webView,
-        /* [retval][out] */ BSTR *path);
-    
-    virtual HRESULT STDMETHODCALLTYPE webViewHeaderHeight( 
-        /* [in] */ IWebView *webView,
-        /* [retval][out] */ float *result);
-    
-    virtual HRESULT STDMETHODCALLTYPE webViewFooterHeight( 
-        /* [in] */ IWebView *webView,
-        /* [retval][out] */ float *result);
-    
-    virtual HRESULT STDMETHODCALLTYPE drawHeaderInRect(IWebView*, RECT*, ULONG_PTR drawingContext);
-    
-    virtual HRESULT STDMETHODCALLTYPE drawFooterInRect(IWebView*, RECT*, ULONG_PTR drawingContext, UINT pageIndex, UINT pageCount);
-    
-    virtual HRESULT STDMETHODCALLTYPE webViewPrintingMarginRect( 
-        /* [in] */ IWebView *webView,
-        /* [retval][out] */ RECT *rect);
-    
-    virtual HRESULT STDMETHODCALLTYPE canRunModal( 
-        /* [in] */ IWebView *webView,
-        /* [retval][out] */ BOOL *canRunBoolean);
-    
-    virtual HRESULT STDMETHODCALLTYPE createModalDialog( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ IWebURLRequest *request,
-        /* [retval][out] */ IWebView **newWebView);
-    
-    virtual HRESULT STDMETHODCALLTYPE runModal( 
-        /* [in] */ IWebView *webView);
-    
-    virtual HRESULT STDMETHODCALLTYPE isMenuBarVisible( 
-        /* [in] */ IWebView *webView,
-        /* [retval][out] */ BOOL *visible);
-    
-    virtual HRESULT STDMETHODCALLTYPE setMenuBarVisible( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ BOOL visible);
-    
-    virtual HRESULT STDMETHODCALLTYPE runDatabaseSizeLimitPrompt( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ BSTR displayName,
-        /* [in] */ IWebFrame *initiatedByFrame,
-        /* [retval][out] */ BOOL *allowed);
-    
-    virtual HRESULT STDMETHODCALLTYPE paintCustomScrollbar( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ HDC hDC,
-        /* [in] */ RECT rect,
-        /* [in] */ WebScrollBarControlSize size,
-        /* [in] */ WebScrollbarControlState state,
-        /* [in] */ WebScrollbarControlPart pressedPart,
-        /* [in] */ BOOL vertical,
-        /* [in] */ float value,
-        /* [in] */ float proportion,
-        /* [in] */ WebScrollbarControlPartMask parts);
-    
-    virtual HRESULT STDMETHODCALLTYPE paintCustomScrollCorner( 
-        /* [in] */ IWebView *webView,
-        /* [in] */ HDC hDC,
-        /* [in] */ RECT rect);
-
-    virtual HRESULT STDMETHODCALLTYPE createWebViewWithRequest(IWebView* sender, IWebURLRequest* request, IPropertyBag* windowFeatures, IWebView** newWebView);
-
-    virtual HRESULT STDMETHODCALLTYPE drawBackground(IWebView* sender, HDC, const RECT* dirtyRect);
-
-    virtual HRESULT STDMETHODCALLTYPE decidePolicyForGeolocationRequest(IWebView* sender, IWebFrame* frame, IWebSecurityOrigin* origin, IWebGeolocationPolicyListener* listener);
-
-    virtual HRESULT STDMETHODCALLTYPE didPressMissingPluginButton(IDOMElement*);
+    virtual HRESULT STDMETHODCALLTYPE canUndo(_Out_ BOOL* result);
+    virtual HRESULT STDMETHODCALLTYPE canRedo(_Out_ BOOL* result);
+    virtual HRESULT STDMETHODCALLTYPE printFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE ftpDirectoryTemplatePath(_In_opt_ IWebView*, __deref_opt_out BSTR* path);
+    virtual HRESULT STDMETHODCALLTYPE webViewHeaderHeight(_In_opt_ IWebView*, _Out_ float*);
+    virtual HRESULT STDMETHODCALLTYPE webViewFooterHeight(_In_opt_ IWebView*, _Out_ float*);
+    virtual HRESULT STDMETHODCALLTYPE drawHeaderInRect(_In_opt_ IWebView*, _In_ RECT*, ULONG_PTR drawingContext);
+    virtual HRESULT STDMETHODCALLTYPE drawFooterInRect(_In_opt_ IWebView*, _In_ RECT*, ULONG_PTR drawingContext, UINT pageIndex, UINT pageCount);
+    virtual HRESULT STDMETHODCALLTYPE webViewPrintingMarginRect(_In_opt_ IWebView*, _Out_ RECT*);
+    virtual HRESULT STDMETHODCALLTYPE canRunModal(_In_opt_ IWebView*, _Out_ BOOL*);
+    virtual HRESULT STDMETHODCALLTYPE createModalDialog(_In_opt_ IWebView* sender, _In_opt_ IWebURLRequest*, _COM_Outptr_opt_ IWebView**);
+    virtual HRESULT STDMETHODCALLTYPE runModal(_In_opt_ IWebView*);
+    virtual HRESULT STDMETHODCALLTYPE isMenuBarVisible(_In_opt_ IWebView*, _Out_ BOOL*);
+    virtual HRESULT STDMETHODCALLTYPE setMenuBarVisible(_In_opt_ IWebView*, BOOL);
+    virtual HRESULT STDMETHODCALLTYPE runDatabaseSizeLimitPrompt(_In_opt_ IWebView*, _In_ BSTR displayName, _In_opt_ IWebFrame* initiatedByFrame, _Out_ BOOL* allowed);
+    virtual HRESULT STDMETHODCALLTYPE paintCustomScrollbar(_In_opt_ IWebView*, _In_ HDC, RECT, WebScrollBarControlSize, WebScrollbarControlState,
+        WebScrollbarControlPart pressedPart, BOOL vertical, float value, float proportion, WebScrollbarControlPartMask);
+    virtual HRESULT STDMETHODCALLTYPE paintCustomScrollCorner(_In_opt_ IWebView*, _In_ HDC, RECT);
+    virtual HRESULT STDMETHODCALLTYPE createWebViewWithRequest(_In_opt_ IWebView* sender, _In_opt_ IWebURLRequest*, _In_opt_ IPropertyBag* windowFeatures, _COM_Outptr_opt_ IWebView**);
+    virtual HRESULT STDMETHODCALLTYPE drawBackground(_In_opt_ IWebView* sender, _In_ HDC, _In_ const RECT* dirtyRect);
+    virtual HRESULT STDMETHODCALLTYPE decidePolicyForGeolocationRequest(_In_opt_ IWebView* sender, _In_opt_ IWebFrame*, _In_opt_ IWebSecurityOrigin*, _In_opt_ IWebGeolocationPolicyListener*);
+    virtual HRESULT STDMETHODCALLTYPE didPressMissingPluginButton(_In_opt_ IDOMElement*);
 
 protected:
     // IWebUIDelegatePrivate
-
     virtual HRESULT STDMETHODCALLTYPE unused1() { return E_NOTIMPL; }
-
     virtual HRESULT STDMETHODCALLTYPE unused2() { return E_NOTIMPL; }
-    
     virtual HRESULT STDMETHODCALLTYPE unused3() { return E_NOTIMPL; }
-    
-    virtual HRESULT STDMETHODCALLTYPE webViewScrolled( 
-        /* [in] */ IWebView *sender) { return E_NOTIMPL; }
-    
-    virtual HRESULT STDMETHODCALLTYPE webViewAddMessageToConsole( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ BSTR message,
-        /* [in] */ int lineNumber,
-        /* [in] */ BSTR url,
-        /* [in] */ BOOL isError);
-    
-    virtual HRESULT STDMETHODCALLTYPE webViewShouldInterruptJavaScript(IWebView*, BOOL*) { return E_NOTIMPL; }
-    
-    virtual HRESULT STDMETHODCALLTYPE webViewReceivedFocus( 
-        /* [in] */ IWebView *sender) { return E_NOTIMPL; }
-    
-    virtual HRESULT STDMETHODCALLTYPE webViewLostFocus(IWebView*, HWND) { return E_NOTIMPL; }
-
-    virtual HRESULT STDMETHODCALLTYPE doDragDrop( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ IDataObject *dataObject,
-        /* [in] */ IDropSource *dropSource,
-        /* [in] */ DWORD okEffect,
-        /* [retval][out] */ DWORD *performedEffect);
-
-    virtual HRESULT STDMETHODCALLTYPE webViewGetDlgCode( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ UINT keyCode,
-        /* [retval][out] */ LONG_PTR *code);
-
-    virtual HRESULT STDMETHODCALLTYPE webViewPainted( 
-        /* [in] */ IWebView *sender);
-
-    virtual HRESULT STDMETHODCALLTYPE exceededDatabaseQuota( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ IWebFrame *frame,
-        /* [in] */ IWebSecurityOrigin *origin,
-        /* [in] */ BSTR databaseIdentifier);
-
-    virtual HRESULT STDMETHODCALLTYPE embeddedViewWithArguments( 
-        /* [in] */ IWebView *sender,
-        /* [in] */ IWebFrame *frame,
-        /* [in] */ IPropertyBag *arguments,
-        /* [retval][out] */ IWebEmbeddedView **view);
-        
-    virtual HRESULT STDMETHODCALLTYPE webViewClosing( 
-        /* [in] */ IWebView *sender);
-    
-    virtual HRESULT STDMETHODCALLTYPE webViewSetCursor(IWebView* sender, HCURSOR);
-    
-    virtual HRESULT STDMETHODCALLTYPE webViewDidInvalidate( 
-        /* [in] */ IWebView *sender);
-
-    virtual HRESULT STDMETHODCALLTYPE desktopNotificationsDelegate(
-        /* [out] */ IWebDesktopNotificationsDelegate** result);
-
-    ULONG                   m_refCount;
+    virtual HRESULT STDMETHODCALLTYPE webViewScrolled(_In_opt_ IWebView* sender) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewAddMessageToConsole(_In_opt_ IWebView* sender, _In_ BSTR message, int lineNumber, _In_ BSTR url, BOOL isError);
+    virtual HRESULT STDMETHODCALLTYPE webViewShouldInterruptJavaScript(_In_opt_ IWebView*, _Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewReceivedFocus(_In_opt_ IWebView* sender) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewLostFocus(_In_opt_ IWebView*, _In_ HWND) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE doDragDrop(_In_opt_ IWebView* sender, _In_opt_ IDataObject*, _In_opt_ IDropSource*, DWORD okEffect, _Out_ DWORD* performedEffect);
+    virtual HRESULT STDMETHODCALLTYPE webViewGetDlgCode(_In_opt_ IWebView* sender, UINT keyCode, _Out_ LONG_PTR* code);
+    virtual HRESULT STDMETHODCALLTYPE webViewPainted(_In_opt_ IWebView* sender);
+    virtual HRESULT STDMETHODCALLTYPE exceededDatabaseQuota(_In_opt_ IWebView* sender, _In_opt_ IWebFrame*, _In_opt_ IWebSecurityOrigin*, _In_ BSTR databaseIdentifier);
+    virtual HRESULT STDMETHODCALLTYPE embeddedViewWithArguments(_In_opt_ IWebView* sender, _In_opt_ IWebFrame*, _In_opt_ IPropertyBag* arguments, _COM_Outptr_opt_ IWebEmbeddedView**);
+    virtual HRESULT STDMETHODCALLTYPE webViewClosing(_In_opt_ IWebView* sender);
+    virtual HRESULT STDMETHODCALLTYPE webViewSetCursor(_In_opt_ IWebView* sender, _In_ HCURSOR);
+    virtual HRESULT STDMETHODCALLTYPE webViewDidInvalidate(_In_opt_ IWebView* sender);
+    virtual HRESULT STDMETHODCALLTYPE desktopNotificationsDelegate(_COM_Outptr_opt_ IWebDesktopNotificationsDelegate**);
+
+    ULONG m_refCount { 1 };
 
 private:
     RECT m_frame;
index 46ce70f..12f7626 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2013, 2015 Apple Inc. All Rights Reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
 #include <stdio.h>
 #include <wininet.h>
 
-HRESULT AccessibilityDelegate::QueryInterface(REFIID riid, void** ppvObject)
+HRESULT AccessibilityDelegate::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualIID(riid, IID_IUnknown))
         *ppvObject = static_cast<IAccessibilityDelegate*>(this);
     else if (IsEqualIID(riid, IID_IAccessibilityDelegate))
@@ -48,12 +50,12 @@ HRESULT AccessibilityDelegate::QueryInterface(REFIID riid, void** ppvObject)
     return S_OK;
 }
 
-ULONG AccessibilityDelegate::AddRef(void)
+ULONG AccessibilityDelegate::AddRef()
 {
     return ++m_refCount;
 }
 
-ULONG AccessibilityDelegate::Release(void)
+ULONG AccessibilityDelegate::Release()
 {
     ULONG newRef = --m_refCount;
     if (!newRef)
index 2dc77f2..a377c89 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2013, 2015 Apple Inc. All Rights Reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
 
 class AccessibilityDelegate : public IAccessibilityDelegate {
 public:
-    AccessibilityDelegate() : m_refCount(1) { }
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
-    virtual ULONG STDMETHODCALLTYPE AddRef(void);
-    virtual ULONG STDMETHODCALLTYPE Release(void);
+    AccessibilityDelegate() { }
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
+    virtual ULONG STDMETHODCALLTYPE AddRef();
+    virtual ULONG STDMETHODCALLTYPE Release();
 
     virtual HRESULT STDMETHODCALLTYPE fireFrameLoadStartedEvents();
     virtual HRESULT STDMETHODCALLTYPE fireFrameLoadFinishedEvents();
 private:
-    int m_refCount;
+    int m_refCount { 1 };
 };
 
 #endif
index 3144925..76bbcfc 100644 (file)
@@ -219,7 +219,7 @@ void createCrashReport(EXCEPTION_POINTERS* exceptionPointers)
         && ::GetLastError() != ERROR_ALREADY_EXISTS)
         return;
 
-    std::wstring fileName = directory + L"\\CrashReport.dmp";
+    std::wstring fileName = std::wstring(static_cast<const wchar_t*>(directory)) + L"\\CrashReport.dmp";
     HANDLE miniDumpFile = ::CreateFile(fileName.c_str(), GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
 
     if (miniDumpFile && miniDumpFile != INVALID_HANDLE_VALUE) {
index 31e1cee..2302f11 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2014-2015 Apple Inc. All Rights Reserved.
  * Copyright (C) 2011 Anthony Johnson. All Rights Reserved.
  * Copyright (C) 2011 Brent Fulgham. All Rights Reserved.
  *
 #include "DOMDefaultImpl.h"
 
 // IUnknown -------------------------------------------------------------------
-HRESULT WebScriptObject::QueryInterface(REFIID riid, void** ppvObject)
+HRESULT WebScriptObject::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualGUID(riid, IID_IUnknown))
         *ppvObject = static_cast<IWebScriptObject*>(this);
     else if (IsEqualGUID(riid, IID_IWebScriptObject))
@@ -43,12 +45,12 @@ HRESULT WebScriptObject::QueryInterface(REFIID riid, void** ppvObject)
     return S_OK;
 }
 
-ULONG WebScriptObject::AddRef(void)
+ULONG WebScriptObject::AddRef()
 {
     return ++m_refCount;
 }
 
-ULONG WebScriptObject::Release(void)
+ULONG WebScriptObject::Release()
 {
     ULONG newRef = --m_refCount;
     if (!newRef)
@@ -58,9 +60,11 @@ ULONG WebScriptObject::Release(void)
 }
 
 // DOMObject -------------------------------------------------------------------
-HRESULT DOMObject::QueryInterface(REFIID riid, void** ppvObject)
+HRESULT DOMObject::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualGUID(riid, IID_IDOMObject))
         *ppvObject = static_cast<IDOMObject*>(this);
     else
@@ -72,9 +76,9 @@ HRESULT DOMObject::QueryInterface(REFIID riid, void** ppvObject)
 
 
 // DOMEventListener -------------------------------------------------------------------
-HRESULT DOMEventListener::QueryInterface(const IID &riid, void** ppvObject)
+HRESULT DOMEventListener::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    *ppvObject = nullptr;
     if (IsEqualGUID(riid, IID_IDOMEventListener))
         *ppvObject = static_cast<IDOMEventListener*>(this);
     else
@@ -84,12 +88,12 @@ HRESULT DOMEventListener::QueryInterface(const IID &riid, void** ppvObject)
     return S_OK;
 }
 
-ULONG DOMEventListener::AddRef(void)
+ULONG DOMEventListener::AddRef()
 {
     return WebScriptObject::AddRef();
 }
 
-ULONG DOMEventListener::Release(void)
+ULONG DOMEventListener::Release()
 {
     return WebScriptObject::Release();
 }
index e564b6a..cbb30a9 100644 (file)
@@ -1,5 +1,6 @@
 /*
- * Copyright (C) 2011 Anthony Johnson. All Rights Reserved.
+* Copyright (C) 2015 Apple Inc. All Rights Reserved.
+* Copyright (C) 2011 Anthony Johnson. All Rights Reserved.
  * Copyright (C) 2011 Brent Fulgham. All Rights Reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -31,7 +32,7 @@
 
 class WebScriptObject : public IWebScriptObject {
 public:
-    WebScriptObject() : m_refCount(0)
+    WebScriptObject()
     {
     }
 
@@ -40,51 +41,51 @@ public:
     }
 
     // IUnknown
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
-    virtual ULONG STDMETHODCALLTYPE AddRef(void);
-    virtual ULONG STDMETHODCALLTYPE Release(void);
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
+    virtual ULONG STDMETHODCALLTYPE AddRef();
+    virtual ULONG STDMETHODCALLTYPE Release();
 
     // IWebScriptObject
-    virtual HRESULT STDMETHODCALLTYPE throwException(BSTR, BOOL*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(BSTR, const VARIANT[], int, VARIANT*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(BSTR, VARIANT*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(BSTR) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE stringRepresentation(BSTR*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(unsigned int, VARIANT*)  { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(unsigned int, VARIANT)  { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE setException(BSTR)  { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE throwException(_In_ BSTR, _Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(_In_ BSTR, __in_ecount(cArgs) const VARIANT[], int cArgs, _Out_ VARIANT*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(_In_ BSTR, _Out_ VARIANT*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(_In_ BSTR) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE stringRepresentation(__deref_opt_out BSTR*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(unsigned, _Out_ VARIANT*)  { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(unsigned, VARIANT)  { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setException(_In_ BSTR)  { return E_NOTIMPL; }
 
 protected:
-    ULONG m_refCount;
+    ULONG m_refCount { 0 };
 };
 
 
 class DOMObject : public WebScriptObject, public IDOMObject {
 public:
     // IUnknown
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
 };
 
 
 class DOMEventListener : public DOMObject, public IDOMEventListener {
 public:
     // IUnknown
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
-    virtual ULONG STDMETHODCALLTYPE AddRef(void);
-    virtual ULONG STDMETHODCALLTYPE Release(void);
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
+    virtual ULONG STDMETHODCALLTYPE AddRef();
+    virtual ULONG STDMETHODCALLTYPE Release();
 
     // IWebScriptObject
-    virtual HRESULT STDMETHODCALLTYPE throwException(BSTR, BOOL*)  { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(BSTR, const VARIANT[], int, VARIANT*)  { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(BSTR, VARIANT*)  { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(BSTR)  { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE stringRepresentation(BSTR*)  { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(unsigned int, VARIANT*)  { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(unsigned int, VARIANT)  { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE setException(BSTR) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE throwException(_In_ BSTR, _Out_ BOOL*)  { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE callWebScriptMethod(_In_ BSTR, __in_ecount(cArgs) const VARIANT[], int cArgs, _Out_ VARIANT*)  { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE evaluateWebScript(_In_ BSTR, _Out_ VARIANT*)  { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE removeWebScriptKey(_In_ BSTR)  { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE stringRepresentation(__deref_opt_out BSTR*)  { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webScriptValueAtIndex(unsigned, _Out_ VARIANT*)  { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setWebScriptValueAtIndex(unsigned, VARIANT)  { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setException(_In_ BSTR) { return E_NOTIMPL; }
 
     // IDOMEventListener
-    virtual HRESULT STDMETHODCALLTYPE handleEvent(IDOMEvent*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE handleEvent(_In_opt_ IDOMEvent*) { return E_NOTIMPL; }
 };
 
 #endif
index e48b77f..e60b421 100644 (file)
@@ -1,5 +1,5 @@
 /*
-* Copyright (C) 2014 Apple Inc.  All rights reserved.
+* Copyright (C) 2014-2015 Apple Inc.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
@@ -36,19 +36,8 @@ static const CFTimeInterval waitForNewResourceLoadDuration = 0.1;
 
 PageLoadTestClient::PageLoadTestClient(WinLauncher* host, bool pageLoadTesting)
     : m_host(host)
-    , m_pageLoadEndTime(0)
-    , m_totalTime(0)
-    , m_totalSquareRootsOfTime(0)
-    , m_longestTime(0)
-    , m_geometricMeanProductSum(1.0)
-    , m_frames(0)
-    , m_onLoadEvents(0)
-    , m_currentURLIndex(0)
-    , m_currentRepetition(0)
-    , m_pagesTimed(0)
     , m_repetitions(pageLoadTesting ? 20 : 1)
     , m_waitForLoadToReallyEnd(this, &PageLoadTestClient::endPageLoad)
-    , m_currentPageLoadFinished(false)
     , m_pageLoadTesting(pageLoadTesting)
 {
 }
index 763387f..b1e6e2a 100644 (file)
@@ -132,10 +132,10 @@ private:
     void dumpRunStatistics();
 
     WinLauncher* m_host;
-    CFAbsoluteTime m_pageLoadEndTime;
-    CFTimeInterval m_totalTime;
-    CFTimeInterval m_totalSquareRootsOfTime;
-    CFTimeInterval m_longestTime;
+    CFAbsoluteTime m_pageLoadEndTime { 0 };
+    CFTimeInterval m_totalTime { 0 };
+    CFTimeInterval m_totalSquareRootsOfTime { 0 };
+    CFTimeInterval m_longestTime { 0 };
     Vector<CFAbsoluteTime> m_startTimes;
     Vector<CFAbsoluteTime> m_endTimes;
     HashSet<uint64_t> m_loadingSubresources;
@@ -143,15 +143,15 @@ private:
 #if OS(WINDOWS)
     _bstr_t m_url;
 #endif
-    double m_geometricMeanProductSum;
-    unsigned m_frames;
-    unsigned m_onLoadEvents;
-    unsigned m_currentURLIndex;
-    unsigned m_currentRepetition;
-    unsigned m_pagesTimed;
+    double m_geometricMeanProductSum { 1.0 };
+    unsigned m_frames { 0 };
+    unsigned m_onLoadEvents { 0 };
+    unsigned m_currentURLIndex { 0 };
+    unsigned m_currentRepetition { 0 };
+    unsigned m_pagesTimed { 0 };
     unsigned m_repetitions;
 
-    bool m_currentPageLoadFinished;
+    bool m_currentPageLoadFinished { false };
     bool m_pageLoadTesting;
 };
 
index 5c867a2..e0778bb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009, 2013-2014 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2009, 2013-2015 Apple Inc. All Rights Reserved.
  * Copyright (C) 2009 Brent Fulgham. All Rights Reserved.
  * Copyright (C) 2013 Alex Christensen. All Rights Reserved.
  *
 
 static const int MARGIN = 20;
 
-HRESULT STDMETHODCALLTYPE PrintWebUIDelegate::runJavaScriptAlertPanelWithMessage(IWebView*, BSTR message)
+HRESULT PrintWebUIDelegate::runJavaScriptAlertPanelWithMessage(_In_opt_ IWebView*, _In_ BSTR message)
 {
     ::MessageBoxW(0, message, L"JavaScript Alert", MB_OK);
     return S_OK;
 }
 
-HRESULT STDMETHODCALLTYPE PrintWebUIDelegate::runJavaScriptConfirmPanelWithMessage(IWebView*, BSTR message, BOOL* result)
+HRESULT PrintWebUIDelegate::runJavaScriptConfirmPanelWithMessage(_In_opt_ IWebView*, _In_ BSTR message, _Out_ BOOL* result)
 {
     *result = ::MessageBoxW(0, message, L"JavaScript Confirm", MB_OKCANCEL) == IDOK;
     return S_OK;
 }
 
-HRESULT PrintWebUIDelegate::createWebViewWithRequest(IWebView*, IWebURLRequest* request, IWebView**)
+HRESULT PrintWebUIDelegate::createWebViewWithRequest(_In_opt_ IWebView*, _In_opt_ IWebURLRequest* request, _COM_Outptr_opt_ IWebView** newWebView)
 {
+    if (!newWebView)
+        return E_POINTER;
+    *newWebView = nullptr;
     if (!request)
         return E_POINTER;
 
@@ -78,9 +81,11 @@ HRESULT PrintWebUIDelegate::createWebViewWithRequest(IWebView*, IWebURLRequest*
     return S_OK;
 }
 
-HRESULT PrintWebUIDelegate::QueryInterface(REFIID riid, void** ppvObject)
+HRESULT PrintWebUIDelegate::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualIID(riid, IID_IUnknown))
         *ppvObject = static_cast<IWebUIDelegate*>(this);
     else if (IsEqualIID(riid, IID_IWebUIDelegate))
@@ -92,12 +97,12 @@ HRESULT PrintWebUIDelegate::QueryInterface(REFIID riid, void** ppvObject)
     return S_OK;
 }
 
-ULONG PrintWebUIDelegate::AddRef(void)
+ULONG PrintWebUIDelegate::AddRef()
 {
     return ++m_refCount;
 }
 
-ULONG PrintWebUIDelegate::Release(void)
+ULONG PrintWebUIDelegate::Release()
 {
     ULONG newRef = --m_refCount;
     if (!newRef)
@@ -109,7 +114,7 @@ ULONG PrintWebUIDelegate::Release(void)
 typedef _com_ptr_t<_com_IIID<IWebFrame, &__uuidof(IWebFrame)>> IWebFramePtr;
 typedef _com_ptr_t<_com_IIID<IWebFramePrivate, &__uuidof(IWebFramePrivate)>> IWebFramePrivatePtr;
 
-HRESULT PrintWebUIDelegate::webViewPrintingMarginRect(IWebView* view, RECT* rect)
+HRESULT PrintWebUIDelegate::webViewPrintingMarginRect(_In_opt_ IWebView* view, _Out_ RECT* rect)
 {
     if (!view || !rect)
         return E_POINTER;
@@ -134,7 +139,15 @@ HRESULT PrintWebUIDelegate::webViewPrintingMarginRect(IWebView* view, RECT* rect
     return S_OK;
 }
 
-HRESULT PrintWebUIDelegate::webViewHeaderHeight(IWebView* webView, float* height)
+HRESULT PrintWebUIDelegate::willPerformDragSourceAction(_In_opt_ IWebView*, WebDragSourceAction, _In_ LPPOINT, _In_opt_ IDataObject*, _COM_Outptr_opt_ IDataObject** result)
+{
+    if (!result)
+        return E_POINTER;
+    *result = nullptr;
+    return E_NOTIMPL;
+}
+
+HRESULT PrintWebUIDelegate::webViewHeaderHeight(_In_opt_ IWebView* webView, _Out_ float* height)
 {
     if (!webView || !height)
         return E_POINTER;
@@ -150,7 +163,7 @@ HRESULT PrintWebUIDelegate::webViewHeaderHeight(IWebView* webView, float* height
     return S_OK;
 }
 
-HRESULT PrintWebUIDelegate::webViewFooterHeight(IWebView* webView, float* height)
+HRESULT PrintWebUIDelegate::webViewFooterHeight(_In_opt_ IWebView* webView, _Out_ float* height)
 {
     if (!webView || !height)
         return E_POINTER;
@@ -166,7 +179,7 @@ HRESULT PrintWebUIDelegate::webViewFooterHeight(IWebView* webView, float* height
     return S_OK;
 }
 
-HRESULT PrintWebUIDelegate::drawHeaderInRect(IWebView* webView, RECT* rect, ULONG_PTR drawingContext)
+HRESULT PrintWebUIDelegate::drawHeaderInRect(_In_opt_ IWebView* webView, _In_ RECT* rect, ULONG_PTR drawingContext)
 {
     if (!webView || !rect)
         return E_POINTER;
@@ -195,7 +208,7 @@ HRESULT PrintWebUIDelegate::drawHeaderInRect(IWebView* webView, RECT* rect, ULON
     return S_OK;
 }
 
-HRESULT PrintWebUIDelegate::drawFooterInRect(IWebView* webView, RECT* rect, ULONG_PTR drawingContext, UINT pageIndex, UINT pageCount)
+HRESULT PrintWebUIDelegate::drawFooterInRect(_In_opt_ IWebView* webView, _In_ RECT* rect, ULONG_PTR drawingContext, UINT pageIndex, UINT pageCount)
 {
     if (!webView || !rect)
         return E_POINTER;
@@ -223,3 +236,11 @@ HRESULT PrintWebUIDelegate::drawFooterInRect(IWebView* webView, RECT* rect, ULON
 
     return S_OK;
 }
+
+HRESULT PrintWebUIDelegate::createModalDialog(_In_opt_ IWebView*, _In_opt_ IWebURLRequest*, _COM_Outptr_opt_ IWebView** webView)
+{
+    if (!webView)
+        return E_POINTER;
+    *webView = nullptr;
+    return E_NOTIMPL;
+}
index 36f300e..6f25364 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009, 2014 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2009, 2014-2015 Apple Inc. All Rights Reserved.
  * Copyright (C) 2009 Brent Fulgham. All Rights Reserved.
  *
  * Redistribution and use in source and binary forms, with or without
 
 class PrintWebUIDelegate : public IWebUIDelegate {
 public:
-    PrintWebUIDelegate() : m_refCount(1) {}
+    PrintWebUIDelegate() }
 
     // IUnknown
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
-    virtual ULONG STDMETHODCALLTYPE AddRef(void);
-    virtual ULONG STDMETHODCALLTYPE Release(void);
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
+    virtual ULONG STDMETHODCALLTYPE AddRef();
+    virtual ULONG STDMETHODCALLTYPE Release();
 
-    virtual HRESULT STDMETHODCALLTYPE createWebViewWithRequest(IWebView*, IWebURLRequest*, IWebView**);
-    virtual HRESULT STDMETHODCALLTYPE webViewShow(IWebView*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE webViewClose(IWebView*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE webViewFocus(IWebView*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE webViewUnfocus(IWebView*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE webViewFirstResponder(IWebView*, HWND*)  { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE makeFirstResponder(IWebView*, HWND) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE setStatusText(IWebView*, BSTR) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE webViewStatusText(IWebView*, BSTR*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE webViewAreToolbarsVisible(IWebView*, BOOL*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE setToolbarsVisible(IWebView*, BOOL) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE webViewIsStatusBarVisible(IWebView*, BOOL*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE setStatusBarVisible(IWebView*, BOOL) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE webViewIsResizable(IWebView*, BOOL*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE setResizable(IWebView*, BOOL) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE setFrame(IWebView*, RECT*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE webViewFrame(IWebView*, RECT*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE setContentRect(IWebView*, RECT*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE webViewContentRect(IWebView*, RECT*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE runJavaScriptAlertPanelWithMessage(IWebView*, BSTR);
-    virtual HRESULT STDMETHODCALLTYPE runJavaScriptConfirmPanelWithMessage(IWebView*, BSTR, BOOL*);
-    virtual HRESULT STDMETHODCALLTYPE runJavaScriptTextInputPanelWithPrompt(IWebView*, BSTR, BSTR, BSTR*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE runBeforeUnloadConfirmPanelWithMessage(IWebView*, BSTR, IWebFrame*, BOOL*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE runOpenPanelForFileButtonWithResultListener(IWebView*, IWebOpenPanelResultListener*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE mouseDidMoveOverElement(IWebView*, IPropertyBag*, UINT) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE contextMenuItemsForElement(IWebView*, IPropertyBag*, HMENU, HMENU*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE validateUserInterfaceItem(IWebView*, UINT, BOOL, BOOL*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE shouldPerformAction(IWebView*, UINT, UINT) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE dragDestinationActionMaskForDraggingInfo(IWebView*, IDataObject*, WebDragDestinationAction*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE willPerformDragDestinationAction(IWebView*, WebDragDestinationAction, IDataObject*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE dragSourceActionMaskForPoint(IWebView*, LPPOINT, WebDragSourceAction*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE willPerformDragSourceAction(IWebView*, WebDragSourceAction, LPPOINT, IDataObject*, IDataObject**) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE contextMenuItemSelected(IWebView*, void*, IPropertyBag*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE hasCustomMenuImplementation(BOOL*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE trackCustomPopupMenu(IWebView*, HMENU, LPPOINT) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE createWebViewWithRequest(_In_opt_ IWebView*, _In_opt_ IWebURLRequest*, _COM_Outptr_opt_ IWebView**);
+    virtual HRESULT STDMETHODCALLTYPE webViewShow(_In_opt_ IWebView*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewClose(_In_opt_ IWebView*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewFocus(_In_opt_ IWebView*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewUnfocus(_In_opt_ IWebView*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewFirstResponder(_In_opt_ IWebView*, _Out_ HWND*)  { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE makeFirstResponder(_In_opt_ IWebView*, _In_ HWND) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setStatusText(_In_opt_ IWebView*, _In_ BSTR) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewStatusText(_In_opt_ IWebView*, __deref_opt_out BSTR*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewAreToolbarsVisible(_In_opt_ IWebView*, _Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setToolbarsVisible(_In_opt_ IWebView*, BOOL) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewIsStatusBarVisible(_In_opt_ IWebView*, _Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setStatusBarVisible(_In_opt_ IWebView*, BOOL) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewIsResizable(_In_opt_ IWebView*, _Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setResizable(_In_opt_ IWebView*, BOOL) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setFrame(_In_opt_ IWebView*, _In_ RECT*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewFrame(_In_opt_ IWebView*, _Out_ RECT*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setContentRect(_In_opt_ IWebView*, _In_ RECT*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewContentRect(_In_opt_ IWebView*, _Out_ RECT*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE runJavaScriptAlertPanelWithMessage(_In_opt_ IWebView*, _In_ BSTR);
+    virtual HRESULT STDMETHODCALLTYPE runJavaScriptConfirmPanelWithMessage(_In_opt_ IWebView*, _In_ BSTR, _Out_ BOOL*);
+    virtual HRESULT STDMETHODCALLTYPE runJavaScriptTextInputPanelWithPrompt(_In_opt_ IWebView*, _In_ BSTR, _In_ BSTR, __deref_opt_out BSTR*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE runBeforeUnloadConfirmPanelWithMessage(_In_opt_ IWebView*, _In_ BSTR, IWebFrame*, _Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE runOpenPanelForFileButtonWithResultListener(_In_opt_ IWebView*, _In_opt_ IWebOpenPanelResultListener*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE mouseDidMoveOverElement(_In_opt_ IWebView*, _In_opt_ IPropertyBag*, UINT) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE contextMenuItemsForElement(_In_opt_ IWebView*, _In_opt_ IPropertyBag*, _In_ HMENU, _Out_ HMENU*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE validateUserInterfaceItem(_In_opt_ IWebView*, UINT, BOOL, _Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE shouldPerformAction(_In_opt_ IWebView*, UINT, UINT) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE dragDestinationActionMaskForDraggingInfo(_In_opt_ IWebView*, _In_opt_ IDataObject*, _In_opt_ WebDragDestinationAction*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE willPerformDragDestinationAction(_In_opt_ IWebView*, WebDragDestinationAction, _In_opt_ IDataObject*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE dragSourceActionMaskForPoint(_In_opt_ IWebView*, _In_ LPPOINT, _Out_ WebDragSourceAction*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE willPerformDragSourceAction(_In_opt_ IWebView*, WebDragSourceAction, _In_ LPPOINT, _In_opt_ IDataObject*, _COM_Outptr_opt_ IDataObject**);
+    virtual HRESULT STDMETHODCALLTYPE contextMenuItemSelected(_In_opt_ IWebView*, void*, IPropertyBag*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE hasCustomMenuImplementation(_Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE trackCustomPopupMenu(_In_opt_ IWebView*, _In_ HMENU, _In_ LPPOINT) { return E_NOTIMPL; }
     virtual HRESULT STDMETHODCALLTYPE measureCustomMenuItem(IWebView*, void*) { return E_NOTIMPL; }
     virtual HRESULT STDMETHODCALLTYPE drawCustomMenuItem(IWebView*, void*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE addCustomMenuDrawingData(IWebView*, HMENU) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE cleanUpCustomMenuDrawingData(IWebView*, HMENU) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE canTakeFocus(IWebView*, BOOL, BOOL*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE takeFocus(IWebView*, BOOL) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE registerUndoWithTarget(IWebUndoTarget*, BSTR, IUnknown*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE removeAllActionsWithTarget(IWebUndoTarget*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE setActionTitle(BSTR) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE addCustomMenuDrawingData(_In_opt_ IWebView*, _In_ HMENU) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE cleanUpCustomMenuDrawingData(_In_opt_ IWebView*, _In_ HMENU) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE canTakeFocus(_In_opt_ IWebView*, BOOL, _Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE takeFocus(_In_opt_ IWebView*, BOOL) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE registerUndoWithTarget(_In_opt_ IWebUndoTarget*, _In_ BSTR, _In_opt_ IUnknown*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE removeAllActionsWithTarget(_In_opt_ IWebUndoTarget*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setActionTitle(_In_ BSTR) { return E_NOTIMPL; }
     virtual HRESULT STDMETHODCALLTYPE undo() { return E_NOTIMPL; }
     virtual HRESULT STDMETHODCALLTYPE redo() { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE canUndo(BOOL*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE canRedo(BOOL*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE printFrame(IWebView*, IWebFrame *) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE ftpDirectoryTemplatePath(IWebView*, BSTR*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE webViewHeaderHeight(IWebView*, float*);
-    virtual HRESULT STDMETHODCALLTYPE webViewFooterHeight(IWebView*, float*);
-    virtual HRESULT STDMETHODCALLTYPE drawHeaderInRect(IWebView*, RECT*, ULONG_PTR);
-    virtual HRESULT STDMETHODCALLTYPE drawFooterInRect(IWebView*, RECT*, ULONG_PTR, UINT, UINT);
-    virtual HRESULT STDMETHODCALLTYPE webViewPrintingMarginRect(IWebView*, RECT*);
-    virtual HRESULT STDMETHODCALLTYPE canRunModal(IWebView*, BOOL*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE createModalDialog(IWebView*, IWebURLRequest*, IWebView**) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE runModal(IWebView*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE isMenuBarVisible(IWebView*, BOOL*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE setMenuBarVisible(IWebView*, BOOL) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE runDatabaseSizeLimitPrompt(IWebView*, BSTR, IWebFrame*, BOOL*) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE paintCustomScrollbar(IWebView*, HDC, RECT, WebScrollBarControlSize, WebScrollbarControlState, WebScrollbarControlPart, BOOL, float, float, WebScrollbarControlPartMask) { return E_NOTIMPL; }
-    virtual HRESULT STDMETHODCALLTYPE paintCustomScrollCorner(IWebView*, HDC, RECT) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE canUndo(_Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE canRedo(_Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE printFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE ftpDirectoryTemplatePath(_In_opt_ IWebView*, __deref_opt_out BSTR*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE webViewHeaderHeight(_In_opt_ IWebView*, _Out_ float*);
+    virtual HRESULT STDMETHODCALLTYPE webViewFooterHeight(_In_opt_ IWebView*, _Out_ float*);
+    virtual HRESULT STDMETHODCALLTYPE drawHeaderInRect(_In_opt_ IWebView*, _In_ RECT*, ULONG_PTR);
+    virtual HRESULT STDMETHODCALLTYPE drawFooterInRect(_In_opt_ IWebView*, _In_ RECT*, ULONG_PTR, UINT, UINT);
+    virtual HRESULT STDMETHODCALLTYPE webViewPrintingMarginRect(_In_opt_ IWebView*, _Out_ RECT*);
+    virtual HRESULT STDMETHODCALLTYPE canRunModal(_In_opt_ IWebView*, _Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE createModalDialog(_In_opt_ IWebView*, _In_opt_ IWebURLRequest*, _COM_Outptr_opt_ IWebView**);
+    virtual HRESULT STDMETHODCALLTYPE runModal(_In_opt_ IWebView*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE isMenuBarVisible(_In_opt_ IWebView*, _Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE setMenuBarVisible(_In_opt_ IWebView*, BOOL) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE runDatabaseSizeLimitPrompt(_In_opt_ IWebView*, _In_ BSTR, _In_opt_ IWebFrame*, _Out_ BOOL*) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE paintCustomScrollbar(_In_opt_ IWebView*, _In_ HDC, RECT, WebScrollBarControlSize, WebScrollbarControlState, WebScrollbarControlPart, BOOL, float, float, WebScrollbarControlPartMask) { return E_NOTIMPL; }
+    virtual HRESULT STDMETHODCALLTYPE paintCustomScrollCorner(_In_opt_ IWebView*, _In_ HDC, RECT) { return E_NOTIMPL; }
 
 private:
-    int m_refCount;
+    int m_refCount { 1 };
 };
 
 #endif
index 7e26fc4..51dc0cb 100644 (file)
@@ -1,5 +1,5 @@
 /*
-* Copyright (C) 2014 Apple Inc. All Rights Reserved.
+* Copyright (C) 2014-2015 Apple Inc. All Rights Reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 #include <shlwapi.h>
 #include <wininet.h>
 
-HRESULT ResourceLoadDelegate::QueryInterface(REFIID riid, void** ppvObject)
+HRESULT ResourceLoadDelegate::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualIID(riid, IID_IUnknown))
         *ppvObject = static_cast<IWebResourceLoadDelegate*>(this);
     else if (IsEqualIID(riid, IID_IWebResourceLoadDelegate))
@@ -49,12 +51,12 @@ HRESULT ResourceLoadDelegate::QueryInterface(REFIID riid, void** ppvObject)
     return S_OK;
 }
 
-ULONG ResourceLoadDelegate::AddRef(void)
+ULONG ResourceLoadDelegate::AddRef()
 {
     return ++m_refCount;
 }
 
-ULONG ResourceLoadDelegate::Release(void)
+ULONG ResourceLoadDelegate::Release()
 {
     ULONG newRef = --m_refCount;
     if (!newRef)
@@ -63,7 +65,7 @@ ULONG ResourceLoadDelegate::Release(void)
     return newRef;
 }
 
-HRESULT ResourceLoadDelegate::identifierForInitialRequest(IWebView*, IWebURLRequest*, IWebDataSource*, unsigned long identifier)
+HRESULT ResourceLoadDelegate::identifierForInitialRequest(_In_opt_ IWebView*, _In_opt_ IWebURLRequest*, _In_opt_ IWebDataSource*, unsigned long identifier)
 {
     if (!m_client)
         return E_FAIL;
@@ -73,32 +75,35 @@ HRESULT ResourceLoadDelegate::identifierForInitialRequest(IWebView*, IWebURLRequ
     return S_OK;
 }
 
-HRESULT ResourceLoadDelegate::willSendRequest(IWebView*, unsigned long, IWebURLRequest*, IWebURLResponse*, IWebDataSource*, IWebURLRequest**)
+HRESULT ResourceLoadDelegate::willSendRequest(_In_opt_ IWebView*, unsigned long, _In_opt_ IWebURLRequest*, _In_opt_ IWebURLResponse*, _In_opt_ IWebDataSource*, _COM_Outptr_opt_ IWebURLRequest** result)
 {
+    if (!result)
+        return E_POINTER;
+    *result = nullptr;
     return E_NOTIMPL;
 }
 
-HRESULT ResourceLoadDelegate::didReceiveAuthenticationChallenge(IWebView*, unsigned long, IWebURLAuthenticationChallenge*, IWebDataSource*)
+HRESULT ResourceLoadDelegate::didReceiveAuthenticationChallenge(_In_opt_ IWebView*, unsigned long, _In_opt_ IWebURLAuthenticationChallenge*, _In_opt_ IWebDataSource*)
 {
     return E_NOTIMPL;
 }
 
-HRESULT ResourceLoadDelegate::didCancelAuthenticationChallenge(IWebView*, unsigned long, IWebURLAuthenticationChallenge*, IWebDataSource*)
+HRESULT ResourceLoadDelegate::didCancelAuthenticationChallenge(_In_opt_ IWebView*, unsigned long, _In_opt_ IWebURLAuthenticationChallenge*, _In_opt_ IWebDataSource*)
 {
     return E_NOTIMPL;
 }
 
-HRESULT ResourceLoadDelegate::didReceiveResponse(IWebView*, unsigned long, IWebURLResponse*, IWebDataSource*)
+HRESULT ResourceLoadDelegate::didReceiveResponse(_In_opt_ IWebView*, unsigned long, _In_opt_ IWebURLResponse*, _In_opt_ IWebDataSource*)
 {
     return E_NOTIMPL;
 }
 
-HRESULT ResourceLoadDelegate::didReceiveContentLength(IWebView*, unsigned long, UINT, IWebDataSource*)
+HRESULT ResourceLoadDelegate::didReceiveContentLength(_In_opt_ IWebView*, unsigned long, UINT, _In_opt_ IWebDataSource*)
 {
     return E_NOTIMPL;
 }
 
-HRESULT ResourceLoadDelegate::didFinishLoadingFromDataSource(IWebView*, unsigned long identifier, IWebDataSource*)
+HRESULT ResourceLoadDelegate::didFinishLoadingFromDataSource(_In_opt_ IWebView*, unsigned long identifier, _In_opt_ IWebDataSource*)
 {
     if (!m_client)
         return E_FAIL;
@@ -108,7 +113,7 @@ HRESULT ResourceLoadDelegate::didFinishLoadingFromDataSource(IWebView*, unsigned
     return S_OK;
 }
 
-HRESULT ResourceLoadDelegate::didFailLoadingWithError(IWebView*, unsigned long identifier, IWebError*, IWebDataSource*)
+HRESULT ResourceLoadDelegate::didFailLoadingWithError(_In_opt_ IWebView*, unsigned long identifier, _In_opt_ IWebError*, _In_opt_ IWebDataSource*)
 {
     if (!m_client)
         return E_FAIL;
@@ -118,7 +123,7 @@ HRESULT ResourceLoadDelegate::didFailLoadingWithError(IWebView*, unsigned long i
     return S_OK;
 }
 
-HRESULT ResourceLoadDelegate::plugInFailedWithError(IWebView*, IWebError*, IWebDataSource*)
+HRESULT ResourceLoadDelegate::plugInFailedWithError(_In_opt_ IWebView*, _In_opt_ IWebError*, _In_opt_ IWebDataSource*)
 {
     return E_NOTIMPL;
 }
index c5257f5..2502452 100644 (file)
@@ -1,5 +1,5 @@
 /*
-* Copyright (C) 2014 Apple Inc. All Rights Reserved.
+* Copyright (C) 2014-2015 Apple Inc. All Rights Reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
@@ -33,27 +33,27 @@ class WinLauncher;
 class ResourceLoadDelegate : public IWebResourceLoadDelegate {
 public:
     ResourceLoadDelegate(WinLauncher* client)
-        : m_refCount(1), m_client(client) { }
+        : m_client(client) { }
 
     // IUnknown
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
-    virtual ULONG STDMETHODCALLTYPE AddRef(void);
-    virtual ULONG STDMETHODCALLTYPE Release(void);
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
+    virtual ULONG STDMETHODCALLTYPE AddRef();
+    virtual ULONG STDMETHODCALLTYPE Release();
 
     // IWebResourceLoadDelegate
-    virtual HRESULT STDMETHODCALLTYPE identifierForInitialRequest(IWebView*, IWebURLRequest*, IWebDataSource*, unsigned long identifier);
-    virtual HRESULT STDMETHODCALLTYPE willSendRequest(IWebView*, unsigned long identifier, IWebURLRequest*, IWebURLResponse* redirectResponse, IWebDataSource*, IWebURLRequest** newRequest);
-    virtual HRESULT STDMETHODCALLTYPE didReceiveAuthenticationChallenge(IWebView*, unsigned long identifier, IWebURLAuthenticationChallenge*, IWebDataSource*);
-    virtual HRESULT STDMETHODCALLTYPE didCancelAuthenticationChallenge(IWebView*, unsigned long identifier, IWebURLAuthenticationChallenge*, IWebDataSource*);
-    virtual HRESULT STDMETHODCALLTYPE didReceiveResponse(IWebView*, unsigned long identifier, IWebURLResponse*, IWebDataSource*);
-    virtual HRESULT STDMETHODCALLTYPE didReceiveContentLength(IWebView*, unsigned long identifier, UINT length, IWebDataSource*);
-    virtual HRESULT STDMETHODCALLTYPE didFinishLoadingFromDataSource(IWebView*, unsigned long identifier, IWebDataSource*);
-    virtual HRESULT STDMETHODCALLTYPE didFailLoadingWithError(IWebView*, unsigned long identifier, IWebError*, IWebDataSource*);
-    virtual HRESULT STDMETHODCALLTYPE plugInFailedWithError(IWebView*, IWebError*, IWebDataSource*);
+    virtual HRESULT STDMETHODCALLTYPE identifierForInitialRequest(_In_opt_ IWebView*, _In_opt_ IWebURLRequest*, _In_opt_ IWebDataSource*, unsigned long identifier);
+    virtual HRESULT STDMETHODCALLTYPE willSendRequest(_In_opt_ IWebView*, unsigned long identifier, _In_opt_ IWebURLRequest*, _In_opt_ IWebURLResponse* redirectResponse, _In_opt_ IWebDataSource*, _COM_Outptr_opt_ IWebURLRequest** newRequest);
+    virtual HRESULT STDMETHODCALLTYPE didReceiveAuthenticationChallenge(_In_opt_ IWebView*, unsigned long identifier, _In_opt_ IWebURLAuthenticationChallenge*, _In_opt_ IWebDataSource*);
+    virtual HRESULT STDMETHODCALLTYPE didCancelAuthenticationChallenge(_In_opt_ IWebView*, unsigned long identifier, _In_opt_ IWebURLAuthenticationChallenge*, _In_opt_ IWebDataSource*);
+    virtual HRESULT STDMETHODCALLTYPE didReceiveResponse(_In_opt_ IWebView*, unsigned long identifier, _In_opt_ IWebURLResponse*, _In_opt_ IWebDataSource*);
+    virtual HRESULT STDMETHODCALLTYPE didReceiveContentLength(_In_opt_ IWebView*, unsigned long identifier, UINT length, _In_opt_ IWebDataSource*);
+    virtual HRESULT STDMETHODCALLTYPE didFinishLoadingFromDataSource(_In_opt_ IWebView*, unsigned long identifier, _In_opt_  IWebDataSource*);
+    virtual HRESULT STDMETHODCALLTYPE didFailLoadingWithError(_In_opt_ IWebView*, unsigned long identifier, _In_opt_ IWebError*, _In_opt_ IWebDataSource*);
+    virtual HRESULT STDMETHODCALLTYPE plugInFailedWithError(_In_opt_ IWebView*, _In_opt_ IWebError*, _In_opt_ IWebDataSource*);
 
 private:
     WinLauncher* m_client;
-    int m_refCount;
+    int m_refCount { 1 };
 };
 
 #endif // ResourceLoadDelegate
index b7fabd2..83834dc 100644 (file)
@@ -29,7 +29,6 @@
 #include <shlobj.h>
 
 WebDownloadDelegate::WebDownloadDelegate()
-    : m_refCount(1)
 {
 }
 
@@ -37,9 +36,11 @@ WebDownloadDelegate::~WebDownloadDelegate()
 {
 }
 
-HRESULT STDMETHODCALLTYPE WebDownloadDelegate::QueryInterface(REFIID riid, void** ppvObject)
+HRESULT WebDownloadDelegate::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
 
     if (IsEqualGUID(riid, IID_IUnknown))
         *ppvObject = static_cast<IWebDownloadDelegate*>(this);
@@ -52,13 +53,13 @@ HRESULT STDMETHODCALLTYPE WebDownloadDelegate::QueryInterface(REFIID riid, void*
     return S_OK;
 }
 
-ULONG STDMETHODCALLTYPE WebDownloadDelegate::AddRef(void)
+ULONG WebDownloadDelegate::AddRef()
 {
     m_refCount++;
     return m_refCount;
 }
 
-ULONG STDMETHODCALLTYPE WebDownloadDelegate::Release(void)
+ULONG WebDownloadDelegate::Release()
 {
     m_refCount--;
     int refCount = m_refCount;
@@ -67,8 +68,11 @@ ULONG STDMETHODCALLTYPE WebDownloadDelegate::Release(void)
     return refCount;
 }
 
-HRESULT STDMETHODCALLTYPE WebDownloadDelegate::decideDestinationWithSuggestedFilename(IWebDownload* download, BSTR filename)
+HRESULT WebDownloadDelegate::decideDestinationWithSuggestedFilename(_In_opt_ IWebDownload* download, _In_ BSTR filename)
 {
+    if (!download)
+        return E_POINTER;
+
     wchar_t desktopDirectory[MAX_PATH];
     if (FAILED(SHGetFolderPathW(0, CSIDL_DESKTOP, 0, 0, desktopDirectory)))
         return E_FAIL;
@@ -82,60 +86,73 @@ HRESULT STDMETHODCALLTYPE WebDownloadDelegate::decideDestinationWithSuggestedFil
     return S_OK;
 }
 
-HRESULT STDMETHODCALLTYPE WebDownloadDelegate::didCancelAuthenticationChallenge(IWebDownload* download, IWebURLAuthenticationChallenge* challenge)
+HRESULT WebDownloadDelegate::didCancelAuthenticationChallenge(_In_opt_ IWebDownload* download, _In_opt_ IWebURLAuthenticationChallenge* challenge)
 {
     return E_NOTIMPL;
 }
 
-HRESULT STDMETHODCALLTYPE WebDownloadDelegate::didCreateDestination(IWebDownload* download, BSTR destination)
+HRESULT WebDownloadDelegate::didCreateDestination(_In_opt_ IWebDownload* download, _In_ BSTR destination)
 {
     return E_NOTIMPL;
 }
 
-HRESULT STDMETHODCALLTYPE WebDownloadDelegate::didFailWithError(IWebDownload* download, IWebError* error)
+HRESULT WebDownloadDelegate::didFailWithError(_In_opt_ IWebDownload* download, _In_opt_ IWebError* error)
 {
+    if (!download)
+        return E_POINTER;
+
     download->Release();
     return S_OK;
 }
 
-HRESULT STDMETHODCALLTYPE WebDownloadDelegate::didReceiveAuthenticationChallenge(IWebDownload* download, IWebURLAuthenticationChallenge* challenge)
+HRESULT WebDownloadDelegate::didReceiveAuthenticationChallenge(_In_opt_ IWebDownload* download, _In_opt_ IWebURLAuthenticationChallenge* challenge)
 {
     return E_NOTIMPL;
 }
 
-HRESULT STDMETHODCALLTYPE WebDownloadDelegate::didReceiveDataOfLength(IWebDownload* download, unsigned length)
+HRESULT WebDownloadDelegate::didReceiveDataOfLength(_In_opt_ IWebDownload* download, unsigned length)
 {
     return E_NOTIMPL;
 }
 
-HRESULT STDMETHODCALLTYPE WebDownloadDelegate::didReceiveResponse(IWebDownload* download, IWebURLResponse* response)
+HRESULT WebDownloadDelegate::didReceiveResponse(_In_opt_ IWebDownload* download, _In_opt_ IWebURLResponse* response)
 {
     return E_NOTIMPL;
 }
 
-HRESULT STDMETHODCALLTYPE WebDownloadDelegate::shouldDecodeSourceDataOfMIMEType(IWebDownload* download, BSTR encodingType, BOOL* shouldDecode)
+HRESULT WebDownloadDelegate::shouldDecodeSourceDataOfMIMEType(_In_opt_ IWebDownload* download, _In_ BSTR encodingType, _Out_ BOOL* shouldDecode)
 {
     return E_NOTIMPL;
 }
 
-HRESULT STDMETHODCALLTYPE WebDownloadDelegate::willResumeWithResponse(IWebDownload* download, IWebURLResponse* response, long long fromByte)
+HRESULT WebDownloadDelegate::willResumeWithResponse(_In_opt_ IWebDownload* download, _In_opt_ IWebURLResponse* response, long long fromByte)
 {
     return E_NOTIMPL;
 }
 
-HRESULT STDMETHODCALLTYPE WebDownloadDelegate::willSendRequest(IWebDownload* download, IWebMutableURLRequest* request, IWebURLResponse* redirectResponse, IWebMutableURLRequest** finalRequest)
+HRESULT WebDownloadDelegate::willSendRequest(_In_opt_ IWebDownload* download, _In_opt_ IWebMutableURLRequest* request,
+    _In_opt_ IWebURLResponse* redirectResponse, _COM_Outptr_opt_ IWebMutableURLRequest** finalRequest)
 {
+    if (!finalRequest)
+        return E_POINTER;
+    *finalRequest = nullptr;
     return E_NOTIMPL;
 }
 
-HRESULT STDMETHODCALLTYPE WebDownloadDelegate::didBegin(IWebDownload* download)
+HRESULT WebDownloadDelegate::didBegin(_In_opt_ IWebDownload* download)
 {
+    if (!download)
+        return E_POINTER;
+
     download->AddRef();
     return S_OK;
 }
 
-HRESULT STDMETHODCALLTYPE WebDownloadDelegate::didFinish(IWebDownload* download)
+HRESULT WebDownloadDelegate::didFinish(_In_opt_ IWebDownload* download)
 {
+    if (!download)
+        return E_POINTER;
+
     download->Release();
     return S_OK;
 }
index c967bd2..84266d0 100644 (file)
@@ -34,25 +34,25 @@ public:
     WebDownloadDelegate();
     virtual ~WebDownloadDelegate();
 
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
-    virtual ULONG STDMETHODCALLTYPE AddRef(void);
-    virtual ULONG STDMETHODCALLTYPE Release(void);
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
+    virtual ULONG STDMETHODCALLTYPE AddRef();
+    virtual ULONG STDMETHODCALLTYPE Release();
 
-    virtual HRESULT STDMETHODCALLTYPE decideDestinationWithSuggestedFilename(IWebDownload*, BSTR filename);
-    virtual HRESULT STDMETHODCALLTYPE didCancelAuthenticationChallenge(IWebDownload*, IWebURLAuthenticationChallenge*);
-    virtual HRESULT STDMETHODCALLTYPE didCreateDestination(IWebDownload*, BSTR destination);
-    virtual HRESULT STDMETHODCALLTYPE didFailWithError(IWebDownload*, IWebError*);
-    virtual HRESULT STDMETHODCALLTYPE didReceiveAuthenticationChallenge(IWebDownload*, IWebURLAuthenticationChallenge*);
-    virtual HRESULT STDMETHODCALLTYPE didReceiveDataOfLength(IWebDownload*, unsigned length);
-    virtual HRESULT STDMETHODCALLTYPE didReceiveResponse(IWebDownload*, IWebURLResponse*);
-    virtual HRESULT STDMETHODCALLTYPE shouldDecodeSourceDataOfMIMEType(IWebDownload*, BSTR encodingType, BOOL* shouldDecode);
-    virtual HRESULT STDMETHODCALLTYPE willResumeWithResponse(IWebDownload*, IWebURLResponse*, long long fromByte);
-    virtual HRESULT STDMETHODCALLTYPE willSendRequest(IWebDownload*, IWebMutableURLRequest*, IWebURLResponse* redirectResponse, IWebMutableURLRequest** finalRequest);
-    virtual HRESULT STDMETHODCALLTYPE didBegin(IWebDownload*);
-    virtual HRESULT STDMETHODCALLTYPE didFinish(IWebDownload*);
+    virtual HRESULT STDMETHODCALLTYPE decideDestinationWithSuggestedFilename(_In_opt_ IWebDownload*, _In_ BSTR filename);
+    virtual HRESULT STDMETHODCALLTYPE didCancelAuthenticationChallenge(_In_opt_ IWebDownload*, _In_opt_ IWebURLAuthenticationChallenge*);
+    virtual HRESULT STDMETHODCALLTYPE didCreateDestination(_In_opt_ IWebDownload*, _In_ BSTR destination);
+    virtual HRESULT STDMETHODCALLTYPE didFailWithError(_In_opt_ IWebDownload*, _In_opt_ IWebError*);
+    virtual HRESULT STDMETHODCALLTYPE didReceiveAuthenticationChallenge(_In_opt_ IWebDownload*, _In_opt_ IWebURLAuthenticationChallenge*);
+    virtual HRESULT STDMETHODCALLTYPE didReceiveDataOfLength(_In_opt_ IWebDownload*, unsigned length);
+    virtual HRESULT STDMETHODCALLTYPE didReceiveResponse(_In_opt_ IWebDownload*, _In_opt_ IWebURLResponse*);
+    virtual HRESULT STDMETHODCALLTYPE shouldDecodeSourceDataOfMIMEType(_In_opt_ IWebDownload*, _In_ BSTR encodingType, _Out_ BOOL* shouldDecode);
+    virtual HRESULT STDMETHODCALLTYPE willResumeWithResponse(_In_opt_ IWebDownload*, _In_opt_ IWebURLResponse*, long long fromByte);
+    virtual HRESULT STDMETHODCALLTYPE willSendRequest(_In_opt_ IWebDownload*, _In_opt_ IWebMutableURLRequest*, _In_opt_ IWebURLResponse* redirectResponse, _COM_Outptr_opt_ IWebMutableURLRequest** finalRequest);
+    virtual HRESULT STDMETHODCALLTYPE didBegin(_In_opt_ IWebDownload*);
+    virtual HRESULT STDMETHODCALLTYPE didFinish(_In_opt_ IWebDownload*);
 
 private:
-    int m_refCount;
+    int m_refCount { 1 };
 };
 
 #endif
index 0df4aa4..c3a5a41 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006, 2008, 2013-2014 Apple Inc.  All rights reserved.
+ * Copyright (C) 2006, 2008, 2013-2015 Apple Inc.  All rights reserved.
  * Copyright (C) 2009, 2011 Brent Fulgham.  All rights reserved.
  * Copyright (C) 2009, 2010, 2011 Appcelerator, Inc. All rights reserved.
  * Copyright (C) 2013 Alex Christensen. All rights reserved.
@@ -64,24 +64,24 @@ HRESULT WinLauncherWebHost::updateAddressBar(IWebView& webView)
     IWebFramePtr mainFrame;
     HRESULT hr = webView.mainFrame(&mainFrame.GetInterfacePtr());
     if (FAILED(hr))
-        return 0;
+        return hr;
 
     IWebDataSourcePtr dataSource;
     hr = mainFrame->dataSource(&dataSource.GetInterfacePtr());
     if (FAILED(hr) || !dataSource)
         hr = mainFrame->provisionalDataSource(&dataSource.GetInterfacePtr());
     if (FAILED(hr) || !dataSource)
-        return 0;
+        return hr;
 
     IWebMutableURLRequestPtr request;
     hr = dataSource->request(&request.GetInterfacePtr());
     if (FAILED(hr) || !request)
-        return 0;
+        return hr;
 
     _bstr_t frameURL;
     hr = request->mainDocumentURL(frameURL.GetAddress());
     if (FAILED(hr))
-        return 0;
+        return hr;
 
     if (frameURL.length()) {
         m_client->pageLoadTestClient().setPageURL(frameURL);
@@ -90,7 +90,7 @@ HRESULT WinLauncherWebHost::updateAddressBar(IWebView& webView)
 
     loadURL(frameURL);
 
-    return 0;
+    return S_OK;
 }
 
 void WinLauncherWebHost::loadURL(_bstr_t& url)
@@ -98,10 +98,12 @@ void WinLauncherWebHost::loadURL(_bstr_t& url)
     ::SendMessage(m_hURLBarWnd, static_cast<UINT>(WM_SETTEXT), 0, reinterpret_cast<LPARAM>(url.GetBSTR()));
 }
 
-HRESULT WinLauncherWebHost::didFailProvisionalLoadWithError(IWebView*, IWebError *error, IWebFrame*)
+HRESULT WinLauncherWebHost::didFailProvisionalLoadWithError(_In_opt_ IWebView*, _In_opt_ IWebError *error, _In_opt_ IWebFrame*)
 {
     _bstr_t errorDescription;
-    HRESULT hr = error->localizedDescription(errorDescription.GetAddress());
+    HRESULT hr = E_POINTER;
+    if (error)
+        hr = error->localizedDescription(errorDescription.GetAddress());
     if (FAILED(hr))
         errorDescription = L"Failed to load page and to localize error description.";
 
@@ -111,9 +113,11 @@ HRESULT WinLauncherWebHost::didFailProvisionalLoadWithError(IWebView*, IWebError
     return S_OK;
 }
 
-HRESULT WinLauncherWebHost::QueryInterface(REFIID riid, void** ppvObject)
+HRESULT WinLauncherWebHost::QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject)
 {
-    *ppvObject = 0;
+    if (!ppvObject)
+        return E_POINTER;
+    *ppvObject = nullptr;
     if (IsEqualGUID(riid, IID_IUnknown))
         *ppvObject = static_cast<IWebFrameLoadDelegate*>(this);
     else if (IsEqualGUID(riid, IID_IWebFrameLoadDelegate))
@@ -144,7 +148,7 @@ typedef _com_ptr_t<_com_IIID<IDOMElement, &__uuidof(IDOMElement)>> IDOMElementPt
 typedef _com_ptr_t<_com_IIID<IDOMEventTarget, &__uuidof(IDOMEventTarget)>> IDOMEventTargetPtr;
 typedef _com_ptr_t<_com_IIID<IWebFrame2, &__uuidof(IWebFrame2)>> IWebFrame2Ptr;
 
-HRESULT WinLauncherWebHost::didFinishLoadForFrame(IWebView* webView, IWebFrame* frame)
+HRESULT WinLauncherWebHost::didFinishLoadForFrame(_In_opt_ IWebView* webView, _In_opt_ IWebFrame* frame)
 {
     if (!frame || !webView)
         return E_POINTER;
@@ -183,7 +187,7 @@ HRESULT WinLauncherWebHost::didFinishLoadForFrame(IWebView* webView, IWebFrame*
     return hr;
 }
 
-HRESULT WinLauncherWebHost::didStartProvisionalLoadForFrame(IWebView*, IWebFrame* frame)
+HRESULT WinLauncherWebHost::didStartProvisionalLoadForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame* frame)
 {
     if (!frame)
         return E_FAIL;
@@ -192,30 +196,30 @@ HRESULT WinLauncherWebHost::didStartProvisionalLoadForFrame(IWebView*, IWebFrame
     return S_OK;
 }
 
-HRESULT WinLauncherWebHost::didFailLoadWithError(IWebView*, IWebError*, IWebFrame*)
+HRESULT WinLauncherWebHost::didFailLoadWithError(_In_opt_ IWebView*, _In_opt_ IWebError*, _In_opt_ IWebFrame*)
 {
     m_client->pageLoadTestClient().didFailLoad();
     return S_OK;
 }
 
-HRESULT WinLauncherWebHost::didHandleOnloadEventsForFrame(IWebView* sender, IWebFrame* frame)
+HRESULT WinLauncherWebHost::didHandleOnloadEventsForFrame(_In_opt_ IWebView* sender, _In_opt_ IWebFrame* frame)
 {
     IWebDataSourcePtr dataSource;
     HRESULT hr = frame->dataSource(&dataSource.GetInterfacePtr());
     if (FAILED(hr) || !dataSource)
         hr = frame->provisionalDataSource(&dataSource.GetInterfacePtr());
     if (FAILED(hr) || !dataSource)
-        return 0;
+        return hr;
 
     IWebMutableURLRequestPtr request;
     hr = dataSource->request(&request.GetInterfacePtr());
     if (FAILED(hr) || !request)
-        return 0;
+        return hr;
 
     _bstr_t frameURL;
     hr = request->mainDocumentURL(frameURL.GetAddress());
     if (FAILED(hr))
-        return 0;
+        return hr;
 
     if (frameURL.length())
         m_client->pageLoadTestClient().didHandleOnLoadEvents();
@@ -223,7 +227,7 @@ HRESULT WinLauncherWebHost::didHandleOnloadEventsForFrame(IWebView* sender, IWeb
     return S_OK;
 }
 
-HRESULT WinLauncherWebHost::didFirstLayoutInFrame(IWebView*, IWebFrame* frame)
+HRESULT WinLauncherWebHost::didFirstLayoutInFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame* frame)
 {
     if (!frame)
         return E_POINTER;
index b83dc2c..d5d53d5 100644 (file)
@@ -33,18 +33,18 @@ class WinLauncher;
 class WinLauncherWebHost : public IWebFrameLoadDelegate, public IWebFrameLoadDelegatePrivate {
 public:
     WinLauncherWebHost(WinLauncher* client, HWND urlBar)
-        : m_refCount(1), m_client(client), m_hURLBarWnd(urlBar) { }
+        : m_client(client), m_hURLBarWnd(urlBar) { }
 
     // IUnknown
-    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(_In_ REFIID riid, _COM_Outptr_ void** ppvObject);
     virtual ULONG STDMETHODCALLTYPE AddRef();
     virtual ULONG STDMETHODCALLTYPE Release();
 
     // IWebFrameLoadDelegate
-    virtual HRESULT STDMETHODCALLTYPE didStartProvisionalLoadForFrame(IWebView*, IWebFrame*);
-    virtual HRESULT STDMETHODCALLTYPE didReceiveServerRedirectForProvisionalLoadForFrame(IWebView*, IWebFrame*) { return S_OK; }
-    virtual HRESULT STDMETHODCALLTYPE didFailProvisionalLoadWithError(IWebView*, IWebError*, IWebFrame*);
-    virtual HRESULT STDMETHODCALLTYPE didCommitLoadForFrame(IWebView* webView, IWebFrame*)
+    virtual HRESULT STDMETHODCALLTYPE didStartProvisionalLoadForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didReceiveServerRedirectForProvisionalLoadForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*) { return S_OK; }
+    virtual HRESULT STDMETHODCALLTYPE didFailProvisionalLoadWithError(_In_opt_ IWebView*, _In_opt_ IWebError*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didCommitLoadForFrame(_In_opt_ IWebView* webView, _In_opt_ IWebFrame*)
     {
         if (!webView)
             return E_POINTER;
@@ -52,23 +52,23 @@ public:
         return updateAddressBar(*webView);
     }
     
-    virtual HRESULT STDMETHODCALLTYPE didReceiveTitle(IWebView*, BSTR title, IWebFrame*) { return S_OK; }
-    virtual HRESULT STDMETHODCALLTYPE didChangeIcons(IWebView*, IWebFrame*) { return S_OK; }
-    virtual HRESULT STDMETHODCALLTYPE didReceiveIcon(IWebView*, HBITMAP, IWebFrame*) { return S_OK; }
-    virtual HRESULT STDMETHODCALLTYPE didFinishLoadForFrame(IWebView*, IWebFrame*);   
-    virtual HRESULT STDMETHODCALLTYPE didFailLoadWithError(IWebView*, IWebError*, IWebFrame*);
-    virtual HRESULT STDMETHODCALLTYPE didChangeLocationWithinPageForFrame(IWebView*, IWebFrame*) { return S_OK; }
-    virtual HRESULT STDMETHODCALLTYPE willPerformClientRedirectToURL(IWebView*, BSTR url, double delaySeconds, DATE fireDate, IWebFrame*) { return S_OK; }
-    virtual HRESULT STDMETHODCALLTYPE didCancelClientRedirectForFrame(IWebView*, IWebFrame*) { return S_OK; }
-    virtual HRESULT STDMETHODCALLTYPE willCloseFrame(IWebView*, IWebFrame*) { return S_OK; }
+    virtual HRESULT STDMETHODCALLTYPE didReceiveTitle(_In_opt_ IWebView*, _In_ BSTR title, _In_opt_ IWebFrame*) { return S_OK; }
+    virtual HRESULT STDMETHODCALLTYPE didChangeIcons(_In_opt_ IWebView*, _In_opt_ IWebFrame*) { return S_OK; }
+    virtual HRESULT STDMETHODCALLTYPE didReceiveIcon(_In_opt_ IWebView*, _In_ HBITMAP, _In_opt_ IWebFrame*) { return S_OK; }
+    virtual HRESULT STDMETHODCALLTYPE didFinishLoadForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didFailLoadWithError(_In_opt_ IWebView*, _In_opt_ IWebError*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didChangeLocationWithinPageForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*) { return S_OK; }
+    virtual HRESULT STDMETHODCALLTYPE willPerformClientRedirectToURL(_In_opt_ IWebView*, _In_ BSTR url, double delaySeconds, DATE fireDate, _In_opt_ IWebFrame*) { return S_OK; }
+    virtual HRESULT STDMETHODCALLTYPE didCancelClientRedirectForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*) { return S_OK; }
+    virtual HRESULT STDMETHODCALLTYPE willCloseFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*) { return S_OK; }
     virtual /* [local] */ HRESULT STDMETHODCALLTYPE windowScriptObjectAvailable(IWebView*, JSContextRef, JSObjectRef)  { return S_OK; }
     virtual /* [local] */ HRESULT STDMETHODCALLTYPE didClearWindowObject(IWebView*, JSContextRef, JSObjectRef, IWebFrame*) { return S_OK; }
 
     // IWebFrameLoadDelegatePrivate
-    virtual HRESULT STDMETHODCALLTYPE didFinishDocumentLoadForFrame(IWebView* sender, IWebFrame*) { return S_OK; }
-    virtual HRESULT STDMETHODCALLTYPE didFirstLayoutInFrame(IWebView* sender, IWebFrame*);
-    virtual HRESULT STDMETHODCALLTYPE didHandleOnloadEventsForFrame(IWebView*, IWebFrame*);
-    virtual HRESULT STDMETHODCALLTYPE didFirstVisuallyNonEmptyLayoutInFrame(IWebView* sender, IWebFrame*)  { return S_OK; }
+    virtual HRESULT STDMETHODCALLTYPE didFinishDocumentLoadForFrame(_In_opt_ IWebView* sender, _In_opt_ IWebFrame*) { return S_OK; }
+    virtual HRESULT STDMETHODCALLTYPE didFirstLayoutInFrame(_In_opt_ IWebView* sender, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didHandleOnloadEventsForFrame(_In_opt_ IWebView*, _In_opt_ IWebFrame*);
+    virtual HRESULT STDMETHODCALLTYPE didFirstVisuallyNonEmptyLayoutInFrame(_In_opt_ IWebView* sender, _In_opt_ IWebFrame*)  { return S_OK; }
 
     void loadURL(_bstr_t&);
 
@@ -79,6 +79,6 @@ private:
     HWND m_hURLBarWnd { 0 };
     HGDIOBJ m_URLBarFont { 0 };
     HGDIOBJ m_oldFont { 0 };
-    ULONG m_refCount { 0 };
+    ULONG m_refCount { 1 };
     WinLauncher* m_client { nullptr };
 };
index d19a458..cefd143 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006, 2008, 2013, 2014 Apple Inc.  All rights reserved.
+ * Copyright (C) 2006, 2008, 2013-2015 Apple Inc.  All rights reserved.
  * Copyright (C) 2009, 2011 Brent Fulgham.  All rights reserved.
  * Copyright (C) 2009, 2010, 2011 Appcelerator, Inc. All rights reserved.
  * Copyright (C) 2013 Alex Christensen. All rights reserved.
@@ -35,7 +35,7 @@ namespace WebCore {
 float deviceScaleFactorForWindow(HWND);
 }
 
-int WINAPI wWinMain(HINSTANCE, HINSTANCE, PWSTR, int nCmdShow)
+int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpstrCmdLine, _In_ int nCmdShow)
 {
 #ifdef _CRTDBG_MAP_ALLOC
     _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
index 2a08001..32c2846 100644 (file)
@@ -181,7 +181,7 @@ static wstring getLastErrorString(HRESULT hr)
 #if USE_CONSOLE_ENTRY_POINT
 int main(int argc, const char* argv[])
 #else
-int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpstrCmdLine, int nCmdShow)
+int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpstrCmdLine, _In_ int nCmdShow)
 #endif
 {
 #if defined(_M_X64) || defined(__x86_64__)