[SHELL32_APITEST] -Add some tests for SHParseDisplayName for CORE-12882.
[reactos.git] / rostests / apitests / com / shell32.c
index 5b82433..0b6e63c 100644 (file)
 
 static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
 {
+    {
+        ID_NAME(CLSID_CDBurn),
+        {
+            {    0x0,   &IID_IObjectWithSite },
+            {    0x0,       &IID_IUnknown },
+            {    0x8,   &IID_IShellExtInit },
+            {    0xc,   &IID_IContextMenu },
+            {   0x10,   &IID_IShellPropSheetExt },
+            {   0x14,   &IID_IDiscMasterProgressEvents },
+            {   0x18,   &IID_IDropTarget },
+            {   0x1c,   &IID_IPersistFile },
+            {   0x20,   &IID_IOleCommandTarget },
+            {   0x24,   &IID_ICDBurn },
+            {   0x28,   &IID_ICDBurnPriv },
+            {   0x2c,   &IID_IPersistPropertyBag },
+            {   0x30,   &IID_IDriveFolderExt },
+            {   0x34,   &IID_INamespaceWalkCB },
+            {   0x3c,   &IID_IServiceProvider },
+            {   0x40,   &IID_ITransferAdviseSinkPriv },
+            {   0x44,   &IID_IQueryCancelAutoPlay },
+        }
+    },
+    {
+        ID_NAME(CLSID_ControlPanel),
+        {
+            {    0x0,   &IID_IUnknown },
+            {   0x10,   &IID_IPersistFolder2 },
+            {   0x10,       &IID_IPersistFolder },
+            {   0x10,           &IID_IPersist },
+            { FARAWY,   &IID_IShellIconOverlay },
+            { FARAWY,   &IID_IShellFolder2 },
+            { FARAWY,       &IID_IShellFolder },
+        }
+    },
     {
         ID_NAME(CLSID_CopyToMenu),
         {
@@ -31,6 +65,7 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {   0x70,   &IID_IDeskMovr },
             {   0x74,   &IID_IOleObject },
             {   0x78,   &IID_IPersistPropertyBag },
+            {   0x7c,   &IID_IOleControl },
             {   0x80,   &IID_IOleInPlaceActiveObject },
             {   0x84,   &IID_IViewObjectEx },
             {   0x84,       &IID_IViewObject2 },
@@ -38,6 +73,7 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {   0x88,   &IID_IOleWindow },
             {   0x88,       &IID_IOleInPlaceObject },
             {   0x88,           &IID_IOleInPlaceObjectWindowless },
+            {   0x8c,   &IID_IQuickActivate },
         }
     },
     {
@@ -67,7 +103,9 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {    0xc,       &IID_IDockingWindow },
             {    0xc,           &IID_IOleWindow },
             {   0x10,   &IID_IInputObject },
+            {   0x14,   &IID_IOleClientSite },
             {   0x18,   &IID_IOleInPlaceSite },
+            {   0x1c,   &IID_IOleControlSite },
         }
     },
     {
@@ -82,6 +120,7 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {    0x4,       &IID_IPersistFolder },
             {    0x4,           &IID_IPersist },
             {    0x8,   &IID_IObjectSafety },
+            {   0x10,   &IID_IParentAndItem },
         }
     },
     {
@@ -120,7 +159,8 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
     {
         ID_NAME(CLSID_FolderViewHost),
         {
-            {    0x0,   &IID_IUnknown },
+            {    0x0,   &IID_IFolderViewHost },
+            {    0x0,       &IID_IUnknown },
             {    0x4,   &IID_IServiceProvider },
             {    0x8,   &IID_IOleWindow },
             {    0xc,   &IID_IFolderView },
@@ -218,10 +258,14 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {    0x0,           &IID_IShellFolder },
             {    0x0,               &IID_IUnknown },
             {    0x4,   &IID_IShellService },
+            {    0x8,   &IID_ITranslateShellChangeNotify },
             {    0xc,   &IID_IPersistFolder2 },
             {    0xc,       &IID_IPersistFolder },
             {    0xc,           &IID_IPersist },
             {   0x10,   &IID_IPersistPropertyBag },
+            {   0x14,   &IID_IShellIconOverlay },
+            {   0x18,   &IID_ICompositeFolder },
+            {   0x1c,   &IID_IItemNameLimits },
         }
     },
     {
@@ -236,6 +280,52 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {   0x10,   &IID_IFolderFilter },
         }
     },
+    {
+        ID_NAME(CLSID_MyComputer),
+        {
+            {    0x0,   &IID_IUnknown },
+            {   0x10,   &IID_IPersistFolder2 },
+            {   0x10,       &IID_IPersistFolder },
+            {   0x10,           &IID_IPersist },
+            {   0x10,           &IID_IPersistFreeThreadedObject },
+            { FARAWY,   &IID_IShellIconOverlay },
+            { FARAWY,   &IID_IShellFolder2 },
+            { FARAWY,       &IID_IShellFolder },
+        }
+    },
+    {
+        ID_NAME(CLSID_MyDocuments),
+        {
+            {   -0x4,   &IID_IPersistFolder },
+            {   -0x4,       &IID_IPersist },
+            {    0x0,   &IID_IShellFolder2 },
+            {    0x0,       &IID_IShellFolder },
+            {    0x0,           &IID_IUnknown },
+            {    0x4,   &IID_IShellIconOverlay },
+            { FARAWY,   &IID_IShellIcon },
+            { FARAWY,   &IID_IPersistFolder3 },
+            { FARAWY,       &IID_IPersistFolder2 },
+            { FARAWY,   &IID_IStorage },
+            { FARAWY,   &IID_IContextMenuCB },
+            { FARAWY,   &IID_IOleCommandTarget },
+            { FARAWY,   &IID_IItemNameLimits },
+            { FARAWY,   &IID_IPropertySetStorage },
+        }
+    },
+    {
+        ID_NAME(CLSID_NetworkPlaces),
+        {
+            {    0x0,   &IID_IUnknown },
+            {   0x10,   &IID_IPersistFolder3 },
+            {   0x10,       &IID_IPersistFolder2 },
+            {   0x10,           &IID_IPersistFolder },
+            {   0x10,               &IID_IPersist },
+            {   0x10,               &IID_IPersistFreeThreadedObject },
+            { FARAWY,   &IID_IShellIconOverlay },
+            { FARAWY,   &IID_IShellFolder2 },
+            { FARAWY,       &IID_IShellFolder },
+        }
+    },
     {
         ID_NAME(CLSID_NewMenu),
         {
@@ -269,6 +359,30 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {   0x10,   &IID_IShellMenuAcc },
         }
     },
+    {
+        ID_NAME(CLSID_Printers),
+        {
+            {   -0xc,   &IID_IRemoteComputer },
+            {   -0x4,   &IID_IFolderNotify },
+            {    0x0,   &IID_IShellFolder2 },
+            {    0x0,       &IID_IShellFolder },
+            {    0x0,           &IID_IUnknown },
+            {    0x4,   &IID_IPersistFolder2 },
+            {    0x4,       &IID_IPersistFolder },
+            {    0x4,           &IID_IPersist },
+            {    0x8,   &IID_IContextMenuCB },
+            {    0xc,   &IID_IShellIconOverlay },
+        }
+    },
+    {
+        ID_NAME(CLSID_QueryAssociations),
+        {
+            {    0x0,   &IID_IAssociationArrayOld },
+            {    0x0,       &IID_IUnknown },
+            {    0x4,   &IID_IAssociationArrayInitialize },
+            {    0x8,   &IID_IQueryAssociations },
+        }
+    },
     {
         ID_NAME(CLSID_QuickLinks),
         {
@@ -290,6 +404,20 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {   0x94,   &IID_IFolderBandPriv },
         }
     },
