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
DllMain function as it's described in MSDN:

```
BOOL WINAPI DllMain(
  __in  HINSTANCE hinstDLL,
  __in  DWORD fdwReason,
  __in  LPVOID lpvReserved
);

```

<http://msdn.microsoft.com/en-us/library/ms682583%28v=vs.85%29.aspx>