[COM_APITEST] -Add tests for CLSID_AttachmentServices.
[reactos.git] / rostests / apitests / com / com_apitest.c
index 50d7ed9..0f9e592 100644 (file)
@@ -54,18 +54,29 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IAutoComplete2),              TRUE },
     { ID_NAME(IID_IAutoCompleteDropDown)             },
     { ID_NAME(IID_IBandHost)                         },
-    { ID_NAME(IID_IBandNavigate),               TRUE },
+    { ID_NAME(IID_IBandNavigate),                    },
     { ID_NAME(IID_IBandProxy),                  TRUE },
     { ID_NAME(IID_IBandSite)                         },
     { ID_NAME(IID_IBandSiteHelper),             TRUE },
     { ID_NAME(IID_IBanneredBar),                TRUE },
     { ID_NAME(IID_IBindCtx)                          },
+    { ID_NAME(IID_IBindEventHandler)                 },
+    { ID_NAME(IID_IBindHost)                         },
+    { ID_NAME(IID_IBinding)                          },
+    { ID_NAME(IID_IBindProtocol),               TRUE },
+    { ID_NAME(IID_IBindResource)                     },
+    { ID_NAME(IID_IBindStatusCallback)               },
     { ID_NAME(IID_IBrowserFrameOptions),        TRUE },
     { ID_NAME(IID_IBrowserService)                   },
     { ID_NAME(IID_IBrowserService2),            TRUE },
     { ID_NAME(IID_IBrowserService3),            TRUE },
+    { ID_NAME(IID_IBrowserService4),            TRUE },
     { ID_NAME(IID_ICDBurn)                           },
     { ID_NAME(IID_ICDBurnExt)                        },
+    { ID_NAME(IID_ICDBurnPriv)                       },
+    { ID_NAME(IID_ICallFactory),                TRUE },
+    { ID_NAME(IID_ICatInformation)                   },
+    { ID_NAME(IID_ICatRegister)                      },
     { ID_NAME(IID_IClassFactory)                     },
     { ID_NAME(IID_IClassFactory2)                    },
     { ID_NAME(IID_IClassFactory3),              TRUE },
@@ -73,8 +84,10 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_ICommDlgBrowser)                   },
     { ID_NAME(IID_ICommDlgBrowser2)                  },
     { ID_NAME(IID_ICommDlgBrowser3)                  },
+    { ID_NAME(IID_ICompositeFolder)                  },
     { ID_NAME(IID_IComputerInfoChangeNotify),        },
     { ID_NAME(IID_IComThreadingInfo),           TRUE },
+    { ID_NAME(IID_IConnectionPointContainer)         },
     { ID_NAME(IID_IContext),                    TRUE },
     { ID_NAME(IID_IContextMenu),                TRUE },
     { ID_NAME(IID_IContextMenu2),               TRUE },
@@ -84,6 +97,8 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IContinue)                         },
     { ID_NAME(IID_ICopyHookA),                  TRUE },
     { ID_NAME(IID_ICopyHookW),                  TRUE },
+    { ID_NAME(IID_ICurrentWorkingDirectory),    TRUE },
+    { ID_NAME(IID_ICustomizeInfoTip)                 },
     { ID_NAME(IID_IDVGetEnum),                  TRUE },
     { ID_NAME(IID_IDataObject)                       },
     //{ ID_NAME(IID_IDefViewID)                        }, == DefViewFrame3
@@ -98,23 +113,29 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IDeskBar),                    TRUE },
     { ID_NAME(IID_IDeskBarClient),              TRUE },
     { ID_NAME(IID_IDeskMovr),                   TRUE },
+    { ID_NAME(IID_IDiscMasterProgressEvents)         },
     { ID_NAME(IID_IDispatch)                         },
+    { ID_NAME(IID_IDispatchEx)                       },
     { ID_NAME(IID_IDockingWindow)                    },
     { ID_NAME(IID_IDockingWindowFrame),         TRUE },
     { ID_NAME(IID_IDockingWindowSite),          TRUE },
     { ID_NAME(IID_IDocViewSite),                TRUE },
     { ID_NAME(IID_IDragSourceHelper),           TRUE },
+    { ID_NAME(IID_IDriveFolderExt)                   },
     { ID_NAME(IID_IDropSource)                       },
     { ID_NAME(IID_IDropTarget)                       },
     { ID_NAME(IID_IDropTargetHelper),           TRUE },
+    { ID_NAME(IID_IEFrameAuto)                       },
     { ID_NAME(IID_IEnumExtraSearch)                  },
     { ID_NAME(IID_IEnumGUID)                         },
     { ID_NAME(IID_IEnumIDList)                       },
