Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / modules / rostests / apitests / com / ieframe.c
diff --git a/modules/rostests/apitests/com/ieframe.c b/modules/rostests/apitests/com/ieframe.c
new file mode 100644 (file)
index 0000000..74c0667
--- /dev/null
@@ -0,0 +1,247 @@
+/*
+ * PROJECT:         ReactOS api tests
+ * LICENSE:         GPLv2+ - See COPYING in the top level directory
+ * PURPOSE:         COM interface test for ieframe 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_IE_SearchBand),
+        {
+            {  -0x30,   &IID_IObjectWithSite },
+            {  -0x28,   &IID_IDeskBand },
+            {  -0x28,       &IID_IDockingWindow },
+            {  -0x28,           &IID_IOleWindow },
+            {  -0x24,   &IID_IInputObject },
+            {  -0x20,   &IID_IPersistStream },
+            {  -0x20,       &IID_IPersist },
+            {  -0x1c,   &IID_IOleCommandTarget },
+            {  -0x18,   &IID_IServiceProvider },
+            {    0x0,   &IID_IContextMenu },
+            {    0x0,       &IID_IUnknown },
+            {    0x8,   &IID_IDispatch },
+            {   0x10,   &IID_IPersistPropertyBag },
+            {   0x8c,   &IID_IBandNavigate },
+        }
+    },
+    {
+        ID_NAME(CLSID_Internet),
+        {
+            {  -0x18,   &IID_IObjectWithBackReferences },
+            {  -0x14,   &IID_IShellFolder2 },
+            {  -0x14,       &IID_IShellFolder },
+            {  -0x10,   &IID_IPersistFolder2 },
+            {  -0x10,       &IID_IPersistFolder },
+            {  -0x10,           &IID_IPersist },
+            {   -0xc,   &IID_IBrowserFrameOptions },
+            {    0x0,   &IID_IContextMenu },
+            {    0x0,       &IID_IUnknown },
+            {    0x4,   &IID_IShellExtInit },
+        }
+    },
+    {
+        ID_NAME(CLSID_CUrlHistory),
+        {
+            {    0x0,   &IID_IUrlHistoryStg2 },
+            {    0x0,       &IID_IUrlHistoryStg },
+            {    0x0,           &IID_IUnknown },
+        }
+    },
+    {
+        ID_NAME(CLSID_CURLSearchHook),
+        {
+            {    0x0,   &IID_IURLSearchHook2 },
+            {    0x0,       &IID_IURLSearchHook },
+            {    0x0,           &IID_IUnknown },
+        }
+    },
+    {
+        ID_NAME(CLSID_InternetShortcut),
+        {
+            {   -0xc,   &IID_IDataObject },
+            {   -0x8,   &IID_IContextMenu2 },
+            {   -0x8,       &IID_IContextMenu },
+            {   -0x4,   &IID_IExtractIconA },
+            {    0x0,   &IID_IExtractIconW },
+            {    0x0,       &IID_IUnknown },
+            {    0x4,   &IID_IPersistFile },
+            {    0x4,       &IID_IPersist },
+            {    0x8,   &IID_IPersistStream },
+            {    0xc,   &IID_IShellExtInit },
+            {   0x10,   &IID_IShellLinkA },
+            {   0x14,   &IID_IShellLinkW },
+            {   0x18,   &IID_IShellPropSheetExt },
+            {   0x1c,   &IID_IPropertySetStorage },
+            {   0x20,   &IID_INewShortcutHookA },
+            {   0x24,   &IID_INewShortcutHookW },
+            {   0x30,   &IID_IQueryInfo },
+            {   0x38,   &IID_IObjectWithSite },
+            {   0x44,   &IID_IOleCommandTarget },
+            {   0x48,   &IID_IServiceProvider },
+            {   0x4c,   &IID_IPropertyStore },
+            {   0x50,   &IID_IInitializeWithFile },
+            {   0x54,   &IID_IInitializeWithBindCtx },
+        }
+    },
+    {
+        ID_NAME(CLSID_ShellUIHelper),
+        {
+            {    0x0,   &IID_IUnknown },
+            {    0xc,   &IID_IObjectWithSite },
+            {   0x10,   &IID_IObjectSafety },
+            {   0x14,   &IID_IShellUIHelper2 },
+            {   0x14,       &IID_IShellUIHelper },
+            {   0x14,           &IID_IDispatch },
+            {   0x18,   &IID_IDispatchEx },
+        }
+    },
+    {
+        ID_NAME(CLSID_ShellNameSpace),
+        {
+            {    0x0,   &IID_IShellNameSpace },
+            {    0x0,       &IID_IShellFavoritesNameSpace },
+            {    0x0,           &IID_IDispatch },
+            {    0x0,               &IID_IUnknown },
+            {    0x4,   &IID_IProvideClassInfo2 },
+            {    0x4,       &IID_IProvideClassInfo },
+            {    0x8,   &IID_IPersistStreamInit },
+            {   0x10,   &IID_IPersistPropertyBag },
+            {   0x14,   &IID_IQuickActivate },
+            {   0x18,   &IID_IOleControl },
+            {   0x1c,   &IID_IOleObject },
+            {   0x20,   &IID_IOleInPlaceActiveObject },
+            {   0x24,   &IID_IViewObjectEx },
+            {   0x24,       &IID_IViewObject2 },
+            {   0x24,           &IID_IViewObject },
+            {   0x28,   &IID_IOleInPlaceObjectWindowless },
+            {   0x28,       &IID_IOleInPlaceObject },
+            {   0x28,           &IID_IOleWindow },
+            {   0x38,   &IID_IConnectionPointContainer },
+            {   0x3c,   &IID_IDropTarget },
+            {   0xb4,   &IID_IObjectWithSite },
+            {   0xbc,   &IID_INSCTree },
+            {   0xc4,   &IID_IShellBrowser },
+            {   0xc8,   &IID_IFolderFilterSite },
+            {   0xcc,   &IID_INewMenuClient },
+            {   0xd0,   &IID_IServiceProvider },
+            {   0xd4,   &IID_INameSpaceTreeControl },
+            {   0xe0,   &IID_IVisualProperties },
+            {   0xe4,   &IID_IWinEventHandler },
+        }
+    },
+    {
+        ID_NAME(CLSID_ShellWindows),
+        {
+            {  -0xa0,   &IID_IMarshal2 },
+            {  -0xa0,       &IID_IMarshal },
+            {  -0x20,   &IID_IClientSecurity },
+            {  -0x18,   &IID_IRpcOptions },
+            {   -0xc,   &IID_ICallFactory },
+            {   -0x8,   &IID_IForegroundTransfer },
+            {    0x0,   &IID_IMultiQI },
+            {    0x0,       &IID_IUnknown },
+            { FARAWY,   &IID_IShellWindows },
+            { FARAWY,   &IID_IDispatch },
+            { FARAWY,   &IID_IConnectionPointContainer },
+        }
+    },
+    {
+        ID_NAME(CLSID_WebBrowser),
+        {
+            {  -0x20,   &IID_IPersist },
+            {  -0x1c,   &IID_IOleObject },
+            {  -0x18,   &IID_IViewObject2 },
+            {  -0x18,       &IID_IViewObject },
+            {  -0x14,   &IID_IDataObject },
+            {  -0x10,   &IID_IOleInPlaceObject },
+            {  -0x10,       &IID_IOleWindow },
+            {   -0xc,   &IID_IOleInPlaceActiveObject },
+            {    0x0,   &IID_IUnknown },
+            {   0x98,   &IID_IPersistStream },
+            {   0x98,   &IID_IPersistStreamInit },
+            {   0x9c,   &IID_IPersistPropertyBag },
+            {   0xa0,   &IID_IOleControl },
+            {   0xa8,   &IID_IProvideClassInfo2 },
+            {   0xa8,       &IID_IProvideClassInfo },
+            {   0xac,   &IID_IConnectionPointContainer },
+            {  0x120,   &IID_IWebBrowser2 },
+            {  0x120,       &IID_IWebBrowserApp },
+            {  0x120,           &IID_IWebBrowser },
+            {  0x120,               &IID_IDispatch },
+            {  0x130,   &IID_IOleCommandTarget },
+            {  0x134,   &IID_IObjectSafety },
+            {  0x13c,   &IID_ITargetEmbedding },
+            {  0x140,   &IID_IPersistStorage },
+            {  0x144,   &IID_IPersistHistory },
+            { FARAWY,   &IID_IShellService },
+            { FARAWY,   &IID_IServiceProvider },
+            { FARAWY,   &IID_IHlinkFrame },
+            { FARAWY,   &IID_IUrlHistoryNotify },
+            { FARAWY,   &IID_ITargetFrame2 },
+            { FARAWY,   &IID_ITargetNotify },
+            { FARAWY,   &IID_ITargetFramePriv2 },
+            { FARAWY,       &IID_ITargetFramePriv },
+            { FARAWY,   &IID_IEFrameAuto },
+            { FARAWY,   &IID_IWebBrowserPriv },
+            { FARAWY,   &IID_IWebBrowserPriv2 },
+            { FARAWY,   &IID_ISecMgrCacheSeedTarget },
+            { FARAWY,   &IID_ITargetFrame },
+        }
+    },
+    {
+        ID_NAME(CLSID_WebBrowser_V1),
+        {
+            {  -0x20,   &IID_IPersist },
+            {  -0x1c,   &IID_IOleObject },
+            {  -0x18,   &IID_IViewObject2 },
+            {  -0x18,       &IID_IViewObject },
+            {  -0x14,   &IID_IDataObject },
+            {  -0x10,   &IID_IOleInPlaceObject },
+            {  -0x10,       &IID_IOleWindow },
+            {   -0xc,   &IID_IOleInPlaceActiveObject },
+            {    0x0,   &IID_IUnknown },
+            {   0x98,   &IID_IPersistStream },
+            {   0x98,   &IID_IPersistStreamInit },
+            {   0x9c,   &IID_IPersistPropertyBag },
+            {   0xa0,   &IID_IOleControl },
+            {   0xa8,   &IID_IProvideClassInfo2 },
+            {   0xa8,       &IID_IProvideClassInfo },
+            {   0xac,   &IID_IConnectionPointContainer },
+            {  0x120,   &IID_IWebBrowser2 },
+            {  0x120,       &IID_IWebBrowserApp },
+            {  0x120,           &IID_IWebBrowser },
+            {  0x120,               &IID_IDispatch },
+            {  0x130,   &IID_IOleCommandTarget },
+            {  0x134,   &IID_IObjectSafety },
+            {  0x13c,   &IID_ITargetEmbedding },
+            {  0x140,   &IID_IPersistStorage },
+            {  0x144,   &IID_IPersistHistory },
+            { FARAWY,   &IID_IShellService },
+            { FARAWY,   &IID_IServiceProvider },
+            { FARAWY,   &IID_IHlinkFrame },
+            { FARAWY,   &IID_IUrlHistoryNotify },
+            { FARAWY,   &IID_ITargetFrame2 },
+            { FARAWY,   &IID_ITargetNotify },
+            { FARAWY,   &IID_ITargetFramePriv2 },
+            { FARAWY,       &IID_ITargetFramePriv },
+            { FARAWY,   &IID_IEFrameAuto },
+            { FARAWY,   &IID_IWebBrowserPriv },
+            { FARAWY,   &IID_IWebBrowserPriv2 },
+            { FARAWY,   &IID_ISecMgrCacheSeedTarget },
+            { FARAWY,   &IID_ITargetFrame },
+        }
+    },
+};
+static const INT ExpectedInterfaceCount = RTL_NUMBER_OF(ExpectedInterfaces);
+
+START_TEST(ieframe)
+{
+    TestClasses(L"ieframe", ExpectedInterfaces, ExpectedInterfaceCount);
+}