Minor cleanup of the header file.
authorJan-Arve Saether <jan-arve.saether@nokia.com>
Wed, 11 Apr 2012 05:58:20 +0000 (07:58 +0200)
committerQt by Nokia <qt-info@nokia.com>
Fri, 13 Apr 2012 13:50:27 +0000 (15:50 +0200)
Move inline implementations to iaccessible2.cpp.
Makes it easier to read and navigate the source code.

Change-Id: I8da44ba0d40395356f612ff6b3ce2a808105838a
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
src/plugins/platforms/windows/accessible/iaccessible2.cpp
src/plugins/platforms/windows/accessible/iaccessible2.h

index be680e7..ddab3cb 100644 (file)
@@ -114,6 +114,68 @@ HRESULT STDMETHODCALLTYPE AccessibleApplication::get_toolkitVersion(/* [retval][
 }
 
 
+/**************************************************************\
+ *                     AccessibleRelation                     *
+ **************************************************************/
+AccessibleRelation::AccessibleRelation(const QList<QAccessibleInterface *> &targets,
+                    QAccessible::Relation relation)
+    : m_targets(targets), m_relation(relation), m_ref(1)
+{
+    Q_ASSERT(m_targets.count());
+}
+
+/* IUnknown */
+HRESULT STDMETHODCALLTYPE AccessibleRelation::QueryInterface(REFIID id, LPVOID *iface)
+{
+    *iface = 0;
+    if (id == IID_IUnknown)
+        *iface = (IUnknown*)this;
+
+    if (*iface) {
+        AddRef();
+        return S_OK;
+    }
+
+    return E_NOINTERFACE;
+}
+
+ULONG STDMETHODCALLTYPE AccessibleRelation::AddRef()
+{
+    return ++m_ref;
+}
+
+ULONG STDMETHODCALLTYPE AccessibleRelation::Release()
+{
+    if (!--m_ref) {
+        delete this;
+        return 0;
+    }
+    return m_ref;
+}
+
+/* IAccessibleRelation */
+HRESULT STDMETHODCALLTYPE AccessibleRelation::get_relationType(
+    /* [retval][out] */ BSTR *relationType)
+{
+    *relationType = relationToBSTR(m_relation);
+    return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE AccessibleRelation::get_localizedRelationType(
+    /* [retval][out] */ BSTR *localizedRelationType)
+{
+    // Who ever needs this???
+    *localizedRelationType = relationToBSTR(m_relation);
+    return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE AccessibleRelation::get_nTargets(
+    /* [retval][out] */ long *nTargets)
+{
+    // ### always one target
+    *nTargets = m_targets.count();
+    return S_OK;
+}
 
 /*!
   \internal
@@ -140,7 +202,7 @@ HRESULT STDMETHODCALLTYPE AccessibleRelation::get_target(
   (see "Special Consideration when using Arrays", in Accessible2.idl)
   */
 HRESULT STDMETHODCALLTYPE AccessibleRelation::get_targets(
-    /* [in] */ long maxTargets,     // Hmmm, ignore ???
+    /* [in] */ long maxTargets,
     /* [length_is][size_is][out] */ IUnknown **targets,
     /* [retval][out] */ long *nTargets)
 {
@@ -215,6 +277,10 @@ HRESULT STDMETHODCALLTYPE QWindowsIA2Accessible::QueryInterface(REFIID id, LPVOI
     return hr;
 }
 
+
+/* Note that IUnknown is inherited from several interfaces. Therefore we must reimplement all its
+   functions in the concrete class to avoid ambiguity.
+*/
 ULONG STDMETHODCALLTYPE QWindowsIA2Accessible::AddRef()
 {
     return QWindowsMsaaAccessible::AddRef();
index b33562a..0f9d3b3 100644 (file)
@@ -298,85 +298,27 @@ private:
 
 
 /**************************************************************\
- *                     IAccessibleRelation                     *
+ *                     AccessibleRelation                      *
  **************************************************************/
-struct AccessibleRelation : public IAccessibleRelation
+class AccessibleRelation : public IAccessibleRelation
 {
+public:
     AccessibleRelation(const QList<QAccessibleInterface *> &targets,
-                        QAccessible::Relation relation)
-        : m_targets(targets), m_relation(relation), m_ref(1)
-    {
-        Q_ASSERT(m_targets.count());
-    }
-
+                       QAccessible::Relation relation);
 
     virtual ~AccessibleRelation() {}
 
     /* IUnknown */
-    HRESULT STDMETHODCALLTYPE QueryInterface(REFIID id, LPVOID *iface)
-    {
-        *iface = 0;
-        if (id == IID_IUnknown)
-            *iface = (IUnknown*)this;
-
-        if (*iface) {
-            AddRef();
-            return S_OK;
-        }
-
-        return E_NOINTERFACE;
-    }
-
-    ULONG STDMETHODCALLTYPE AddRef()
-    {
-        return ++m_ref;
-    }
-
-    ULONG STDMETHODCALLTYPE Release()
-    {
-        if (!--m_ref) {
-            delete this;
-            return 0;
-        }
-        return m_ref;
-    }
+    HRESULT STDMETHODCALLTYPE QueryInterface(REFIID id, LPVOID *iface);
+    ULONG STDMETHODCALLTYPE AddRef();
+    ULONG STDMETHODCALLTYPE Release();
 
     /* IAccessibleRelation */
-    HRESULT STDMETHODCALLTYPE get_relationType(
-        /* [retval][out] */ BSTR *relationType)
-    {
-        *relationType = relationToBSTR(m_relation);
-        return S_OK;
-    }
-
-    HRESULT STDMETHODCALLTYPE get_localizedRelationType(
-        /* [retval][out] */ BSTR *localizedRelationType)
-    {
-        // Who ever needs this???
-        *localizedRelationType = relationToBSTR(m_relation);
-        return S_OK;
-    }
-
-    HRESULT STDMETHODCALLTYPE get_nTargets(
-        /* [retval][out] */ long *nTargets)
-    {
-        // ### always one target
-        *nTargets = m_targets.count();
-        return S_OK;
-    }
-
+    HRESULT STDMETHODCALLTYPE get_relationType(BSTR *relationType);
+    HRESULT STDMETHODCALLTYPE get_localizedRelationType(BSTR *localizedRelationType);
+    HRESULT STDMETHODCALLTYPE get_nTargets(long *nTargets);
     HRESULT STDMETHODCALLTYPE get_target(long targetIndex, IUnknown **target);
-
-
-    /*!
-      \internal
-      Client allocates and deallocates \a targets array
-      (see "Special Consideration when using Arrays", in Accessible2.idl)
-      */
-    HRESULT STDMETHODCALLTYPE get_targets(
-        /* [in] */ long maxTargets,     // Hmmm, ignore ???
-        /* [length_is][size_is][out] */ IUnknown **targets,
-        /* [retval][out] */ long *nTargets);
+    HRESULT STDMETHODCALLTYPE get_targets(long maxTargets, IUnknown **targets, long *nTargets);
 
 private:
     static BSTR relationToBSTR(QAccessible::Relation relation)