+    { ID_NAME(IID_IEnumMoniker)                      },
     //{ ID_NAME(IID_IEnumNetCfgBindingInterface)       },
     //{ ID_NAME(IID_IEnumNetCfgBindingPath)            },
     { ID_NAME(IID_IEnumNetCfgComponent),        TRUE },
     { ID_NAME(IID_IEnumNetConnection)                },
     { ID_NAME(IID_IEnumShellItems)                   },
+    { ID_NAME(IID_IEnumSTATSTG)                       },
     { ID_NAME(IID_IEnumString)                       },
     { ID_NAME(IID_IEnumUnknown)                      },
     { ID_NAME(IID_IEnumVARIANT)                      },
@@ -133,6 +154,7 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IFileViewerA),                TRUE },
     { ID_NAME(IID_IFileViewerSite),             TRUE },
     { ID_NAME(IID_IFileViewerW),                TRUE },
+    { ID_NAME(IID_IFilter)                           },
     { ID_NAME(IID_IFolderBandPriv)                   },
     { ID_NAME(IID_IFolderFilter)                     },
     { ID_NAME(IID_IFolderFilterSite)                 },
@@ -141,26 +163,36 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IFolderViewHost),             TRUE },
     { ID_NAME(IID_IFolderViewOC)                     },
     { ID_NAME(IID_IFolderViewSettings)               },
+    { ID_NAME(IID_IForegroundTransfer),         TRUE },
     { ID_NAME(IID_IGetNameSpaceExtensionPointer),TRUE},
     { ID_NAME(IID_IGlobalFolderSettings),       TRUE },
     { ID_NAME(IID_IHWEventHandler)                   },
     { ID_NAME(IID_IHWEventHandler2)                  },
+    { ID_NAME(IID_IHlinkFrame)                       },
+    { ID_NAME(IID_IImageList),                  TRUE },
+    { ID_NAME(IID_IImageList2),                 TRUE },
     { ID_NAME(IID_IInitializeObject),           TRUE },
+    { ID_NAME(IID_IInitializeWithBindCtx)            },
+    { ID_NAME(IID_IInitializeWithFile)               },
     { ID_NAME(IID_IInputObject)                      },
     { ID_NAME(IID_IInputObjectSite)                  },
     { ID_NAME(IID_IInternalUnknown),            TRUE },
+    { ID_NAME(IID_IInternetSecurityManager)          },
+    { ID_NAME(IID_IInternetZoneManager),        TRUE },
+    { ID_NAME(IID_IItemNameLimits)                   },
     { ID_NAME(IID_IMarshal)                          },
+    { ID_NAME(IID_IMarshal2),                   TRUE },
     { ID_NAME(IID_IMenuBand),                   TRUE },
     { ID_NAME(IID_IMenuPopup),                  TRUE },
     { ID_NAME(IID_IModalWindow)                      },
     { ID_NAME(IID_IMoniker)                          },
     { ID_NAME(IID_IMultiMonitorDockingSite),    TRUE },
     { ID_NAME(IID_IMultiQI),                    TRUE },
-    { ID_NAME(IID_INamespaceProxy),             TRUE },
     { ID_NAME(IID_INameSpaceTreeControl),       TRUE },
-    { ID_NAME(IID_INamespaceWalk),              FALSE },
-    { ID_NAME(IID_INamespaceWalkCB),            FALSE },
-    { ID_NAME(IID_INamespaceWalkCB2),           FALSE },
+    { ID_NAME(IID_INamespaceProxy),             TRUE },
+    { ID_NAME(IID_INamespaceWalk)                    },
+    { ID_NAME(IID_INamespaceWalkCB)                  },
+    { ID_NAME(IID_INamespaceWalkCB2)                 },
     { ID_NAME(IID_INetCfg),                     TRUE },
     //{ ID_NAME(IID_INetCfgBindingInterface)           },
     //{ ID_NAME(IID_INetCfgBindingPath)                },
@@ -175,14 +207,21 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_INetConnectionPropertyUi2),   TRUE },
     { ID_NAME(IID_INetConnectionManager)             },
     { ID_NAME(IID_INetLanConnectionUiInfo),     TRUE },
+    { ID_NAME(IID_INewMenuClient)                    },
     { ID_NAME(IID_INewShortcutHookA),           TRUE },
     { ID_NAME(IID_INewShortcutHookW),           TRUE },
