Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

175 lines
2.9 KiB

/*
Copyright (c) 1997, Microsoft Corporation, all rights reserved
Description:
Implementation of DLL Exports.
History:
*/
#include "ceapcfg.h"
#include <initguid.h>
#include <atlimpl.cpp>
#include "resource.h"
CComModule _Module;
HINSTANCE g_hInstance = NULL;
const IID IID_IEAPProviderConfig = {0x66A2DB19,
0xD706,
0x11D0,
{0xA3,0x7B,0x00,0xC0,0x4F,0xC9,0xDA,0x04}};
const IID IID_IEAPProviderConfig2 = {0xD565917A,
0x85c4,
0x4466,
{0x85,0x6E,0x67,0x1C,0x37,0x42,0xEA,0x9A}};
// Define the EAPTLS UI GUIDs here
const CLSID CLSID_EapCfg = {0x58ab2366,
0xd597,
0x11d1,
{0xb9,0x0e,0x00,0xc0,0x4f,0xc9,0xb2,0x63}};
BEGIN_OBJECT_MAP(ObjectMap)
OBJECT_ENTRY(CLSID_EapCfg, CEapCfg)
END_OBJECT_MAP()
/*
Returns:
Notes:
*/
extern "C"
HINSTANCE
GetHInstance(
VOID
)
{
return(g_hInstance);
}
/*
Returns:
Notes:
DLL Entry Point
*/
extern "C"
{
extern CRITICAL_SECTION g_csProtectCachedCredentials;
extern BOOL g_fCriticalSectionInitialized;
BOOL WINAPI
DllMain(
HINSTANCE hInstance,
DWORD dwReason,
LPVOID /*lpReserved*/
)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
g_hInstance = hInstance;
_Module.Init(ObjectMap, hInstance);
DisableThreadLibraryCalls(hInstance);
}
else if (dwReason == DLL_PROCESS_DETACH)
{
//
// Check to see if the critical section is initialized.
//
if ( g_fCriticalSectionInitialized )
DeleteCriticalSection( &g_csProtectCachedCredentials );
_Module.Term();
}
return(TRUE);
}
}
/*
Returns:
Notes:
Used to determine whether the DLL can be unloaded by OLE
*/
STDAPI
DllCanUnloadNow(
VOID
)
{
if (0 == _Module.GetLockCount())
{
return(S_OK);
}
else
{
return(S_FALSE);
}
}
/*
Returns:
Notes:
Returns a class factory to create an object of the requested type
*/
STDAPI
DllGetClassObject(
REFCLSID rclsid,
REFIID riid,
LPVOID* ppv
)
{
return(_Module.GetClassObject(rclsid, riid, ppv));
}
/*
Returns:
Notes:
Adds entries to the system registry. Registers object, typelib and all
interfaces in typelib
*/
STDAPI
DllRegisterServer(
VOID
)
{
return(_Module.RegisterServer(FALSE /* bRegTypeLib */));
}
/*
Returns:
Notes:
Removes entries from the system registry
*/
STDAPI
DllUnregisterServer(
VOID
)
{
_Module.UnregisterServer();
return(S_OK);
}