[SHLWAPI] Sync with Wine Staging 3.3. CORE-14434
[reactos.git] / dll / win32 / shlwapi / shlwapi_main.c
index 957e1d3..f466bb4 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-#define WIN32_NO_STATUS
-#define _INC_WINDOWS
-#define COM_NO_WINDOWS_H
-
 #include <stdarg.h>
 
-#include <windef.h>
-#include <winbase.h>
+#include "windef.h"
+#include "winbase.h"
 #define NO_SHLWAPI_REG
 #define NO_SHLWAPI_STREAM
-#include <shlwapi.h>
-#include <wine/debug.h>
+#include "shlwapi.h"
+#include "wine/debug.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(shell);
 
@@ -68,6 +64,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
            SHLWAPI_ThreadRef_index = TlsAlloc();
            break;
          case DLL_PROCESS_DETACH:
+            if (fImpLoad) break;
            if (SHLWAPI_ThreadRef_index != TLS_OUT_OF_INDEXES) TlsFree(SHLWAPI_ThreadRef_index);
            break;
        }
@@ -97,6 +94,9 @@ HRESULT WINAPI DllGetVersion (DLLVERSIONINFO *pdvi)
 
   TRACE("(%p)\n",pdvi);
 
+  if (!pdvi)
+    return E_INVALIDARG;
+
   switch (pdvi2->info1.cbSize)
   {
   case sizeof(DLLVERSIONINFO2):
@@ -110,7 +110,7 @@ HRESULT WINAPI DllGetVersion (DLLVERSIONINFO *pdvi)
     pdvi2->info1.dwPlatformID = DLLVER_PLATFORM_WINDOWS;
     return S_OK;
  }
- if (pdvi)
  WARN("pdvi->cbSize = %d, unhandled\n", pdvi2->info1.cbSize);
+
+ WARN("pdvi->cbSize = %d, unhandled\n", pdvi2->info1.cbSize);
  return E_INVALIDARG;
 }