Reorganise/minor tidyup of ordinal functions.
Implement StrCmpLogicalW,StrFormatByteSizeA/W,StrFormatByteSize64A,
SHCreateStreamWrapper.
Fix some output .spec parameters from str to ptr.
Fix definition of StrFormatByteSize functions.
diff --git a/dlls/shlwapi/thread.c b/dlls/shlwapi/thread.c
index 0a3f187..4b97af2 100644
--- a/dlls/shlwapi/thread.c
+++ b/dlls/shlwapi/thread.c
@@ -30,14 +30,26 @@
#define NO_SHLWAPI_STREAM
#define NO_SHLWAPI_USER
#include "shlwapi.h"
-#include "ordinal.h"
WINE_DEFAULT_DEBUG_CHANNEL(shell);
-extern DWORD SHLWAPI_ThreadRef_index; /* Initialised in shlwapi_main.c */
+/* Get a function pointer from a DLL handle */
+#define GET_FUNC(func, module, name, fail) \
+ do { \
+ if (!func) { \
+ if (!SHLWAPI_h##module && !(SHLWAPI_h##module = LoadLibraryA(#module ".dll"))) return fail; \
+ if (!(func = (void*)GetProcAddress(SHLWAPI_h##module, name))) return fail; \
+ } \
+ } while (0)
+/* DLL handles for late bound calls */
+extern HMODULE SHLWAPI_hshell32;
+
+/* Function pointers for GET_FUNC macro; these need to be global because of gcc bug */
static HRESULT (WINAPI *pSHGetInstanceExplorer)(IUnknown**);
+extern DWORD SHLWAPI_ThreadRef_index; /* Initialised in shlwapi_main.c */
+
DWORD WINAPI SHLWAPI_23(REFGUID,LPSTR,INT);
/**************************************************************************