[COM_APITEST]
authorThomas Faber <thomas.faber@reactos.org>
Sun, 19 Apr 2015 21:28:09 +0000 (21:28 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Sun, 19 Apr 2015 21:28:09 +0000 (21:28 +0000)
- Add test for netshell classes
- Add some interfaces

svn path=/trunk/; revision=67313

rostests/apitests/com/CMakeLists.txt
rostests/apitests/com/com_apitest.c
rostests/apitests/com/com_apitest.h
rostests/apitests/com/ieframe.c
rostests/apitests/com/netshell.c [new file with mode: 0644]
rostests/apitests/com/shdocvw.c
rostests/apitests/com/shell32.c
rostests/apitests/com/testlist.c

index 0e6cfcd..813a421 100644 (file)
@@ -4,6 +4,7 @@ add_definitions(-DWINE_NO_UNICODE_MACROS)
 list(APPEND SOURCE
     browseui.c
     ieframe.c
 list(APPEND SOURCE
     browseui.c
     ieframe.c
+    netshell.c
     shdocvw.c
     shell32.c
     com_apitest.c
     shdocvw.c
     shell32.c
     com_apitest.c
index 9f053ee..9dec3df 100644 (file)
@@ -34,7 +34,11 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IACList),                     TRUE },
     { ID_NAME(IID_IACList2),                    TRUE },
     { ID_NAME(IID_IADesktopP2),                 TRUE },
     { ID_NAME(IID_IACList),                     TRUE },
     { ID_NAME(IID_IACList2),                    TRUE },
     { ID_NAME(IID_IADesktopP2),                 TRUE },
+    { ID_NAME(IID_IAccIdentity)                      },
+    { ID_NAME(IID_IAccPropServer)                    },
+    { ID_NAME(IID_IAccPropServices)                  },
     { ID_NAME(IID_IAccessible)                       },
     { ID_NAME(IID_IAccessible)                       },
+    { ID_NAME(IID_IAccessibleHandler)                },
     { ID_NAME(IID_IAccessControl),              TRUE },
     { ID_NAME(IID_IAccessor)                         },
     { ID_NAME(IID_IActiveDesktop),              TRUE },
     { ID_NAME(IID_IAccessControl),              TRUE },
     { ID_NAME(IID_IAccessor)                         },
     { ID_NAME(IID_IActiveDesktop),              TRUE },
@@ -88,6 +92,7 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IDefViewFrameGroup)                },
     { ID_NAME(IID_IDefViewSafety),                   },
     { ID_NAME(IID_IDefViewScript),              TRUE },
     { ID_NAME(IID_IDefViewFrameGroup)                },
     { ID_NAME(IID_IDefViewSafety),                   },
     { ID_NAME(IID_IDefViewScript),              TRUE },
+    { ID_NAME(IID_IDelayedRelease),             TRUE },
     { ID_NAME(IID_IDeskBand)                         },
     { ID_NAME(IID_IDeskBandEx)                       },
     { ID_NAME(IID_IDeskBar),                    TRUE },
     { ID_NAME(IID_IDeskBand)                         },
     { ID_NAME(IID_IDeskBandEx)                       },
     { ID_NAME(IID_IDeskBar),                    TRUE },
@@ -105,6 +110,7 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IEnumExtraSearch)                  },
     { ID_NAME(IID_IEnumGUID)                         },
     { ID_NAME(IID_IEnumIDList)                       },
     { ID_NAME(IID_IEnumExtraSearch)                  },
     { ID_NAME(IID_IEnumGUID)                         },
     { ID_NAME(IID_IEnumIDList)                       },
+    { ID_NAME(IID_IEnumNetConnection)                },
     { ID_NAME(IID_IEnumShellItems)                   },
     { ID_NAME(IID_IEnumString)                       },
     { ID_NAME(IID_IEnumUnknown)                      },
     { ID_NAME(IID_IEnumShellItems)                   },
     { ID_NAME(IID_IEnumString)                       },
     { ID_NAME(IID_IEnumUnknown)                      },
@@ -132,6 +138,7 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IFolderViewHost),             TRUE },
     { ID_NAME(IID_IFolderViewOC)                     },
     { ID_NAME(IID_IFolderViewSettings)               },
     { ID_NAME(IID_IFolderViewHost),             TRUE },
     { ID_NAME(IID_IFolderViewOC)                     },
     { ID_NAME(IID_IFolderViewSettings)               },
