diff --git a/reactos/include/psdk/control.idl b/reactos/include/psdk/control.idl
index 884c4109b53..529d435f788 100644
--- a/reactos/include/psdk/control.idl
+++ b/reactos/include/psdk/control.idl
@@ -69,9 +69,9 @@ library QuartzTypeLib
     interface IBasicAudio : IDispatch
     {
         [propput] HRESULT Volume( [in] LONG lVolume );
-        [propget] HRESULT Volume( [out] LONG *plVolume );
+        [propget] HRESULT Volume( [out, retval] LONG *plVolume );
         [propput] HRESULT Balance( [in] LONG lBalance );
-        [propget] HRESULT Balance( [out] LONG *plBalance );
+        [propget] HRESULT Balance( [out, retval] LONG *plBalance );
     }
 
 
@@ -86,34 +86,34 @@ library QuartzTypeLib
     interface IVideoWindow : IDispatch
     {
         [propput] HRESULT Caption( [in] BSTR strCaption );
-        [propget] HRESULT Caption( [out] BSTR *strCaption );
+        [propget] HRESULT Caption( [out, retval] BSTR *strCaption );
         [propput] HRESULT WindowStyle( [in] LONG WindowStyle );
-        [propget] HRESULT WindowStyle( [out] LONG *WindowStyle );
+        [propget] HRESULT WindowStyle( [out, retval] LONG *WindowStyle );
         [propput] HRESULT WindowStyleEx( [in] LONG WindowStyleEx );
-        [propget] HRESULT WindowStyleEx( [out] LONG *WindowStyleEx );
+        [propget] HRESULT WindowStyleEx( [out, retval] LONG *WindowStyleEx );
         [propput] HRESULT AutoShow( [in] LONG AutoShow );
-        [propget] HRESULT AutoShow( [out] LONG *AutoShow );
+        [propget] HRESULT AutoShow( [out, retval] LONG *AutoShow );
         [propput] HRESULT WindowState( [in] LONG WindowState );
-        [propget] HRESULT WindowState( [out] LONG *WindowState );
+        [propget] HRESULT WindowState( [out, retval] LONG *WindowState );
         [propput] HRESULT BackgroundPalette( [in] LONG BackgroundPalette );
-        [propget] HRESULT BackgroundPalette( [out] LONG *pBackgroundPalette );
+        [propget] HRESULT BackgroundPalette( [out, retval] LONG *pBackgroundPalette );
         [propput] HRESULT Visible( [in] LONG Visible );
-        [propget] HRESULT Visible( [out] LONG *pVisible );
+        [propget] HRESULT Visible( [out, retval] LONG *pVisible );
         [propput] HRESULT Left( [in] LONG Left );
-        [propget] HRESULT Left( [out] LONG *pLeft );
+        [propget] HRESULT Left( [out, retval] LONG *pLeft );
         [propput] HRESULT Width( [in] LONG Width );
-        [propget] HRESULT Width( [out] LONG *pWidth );
+        [propget] HRESULT Width( [out, retval] LONG *pWidth );
         [propput] HRESULT Top( [in] LONG Top );
-        [propget] HRESULT Top( [out] LONG *pTop );
+        [propget] HRESULT Top( [out, retval] LONG *pTop );
         [propput] HRESULT Height( [in] LONG Height );
-        [propget] HRESULT Height( [out] LONG *pHeight );
+        [propget] HRESULT Height( [out, retval] LONG *pHeight );
         [propput] HRESULT Owner( [in] OAHWND Owner );
-        [propget] HRESULT Owner( [out] OAHWND *Owner );
+        [propget] HRESULT Owner( [out, retval] OAHWND *Owner );
         [propput] HRESULT MessageDrain( [in] OAHWND Drain );
-        [propget] HRESULT MessageDrain( [out] OAHWND *Drain );
-        [propget] HRESULT BorderColor( [out] LONG *Color );
+        [propget] HRESULT MessageDrain( [out, retval] OAHWND *Drain );
+        [propget] HRESULT BorderColor( [out, retval] LONG *Color );
         [propput] HRESULT BorderColor( [in] LONG Color );
-        [propget] HRESULT FullScreenMode( [out] LONG *FullScreenMode );
+        [propget] HRESULT FullScreenMode( [out, retval] LONG *FullScreenMode );
         [propput] HRESULT FullScreenMode( [in] LONG FullScreenMode );
         HRESULT SetWindowForeground( [in] LONG Focus );
         HRESULT NotifyOwnerMessage( [in] OAHWND hwnd, [in] LONG uMsg, [in] LONG_PTR wParam, [in] LONG_PTR lParam );
@@ -137,27 +137,27 @@ library QuartzTypeLib
     ]
     interface IBasicVideo : IDispatch
     {
-        [propget] HRESULT AvgTimePerFrame( [out] REFTIME *pAvgTimePerFrame );
-        [propget] HRESULT BitRate( [out] LONG *pBitRate );
-        [propget] HRESULT BitErrorRate( [out] LONG *pBitErrorRate );
-        [propget] HRESULT VideoWidth( [out] LONG *pVideoWidth );
-        [propget] HRESULT VideoHeight( [out] LONG *pVideoHeight );
+        [propget] HRESULT AvgTimePerFrame( [out, retval] REFTIME *pAvgTimePerFrame );
+        [propget] HRESULT BitRate( [out, retval] LONG *pBitRate );
+        [propget] HRESULT BitErrorRate( [out, retval] LONG *pBitErrorRate );
+        [propget] HRESULT VideoWidth( [out, retval] LONG *pVideoWidth );
+        [propget] HRESULT VideoHeight( [out, retval] LONG *pVideoHeight );
         [propput] HRESULT SourceLeft( [in] LONG SourceLeft );
-        [propget] HRESULT SourceLeft( [out] LONG *pSourceLeft );
+        [propget] HRESULT SourceLeft( [out, retval] LONG *pSourceLeft );
         [propput] HRESULT SourceWidth( [in] LONG SourceWidth );
-        [propget] HRESULT SourceWidth( [out] LONG *pSourceWidth );
+        [propget] HRESULT SourceWidth( [out, retval] LONG *pSourceWidth );
         [propput] HRESULT SourceTop( [in] LONG SourceTop );
-        [propget] HRESULT SourceTop( [out] LONG *pSourceTop );
+        [propget] HRESULT SourceTop( [out, retval] LONG *pSourceTop );
         [propput] HRESULT SourceHeight( [in] LONG SourceHeight );
-        [propget] HRESULT SourceHeight( [out] LONG *pSourceHeight );
+        [propget] HRESULT SourceHeight( [out, retval] LONG *pSourceHeight );
         [propput] HRESULT DestinationLeft( [in] LONG DestinationLeft );
-        [propget] HRESULT DestinationLeft( [out] LONG *pDestinationLeft );
+        [propget] HRESULT DestinationLeft( [out, retval] LONG *pDestinationLeft );
         [propput] HRESULT DestinationWidth( [in] LONG DestinationWidth );
-        [propget] HRESULT DestinationWidth( [out] LONG *pDestinationWidth );
+        [propget] HRESULT DestinationWidth( [out, retval] LONG *pDestinationWidth );
         [propput] HRESULT DestinationTop( [in] LONG DestinationTop );
-        [propget] HRESULT DestinationTop( [out] LONG *pDestinationTop );
+        [propget] HRESULT DestinationTop( [out, retval] LONG *pDestinationTop );
         [propput] HRESULT DestinationHeight( [in] LONG DestinationHeight );
-        [propget] HRESULT DestinationHeight( [out] LONG *pDestinationHeight );
+        [propget] HRESULT DestinationHeight( [out, retval] LONG *pDestinationHeight );
         HRESULT SetSourcePosition( [in] LONG Left, [in] LONG Top, [in] LONG Width, [in] LONG Height );
         HRESULT GetSourcePosition( [out] LONG *pLeft, [out] LONG *pTop, [out] LONG *pWidth, [out] LONG *pHeight );
         HRESULT SetDefaultSourcePosition();
diff --git a/reactos/include/psdk/devicetopology.idl b/reactos/include/psdk/devicetopology.idl
index 0cacce286ce..3ff30275711 100644
--- a/reactos/include/psdk/devicetopology.idl
+++ b/reactos/include/psdk/devicetopology.idl
@@ -81,7 +81,7 @@ typedef enum
     eConnTypeOtherAnalog,
     eConnTypeMultichannelAnalogDIN,
     eConnTypeXlrProfessional,
-    eConnTypeRj11Modem,
+    eConnTypeRJ11Modem,
     eConnTypeCombination
 } EPcxConnectionType;
 