+    { ID_NAME(IID_INewWindowManager)                 },
     { ID_NAME(IID_INSCTree),                    TRUE },
     { ID_NAME(IID_INSCTree2),                   TRUE },
     { ID_NAME(IID_IObjMgr),                     TRUE },
     { ID_NAME(IID_IObjectSafety)                     },
+    { ID_NAME(IID_IObjectWithBackReferences)         },
     { ID_NAME(IID_IObjectWithSite)                   },
+    { ID_NAME(IID_IOleClientSite)                    },
     { ID_NAME(IID_IOleCommandTarget)                 },
+    { ID_NAME(IID_IOleContainer)                     },
+    { ID_NAME(IID_IOleControl)                       },
+    { ID_NAME(IID_IOleControlSite)                   },
     { ID_NAME(IID_IOleInPlaceActiveObject)           },
     { ID_NAME(IID_IOleInPlaceFrame)                  },
     { ID_NAME(IID_IOleInPlaceObject)                 },
@@ -193,6 +232,7 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IOleInPlaceUIWindow)               },
     { ID_NAME(IID_IOleObject)                        },
     { ID_NAME(IID_IOleWindow)                        },
+    { ID_NAME(IID_IParentAndItem)                    },
     { ID_NAME(IID_IPersist)                          },
     { ID_NAME(IID_IPersistFile)                      },
     { ID_NAME(IID_IPersistFolder)                    },
@@ -213,13 +253,29 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IProgressDialog),             TRUE },
     { ID_NAME(IID_IPropertyBag)                      },
     { ID_NAME(IID_IPropertyBag2)                     },
+    { ID_NAME(IID_IPropertySetStorage)               },
+    { ID_NAME(IID_IPropertyStore)                    },
     { ID_NAME(IID_IPropSheetPage),              TRUE },
+    { ID_NAME(IID_IProvideClassInfo)                 },
+    { ID_NAME(IID_IProvideClassInfo2)                },
     { ID_NAME(IID_IQueryAssociations),          TRUE },
+    { ID_NAME(IID_IQueryCancelAutoPlay)              },
     { ID_NAME(IID_IQueryInfo),                  TRUE },
+    { ID_NAME(IID_IQuickActivate)                    },
     { ID_NAME(IID_IRegTreeOptions),             TRUE },
     { ID_NAME(IID_IRemoteComputer)                   },
     { ID_NAME(IID_IResolveShellLink)                 },
+    { ID_NAME(IID_IRpcOptions),                 TRUE },
     { ID_NAME(IID_IRunnableObject)                   },
+    { ID_NAME(IID_ISLTracker),                  TRUE },
+    { ID_NAME(IID_IScriptErrorList)                  },
+    { ID_NAME(IID_ISearch)                           },
+    { ID_NAME(IID_ISearchAssistantOC)                },
+    { ID_NAME(IID_ISearchAssistantOC2)               },
+    { ID_NAME(IID_ISearchAssistantOC3)               },
+    { ID_NAME(IID_ISearchBar)                        },
+    { ID_NAME(IID_ISearches)                         },
+    { ID_NAME(IID_ISecMgrCacheSeedTarget)            },
     { ID_NAME(IID_IServerSecurity),             TRUE },
     { ID_NAME(IID_IServiceProvider)                  },
     { ID_NAME(IID_IShellApp),                   TRUE },
@@ -235,9 +291,11 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IShellDispatch3)                   },
     { ID_NAME(IID_IShellDispatch4)                   },
     { ID_NAME(IID_IShellDispatch5),             TRUE },
+    { ID_NAME(IID_IShellDispatch6),             TRUE },
     { ID_NAME(IID_IShellExecuteHookA),          TRUE },
     { ID_NAME(IID_IShellExecuteHookW),          TRUE },
     { ID_NAME(IID_IShellExtInit),               TRUE },
+    { ID_NAME(IID_IShellFavoritesNameSpace)          },
     { ID_NAME(IID_IShellFolder)                      },
     { ID_NAME(IID_IShellFolder2)                     },
     { ID_NAME(IID_IShellFolderBand),            TRUE },
@@ -247,6 +305,7 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IShellFolderViewCB),          TRUE },
     { ID_NAME(IID_IShellFolderViewDual)              },
     { ID_NAME(IID_IShellFolderViewDual2)             },
+    { ID_NAME(IID_IShellFolderViewDual3),       TRUE },
     { ID_NAME(IID_IShellFolderViewType),        TRUE },
     { ID_NAME(IID_IShellIcon)                        },
     { ID_NAME(IID_IShellIconOverlay),           TRUE },
