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.
 
 
 
 
 
 

451 lines
5.4 KiB

/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
exports.c
Abstract:
entry point and functions exported by cscdll.dll
Contents:
Author:
Shishir Pardikar
Environment:
Win32 (user-mode) DLL
Revision History:
4-4-97 created by putting all the exported functions here.
--*/
#include "pch.h"
#ifdef CSC_ON_NT
#include <winioctl.h>
#endif //CSC_ON_NT
#include "shdcom.h"
#include "shdsys.h"
#include "reint.h"
#include "utils.h"
#include "resource.h"
#include "strings.h"
// this sets flags in a couple of headers to not include some defs.
#define REINT
#include "lib3.h"
//
// Globals/Locals
//
HANDLE vhinstCur=NULL; // current instance
AssertData;
AssertError;
#ifndef CSC_ON_NT
extern HWND vhwndShared;
#endif
//
// Local prototypes
//
int
PASCAL
ReInt_WinMain(
HANDLE,
HANDLE,
LPSTR,
int
);
//
// functions
//
BOOL
APIENTRY
LibMain(
IN HANDLE hDll,
IN DWORD dwReason,
IN LPVOID lpReserved
)
/*++
Routine Description:
Entry point for the agent library.
Arguments:
hDll - Library handle
dwReason - PROCESS_ATTACH etc.
lpReserved - reserved
Returns:
TRUE if successful.
Notes:
--*/
{
switch(dwReason){
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
if (!vhinstCur){
vhinstCur = hDll;
}
if (!vhMutex){
vhMutex = CreateMutex(NULL, FALSE, NULL);
if (!vhMutex){
OutputDebugString(_TEXT("CreateMutex Failed \r\n"));
}
}
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
CleanupReintState();
if (vhMutex)
{
CloseHandle(vhMutex);
}
break;
default:
break;
} // end switch()
return TRUE;
}
DWORD
WINAPI
MprServiceProc(
IN LPVOID lpvParam
)
/*++
Routine Description:
Parameters:
lpvParam - NULL indicates start, non-NULL indicates terminate
Return Value:
Notes:
--*/
{
if (!lpvParam){
Assert (vhinstCur != NULL);
// DEBUG_PRINT(("MprServiceProc: Calling ReInt_WinMain!\n"));
ReInt_WinMain(vhinstCur, NULL, NULL, SW_SHOW);
}
else
{
if (vhwndMain)
{
DestroyWindow(vhwndMain);
}
}
return (0L);
}
#ifndef CSC_ON_NT
VOID
WINAPI
LogonHappened(
IN BOOL fDone
)
/*++
Routine Description:
Win95 specific routine. No significance for NT
Parameters:
Return Value:
Notes:
When the network comes back on, this is called by shdnp.dll
we nuke our shadowed connections, and replace them with 'true' connections
NB!!!!: this function could be called in the context of a thread other than the
reint thread.
--*/
{
if (vhwndShared)
{
SendMessage(vhwndShared, WM_COMMAND, IDM_LOGON, fDone);
}
}
VOID
WINAPI
LogoffHappened(
BOOL fDone
)
/*++
Routine Description:
this is called by shdnp.dll during logoff sequence by shdnp
NB!!!!: this function could be called in the context of a thread other than the
reint thread.
Arguments:
Returns:
Notes:
--*/
{
if (vhwndShared)
{
SendMessage(vhwndShared, WM_COMMAND, IDM_LOGOFF, fDone);
}
}
//
// Called from Shhndl.dll to update the servers
// Pass the server ID and a parent window to own the UI.
//
int
WINAPI
Update(
HSERVER hServer,
HWND hwndParent
)
/*++
Routine Description:
Arguments:
Returns:
Notes:
--*/
{
int iRes;
if(hServer==(HSERVER)NULL){
iRes=(int)SendMessage(vhwndShared, RWM_UPDATEALL, (WPARAM)hServer, (LPARAM)hwndParent);
}
else{
iRes=(int)SendMessage(vhwndShared, RWM_UPDATE, (WPARAM)hServer, (LPARAM)hwndParent);
}
return iRes;
}
int
WINAPI
RefreshConnections(
int force,
BOOL verbose
)
/*++
Routine Description:
Arguments:
Returns:
Notes:
--*/
{
return (SendMessage(vhwndShared, WM_COMMAND, IDM_REFRESH_CONNECTIONS, MAKELPARAM(force, verbose)));
}
int
WINAPI
BreakConnections(
int force,
BOOL verbose
)
/*++
Routine Description:
Arguments:
Returns:
Notes:
--*/
{
return (SendMessage(vhwndShared, WM_COMMAND, IDM_BREAK_CONNECTIONS, MAKELPARAM(force, verbose)));
}
#else
VOID
WINAPI
LogonHappened(
IN BOOL fDone
)
/*++
Routine Description:
Parameters:
Return Value:
Notes:
--*/
{
}
VOID
WINAPI
LogoffHappened(
BOOL fDone
)
/*++
Routine Description:
Arguments:
Returns:
Notes:
--*/
{
}
int
WINAPI
Update(
HSERVER hServer,
HWND hwndParent
)
/*++
Routine Description:
Arguments:
Returns:
Notes:
--*/
{
return -1;
}
int
WINAPI
RefreshConnections(
int force,
BOOL verbose
)
/*++
Routine Description:
Arguments:
Returns:
Notes:
--*/
{
return (-1);
}
int
WINAPI
BreakConnections(
int force,
BOOL verbose
)
/*++
Routine Description:
Arguments:
Returns:
Notes:
--*/
{
return (-1);
}
#endif