Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

229 lines
4.8 KiB

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "setup.h"
#include "stdtypes.h"
#include "setupapi.h"
#include "cui.h"
#include "setupkit.h"
#include "datadef.h"
#include "resource.h"
#include "common.h"
RC FAR PASCAL SetComputerName( PCD pcd, POD pod, CAMF camf, PCAMFD pcamfd, SZ szData );
RC FAR PASCAL IsLanmanInstalled( PCD pcd, POD pod, CAMF camf, PCAMFD pcamfd, SZ szData );
RC FAR PASCAL IsWFW( PCD pcd, POD pod, CAMF camf, PCAMFD pcamfd, SZ szData );
RC FAR PASCAL IsWin31( PCD pcd, POD pod, CAMF camf, PCAMFD pcamfd, SZ szData );
RC FAR PASCAL PopDlg( PCD pcd, POD pod, CAMF camf, PCAMFD pcamfd, SZ szData );
extern void FAR PASCAL DOS3Call(void);
char NetworkName[100];
RC PUBLIC GetComputerName(LPSTR szComputerName )
{
BYTE NoErr;
RC rc = rcFail;
_asm
{
push ds
push es
push bp
push cx
push dx
push ax
mov dx, seg NetworkName
mov ds, dx
mov dx, offset NetworkName
mov ax, 5E00h
call DOS3Call
mov byte ptr NoErr,ch
pop ax
pop dx
pop cx
pop bp
pop es
pop ds
}
if (NoErr)
{
// No Error, set the computer name
lstrcpy( szComputerName, NetworkName );
rc = rcOk;
}
return(rc);
}
RC FAR PASCAL SetComputerName( PCD pcd, POD pod, CAMF camf, PCAMFD pcamfd, SZ szData )
{
RC rc = rcDoDefault;
Unused( pod );
Unused( pcamfd );
Unused( szData );
switch (camf)
{
case camfDoNonVisualMods:
{
char szComputerName[100];
char szSystemIni[_MAX_PATH];
// get the computer name first
if ( GetComputerName( szComputerName ) == rcOk )
{
// write the computer name
wsprintf(szSystemIni, "%sSystem.ini", pcd->rgchStfWinDir );
WritePrivateProfileString("Network","ComputerName",
szComputerName, szSystemIni );
}
}
break;
default:
break;
}
return(rc);
}
RC FAR PASCAL IsLanmanInstalled( PCD pcd, POD pod, CAMF camf, PCAMFD pcamfd, SZ szData )
{
RC rc = rcDoDefault;
Unused( pod );
Unused( pcd );
Unused( szData );
switch (camf)
{
case camfAnswerDependClause:
{
PCAMFDAnswerDependClause pcmdfdAnswer = (PCAMFDAnswerDependClause)pcamfd;
BYTE State;
_asm
{
push ds
push es
push bp
push ax
mov ax, 1100h
int 2fh
mov byte ptr State, al
pop ax
pop bp
pop es
pop ds
}
if ( State == 0xff )
{
pcmdfdAnswer->fRes = fTrue;
} else
{
HANDLE hi = GetModuleHandle("INTERSU.DLL");
char szMsg[_MAX_PATH];
char szTitle[_MAX_PATH];
LoadString(hi, IDS_REQUIRED, szMsg, sizeof szMsg);
LoadString(hi, IDS_CLIENT, szTitle, sizeof szMsg);
pcmdfdAnswer->fRes = fFalse;
DoMsgBox( szMsg, szTitle, MB_OK );
rc = rcFail;
}
}
break;
default:
break;
}
return(rc);
}
RC FAR PASCAL IsWFW( PCD pcd, POD pod, CAMF camf, PCAMFD pcamfd, SZ szData )
{
RC rc = rcDoDefault;
Unused( pod );
Unused( szData );
switch (camf)
{
case camfAnswerDependClause:
{
PCAMFDAnswerDependClause pcmdfdAnswer = (PCAMFDAnswerDependClause)pcamfd;
// check the existence of WFWNET.DRV
char szWFWNetDrv[_MAX_PATH];
FindFileInTree( "wfwnet.drv", pcd->rgchStfSysDir, szWFWNetDrv,
_MAX_PATH );
if ( lstrcmp( szWFWNetDrv, "" ) != 0 )
{
pcmdfdAnswer->fRes = fTrue;
} else
{
pcmdfdAnswer->fRes = fFalse;
}
}
break;
default:
break;
}
return(rc);
}
RC FAR PASCAL IsWin31( PCD pcd, POD pod, CAMF camf, PCAMFD pcamfd, SZ szData )
{
RC rc = rcDoDefault;
Unused( pcd );
Unused( pod );
Unused( szData );
switch (camf)
{
case camfAnswerDependClause:
{
PCAMFDAnswerDependClause pcmdfdAnswer = (PCAMFDAnswerDependClause)pcamfd;
WORD version;
version = LOWORD(GetVersion());
if (((LOBYTE(version) << 8) | HIBYTE(version)) >= 0x030a)
{
pcmdfdAnswer->fRes = fTrue;
} else
{
pcmdfdAnswer->fRes = fFalse;
}
}
break;
default:
break;
}
return(rc);
}