Question: I have created a DLL in VC++ as Win32 project 

DLLMAIN function is 

```
BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    return TRUE;
}

```

Now I need HINSTANCE of the DLL , that need to be passed to Win32 functions.

Are HMODULE and HINSTANCE same?

How can I get HINSTANCE?

Answer: 
An excerpt from the book Windows Via C/C++ [1]

> 
> **Note** As it turns out, **HMODULE**s and **HINSTANCE**s are exactly the same thing. If the documentation for a function indicates that an **HMODULE** is required, you can pass an **HINSTANCE** and vice versa. There are two data types because in 16-bit Windows **HMODULE**s and **HINSTANCE**s identified different things
> 
> 
> 

[1] Richter, Jeffery and Nasarre, Christophe, *Windows Via C/C++*, 5th ed, Redmond: Microsoft Press 2008, pp. 74
Calling GetModuleHandle(NULL) from a dll will return the Hinstanc of the EXE that started the DLL; to get the Hinstance for the curently running dll try this tip:

[http://www.dotnet247.com/247reference/msgs/13/65259.aspx](https://web.archive.org/web/20120322043832/http://www.dotnet247.com/247reference/msgs/13/65259.aspx)