Microsoft SDK for Java version 4.0 Release Notes

Release Notes - What's New

This topic covers new features and other enhancements that come with the SDK for Java, version 4.0.

Note   The build numbers of the Microsoft VM and jvc for this SDK release can be found in Build.txt, located in the SDK's Relnotes folder.

Microsoft VM Enhancements
New Development Tools and Utilities
New Classes, Interfaces, and Methods
New Samples
New Documentation

Microsoft VM Enhancements

For information on Microsoft VM issues that have been fixed, see Microsoft VM Updates. Information on fixes to the Microsoft VM after the SDK for Java 4.0 release will be posted to http://www.microsoft.com/java/download.htm This link takes you to a site on microsoft.com.

The current release of the Microsoft VM continues its performance leadership and includes:

JDK 1.1 support
  • JDK 1.1 is supported (with the exception of RMI, which is freely available from our ftp site This link takes you to a site on microsoft.com).
Expanded Compaq DIGITAL Alpha Support
  • Vjreg, a command-line tool that registers Java classes as COM components in the Microsoft® Windows® registry, is now available for the Compaq DIGITAL Alpha platform and is located in the SDK for Java Binalpha folder.

    Be sure to have the CLASSPATH environment variable set correctly. Include the Bin folder for x86 architectures and the Binalpha folder for Compaq DIGITAL Alpha architectures. For more information on this and other tools, see the Tools Reference topic.

Year 2000 (Y2K) Compliance
Java/COM Integration
  • A new way has been provided to express limited iid_is and size_is support in @com directives using existing compiler syntax. For details, see the @com.method and @com.parameters documentation.

  • The topic Creating a Custom Class Object describes how to extend the Microsoft VM's default class object (class factory).

  • The topic iid_is and size_is Support describes the mapping of Interface Definition Language (IDL) iid_is and size_is information to @com.parameters declarations.

    There are several new samples that demonstrate this and other aspects of Java/COM integration. See the New Samples section.

Miscellaneous
  • The problem of superfluous QueryInterface calls has been addressed. The Microsoft VM now quickly recognizes interface pointers without first attempting to unwrap them as Java-implemented objects.

  • JIT bugs and other miscellaneous bugs have been fixed.

  • Debugger fixes and enhancements and Profiler fixes.

  • Support for marshaling Delegates as IDispatch function pointers, used by clients such as the Microsoft® Internet Explorer scripting engines. Delegates can be used as a script function pointer, which are used in HTML for things like document and window events. The COM wrapper for a delegate supports IDispatch where DISPID_VALUE causes the delegate's invoke( ) method to be called.

For more documentation on the Microsoft VM, see Microsoft Virtual Machine.

New Development Tools and Utilities

Tools and utilities are located in the Bin folder (for x86 architectures) and the Binalpha folder (for Compaq DIGITAL Alpha architectures). Be sure to have the CLASSPATH environment variable set correctly.

Expanded Compaq DIGITAL Alpha Support
  • Vjreg, a command-line tool that registers Java classes as COM components in the Microsoft® Windows® registry, is now available for the Compaq DIGITAL Alpha platform and is located in the SDK for Java Binalpha folder.
Microsoft Compiler for Java

The Microsoft Compiler for Java (jvc) supports JDK 1.1 (with the exception of RMI, which is freely available from our ftp site This link takes you to a site on microsoft.com).

In this version of jvc, the /x option that disables Microsoft extensions is the default setting. For more information about jvc command-line options and error messages, see Jvc.

Note   For users of Microsoft® Visual J++®, the Samples contained within the Microsoft SDK for Java support newer features supported by the Microsoft Compiler for Java (Jvc.exe).

To use these new language features with Microsoft® Visual J++® and the Microsoft SDK for Java Samples, you must replace three files in Visual J++ with their respective SDK versions:

  1. Back up the current Visual J++ versions of Jvc.exe, Jps.dll, and Msjvc.dll.

  2. Copy Jvc.exe, Jps.dll, and Msjvc.dll from %SDKDIR%\Bin to your Visual J++ directory. Projects and samples will then build using the new compiler.
VM Uninstaller

Uninstaller.exe removes the Microsoft virtual machine from the computer.

IntegrationClasses.exe

IntegrationClasses.exe installs additional com.ms packages for integration purposes. IntegrationClasses2000.exe is for use on computers running Microsoft® Windows® 2000. It installs packages such as com.ms.iis.asp, which is required for running the ASP Java Component Framework Samples. It also installs com.ms.ie, which contains 47 class files that are hooks for Java into Microsoft® Internet Explorer.

New Classes, Interfaces, and Methods

This section organizes the additions according to the version of the Microsoft VM to which they apply.

Microsoft VM versions 2436 through 2925
Microsoft VM versions 2925 through 3167
Microsoft VM versions 3167 through 3234