+    { ID_NAME(IID_IGetNameSpaceExtensionPointer),TRUE},
     { ID_NAME(IID_IGlobalFolderSettings),       TRUE },
     { ID_NAME(IID_IHWEventHandler)                   },
     { ID_NAME(IID_IHWEventHandler2)                  },
     { ID_NAME(IID_IGlobalFolderSettings),       TRUE },
     { ID_NAME(IID_IHWEventHandler)                   },
     { ID_NAME(IID_IHWEventHandler2)                  },
@@ -148,6 +155,12 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IMultiQI),                    TRUE },
     { ID_NAME(IID_INamespaceProxy),             TRUE },
     { ID_NAME(IID_INameSpaceTreeControl),       TRUE },
     { ID_NAME(IID_IMultiQI),                    TRUE },
     { ID_NAME(IID_INamespaceProxy),             TRUE },
     { ID_NAME(IID_INameSpaceTreeControl),       TRUE },
+    { ID_NAME(IID_INetConnectionConnectUi),     TRUE },
+    { ID_NAME(IID_INetConnectionPropertyUi),    TRUE },
+    { ID_NAME(IID_INetConnectionPropertyUi2),   TRUE },
+    { ID_NAME(IID_INetConnectionManager)             },
+    { ID_NAME(IID_INewShortcutHookA),           TRUE },
+    { ID_NAME(IID_INewShortcutHookW),           TRUE },
     { ID_NAME(IID_INSCTree),                    TRUE },
     { ID_NAME(IID_INSCTree2),                   TRUE },
     { ID_NAME(IID_IObjMgr),                     TRUE },
     { ID_NAME(IID_INSCTree),                    TRUE },
     { ID_NAME(IID_INSCTree2),                   TRUE },
     { ID_NAME(IID_IObjMgr),                     TRUE },
@@ -169,6 +182,7 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IPersistFolder)                    },
     { ID_NAME(IID_IPersistFolder2)                   },
     { ID_NAME(IID_IPersistFolder3)                   },
     { ID_NAME(IID_IPersistFolder)                    },
     { ID_NAME(IID_IPersistFolder2)                   },
     { ID_NAME(IID_IPersistFolder3)                   },
+    { ID_NAME(IID_IPersistFreeThreadedObject),  TRUE },
     { ID_NAME(IID_IPersistHistory)                   },
     { ID_NAME(IID_IPersistIDList)                    },
     { ID_NAME(IID_IPersistMemory)                    },
     { ID_NAME(IID_IPersistHistory)                   },
     { ID_NAME(IID_IPersistIDList)                    },
     { ID_NAME(IID_IPersistMemory)                    },
@@ -183,6 +197,7 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IProgressDialog),             TRUE },
     { ID_NAME(IID_IPropertyBag)                      },
     { ID_NAME(IID_IPropertyBag2)                     },
     { ID_NAME(IID_IProgressDialog),             TRUE },
     { ID_NAME(IID_IPropertyBag)                      },
     { ID_NAME(IID_IPropertyBag2)                     },
+    { ID_NAME(IID_IPropSheetPage),              TRUE },
     { ID_NAME(IID_IQueryAssociations),          TRUE },
     { ID_NAME(IID_IQueryInfo),                  TRUE },
     { ID_NAME(IID_IRegTreeOptions),             TRUE },
     { ID_NAME(IID_IQueryAssociations),          TRUE },
     { ID_NAME(IID_IQueryInfo),                  TRUE },
     { ID_NAME(IID_IRegTreeOptions),             TRUE },
@@ -196,6 +211,8 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IShellBrowser)                     },
     { ID_NAME(IID_IShellBrowserService),        TRUE },
     { ID_NAME(IID_IShellChangeNotify),          TRUE },
     { ID_NAME(IID_IShellBrowser)                     },
     { ID_NAME(IID_IShellBrowserService),        TRUE },
     { ID_NAME(IID_IShellChangeNotify),          TRUE },
+    { ID_NAME(IID_IShellCopyHookA),             TRUE },
+    { ID_NAME(IID_IShellCopyHookW),             TRUE },
     { ID_NAME(IID_IShellDesktopTray),           TRUE },
     { ID_NAME(IID_IShellDetails),               TRUE },
     { ID_NAME(IID_IShellDispatch)                    },
     { ID_NAME(IID_IShellDesktopTray),           TRUE },
     { ID_NAME(IID_IShellDetails),               TRUE },
     { ID_NAME(IID_IShellDispatch)                    },
@@ -203,9 +220,9 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IShellDispatch3)                   },
     { ID_NAME(IID_IShellDispatch4)                   },
     { ID_NAME(IID_IShellDispatch5),             TRUE },
     { ID_NAME(IID_IShellDispatch3)                   },
     { ID_NAME(IID_IShellDispatch4)                   },
     { ID_NAME(IID_IShellDispatch5),             TRUE },
+    { ID_NAME(IID_IShellExecuteHookA),          TRUE },
+    { ID_NAME(IID_IShellExecuteHookW),          TRUE },
     { ID_NAME(IID_IShellExtInit),               TRUE },
     { ID_NAME(IID_IShellExtInit),               TRUE },
-    { ID_NAME(IID_IShellPropSheetExt),          TRUE },
-    { ID_NAME(IID_IShellIconOverlayIdentifier), TRUE },
     { ID_NAME(IID_IShellFolder)                      },
     { ID_NAME(IID_IShellFolder2)                     },
     { ID_NAME(IID_IShellFolderBand),            TRUE },
     { ID_NAME(IID_IShellFolder)                      },
     { ID_NAME(IID_IShellFolder2)                     },
     { ID_NAME(IID_IShellFolderBand),            TRUE },
@@ -257,6 +274,8 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_ITrayPriv),                   TRUE },
     { ID_NAME(IID_ITrayPriv2),                  TRUE },
     { ID_NAME(IID_IUnknown)                          },
     { ID_NAME(IID_ITrayPriv),                   TRUE },
     { ID_NAME(IID_ITrayPriv2),                  TRUE },
     { ID_NAME(IID_IUnknown)                          },
+    { ID_NAME(IID_IURLSearchHook),              TRUE },
+    { ID_NAME(IID_IURLSearchHook2),             TRUE },
     { ID_NAME(IID_IViewObject)                       },
     { ID_NAME(IID_IViewObject2)                      },
     { ID_NAME(IID_IViewObjectEx),               TRUE },
     { ID_NAME(IID_IViewObject)                       },
     { ID_NAME(IID_IViewObject2)                      },
     { ID_NAME(IID_IViewObjectEx),               TRUE },
index 51b0089..172edd6 100644 (file)
@@ -23,6 +23,7 @@
 #include <objsafe.h>
 #include <oleacc.h>
 #include <oaidl.h>
 #include <objsafe.h>
 #include <oleacc.h>
 #include <oaidl.h>
+#include <netcon.h>
 #include <mshtmhst.h>
 #include <perhist.h>
 #include <shlguid.h>
 #include <mshtmhst.h>
 #include <perhist.h>
 #include <shlguid.h>