@@ -271,10 +330,13 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_IShellPropSheetExt),          TRUE },
     { ID_NAME(IID_IShellService),               TRUE },
     { ID_NAME(IID_IShellTaskScheduler),         TRUE },
+    { ID_NAME(IID_IShellUIHelper)                    },
+    { ID_NAME(IID_IShellUIHelper2),             TRUE },
     { ID_NAME(IID_IShellView)                        },
     { ID_NAME(IID_IShellView2)                       },
     { ID_NAME(IID_IShellView3)                       },
     { ID_NAME(IID_IShellWindows)                     },
+    { ID_NAME(IID_ISpecifyPropertyPages)             },
     { ID_NAME(IID_IStorage)                          },
     { ID_NAME(IID_IStream)                           },
     { ID_NAME(IID_ISurrogate)                        },
@@ -282,22 +344,50 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_ISynchronizeContainer),       TRUE },
     { ID_NAME(IID_ISynchronizeEvent),           TRUE },
     { ID_NAME(IID_ISynchronizeHandle),          TRUE },
+    { ID_NAME(IID_ITargetEmbedding)                  },
+    { ID_NAME(IID_ITargetFrame)                      },
+    { ID_NAME(IID_ITargetFrame2)                     },
+    { ID_NAME(IID_ITargetFramePriv)                  },
+    { ID_NAME(IID_ITargetFramePriv2)                 },
+    { ID_NAME(IID_ITargetNotify)                     },
     { ID_NAME(IID_ITaskbarList)                      },
     { ID_NAME(IID_ITaskbarList2)                     },
     { ID_NAME(IID_ITrackShellMenu),             TRUE },
+    /* This interface is completely different between PSDK and registry/shell32 */
+    { ID_NAME(IID_ITransferAdviseSink),         TRUE },
+#define IID_ITransferAdviseSink IID_ITransferAdviseSinkPriv
+    { ID_NAME(IID_ITransferAdviseSink)               },
+#undef IID_ITransferAdviseSink
+    { ID_NAME(IID_ITransferDestination),        TRUE },
+    { ID_NAME(IID_ITransferSource),             TRUE },
     { ID_NAME(IID_ITranslateShellChangeNotify), TRUE },
     { 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_IUrlHistoryNotify)                 },
+    { ID_NAME(IID_IUrlHistoryStg)                    },
+    { ID_NAME(IID_IUrlHistoryStg2)                   },
     { ID_NAME(IID_IViewObject)                       },
     { ID_NAME(IID_IViewObject2)                      },
     { ID_NAME(IID_IViewObjectEx),               TRUE },
+    { ID_NAME(IID_IVisualProperties)                 },
+    { ID_NAME(IID_IWebBrowser)                       },
+    { ID_NAME(IID_IWebBrowser2)                      },
+    { ID_NAME(IID_IWebBrowserApp)                    },
+    { ID_NAME(IID_IWebBrowserPriv)                   },
+    { ID_NAME(IID_IWebBrowserPriv2)                  },
     { ID_NAME(IID_IWinEventHandler),            TRUE },
 
     { ID_NAME(IID_DFConstraint),                TRUE },
+    { ID_NAME(DIID__SearchAssistantEvents)           },
     { ID_NAME(DIID_DShellFolderViewEvents)           },
+    { ID_NAME(DIID_DShellNameSpaceEvents)            },
+    { ID_NAME(DIID_DShellWindowsEvents)              },
+    { ID_NAME(DIID_DWebBrowserEvents)                },
+    { ID_NAME(DIID_DWebBrowserEvents2)               },
+    { ID_NAME(DIID_XMLDOMDocumentEvents )            },
 
     { ID_NAME(IID_CDefView),                    TRUE },
     { ID_NAME(IID_Folder)                            },
@@ -311,7 +401,61 @@ static KNOWN_INTERFACE KnownInterfaces[] =
     { ID_NAME(IID_FolderItemVerb)                    },
     { ID_NAME(IID_FolderItemVerbs)                   },
 
