Fix some ordinal forwarding.
[wine] / dlls / shlwapi / shlwapi_main.c
1 /*
2  * SHLWAPI initialisation
3  *
4  *  Copyright 1998 Marcus Meissner
5  *  Copyright 1998 Juergen Schmied (jsch)
6  */
7
8 #include "winbase.h"
9 #include "winerror.h"
10 #include "debugtools.h"
11 #include "shlwapi.h"
12
13 DEFAULT_DEBUG_CHANNEL(shell);
14
15 HINSTANCE shlwapi_hInstance = 0; 
16 HMODULE SHLWAPI_hshell32 = 0;
17 HMODULE SHLWAPI_hwinmm = 0;
18 HMODULE SHLWAPI_hcomdlg32 = 0;
19 HMODULE SHLWAPI_hmpr = 0;
20 HMODULE SHLWAPI_hmlang = 0;
21
22 /*************************************************************************
23  * SHLWAPI LibMain
24  *
25  * NOTES
26  *  calling oleinitialize here breaks sone apps.
27  */
28 BOOL WINAPI SHLWAPI_LibMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
29 {
30         TRACE("0x%x 0x%lx %p\n", hinstDLL, fdwReason, fImpLoad);
31         switch (fdwReason)
32         {
33           case DLL_PROCESS_ATTACH:
34             shlwapi_hInstance = hinstDLL;
35             break;
36           case DLL_PROCESS_DETACH:
37             if (SHLWAPI_hshell32)  FreeLibrary(SHLWAPI_hshell32);
38             if (SHLWAPI_hwinmm)    FreeLibrary(SHLWAPI_hwinmm);
39             if (SHLWAPI_hcomdlg32) FreeLibrary(SHLWAPI_hcomdlg32);
40             if (SHLWAPI_hmpr)      FreeLibrary(SHLWAPI_hmpr);
41             if (SHLWAPI_hmlang)    FreeLibrary(SHLWAPI_hmlang);
42             break;
43         }
44         return TRUE;
45 }
46
47 /***********************************************************************
48  * DllGetVersion [SHLWAPI.@]
49  *
50  * Retrieves version information of the 'SHLWAPI.DLL'
51  *
52  * PARAMS
53  *     pdvi [O] pointer to version information structure.
54  *
55  * RETURNS
56  *     Success: S_OK
57  *     Failure: E_INVALIDARG
58  *
59  * NOTES
60  *     Returns version of a SHLWAPI.dll from IE5.01.
61  */
62
63 HRESULT WINAPI SHLWAPI_DllGetVersion (DLLVERSIONINFO *pdvi)
64 {
65         if (pdvi->cbSize != sizeof(DLLVERSIONINFO))
66         {
67           WARN("wrong DLLVERSIONINFO size from app\n");
68           return E_INVALIDARG;
69         }
70
71         pdvi->dwMajorVersion = 5;
72         pdvi->dwMinorVersion = 0;
73         pdvi->dwBuildNumber = 2314;
74         pdvi->dwPlatformID = 1000;
75
76         TRACE("%lu.%lu.%lu.%lu\n",
77            pdvi->dwMajorVersion, pdvi->dwMinorVersion,
78            pdvi->dwBuildNumber, pdvi->dwPlatformID);
79
80         return S_OK;
81 }