Figure 6   CHardLink

// NTHardLink.cpp : Implementation of CHardLink
#include "stdafx.h"
#include "HardLink.h"
#include "NTHardLink.h"

/////////////////////////////////////////////////////////////////////////////
// CHardLink


STDMETHODIMP CHardLink::CreateNewHardLink(BSTR bstrFileName, 
    BSTR bstrExistingFileName)
{
    USES_CONVERSION;

    if (bstrFileName==NULL || bstrExistingFileName==NULL)
        return E_INVALIDARG;

    // Convert from BSTR to ANSI strings
    TCHAR pszFileName[MAX_PATH], pszExistingFileName[MAX_PATH];
    lstrcpy(pszFileName, OLE2T(bstrFileName));
    lstrcpy(pszExistingFileName, OLE2T(bstrExistingFileName));

    // Try to create the hard link to the specified file
    BOOL b;
    b = CreateHardLink(pszFileName, pszExistingFileName, NULL);
    if (b)
        return S_OK;
    return E_FAIL;
}


Figure 7   Creating Hard Links


/////////////////////////////////////////////////////////////
// WSH JScript file
//
// Create hard links for the specified files
// Requires Windows 2000
// Usage:  TESTHL  new_file  existing_file
//


// Two arguments needed
if (WScript.Arguments.Length != 2) 
   WScript.Quit();

// Literals
var L_NO_HL_CREATED = "Unable to create hard link.";

// Create the object
var oHL = WScript.CreateObject( "HardLink.Object.1" );

// Get the arguments from the command line
var sNewFile = WScript.Arguments.Item(0)
var sExistingFile = WScript.Arguments.Item(1)

// Try to create the hardlink
bResult = oHL.CreateNewHardLink(sNewFile, sExistingFile);
if (bResult == 0)
   WScript.Echo(L_NO_HL_CREATED)

WScript.Quit();

Figure 8   New Features of Windows 2000

SDK Description
Fax Services Provides support for developing fax client applications.
IP Helper Functions
Retrieves and modifies settings for the TCP/IP protocol.
Cryptographic Services
Provides services to implement authentication, encoding, and encryption.
Collaboration Data Objects
COM objects that allow applications to send and receive email messages.
VLM
Allows applications to access very large caches of data.
TAPI 3.0
New and COM-based telephony API.
Sockets
API to access standard network services, including transport protocols.
DirectX 6.0
Enhanced API that highly improves DirectDraw and Direct3D.
Smart Cards
Provides a standard model for interfacing smart card readers.
Windows Installer
Allows just-in-time installation that installs components on the local disk as soon as they are required.
Multiple Monitors
Provides support for multiple display adapters and monitors on the same PC to create a single, all-encompassing virtual desktop.
Native Structured Storage
New implementation of OLE structured storage.
Job Objects
API to manage groups of processes as a single unit.
Product or Technology
Description
IIS 5.0
New version of the Microsoft server platform for Web applications. Now runs as a Windows NT service.
Microsoft Transaction Server 2.0
Component-based transaction processing system.
Microsoft Message Queue Server 2.0
Message Queuing server to be used in distributed applications.
Index Server 3.0
Indexes the contents of all drives on the computer where it is installed facilitating text search.
Internet Explorer 5.0
The Microsoft Web browser.
Management Console
Extensible environment for running systems management component-based applications called snap-ins.
Proxy Server 2.0
System integrated module to deliver high-performance Internet access.
Function
Description
AllowSetForegroundWindow
Allows another process to bring its windows to the foreground.
PrintDlgEx
New version of the Print common dialog.
GetComputerNameEx
Retrieves fully qualified, host, and domain DNS names for a computer.
SetLayout
Sets the layout of a device context that specifies how text and graphics are laid out.
OpenThread
Opens a thread object and returns a handle to it.
ReplaceFile
Replaces a given file with another one.
VerifyVersionInfo
Verifies whether the version information of the current OS matches the specified params.
GetLongPathName
Retrieves the long name of a file starting from its 8.3 short name.
AnimateWindow
Applies an animation effect when a window is shown or hidden.
TransparentBlt
Enhanced version of BitBlt that uses a background transparent color.
GradientFill
Fills screen areas by fading two colors.
GetMouseMovePoints
Retrieves all the points traversed by the mouse in its movements.
FlashWindowEx
Flashes the window caption to notify events.