diff --git a/dlls/mshtml/mutation.c b/dlls/mshtml/mutation.c
index a7942043557450914e5e311d09b40217ac4da1a7..73a510f3df7bf6d8c4b8a2a1b4a6ff475d555267 100644
--- a/dlls/mshtml/mutation.c
+++ b/dlls/mshtml/mutation.c
@@ -200,7 +200,7 @@ static void add_script_runner(HTMLDocumentNode *This)
 #define NSRUNNABLE_THIS(iface) DEFINE_THIS(HTMLDocumentNode, IRunnable, iface)
 
 static nsresult NSAPI nsRunnable_QueryInterface(nsIRunnable *iface,
-        nsIIDRef riid, nsQIResult result)
+        nsIIDRef riid, void **result)
 {
     HTMLDocumentNode *This = NSRUNNABLE_THIS(iface);
 
@@ -460,7 +460,7 @@ static const nsIRunnableVtbl nsRunnableVtbl = {
 #define NSDOCOBS_THIS(iface) DEFINE_THIS(HTMLDocumentNode, IDocumentObserver, iface)
 
 static nsresult NSAPI nsDocumentObserver_QueryInterface(nsIDocumentObserver *iface,
-        nsIIDRef riid, nsQIResult result)
+        nsIIDRef riid, void **result)
 {
     HTMLDocumentNode *This = NSDOCOBS_THIS(iface);
 
diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index 7a777957ce18b85ef0a2d481ea6a9d397030d619..e4779893246ae64aa4c3cf537a4007354d87644d 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -93,7 +93,7 @@ struct BSCallback {
 #define NSINSTREAM_THIS(iface) DEFINE_THIS(nsProtocolStream, InputStream, iface)
 
 static nsresult NSAPI nsInputStream_QueryInterface(nsIInputStream *iface, nsIIDRef riid,
-                                                   nsQIResult result)
+        void **result)
 {
     nsProtocolStream *This = NSINSTREAM_THIS(iface);
 
diff --git a/dlls/mshtml/nsembed.c b/dlls/mshtml/nsembed.c
index 56c5d94561818bb71b0956a331818fa32b69b0fc..f0eb1015f2096f72a3e2c6e364c8e6b534346ca5 100644
--- a/dlls/mshtml/nsembed.c
+++ b/dlls/mshtml/nsembed.c
@@ -795,7 +795,7 @@ void close_gecko(void)
 #define NSWBCHROME_THIS(iface) DEFINE_THIS(NSContainer, WebBrowserChrome, iface)
 
 static nsresult NSAPI nsWebBrowserChrome_QueryInterface(nsIWebBrowserChrome *iface,
-        nsIIDRef riid, nsQIResult result)
+        nsIIDRef riid, void **result)
 {
     NSContainer *This = NSWBCHROME_THIS(iface);
 
@@ -979,7 +979,7 @@ static const nsIWebBrowserChromeVtbl nsWebBrowserChromeVtbl = {
 #define NSCML_THIS(iface) DEFINE_THIS(NSContainer, ContextMenuListener, iface)
 
 static nsresult NSAPI nsContextMenuListener_QueryInterface(nsIContextMenuListener *iface,
-        nsIIDRef riid, nsQIResult result)
+        nsIIDRef riid, void **result)
 {
     NSContainer *This = NSCML_THIS(iface);
     return nsIWebBrowserChrome_QueryInterface(NSWBCHROME(This), riid, result);
@@ -1061,7 +1061,7 @@ static const nsIContextMenuListenerVtbl nsContextMenuListenerVtbl = {
 #define NSURICL_THIS(iface) DEFINE_THIS(NSContainer, URIContentListener, iface)
 
 static nsresult NSAPI nsURIContentListener_QueryInterface(nsIURIContentListener *iface,
-        nsIIDRef riid, nsQIResult result)
+        nsIIDRef riid, void **result)
 {
     NSContainer *This = NSURICL_THIS(iface);
     return nsIWebBrowserChrome_QueryInterface(NSWBCHROME(This), riid, result);
@@ -1231,7 +1231,7 @@ static const nsIURIContentListenerVtbl nsURIContentListenerVtbl = {
 #define NSEMBWNDS_THIS(iface) DEFINE_THIS(NSContainer, EmbeddingSiteWindow, iface)
 
 static nsresult NSAPI nsEmbeddingSiteWindow_QueryInterface(nsIEmbeddingSiteWindow *iface,
-        nsIIDRef riid, nsQIResult result)
+        nsIIDRef riid, void **result)
 {
     NSContainer *This = NSEMBWNDS_THIS(iface);
     return nsIWebBrowserChrome_QueryInterface(NSWBCHROME(This), riid, result);
@@ -1339,7 +1339,7 @@ static const nsIEmbeddingSiteWindowVtbl nsEmbeddingSiteWindowVtbl = {
 #define NSTOOLTIP_THIS(iface) DEFINE_THIS(NSContainer, TooltipListener, iface)
 
 static nsresult NSAPI nsTooltipListener_QueryInterface(nsITooltipListener *iface, nsIIDRef riid,
-                                                       nsQIResult result)
+        void **result)
 {
     NSContainer *This = NSTOOLTIP_THIS(iface);
     return nsIWebBrowserChrome_QueryInterface(NSWBCHROME(This), riid, result);
@@ -1391,7 +1391,7 @@ static const nsITooltipListenerVtbl nsTooltipListenerVtbl = {
 #define NSIFACEREQ_THIS(iface) DEFINE_THIS(NSContainer, InterfaceRequestor, iface)
 
 static nsresult NSAPI nsInterfaceRequestor_QueryInterface(nsIInterfaceRequestor *iface,
-                                                          nsIIDRef riid, nsQIResult result)
+        nsIIDRef riid, void **result)
 {
     NSContainer *This = NSIFACEREQ_THIS(iface);
     return nsIWebBrowserChrome_QueryInterface(NSWBCHROME(This), riid, result);
@@ -1410,7 +1410,7 @@ static nsrefcnt NSAPI nsInterfaceRequestor_Release(nsIInterfaceRequestor *iface)
 }
 
 static nsresult NSAPI nsInterfaceRequestor_GetInterface(nsIInterfaceRequestor *iface,
-                                                        nsIIDRef riid, nsQIResult result)
+        nsIIDRef riid, void **result)
 {
     NSContainer *This = NSIFACEREQ_THIS(iface);
 
@@ -1434,7 +1434,7 @@ static const nsIInterfaceRequestorVtbl nsInterfaceRequestorVtbl = {
 #define NSWEAKREF_THIS(iface) DEFINE_THIS(NSContainer, WeakReference, iface)
 
 static nsresult NSAPI nsWeakReference_QueryInterface(nsIWeakReference *iface,
-        nsIIDRef riid, nsQIResult result)
+        nsIIDRef riid, void **result)
 {
     NSContainer *This = NSWEAKREF_THIS(iface);
     return nsIWebBrowserChrome_QueryInterface(NSWBCHROME(This), riid, result);
@@ -1471,7 +1471,7 @@ static const nsIWeakReferenceVtbl nsWeakReferenceVtbl = {
 #define NSSUPWEAKREF_THIS(iface) DEFINE_THIS(NSContainer, SupportsWeakReference, iface)
 
 static nsresult NSAPI nsSupportsWeakReference_QueryInterface(nsISupportsWeakReference *iface,
-        nsIIDRef riid, nsQIResult result)
+        nsIIDRef riid, void **result)
 {
     NSContainer *This = NSSUPWEAKREF_THIS(iface);
     return nsIWebBrowserChrome_QueryInterface(NSWBCHROME(This), riid, result);
diff --git a/dlls/mshtml/nsevents.c b/dlls/mshtml/nsevents.c
index 3e0314966db2d34093cf266f5cb6628bd52aa73d..6da5dede031fc0d5e17009fbf69447d3fb00ae96 100644
--- a/dlls/mshtml/nsevents.c
+++ b/dlls/mshtml/nsevents.c
@@ -69,7 +69,7 @@ static LONG release_listener(nsDocumentEventListener *This)
 #define NSEVENTLIST_THIS(iface) DEFINE_THIS(nsEventListener, DOMEventListener, iface)
 
 static nsresult NSAPI nsDOMEventListener_QueryInterface(nsIDOMEventListener *iface,
-                                                        nsIIDRef riid, nsQIResult result)
+        nsIIDRef riid, void **result)
 {
     nsEventListener *This = NSEVENTLIST_THIS(iface);
 
diff --git a/dlls/mshtml/nsiface.idl b/dlls/mshtml/nsiface.idl
index fff15c88de121e529187636f6cdb7e7dcd949256..ab50ee1b603526cccd89f4dd4d94c5165b8313da 100644
--- a/dlls/mshtml/nsiface.idl
+++ b/dlls/mshtml/nsiface.idl
@@ -42,7 +42,6 @@ typedef nsIID nsCID;
 typedef REFIID nsIIDRef;
 typedef nsIIDRef nsCIDRef;
 
-typedef void** nsQIResult;
 typedef WCHAR PRUnichar;
 typedef ULONG PRUint32;
 typedef LONG PRInt32;
@@ -100,7 +99,7 @@ interface IMoniker;
 ]
 interface nsISupports
 {
-    nsresult QueryInterface(nsIIDRef riid, nsQIResult result);
+    nsresult QueryInterface(nsIIDRef riid, void **result);
     nsrefcnt AddRef();
     nsrefcnt Release();
 }
@@ -189,12 +188,12 @@ interface nsIObserver : nsISupports
 ]
 interface nsIComponentManager : nsISupports
 {
-    nsresult GetClassObject(nsCIDRef aClass, nsIIDRef aIID, nsQIResult result);
-    nsresult GetClassObjectByContractID(const char *aContractID, nsIIDRef aIID, nsQIResult result);
+    nsresult GetClassObject(nsCIDRef aClass, nsIIDRef aIID, void **result);
+    nsresult GetClassObjectByContractID(const char *aContractID, nsIIDRef aIID, void **result);
     nsresult CreateInstance(nsCIDRef aClass, nsISupports *aDelegate, nsIIDRef aIID,
-            nsQIResult result);
+            void **result);
     nsresult CreateInstanceByContractID(const char *aContractID, nsISupports *aDelegate,
-            nsIIDRef aIID, nsQIResult result);
+            nsIIDRef aIID, void **result);
 }
 
 [
diff --git a/dlls/mshtml/nsio.c b/dlls/mshtml/nsio.c
index 9129a557bafb4c8934d878ae03b503df2e923de1..2ea7d9f35247dc0f771cfc47e8bfb6f951d390fc 100644
--- a/dlls/mshtml/nsio.c
+++ b/dlls/mshtml/nsio.c
@@ -313,7 +313,7 @@ static inline BOOL is_http_channel(nsChannel *This)
 
 #define NSCHANNEL_THIS(iface) DEFINE_THIS(nsChannel, HttpChannel, iface)
 
-static nsresult NSAPI nsChannel_QueryInterface(nsIHttpChannel *iface, nsIIDRef riid, nsQIResult result)
+static nsresult NSAPI nsChannel_QueryInterface(nsIHttpChannel *iface, nsIIDRef riid, void **result)
 {
     nsChannel *This = NSCHANNEL_THIS(iface);
 
@@ -1201,7 +1201,7 @@ static const nsIHttpChannelVtbl nsChannelVtbl = {
 #define NSUPCHANNEL_THIS(iface) DEFINE_THIS(nsChannel, UploadChannel, iface)
 
 static nsresult NSAPI nsUploadChannel_QueryInterface(nsIUploadChannel *iface, nsIIDRef riid,
-                                                     nsQIResult result)
+        void **result)
 {
     nsChannel *This = NSUPCHANNEL_THIS(iface);
     return nsIChannel_QueryInterface(NSCHANNEL(This), riid, result);
@@ -1275,7 +1275,7 @@ static const nsIUploadChannelVtbl nsUploadChannelVtbl = {
 #define NSHTTPINTERNAL_THIS(iface) DEFINE_THIS(nsChannel, IHttpChannelInternal, iface)
 
 static nsresult NSAPI nsHttpChannelInternal_QueryInterface(nsIHttpChannelInternal *iface, nsIIDRef riid,
-        nsQIResult result)
+        void **result)
 {
     nsChannel *This = NSHTTPINTERNAL_THIS(iface);
     return nsIChannel_QueryInterface(NSCHANNEL(This), riid, result);
@@ -1383,7 +1383,7 @@ static const nsIHttpChannelInternalVtbl nsHttpChannelInternalVtbl = {
 
 #define NSURI_THIS(iface) DEFINE_THIS(nsWineURI, IURL, iface)
 
-static nsresult NSAPI nsURI_QueryInterface(nsIURL *iface, nsIIDRef riid, nsQIResult result)
+static nsresult NSAPI nsURI_QueryInterface(nsIURL *iface, nsIIDRef riid, void **result)
 {
     nsWineURI *This = NSURI_THIS(iface);
 
@@ -2238,7 +2238,7 @@ typedef struct {
 #define NSPROTHANDLER_THIS(iface) DEFINE_THIS(nsProtocolHandler, ProtocolHandler, iface)
 
 static nsresult NSAPI nsProtocolHandler_QueryInterface(nsIProtocolHandler *iface, nsIIDRef riid,
-        nsQIResult result)
+        void **result)
 {
     nsProtocolHandler *This = NSPROTHANDLER_THIS(iface);
 
@@ -2386,7 +2386,7 @@ static nsIProtocolHandler *create_protocol_handler(nsIProtocolHandler *nshandler
     return NSPROTHANDLER(ret);
 }
 
-static nsresult NSAPI nsIOService_QueryInterface(nsIIOService*,nsIIDRef,nsQIResult);
+static nsresult NSAPI nsIOService_QueryInterface(nsIIOService*,nsIIDRef,void**);
 
 static nsrefcnt NSAPI nsIOService_AddRef(nsIIOService *iface)
 {
@@ -2619,7 +2619,7 @@ static const nsIIOServiceVtbl nsIOServiceVtbl = {
 static nsIIOService nsIOService = { &nsIOServiceVtbl };
 
 static nsresult NSAPI nsNetUtil_QueryInterface(nsINetUtil *iface, nsIIDRef riid,
-                                               nsQIResult result)
+        void **result)
 {
     return nsIIOService_QueryInterface(&nsIOService, riid, result);
 }
@@ -2717,7 +2717,7 @@ static const nsINetUtilVtbl nsNetUtilVtbl = {
 static nsINetUtil nsNetUtil = { &nsNetUtilVtbl };
 
 static nsresult NSAPI nsIOService_QueryInterface(nsIIOService *iface, nsIIDRef riid,
-                                                 nsQIResult result)
+        void **result)
 {
     *result = NULL;
 
@@ -2738,7 +2738,7 @@ static nsresult NSAPI nsIOService_QueryInterface(nsIIOService *iface, nsIIDRef r
 }
 
 static nsresult NSAPI nsIOServiceFactory_QueryInterface(nsIFactory *iface, nsIIDRef riid,
-                                                        nsQIResult result)
+        void **result)
 {
     *result = NULL;
 
diff --git a/dlls/mshtml/nsservice.c b/dlls/mshtml/nsservice.c
index a449274c12aee593568ebb8e9c7d286a1dda1299..ed58e66d2c8c9d752fc77fa30599a772ed82a8a9 100644
--- a/dlls/mshtml/nsservice.c
+++ b/dlls/mshtml/nsservice.c
@@ -47,7 +47,7 @@ static const nsIID NS_TOOLTIPTEXTPROVIDER_CID =
     {0x0b666e3e,0x569a,0x462c,{0xa7,0xf0,0xb1,0x6b,0xb1,0x5d,0x42,0xff}};
 
 static nsresult NSAPI nsWindowCreator_QueryInterface(nsIWindowCreator2 *iface, nsIIDRef riid,
-                                               nsQIResult result)
+        void **result)
 {
     *result = NULL;
 
@@ -114,7 +114,7 @@ static const nsIWindowCreator2Vtbl nsWindowCreatorVtbl = {
 static nsIWindowCreator2 nsWindowCreator = { &nsWindowCreatorVtbl };
 
 static nsresult NSAPI nsPromptService_QueryInterface(nsIPromptService *iface,
-                                                     nsIIDRef riid, nsQIResult result)
+        nsIIDRef riid, void **result)
 {
     *result = NULL;
 
@@ -280,7 +280,7 @@ static const nsIPromptServiceVtbl PromptServiceVtbl = {
 static nsIPromptService nsPromptService = { &PromptServiceVtbl };
 
 static nsresult NSAPI nsTooltipTextProvider_QueryInterface(nsITooltipTextProvider *iface,
-                                                          nsIIDRef riid, nsQIResult result)
+        nsIIDRef riid, void **result)
 {
     *result = NULL;
 
@@ -387,7 +387,7 @@ typedef struct {
 #define NSFACTORY_THIS(iface) DEFINE_THIS(nsServiceFactory, Factory, iface)
 
 static nsresult NSAPI nsServiceFactory_QueryInterface(nsIFactory *iface, nsIIDRef riid,
-                                                    nsQIResult result)
+        void **result)
 {
     nsServiceFactory *This = NSFACTORY_THIS(iface);