@@ -126,9 +127,11 @@ DEFINE_GUID(IID_IFolderFilterSite,         0xc0a651f5, 0xb48b, 0x11d2, 0xb5, 0xe
 DEFINE_GUID(IID_IFolderView2,              0x1af3a467, 0x214f, 0x4298, 0x90, 0x8e, 0x06, 0xb0, 0x3e, 0x0b, 0x39, 0xf9);
 DEFINE_GUID(IID_IFolderViewHost,           0x1ea58f02, 0xd55a, 0x411d, 0xb0, 0x9e, 0x9e, 0x65, 0xac, 0x21, 0x60, 0x5b);
 DEFINE_GUID(IID_IFolderViewSettings,       0xae8c987d, 0x8797, 0x4ed3, 0xbe, 0x72, 0x2a, 0x47, 0xdd, 0x93, 0x8d, 0xb0);
 DEFINE_GUID(IID_IFolderView2,              0x1af3a467, 0x214f, 0x4298, 0x90, 0x8e, 0x06, 0xb0, 0x3e, 0x0b, 0x39, 0xf9);
 DEFINE_GUID(IID_IFolderViewHost,           0x1ea58f02, 0xd55a, 0x411d, 0xb0, 0x9e, 0x9e, 0x65, 0xac, 0x21, 0x60, 0x5b);
 DEFINE_GUID(IID_IFolderViewSettings,       0xae8c987d, 0x8797, 0x4ed3, 0xbe, 0x72, 0x2a, 0x47, 0xdd, 0x93, 0x8d, 0xb0);
+DEFINE_GUID(IID_IGetNameSpaceExtensionPointer,0x287d4a71, 0x439f, 0x43a4, 0x8d, 0x5b, 0x0e, 0x0a, 0xe7, 0x1e, 0x84, 0xa9);
 DEFINE_GUID(IID_IHWEventHandler,           0xc1fb73d0, 0xec3a, 0x4ba2, 0xb5, 0x12, 0x8c, 0xdb, 0x91, 0x87, 0xb6, 0xd1);
 DEFINE_GUID(IID_IHWEventHandler2,          0xcfcc809f, 0x295d, 0x42e8, 0x9f, 0xfc, 0x42, 0x4b, 0x33, 0xc4, 0x87, 0xe6);
 DEFINE_GUID(IID_IMultiMonitorDockingSite,  0x03879de0, 0xa205, 0x11d0, 0x99, 0xcb, 0x00, 0xc0, 0x4f, 0xd6, 0x55, 0xe1);
 DEFINE_GUID(IID_IHWEventHandler,           0xc1fb73d0, 0xec3a, 0x4ba2, 0xb5, 0x12, 0x8c, 0xdb, 0x91, 0x87, 0xb6, 0xd1);
 DEFINE_GUID(IID_IHWEventHandler2,          0xcfcc809f, 0x295d, 0x42e8, 0x9f, 0xfc, 0x42, 0x4b, 0x33, 0xc4, 0x87, 0xe6);
 DEFINE_GUID(IID_IMultiMonitorDockingSite,  0x03879de0, 0xa205, 0x11d0, 0x99, 0xcb, 0x00, 0xc0, 0x4f, 0xd6, 0x55, 0xe1);
+DEFINE_GUID(IID_IPersistFreeThreadedObject,0xc7264bf0, 0xedb6, 0x11d1, 0x85, 0x46, 0x00, 0x60, 0x08, 0x05, 0x93, 0x68);
 DEFINE_GUID(IID_IPreviewHandler,           0x8895b1c6, 0xb41f, 0x4c1c, 0xa5, 0x62, 0x0d, 0x56, 0x42, 0x50, 0x83, 0x6f);
 DEFINE_GUID(IID_IPreviewHandlerFrame,      0xfec87aaf, 0x35f9, 0x447a, 0xad, 0xb7, 0x20, 0x23, 0x44, 0x91, 0x40, 0x1a);
 DEFINE_GUID(IID_IPreviewHandlerVisuals,    0x196bf9a5, 0xb346, 0x4ef0, 0xaa, 0x1e, 0x5d, 0xcd, 0xb7, 0x67, 0x68, 0xb1);
 DEFINE_GUID(IID_IPreviewHandler,           0x8895b1c6, 0xb41f, 0x4c1c, 0xa5, 0x62, 0x0d, 0x56, 0x42, 0x50, 0x83, 0x6f);
 DEFINE_GUID(IID_IPreviewHandlerFrame,      0xfec87aaf, 0x35f9, 0x447a, 0xad, 0xb7, 0x20, 0x23, 0x44, 0x91, 0x40, 0x1a);
 DEFINE_GUID(IID_IPreviewHandlerVisuals,    0x196bf9a5, 0xb346, 0x4ef0, 0xaa, 0x1e, 0x5d, 0xcd, 0xb7, 0x67, 0x68, 0xb1);
index c45aa22..864a8e3 100644 (file)
@@ -15,12 +15,20 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
     {
         ID_NAME(CLSID_ShellWindows),
         {
     {
         ID_NAME(CLSID_ShellWindows),
         {
-            {  -0xa0,       &IID_IMarshal },
-            {  -0x20,       &IID_IClientSecurity },
-            {    0x0,       &IID_IMultiQI },
+            {  -0xa0,   &IID_IMarshal },
+            {  -0x20,   &IID_IClientSecurity },
+            {    0x0,   &IID_IMultiQI },
+            {    0x0,       &IID_IUnknown },
+            { FARAWY,   &IID_IShellWindows },
+            { FARAWY,   &IID_IDispatch },
+        }
+    },
+    {
+        ID_NAME(CLSID_CURLSearchHook),
+        {
+            {    0x0,   &IID_IURLSearchHook2 },
+            {    0x0,       &IID_IURLSearchHook },
             {    0x0,           &IID_IUnknown },
             {    0x0,           &IID_IUnknown },
-            { FARAWY,       &IID_IShellWindows },
-            { FARAWY,       &IID_IDispatch },
         }
     },
 };
         }
     },
 };