Microsoft VM versions 2436 through 2925

  • The following methods were added to the com.ms.lang.SystemX class:

    blockcopy
    compareString
    exitProcessAfterMainThreadReturns

  • The following methods were added to the com.ms.security.PermissionUtils class, but are not documented (by design):

    unescapeChars
    requiresQuotes
    escapeString
    escapeChars
    unescapeString

  • The following AFC methods were added, and are documented in the Microsoft® SDK for Application Foundation Classes:

    com.ms.ui.IUIComponent com.ms.ui.AwtUIChoice.add(java.lang.String)
    com.ms.fx.FxGraphics.drawFocusRect(int,int,int,int)
    com.ms.fx.IFxSystemInterface.callRootOnEventThread(com.ms.ui.UIRoot)
    com.ms.fx.FxComponentImage.getImage(int, int, int,
    java.awt.Color, java.awt.Color)

  • The following method and constructor were added to the com.ms.com.Variant class:

    toScriptObject
    Variant(Object value, boolean unwrapScriptObjects)

  • The following methods were added to the com.ms.com.ComLib class:

    unknownToPtr
    ptrRelease
    ptrToUnknown
    makeProxyRef
    executeOnContext

  • The following methods were added to the com.ms.dll.DllLib class:

    stringToHGlobalAnsi
    copyUni
    propagateStructFields
    stringToCoTaskMemAnsi
    stringToHGlobalAnsi

  • The following classes were added to the com.ms.win32 package:

    EnumFontFamExProc
    NEWTEXTMETRIC
    NEWTEXTMETRICEX
    REBARBANDINFO_IE4
    win
    Win32Lib
    windynamic

Note   By design, individual members of the com.ms.win32 package are not documented.

  • The following RNI functions were added:

    PrepareThreadForJavaEx
    execute_java_constructor_method
    execute_java_constructor_methodV
    do_execute_java_methodV
    javaStringLengthAsCString
    Class_GetConstantPoolCount
    Class_CopyConstantPoolItem
    ClassObjectToClassClass
    ClassClassToClassObject
    Thread_IsInterrupted
    AddPathClassSource
    AddModuleResourceClassSource
    GetCurrentJavaTimeMillis

  • The ThreadLocalStorage class was added to the com.ms.util package.

  • The Debugger class was added to the com.ms.debug package.

Microsoft VM versions 2925 through 3167

  • The following methods were added to the com.ms.awt.GraphicsX class:

    drawNativeEdge
    drawNativeFocusRect

  • The setPeriod method was added to the com.ms.util.Timer class, but is not documented. This is by design.

  • The following AFC methods were added to the com.ms.ui.UIEdit class, and are documented in the Microsoft SDK for Application Foundation Classes:

    isUndoAllowed
    allowUndo

  • The following methods were added to the com.ms.com.ComLib class:

    startMTAThread
    getGuidOf
    ptrToStruct

  • The following methods were added to the com.ms.com.STATSTG class:

    getCLSID
    setCLSID

  • The following method was added to the com.ms.dll.DllLib class:

    ptrToStruct

  • The following interfaces were added to the com.ms.com package:

    IBindCtx
    IClassFactory
    IConnectionPoint
    IConnectionPointContainer
    IEnumConnectionPoints
    IEnumConnections
    IEnumMoniker
    IEnumSTATSTG
    IEnumString
    IEnumUnknown
    ILockBytes
    IMarshal
    IMoniker
    IParseDisplayName
    IPersist
    IPersistFile
    IPersistStorage
    IPeristStream
    IPersistStreamInit
    IROTData
    IRunningObjectTable
    ISequentialStream
    IStorage

  • The following classes were added to the com.ms.com package:

    BIND_OPTS
    CONNECTDATA
    COAUTHINFO
    COAUTHIDENTITY
    COSERVERINFO
    MULTI_QI

  • The following classes were added to the com.ms.win32 package:

    Ole32
    oleacc

  • The following method and two constructors were added to the com.ms.win32.FILETIME class:

    getTimeLong()
    FILETIME(int, int)
    FILETIME(long)

  • New constants were added to these classes:

    com.ms.win32.winb
    com.ms.win32.winc
    com.ms.win32.winl
    com.ms.win32.winm
    com.ms.win32.winr
    com.ms.win32.wins

Note   By design, individual members of the com.ms.win32 package are not documented.

  • The following RNI methods were added:

    FindClassFromClass
    ClassArrayAlloc2
    GetNativeMethodsClass
    GetNativeMethodsMethodInfo

Microsoft VM versions 3167 through 3234

  • The following methods were added to the Ole32 class of the com.ms.win32 package:

    CoSetProxyBlanket( )
    CoQueryProxyBlanket( )

Note   By design, individual members of the com.ms.win32 package are not documented.

  • The following method and fields were added to the com.ms.com.ComLib class:

    freeUnusedLibraries( )
    IID_IUnknown
    IID_IDispatch

  • The following classes were added to the com.ms.com package:

    LICINFO
    StdCOMClassObject

  • The following interfaces were added to the com.ms.com package:

    IClassFactory2
    ICreateErrorInfo
    IErrorInfo

  • Added the com.ms.ie package to the Microsoft Packages Reference.

New Samples

The following samples are new and are located in subdirectories of %SDKDIR%\Samples:

COM

Location: Samples\com\jexegen\stub
Location: Samples\com\custommarshal\vardate
Location: Samples\com\COMClassObject
Location: Samples\com\iid_is_size_is

Java Media Player

Location: Samples\jdirect\mediaplayer

Heap Monitor

Location: Samples\profiler\heapmon

ASP Java Component Framework Samples

Location: Samples\ASP

For more information on samples, see the Samples Overview.

New Documentation

For a list of revisions made to the documentation since the last SDK release, see Documentation Updates.

Locations for the Available Documentation
Part Location Description
SDKdocs %SDKDIR%\Docs\Sdkdocs.chm

www.microsoft.com/java/sdk/40/Start.htm
Microsoft SDK for Java
Integration %SDKDIR%\Docs\Integration.chm White papers and Java package reference information for integrating Java with Microsoft technologies
Javadocs %SDKDIR%\Docs\Javadocs.chm Java 1.1 Core API
Samples %SDKDIR%\Samples\Start.htm Samples included in the SDK for Java

  © 1997-1999 Microsoft Corporation. All rights reserved.