@@ -350,7 +350,7 @@ interface IAudioOutputSelector : IUnknown
 [
     pointer_default(unique),
     nonextensible,
-    uuid(bb515f69-94a7-429e-8b9c-271b3f11a3ab),
+    uuid(df45aeea-b74a-4b6b-afad-2366b6aa012e),
     local,
     object
 ]
@@ -404,7 +404,7 @@ interface IAudioTreble : IPerChannelDbLevel
 [
     pointer_default(unique),
     nonextensible,
-    uuid(bb515f69-94a7-429e-8b9c-271b3f11a3ab),
+    uuid(85401fd4-6de4-4b9d-9869-2d6753a82f3c),
     local,
     object
 ]
@@ -722,6 +722,7 @@ interface IDeviceTopology : IUnknown
 }
 
 [
+    uuid(51b9a01d-8181-4363-b59c-e678f476dd0e),
     version(1.0)
 ]
 library DevTopologyLib
diff --git a/reactos/include/psdk/mshtml.idl b/reactos/include/psdk/mshtml.idl
index 0c5a8746ec8..c8ea6f6e2a5 100644
--- a/reactos/include/psdk/mshtml.idl
+++ b/reactos/include/psdk/mshtml.idl
@@ -26,6 +26,11 @@ import "dimm.idl";
 import "shtypes.idl";
 import "dispex.idl";
 