diff --git a/rostests/apitests/com/netshell.c b/rostests/apitests/com/netshell.c
new file mode 100644 (file)
index 0000000..6169416
--- /dev/null
@@ -0,0 +1,152 @@
+/*
+ * PROJECT:         ReactOS api tests
+ * LICENSE:         LGPLv2.1+ - See COPYING.LIB in the top level directory
+ * PURPOSE:         COM interface test for netshell classes
+ * PROGRAMMER:      Thomas Faber <thomas.faber@reactos.org>
+ */
+
+#include "com_apitest.h"
+
+#define NDEBUG
+#include <debug.h>
+
+static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
+{
+    {
+        ID_NAME(CLSID_ConnectionCommonUi),
+        {
+            {    0x0,   &IID_IUnknown },
+        },
+        L"Both"
+    },
+    {
+        ID_NAME(CLSID_ConnectionFolder),
+        {
+            {    0x0,   &IID_IPersistFolder2 },
+            {    0x0,       &IID_IPersistFolder },
+            {    0x0,           &IID_IPersist },
+            {    0x0,               &IID_IUnknown },
+            {    0x4,   &IID_IShellExtInit },
+            {    0x8,   &IID_IShellFolder2 },
+            {    0x8,       &IID_IShellFolder },
+            {    0xc,   &IID_IOleCommandTarget },
+            {   0x10,   &IID_IShellFolderViewCB },
+        },
+        L"Both"
+    },
+    {
+        ID_NAME(CLSID_ConnectionFolderEnum),
+        {
+            {    0x0,   &IID_IEnumIDList },
+            {    0x0,       &IID_IUnknown },
+        },
+        L"Both"
+    },
+#if 0
+    {
+        ID_NAME(CLSID_ConnectionManager),
+        {
+            {    0x0,   &IID_IUnknown },
+        }
+    },
+#endif
+    {
+        ID_NAME(CLSID_ConnectionTray),
+        {
+            {    0x0,   &IID_IOleCommandTarget },
+            {    0x0,       &IID_IUnknown },
+        },
+        L"Both"
+    },
+    {
+        ID_NAME(CLSID_DialupConnectionUi),
+        {
+            {    0x0,   &IID_INetConnectionConnectUi },
+            {    0x0,       &IID_IUnknown },
+            {    0x4,   &IID_INetConnectionPropertyUi2 },
+            //{    0x4,       &IID_INetConnectionPropertyUi },
+        },
+        L"Both"
+    },
+    {
+        ID_NAME(CLSID_DirectConnectionUi),
+        {
+            {    0x0,   &IID_INetConnectionConnectUi },
+            {    0x0,       &IID_IUnknown },
+            {    0x4,   &IID_INetConnectionPropertyUi2 },
+            //{    0x4,       &IID_INetConnectionPropertyUi },
+        },
+        L"Both"
+    },
+    {
+        ID_NAME(CLSID_InboundConnectionUi),
+        {
+            {    0x0,   &IID_INetConnectionPropertyUi2 },
+            {    0x0,       &IID_IUnknown },
+        },
+        L"Both"
+    },
+    {
+        ID_NAME(CLSID_InternetConnectionUi),
+        {
+            {    0x0,   &IID_INetConnectionConnectUi },
+            {    0x0,       &IID_IUnknown },
+            {    0x4,   &IID_INetConnectionPropertyUi2 },
+            //{    0x4,       &IID_INetConnectionPropertyUi },
+        },
+        L"Both"
+    },
+    {
+        ID_NAME(CLSID_LanConnectionUi),
+        {
+            {    0x0,   &IID_INetConnectionConnectUi },
+            {    0x0,       &IID_IUnknown },
+            {    0x4,   &IID_INetConnectionPropertyUi2 },
+            {    0x4,       &IID_INetConnectionPropertyUi },
+        },
+        L"Both"
+    },
+    {
+        ID_NAME(CLSID_NetConnectionUiUtilities),
+        {
+            {    0x0,   &IID_IUnknown },
+        },
+        L"Both"
+    },
+    {
+        ID_NAME(CLSID_SharedAccessConnectionUi),
+        {
+            {    0x0,   &IID_INetConnectionConnectUi },
+            {    0x0,       &IID_IUnknown },
+            {    0x4,   &IID_INetConnectionPropertyUi2 },
+            {    0x4,       &IID_INetConnectionPropertyUi },
+        },
+        L"Both"
+    },
+    {
+        ID_NAME(CLSID_PPPoEUi),
+        {
+            {    0x0,   &IID_INetConnectionConnectUi },
+            {    0x0,       &IID_IUnknown },
+            {    0x4,   &IID_INetConnectionPropertyUi2 },
+            //{    0x4,       &IID_INetConnectionPropertyUi },
+        },
+        L"Both"
+    },
+    {
+        ID_NAME(CLSID_VpnConnectionUi),
+        {
+            {    0x0,   &IID_INetConnectionConnectUi },
+            {    0x0,       &IID_IUnknown },
+            {    0x4,   &IID_INetConnectionPropertyUi2 },
+            //{    0x4,       &IID_INetConnectionPropertyUi },
+        },
+        L"Both"
+    },
+};
+static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
+
+START_TEST(netshell)
+{
+    TestClasses(L"netshell", ExpectedInterfaces, ExpectedInterfaceCount);
+}
index c46a702..dfcdbca 100644 (file)
@@ -57,7 +57,7 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
     {
         ID_NAME(CLSID_ShellDispatchInproc),
         {
     {
         ID_NAME(CLSID_ShellDispatchInproc),
         {
-            {    0x0,                       &IID_IUnknown },
+            {    0x0,   &IID_IUnknown },
         }
     },
 #endif
         }
     },
 #endif