-    { ID_NAME(CLSID_ShellDesktop),              TRUE }
+    { ID_NAME(CLSID_ShellDesktop),              TRUE },
+
+    { ID_NAME(IID_IAggregateFilterCondition),   TRUE },
+    { ID_NAME(IID_IAliasRegistrationCallback),  TRUE },
+    { ID_NAME(IID_IAssociationArrayInitialize), TRUE },
+    { ID_NAME(IID_IAssociationList),            TRUE },
+    { ID_NAME(IID_IBackReferencedObject),       TRUE },
+    { ID_NAME(IID_IBasePropPage),               TRUE },
+    { ID_NAME(IID_ICommonLayoutDefinition),     TRUE },
+    { ID_NAME(IID_IControlPanelEnumerator),     TRUE },
+    { ID_NAME(IID_IDelegateHostItemContainer),  TRUE },
+    { ID_NAME(IID_IDrawPropertyControl),        TRUE },
+    { ID_NAME(IID_IEnumAssociationElements),    TRUE },
+    { ID_NAME(IID_IEnumerateAssociationElements),TRUE },
+    { ID_NAME(IID_IExecuteCommand),             TRUE },
+    { ID_NAME(IID_IFilterCondition),            TRUE },
+    { ID_NAME(IID_IFolderNotify),               TRUE },
+    { ID_NAME(IID_IFolderProperties),           TRUE },
+    { ID_NAME(IID_IFolderType),                 TRUE },
+    { ID_NAME(IID_IFolderWithSearchRoot),       TRUE },
+    { ID_NAME(IID_IFrameLayoutDefinition),      TRUE },
+    { ID_NAME(IID_IItemFilter),                 TRUE },
+    { ID_NAME(IID_IItemFilterOwner),            TRUE },
+    { ID_NAME(IID_ILocalizableItemParent),      TRUE },
+    { ID_NAME(IID_INewItemAdvisor),             TRUE },
+    { ID_NAME(IID_IObjectWithAssociationElement),TRUE },
+    { ID_NAME(IID_IObjectWithAssociationList),  TRUE },
+    { ID_NAME(IID_IObjectWithQuerySource),      TRUE },
+    { ID_NAME(IID_IObjectWithSelection),        TRUE },
+    { ID_NAME(IID_IPersistString2),             TRUE },
+    { ID_NAME(IID_IPrinterFolder),              TRUE },
+    { ID_NAME(IID_IPropertyControl),            TRUE },
+    { ID_NAME(IID_IPropertyControlBase),        TRUE },
+    { ID_NAME(IID_IPropertyControlSite),        TRUE },
+    { ID_NAME(IID_IRegItemCustomAttributes),    TRUE },
+    { ID_NAME(IID_IRegItemCustomEnumerator),    TRUE },
+    { ID_NAME(IID_IRegItemFolder),              TRUE },
+    { ID_NAME(IID_IRootAndRelativeParsingFolder),TRUE },
+    { ID_NAME(IID_IScope),                      TRUE },
+    { ID_NAME(IID_IScopeItem),                  TRUE },
+    { ID_NAME(IID_IShellBrowserServce),         TRUE },
+    { ID_NAME(IID_IShellFolder3),               TRUE },
+    { ID_NAME(IID_ITaskCondition),              TRUE },
+    { ID_NAME(IID_ITaskConditionCombiner),      TRUE },
+    { ID_NAME(IID_ITaskConditionInit),          TRUE },
+    { ID_NAME(IID_ITransferProvider),           TRUE },
+    { ID_NAME(IID_IUserEventTimer),             TRUE },
+    { ID_NAME(IID_IUserEventTimerCallback),     TRUE },
+    { ID_NAME(IID_IAssociationArrayOld),        TRUE },
+    { ID_NAME(IID_IAssociationArray),           TRUE },
+    { ID_NAME(IID_IDriveFolderExtOld),          TRUE },
+    { ID_NAME(IID_IDriveFolderExt),             TRUE },
+    { ID_NAME(IID_IPinnedListOld),              TRUE },
+    { ID_NAME(IID_IPinnedList),                 TRUE },
+    { ID_NAME(IID_IAttachmentExecute),          TRUE }
 };
 static const INT KnownInterfaceCount = RTL_NUMBER_OF(KnownInterfaces);
 
@@ -422,7 +566,7 @@ TestModuleInterfaces(
                 continue;
             offset = GetInterfaceOffset(pUnk, iface->iid);
 #ifdef GENERATE_TABLE_ENTRIES
-            ok(offset == INTF_NOT_EXPOSED, "%s: { %s0x%x,   &%s },\n", class->name, offset < 0 ? "-" : "", offset < 0 ? -offset : offset, iface->name);
+            ok(offset == INTF_NOT_EXPOSED, "%s: { %s0x%lx,   &%s },\n", class->name, offset < 0 ? "-" : "", offset < 0 ? -offset : offset, iface->name);
 #else
             ok(offset == INTF_NOT_EXPOSED, "%s exposes %s (offset %ld), but shouldn't\n", class->name, iface->name, offset);
 #endif