+#ifndef __WIDL__
+#define progid(str)
+#define vi_progid(str)
+#endif
+
 cpp_quote("#include <olectl.h>")
 
 cpp_quote("DEFINE_GUID(SID_SEditCommandTarget,  0x3050f4b5,0x98b5,0x11cf,0xbb,0x82,0x00,0xaa,0x00,0xbd,0xce,0x0b);")
@@ -6943,7 +6948,7 @@ interface IHTMLLinkElement : IDispatch
     [propput, id(DISPID_IHTMLLINKELEMENT_MEDIA), displaybind, bindable]
     HRESULT media([in] BSTR v);
 
-    [propget, id(DISPID_IHTMLLINKELEMENT_MEDIA), displaybind, bindable]\
+    [propget, id(DISPID_IHTMLLINKELEMENT_MEDIA), displaybind, bindable]
     HRESULT media([out, retval] BSTR *p);
 }
 
@@ -7922,7 +7927,7 @@ methods:
 
 [
     noncreatable,
-    uuid(3050F24D-98B5-11CF-BB82-00AA00BDCE0B)
+    uuid(3050F251-98B5-11CF-BB82-00AA00BDCE0B)
 ]
 coclass HTMLFormElement
 {
@@ -10445,9 +10450,6 @@ properties:
 methods:
     WINE_HTMLDATAELEMENT_DISPINTERFACE_DECL;
 
-    [propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden]
-    IDispatch *constructor();
-
     [propget, id(DISPID_IHTMLBUTTONELEMENT_TYPE)]
     BSTR type();
 
@@ -14295,13 +14297,13 @@ interface IHTMLDocument6 : IDispatch
     HRESULT onstorage([in] VARIANT v);
 
     [propget, id(DISPID_IHTMLDOCUMENT6_ONSTORAGE), displaybind, bindable]
-    HRESULT onstorage([out] VARIANT *p);
+    HRESULT onstorage([retval, out] VARIANT *p);
 
     [propput, id(DISPID_IHTMLDOCUMENT6_ONSTORAGECOMMIT), displaybind, bindable]
     HRESULT onstoragecommit([in] VARIANT v);
 
     [propget, id(DISPID_IHTMLDOCUMENT6_ONSTORAGECOMMIT), displaybind, bindable]
-    HRESULT onstoragecommit([out] VARIANT *p);
+    HRESULT onstoragecommit([retval, out] VARIANT *p);
 
     [id(DISPID_IHTMLDOCUMENT6_IE8_GETELEMENTBYID)]
     HRESULT getElementById(
diff --git a/reactos/include/psdk/shdeprecated.idl b/reactos/include/psdk/shdeprecated.idl
index d6e48b5af4e..7e2e38949ed 100644
--- a/reactos/include/psdk/shdeprecated.idl
+++ b/reactos/include/psdk/shdeprecated.idl
@@ -447,8 +447,8 @@ interface IBrowserService2 : IBrowserService
     LRESULT WndProcBS(
         [in] HWND hwnd,
         [in] UINT uMsg,
-        [in, out] WPARAM wParam,
-        [in, out] LPARAM lParam);
+        [in] WPARAM wParam,
+        [in] LPARAM lParam);
 
     HRESULT SetAsDefFolderSettings();
 
@@ -558,8 +558,8 @@ interface IBrowserService2 : IBrowserService
         [in] HWND hwndBar,
         [in] BOOL fBroadcast,
         [in] UINT uMsg,
-        [in, out] WPARAM wParam,
-        [in, out] LPARAM lParam);
+        [in] WPARAM wParam,
+        [in] LPARAM lParam);
 
     HRESULT GetFolderSetData(
         [in, out] struct tagFolderSetData *pfsd);
diff --git a/reactos/include/psdk/shobjidl.idl b/reactos/include/psdk/shobjidl.idl
index ca3c4537f45..437fba375ed 100644
--- a/reactos/include/psdk/shobjidl.idl
+++ b/reactos/include/psdk/shobjidl.idl
@@ -3855,7 +3855,7 @@ interface ITransferAdviseSink : IUnknown
     HRESULT FileFailure([in] IShellItem *item,
                         [in, unique, string] LPCWSTR itemname,
                         [in] HRESULT hr,
-                        [out, unique, size_is(crename)] LPWSTR rename,
+                        [in, out, unique, size_is(crename)] LPWSTR rename,
                         [in] ULONG crename);
     HRESULT SubStreamFailure([in] IShellItem *item,
                              [in, string] LPCWSTR stream,
@@ -4195,6 +4195,7 @@ interface IFileOperation : IUnknown
 [
     uuid(6CCB7BE0-6807-11d0-B810-00C04FD706EC),
     object,
+    local,
     pointer_default(unique)
 ]
 interface IShellTaskScheduler : IUnknown