+    {
+        ID_NAME(CLSID_RecycleBin),
+        {
+            {    0x0,   &IID_IPersistFolder2 },
+            {    0x0,       &IID_IPersistFolder },
+            //{    0x0,           &IID_IPersist },
+            {    0x0,           &IID_IUnknown },
+            {    0x4,   &IID_IShellFolder2 },
+            {    0x4,       &IID_IShellFolder },
+            {    0x8,   &IID_IContextMenu },
+            {    0xc,   &IID_IShellPropSheetExt },
+            {   0x10,   &IID_IShellExtInit },
+        }
+    },
     {
         ID_NAME(CLSID_SendToMenu),
         {
@@ -326,7 +454,10 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {    0x8,           &IID_IPersist },
             {    0xc,   &IID_IShellIcon },
             {   0x14,   &IID_IContextMenuCB },
+            {   0x18,   &IID_ITranslateShellChangeNotify },
+            {   0x1c,   &IID_IItemNameLimits },
             {   0x20,   &IID_IOleCommandTarget },
+            { FARAWY,   &IID_IShellIconOverlay },
             { FARAWY,   &IID_IShellFolder2 },
             { FARAWY,       &IID_IShellFolder },
         }
@@ -338,11 +469,15 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {    0xc,   &IID_IShellFolder2 },
             {    0xc,       &IID_IShellFolder },
             {   0x10,   &IID_IShellIcon },
+            {   0x14,   &IID_IShellIconOverlay },
             {   0x18,   &IID_IPersistFolder3 },
             {   0x18,       &IID_IPersistFolder2 },
             {   0x18,           &IID_IPersistFolder },
             {   0x18,               &IID_IPersist },
+            {   0x18,               &IID_IPersistFreeThreadedObject },
             {   0x1c,   &IID_IStorage },
+            {   0x24,   &IID_IPropertySetStorage },
+            {   0x28,   &IID_IItemNameLimits },
             {   0x2c,   &IID_IContextMenuCB },
             {   0x34,   &IID_IOleCommandTarget },
         }
@@ -367,6 +502,7 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {    0x8,   &IID_IServiceProvider },
             {    0xc,   &IID_IObjectSafety },
             {   0x14,   &IID_IObjectWithSite },
+            {   0x1c,   &IID_IConnectionPointContainer },
         }
     },
     {
@@ -375,9 +511,13 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {    0x0,   &IID_IFolderViewOC },
             {    0x0,       &IID_IDispatch },
             {    0x0,           &IID_IUnknown },
+            {    0x4,   &IID_IProvideClassInfo2 },
+            {    0x4,       &IID_IProvideClassInfo },
             {    0x8,   &IID_IObjectSafety },
+            {   0x10,   &IID_IConnectionPointContainer },
             {   0x88,   &IID_IPersistStreamInit },
             {   0x88,       &IID_IPersist },
+            {   0x8c,   &IID_IOleControl },
             {   0x90,   &IID_IOleObject },
             {   0x94,   &IID_IOleInPlaceActiveObject },
             {   0x98,   &IID_IOleInPlaceObjectWindowless },
@@ -391,6 +531,7 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {    0x0,   &IID_IShellItem },
             {    0x0,       &IID_IUnknown },
             {    0x4,   &IID_IPersistIDList },
+            {    0x8,   &IID_IParentAndItem },
         }
     },
     {
@@ -407,13 +548,17 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {   0x14,           &IID_IContextMenu },
             {   0x18,   &IID_IDropTarget },
             {   0x1c,   &IID_IQueryInfo },
+            {   0x20,   &IID_IShellLinkDataList },
             {   0x24,   &IID_IExtractIconA },
             {   0x28,   &IID_IExtractIconW },
             {   0x2c,   &IID_IExtractImage2 },
             {   0x2c,       &IID_IExtractImage },
             {   0x30,   &IID_IPersistPropertyBag },
             {   0x34,   &IID_IServiceProvider },
+            {   0x38,   &IID_IFilter },
             {   0x3c,   &IID_IObjectWithSite },
+            {   0x44,   &IID_ICustomizeInfoTip },
+            { FARAWY,   &IID_ISLTracker },
         }
     },
 #if 0 // Apparently we can only get this through Folder.Items().GetLink
@@ -449,6 +594,14 @@ static const CLASS_AND_INTERFACES ExpectedInterfaces[] =
             {    0xc,   &IID_IObjectWithSite },
         }
     },
+    {
+        ID_NAME(CLSID_Thumbnail),
+        {
+            {    0x0,   &IID_IUnknown },
+            {    0x4,   &IID_IParentAndItem },
+            {    0x8,   &IID_IObjectWithSite },
+        },
+    },
     {
         ID_NAME(CLSID_TrackShellMenu),
         {