index 5bd474d..8cc9ce4 100644 (file)
@@ -274,6 +274,7 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {   0x10,   &IID_IPersistFolder2 },
             {   0x10,       &IID_IPersistFolder },
             {   0x10,           &IID_IPersist },
             {   0x10,   &IID_IPersistFolder2 },
             {   0x10,       &IID_IPersistFolder },
             {   0x10,           &IID_IPersist },
+            {   0x10,           &IID_IPersistFreeThreadedObject },
             { FARAWY,   &IID_IShellIconOverlay },
             { FARAWY,   &IID_IShellFolder2 },
             { FARAWY,       &IID_IShellFolder },
             { FARAWY,   &IID_IShellIconOverlay },
             { FARAWY,   &IID_IShellFolder2 },
             { FARAWY,       &IID_IShellFolder },
@@ -304,6 +305,7 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {   0x10,       &IID_IPersistFolder2 },
             {   0x10,           &IID_IPersistFolder },
             {   0x10,               &IID_IPersist },
             {   0x10,       &IID_IPersistFolder2 },
             {   0x10,           &IID_IPersistFolder },
             {   0x10,               &IID_IPersist },
+            {   0x10,               &IID_IPersistFreeThreadedObject },
             { FARAWY,   &IID_IShellIconOverlay },
             { FARAWY,   &IID_IShellFolder2 },
             { FARAWY,       &IID_IShellFolder },
             { FARAWY,   &IID_IShellIconOverlay },
             { FARAWY,   &IID_IShellFolder2 },
             { FARAWY,       &IID_IShellFolder },
@@ -453,6 +455,7 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {   0x18,       &IID_IPersistFolder2 },
             {   0x18,           &IID_IPersistFolder },
             {   0x18,               &IID_IPersist },
             {   0x18,       &IID_IPersistFolder2 },
             {   0x18,           &IID_IPersistFolder },
             {   0x18,               &IID_IPersist },
+            {   0x18,               &IID_IPersistFreeThreadedObject },
             {   0x1c,   &IID_IStorage },
             {   0x2c,   &IID_IContextMenuCB },
             {   0x34,   &IID_IOleCommandTarget },
             {   0x1c,   &IID_IStorage },
             {   0x2c,   &IID_IContextMenuCB },
             {   0x34,   &IID_IOleCommandTarget },
index 9aa449d..9f8df8d 100644 (file)
@@ -6,6 +6,7 @@
 extern void func_browseui(void);
 extern void func_ieframe(void);
 extern void func_interfaces(void);
 extern void func_browseui(void);
 extern void func_ieframe(void);
 extern void func_interfaces(void);
+extern void func_netshell(void);
 extern void func_shdocvw(void);
 extern void func_shell32(void);
 
 extern void func_shdocvw(void);
 extern void func_shell32(void);
 
@@ -14,6 +15,7 @@ const struct test winetest_testlist[] =
     { "browseui", func_browseui },
     { "ieframe", func_ieframe },
     { "interfaces", func_interfaces },
     { "browseui", func_browseui },
     { "ieframe", func_ieframe },
     { "interfaces", func_interfaces },
+    { "netshell", func_netshell },
     { "shdocvw", func_shdocvw },
     { "shell32", func_shell32 },
 
     { "shdocvw", func_shdocvw },
     { "shell32", func_shell32 },