The HMODULE parameter used in many of the library calls actually has a different significance in both 16 and 32 bit Windows. In 32-bit Windows systems (both Windows NT and Windows 95) DLLs are loaded into the virtual address space of the application that calls them. In 32-bit systems the HMODULE must refer to the module/instance of the DLL that is being used by the calling application. In 16 bit Windows this quantity may usually be 0.
In either case it is advisable to obtain the appropriate value for this quantity using the call:
hInstance= GetModuleHandle("DLSBAR32");
or by calling the DLLs own GetHandle function using
hInstance= GhDlsbar();
If the latter option is used then the following declaration is required in the calling application:
HMODULE WINAPI GhDlsbar(void);
More: