Team,

Got DLRVM running :)  Please enclosed diff. I used CSimpleArray
instead of CAtlArray and patched the ATL headers in PSDK as mentioned
in article here:
http://www.codeproject.com/wtl/WTLExpress.asp?df=100&forumid=255873&exp=0&fr=26&select=1348720

I also had to add #ifndef in apr.h in a couple of spots (line 63 and
line 521). But this could be better handled by the build scripts
itself.
#ifndef _CRT_SECURE_NO_DEPRECATE
#define _CRT_SECURE_NO_DEPRECATE
#endif

Here's proof:

C:\APACHE\harmony\working_vm\build\deploy\jdk\jre\bin>java Main
java.runtime.name=Apache Harmony
sun.boot.library.path=c:\apache\harmony\working_vm\build\de...
java.vm.version=11.2.0
vm.boot.library.path=c:\apache\harmony\working_vm\build\de...
vm.boot.class.path=c:\apache\harmony\working_vm\build\de...
java.vendor.url=http://harmony.apache.org
java.vm.vendor=Apache Software Foundation
path.separator=;
java.vm.name=DRLVM
user.country=US
org.apache.harmony.vm.vmdir=c:\apache\harmony\working_vm\build\de...
java.vm.specification.name=Java Virtual Machine Specification
user.dir=C:\APACHE\harmony\working_vm\build\de...
java.runtime.version=1.5.0
os.arch=x86
java.io.tmpdir=C:\DOCUME~1\dims\LOCALS~1\Temp
line.separator=

java.vm.specification.vendor=Sun Microsystems Inc.
os.name=Windows XP
java.tmpdir=C:\DOCUME~1\dims\LOCALS~1\Temp
java.library.path=C:\APACHE\harmony\working_vm\build\de...
java.specification.name=Java Platform API Specification
java.class.version=50.0
java.util.prefs.PreferencesFactory=java.util.prefs.RegistryPreferencesFa...
os.version=5.1
user.home=C:\Documents and Settings\dims
user.timezone=America/New_York
file.encoding=8859_1
javax.xml.transform.TransformerFactory=org.apache.xalan.xsltc.trax.Transform...
java.specification.version=1.5
user.name=dims
java.class.path=.
java.vm.specification.version=1.0
java.home=C:\APACHE\harmony\working_vm\build\de...
user.language=en
java.specification.vendor=Sun Microsystems Inc.
java.vm.info=no info
java.version=1.5.0
java.ext.dirs=c:\apache\harmony\working_vm\build\de...
sun.boot.class.path=c:\apache\harmony\working_vm\build\de...
java.vendor=Apache Software Foundation
file.separator=\
java.compiler=client
org.apache.harmony.boot.class.path=C:\APACHE\harmony\working_vm\build\de...

Here's the 3 line java class used :

public class Main {
        public static void main(String[] args) {
                System.getProperties().list(System.out);
        }
}

thanks,
dims

On 10/25/07, Davanum Srinivas <[EMAIL PROTECTED]> wrote:
> Yep. More details later today!
>
> -- dims
>
> On 10/25/07, Oliver Deakin <[EMAIL PROTECTED]> wrote:
> > Hi Dims,
> >
> > According to this article [1] you should be able to access the ATL
> > headers by installing the Platform SDK (linked from that page) and
> > adding C:\Program Files\Microsoft Platform SDK\include\atl to your
> > include path - is this something you have already tried?
> >
> > Regards,
> > Oliver
> >
> > [1] http://www.codeproject.com/wtl/WTLExpress.asp
> >
> >
> > Davanum Srinivas wrote:
> > > Team,
> > >
> > > MSFT does not ship ATL with the express edition. But some enterprising
> > > person has posted info on how to use the old ATL stuff in PSDK.
> > >
> > > http://www.codeproject.com/wtl/WTLExpress.asp?df=100&forumid=255873&exp=0&fr=26&select=1348720
> > >
> > > But, we will have to still get rid of CAtlArray usage as that is not
> > > available in the old files in PSDK.
> > >
> > > So, is the ATL dependency a conscious decision? Since it makes harmony
> > > build dependent on access to non-free build environment? If not, how
> > > easy is it to get rid of the dependency or get it working with the
> > > older files in PSDK?
> > >
> > > Thoughts?
> > >
> > > -- dims
> > >
> > > On 10/22/07, Davanum Srinivas <[EMAIL PROTECTED]> wrote:
> > >
> > >> Actually found a way to get past this point using
> > >> /FORCE:UNRESOLVED...also threw in a /NODEFAULTLIB:LIBC to get past a
> > >> few more errors. Here's where i am stumped now...Basically "Microsoft
> > >> Visual C++ 2005 Express Edition" does not seem to support atl.
> > >>
> > >> -build-native-windows:
> > >>      [exec]     cl -c -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -GS
> > >> -FIsehmap.h -D_X86_=1  -DWIN32 -D_WIN32 -W3 -D_WIN95 -D_
> > >> WIN32_WINDOWS=0x0400 /D_WIN32_DCOM -D_WIN32_IE=0x0500 -DWINVER=0x0400
> > >> -Zi -Od -D_CRT_SECURE_NO_DEPRECATE  -D_CRT_SECURE_NO_W
> > >> ARNINGS  -WX -GF -Gs -MD -Zm400  -D_DLL -D_MT -D_WINSOCKAPI_
> > >> /IC:\APACHE\harmony\working_classlib\deploy\include /IC:\APAC
> > >> HE\harmony\working_classlib\deploy\jdk\include /I.
> > >> -FoWinDataTransfer.obj WinDataTransfer.cpp
> > >>      [exec] WinDataTransfer.cpp
> > >>      [exec] WinDataTransfer.cpp(23) : fatal error C1083: Cannot open
> > >> include file: 'atlbase.h': No such file or directory
> > >>      [exec] NMAKE : fatal error U1077: 'cl' : return code '0x2'
> > >>      [exec] Stop.
> > >>
> > >> BUILD FAILED
> > >> C:\APACHE\harmony\working_classlib\make\build-native.xml:77: The
> > >> following error occurred while executing this line:
> > >> C:\APACHE\harmony\working_classlib\modules\awt\build.xml:226: The
> > >> following error occurred while executing this line:
> > >> C:\APACHE\harmony\working_classlib\make\properties.xml:474: exec 
> > >> returned: 2
> > >>
> > >>
> > >> On 10/22/07, Davanum Srinivas <[EMAIL PROTECTED]> wrote:
> > >>
> > >>> Looks like other people have similar issues:
> > >>> http://support.intel.com/support/performancetools/libraries/mkl/win/sb/CS-022853.htm
> > >>>
> > >>> And the answer seems to imply that one needs a version of lcms114.lib
> > >>> compiled with the latest tool chain :(
> > >>>
> > >>> -- dims
> > >>>
> > >>> On 10/22/07, Davanum Srinivas <[EMAIL PROTECTED]> wrote:
> > >>>
> > >>>> Oliver,
> > >>>>
> > >>>> Yep, tried that. Here's the current failure after that change and
> > >>>> current diff against latest svn.
> > >>>>
> > >>>>      [exec] LINK : warning LNK4224: /COMMENT is no longer supported;  
> > >>>> ignored
> > >>>>      [exec] lcms114.lib(cmserr.obj) : error LNK2019: unresolved
> > >>>> external symbol __iob referenced in function _cmsSignalError
> > >>>>
> > >>>>      [exec] ..\lcmm.dll : fatal error LNK1120: 1 unresolved externals
> > >>>>      [exec] NMAKE : fatal error U1077: 'link' : return code '0x460'
> > >>>>      [exec] Stop.
> > >>>>
> > >>>> thanks,
> > >>>> dims
> > >>>>
> > >>>> On 10/22/07, Oliver Deakin <[EMAIL PROTECTED]> wrote:
> > >>>>
> > >>>>> Hi Dims,
> > >>>>>
> > >>>>> Looks like you're doing pretty well, that's quite far into the native
> > >>>>> build! Interestingly, when I build the natives with MSVC .NET 2003 I
> > >>>>> also get the warning:
> > >>>>> LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of 
> > >>>>> other
> > >>>>> libs; use /NODEFAULTLIB:library
> > >>>>>
> > >>>>> but it is not an error and the build continues, so I wonder if it has
> > >>>>> been promoted to an error for MSVC 2005. I looked at your link line 
> > >>>>> and
> > >>>>> it is exactly the same as mine (which works) so Im guessing its a
> > >>>>> difference between linker versions. Having a google around it appears
> > >>>>> that libcmt.lib is the static version of the C runtime, whereas we 
> > >>>>> want
> > >>>>> to link against the dynamic version msvcrt.lib. It's not entirely 
> > >>>>> clear
> > >>>>> to me why it seems to be linking against both msvcrt.lib and 
> > >>>>> libcmt.lib.
> > >>>>>
> > >>>>> If you specify /NODEFAULTLIB:"libcmt.lib" in rules.mak does this help?
> > >>>>> Adding it to the two "link" lines should do the job I think - i.e. the
> > >>>>> link line for DLLNAME and the link line for EXENAME. Adding this 
> > >>>>> option
> > >>>>> to my .NET 2003 build doesn't seem to affect the build, and I can run
> > >>>>> the LUNI tests successfully so it doesn't appear to hurt.
> > >>>>>
> > >>>>> I wonder if we should have this flag always set so that we definitely
> > >>>>> don't link against the static C runtime library?
> > >>>>>
> > >>>>> Regards,
> > >>>>> Oliver
> > >>>>>
> > >>>>> Davanum Srinivas wrote:
> > >>>>>
> > >>>>>> Folks,
> > >>>>>>
> > >>>>>> Neex your help. Platform is Windows XP. Please see enclosed diff for
> > >>>>>> the changes i had to make to get this far.
> > >>>>>>
> > >>>>>> Products:
> > >>>>>> - Microsoft Platform SDK for Windows Server 2003 R2
> > >>>>>> - Microsoft Visual C++ 2005 Express Edition
> > >>>>>> - Microsoft Macro Assembler 8.0 (MASM) Package (x86) /
> > >>>>>>
> > >>>>>> Current failure:
> > >>>>>>
> > >>>>>>      [exec]     link  /debug /opt:icf /opt:ref /INCREMENTAL:NO 
> > >>>>>> /NOLOGO
> > >>>>>>  -entry:[EMAIL PROTECTED] -dll /BASE:0x13300000 -machine:i386
> > >>>>>> /comment:"LCMM Wrapper native code. (c) Copyright 2005 - 2006 The
> > >>>>>> Apache Software Foundation or its licensors, a
> > >>>>>> s applicable."  -subsystem:windows -out:..\lcmm.dll -map:..\lcmm.map
> > >>>>>> ..\shared\cmmerror.obj  ..\shared\cmmio.obj  ..\shared\
> > >>>>>> cmmxforms.obj  ..\shared\NativeCMM.obj
> > >>>>>> ..\shared\NativeImageFormat.obj lcmm.res
> > >>>>>> C:\APACHE\harmony\working_classlib\deploy\li
> > >>>>>> b\hycommon.lib 
> > >>>>>> C:\APACHE\harmony\working_classlib\deploy\lib\hythr.lib
> > >>>>>> C:\APACHE\harmony\working_classlib\deploy\lib\hysig.li
> > >>>>>> b  C:\APACHE\harmony\working_classlib\deploy\lib\hypool.lib
> > >>>>>> C:\APACHE\harmony\working_classlib\deploy\lib\vmi.lib C:\APACHE\h
> > >>>>>> armony\working_classlib\deploy\..\depends\libs\build\lcms\lcms114.lib
> > >>>>>> ws2_32.lib Iphlpapi.lib  kernel32.lib  ws2_32.lib advap
> > >>>>>> i32.lib user32.lib gdi32.lib  comdlg32.lib winspool.lib
> > >>>>>> C:\APACHE\harmony\working_classlib\deploy\lib\lcmm.exp
> > >>>>>>      [exec] LINK : warning LNK4224: /COMMENT is no longer supported; 
> > >>>>>>  ignored
> > >>>>>>      [exec] LIBCMT.lib(crtheap.obj) : error LNK2005: __malloc_crt
> > >>>>>> already defined in MSVCRT.lib(MSVCR80.dll)
> > >>>>>>      [exec] LIBCMT.lib(crt0dat.obj) : error LNK2005: __amsg_exit
> > >>>>>> already defined in MSVCRT.lib(MSVCR80.dll)
> > >>>>>>      [exec] LIBCMT.lib(crt0dat.obj) : error LNK2005: __initterm_e
> > >>>>>> already defined in MSVCRT.lib(MSVCR80.dll)
> > >>>>>>      [exec] LIBCMT.lib(crt0dat.obj) : error LNK2005: _exit already
> > >>>>>> defined in MSVCRT.lib(MSVCR80.dll)
> > >>>>>>      [exec] LIBCMT.lib(realloc.obj) : error LNK2005: _realloc already
> > >>>>>> defined in MSVCRT.lib(MSVCR80.dll)
> > >>>>>>      [exec] LIBCMT.lib(crt0init.obj) : error LNK2005: ___xi_a already
> > >>>>>> defined in MSVCRT.lib(cinitexe.obj)
> > >>>>>>      [exec] LIBCMT.lib(crt0init.obj) : error LNK2005: ___xi_z already
> > >>>>>> defined in MSVCRT.lib(cinitexe.obj)
> > >>>>>>      [exec] LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_a already
> > >>>>>> defined in MSVCRT.lib(cinitexe.obj)
> > >>>>>>      [exec] LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_z already
> > >>>>>> defined in MSVCRT.lib(cinitexe.obj)
> > >>>>>>      [exec] LIBCMT.lib(winxfltr.obj) : error LNK2005: 
> > >>>>>> ___CppXcptFilter
> > >>>>>> already defined in MSVCRT.lib(MSVCR80.dll)
> > >>>>>>      [exec] LIBCMT.lib(tidtable.obj) : error LNK2005: 
> > >>>>>> __encode_pointer
> > >>>>>> already defined in MSVCRT.lib(MSVCR80.dll)
> > >>>>>>      [exec] LIBCMT.lib(tidtable.obj) : error LNK2005: __encoded_null
> > >>>>>> already defined in MSVCRT.lib(MSVCR80.dll)
> > >>>>>>      [exec] LIBCMT.lib(tidtable.obj) : error LNK2005: 
> > >>>>>> __decode_pointer
> > >>>>>> already defined in MSVCRT.lib(MSVCR80.dll)
> > >>>>>>      [exec] LIBCMT.lib(mlock.obj) : error LNK2005: __unlock already
> > >>>>>> defined in MSVCRT.lib(MSVCR80.dll)
> > >>>>>>      [exec] LIBCMT.lib(mlock.obj) : error LNK2005: __lock already
> > >>>>>> defined in MSVCRT.lib(MSVCR80.dll)
> > >>>>>>      [exec] LIBCMT.lib(stricmp.obj) : error LNK2005: __stricmp 
> > >>>>>> already
> > >>>>>> defined in MSVCRT.lib(MSVCR80.dll)
> > >>>>>>      [exec] LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts 
> > >>>>>> with
> > >>>>>> use of other libs; use /NODEFAULTLIB:library
> > >>>>>>      [exec] LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts 
> > >>>>>> with
> > >>>>>> use of other libs; use /NODEFAULTLIB:library
> > >>>>>>      [exec] LIBCMT.lib(crt0.obj) : error LNK2019: unresolved external
> > >>>>>> symbol _main referenced in function ___tmainCRTStartup
> > >>>>>>      [exec] ..\lcmm.dll : fatal error LNK1120: 1 unresolved externals
> > >>>>>>      [exec] NMAKE : fatal error U1077: '"C:\Program Files\Microsoft
> > >>>>>> Visual Studio 8\VC\BIN\link.EXE"' : return code '0x460'
> > >>>>>>      [exec] Stop.
> > >>>>>>
> > >>>>>> Any ideas?
> > >>>>>>
> > >>>>>> thanks,
> > >>>>>> dims
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>> --
> > >>>>> Oliver Deakin
> > >>>>> Unless stated otherwise above:
> > >>>>> IBM United Kingdom Limited - Registered in England and Wales with 
> > >>>>> number 741598.
> > >>>>> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire 
> > >>>>> PO6 3AU
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>> --
> > >>>> Davanum Srinivas :: http://davanum.wordpress.com
> > >>>>
> > >>>>
> > >>>>
> > >>> --
> > >>> Davanum Srinivas :: http://davanum.wordpress.com
> > >>>
> > >>>
> > >> --
> > >> Davanum Srinivas :: http://davanum.wordpress.com
> > >>
> > >>
> > >
> > >
> > >
> >
> > --
> > Oliver Deakin
> > Unless stated otherwise above:
> > IBM United Kingdom Limited - Registered in England and Wales with number 
> > 741598.
> > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
> >
> >
>
>
> --
> Davanum Srinivas :: http://davanum.wordpress.com
>


-- 
Davanum Srinivas :: http://davanum.wordpress.com
Index: working_vm/build/make/targets/build.native.xml
===================================================================
--- working_vm/build/make/targets/build.native.xml      (revision 587081)
+++ working_vm/build/make/targets/build.native.xml      (working copy)
@@ -97,6 +97,7 @@
             <compiler refid="c.compiler" />
             <select os="win">
                 <compilerarg value="/Zi" />
+                               <compilerarg value="/wd4190" />
             </select>
             <select osfamily="unix">
                 <linkerarg value="-g" />
@@ -112,7 +113,12 @@
             <compiler refid="cpp.compiler" />
             <select os="win">
                 <compilerarg value="/Zi" />
-            </select>
+                               <compilerarg value="/wd4190" />
+                               <compilerarg value="/wd4996" />
+                               <compilerarg value="-DIVEC_H_INCLUDED"/>
+                               <compilerarg value="-DFVEC_H_INCLUDED"/>
+                               <compilerarg value="-DDVEC_H_INCLUDED"/>
+                       </select>
             <select osfamily="unix">
                 <compilerarg value="-fpic" />
                 <linkerarg value="-g" />
Index: working_vm/vm/thread/src/thread_native_basic.c
===================================================================
--- working_vm/vm/thread/src/thread_native_basic.c      (revision 587081)
+++ working_vm/vm/thread/src/thread_native_basic.c      (working copy)
@@ -369,7 +369,7 @@
 void VMCALL hythread_set_self(hythread_t thread) {
 #ifndef _WIN64
 #   if (_MSC_VER >= 1400)
-        __writefsdword(offsetof(NT_TIB, ArbitraryUserPointer), thread);
+        __writefsdword(offsetof(NT_TIB, ArbitraryUserPointer), (unsigned 
long)thread);
 #   else
         _asm{
             mov eax, thread
Index: working_classlib/depends/build/rules.mak
===================================================================
--- working_classlib/depends/build/rules.mak    (revision 587081)
+++ working_classlib/depends/build/rules.mak    (working copy)
@@ -38,6 +38,7 @@
 !ifdef LIBNAME
 $(LIBNAME): $(BUILDFILES) $(VIRTFILES) $(MDLLIBFILES)
        $(implib) /NOLOGO -subsystem:windows -out:$(LIBNAME) \
+       /NODEFAULTLIB:LIBC \
        $(HYLDFLAGS) -machine:$(CPU) \
        $(BUILDFILES) $(VIRTFILES) $(MDLLIBFILES)
 !endif
@@ -49,7 +50,8 @@
                $(COMMENT) \
        -subsystem:windows -out:$@ -map:$*.map \
        $(BUILDFILES) $(VIRTFILES) $(MDLLIBFILES) $(SYSLIBFILES) \
-       kernel32.lib  ws2_32.lib advapi32.lib user32.lib gdi32.lib \
+       /NODEFAULTLIB:LIBCMT /NODEFAULTLIB:LIBC /FORCE:UNRESOLVED \
+       msvcrt.lib kernel32.lib  ws2_32.lib advapi32.lib user32.lib gdi32.lib \
                comdlg32.lib winspool.lib  $(LIBPATH)$(*F).exp
        if exist $(DLLNAME).manifest \
                mt -manifest $(DLLNAME).manifest -outputresource:$(DLLNAME);#2
Index: working_classlib/depends/build/defines.mak
===================================================================
--- working_classlib/depends/build/defines.mak  (revision 587081)
+++ working_classlib/depends/build/defines.mak  (working copy)
@@ -38,6 +38,9 @@
 !ENDIF
 
 HYCOMMONCFLAGS = \
+  -D_CRT_SECURE_NO_DEPRECATE \
+  -D_CRT_SECURE_NO_WARNINGS \
+  /wd4996 \
   -$(WARNING_LEVEL) -GF -Gs -MD -Zm400 \
   -D_DLL -D_MT -D_WINSOCKAPI_ $(PLATFORM_64) \
   /I$(HY_HDK)\include /I$(HY_HDK)\jdk\include /I.
Index: 
working_classlib/modules/awt/src/main/native/win32wrapper/windows/WinDataTransfer.h
===================================================================
--- 
working_classlib/modules/awt/src/main/native/win32wrapper/windows/WinDataTransfer.h
 (revision 587081)
+++ 
working_classlib/modules/awt/src/main/native/win32wrapper/windows/WinDataTransfer.h
 (working copy)
@@ -122,7 +122,7 @@
     HRESULT getImage(UINT format, STGMEDIUM * pMedium);
     HRESULT getSerializedObject(UINT format, STGMEDIUM * pMedium);
 
-    CAtlArray<FORMATETC> formatArray;
+    CSimpleArray<FORMATETC> formatArray;
     jobject dataSnapshotGlobalRef;
 };
 
Index: 
working_classlib/modules/awt/src/main/native/win32wrapper/windows/WinDataTransfer.cpp
===================================================================
--- 
working_classlib/modules/awt/src/main/native/win32wrapper/windows/WinDataTransfer.cpp
       (revision 587081)
+++ 
working_classlib/modules/awt/src/main/native/win32wrapper/windows/WinDataTransfer.cpp
       (working copy)
@@ -21,8 +21,12 @@
 #include <windows.h>
 
 #include <atlbase.h>
+#include <objbase.h>
+
+extern CComModule _Module;
+
+#include <atlwin.h>
 #include <atlcom.h>
-#include <atlcoll.h>
 
 #include <oleidl.h>
 #include <shlobj.h>
@@ -32,9 +36,6 @@
 
 #pragma comment(lib, "gdi32.lib")
 
-class AtlModule : public CAtlModuleT<AtlModule> {
-} _AtlModule;
-
 #include "WinDataTransfer.h"
 
 // Data format names
@@ -797,7 +798,7 @@
     enum { maskText = 1, maskFileList = 2, maskUrl = 4, maskHtml = 8, 
maskImage = 16 };
     DWORD formatsMask = 0;
     
-    CAtlArray<jstring> formatList;
+    CSimpleArray<jstring> formatList;
 
     FORMATETC format;
     DWORD count = 0;
@@ -812,7 +813,7 @@
         if ((format.tymed & TYMED_ENHMF) != 0 
                 && format.cfFormat == CF_ENHMETAFILE) {
             jstring jstr = env->NewStringUTF(FORMAT_IMAGE);
-            formatList.SetAtGrow(formatList.GetCount(), jstr);
+            formatList.Add(jstr);
             continue;
         }
         if ((format.tymed & TYMED_HGLOBAL) == 0) {
@@ -820,38 +821,38 @@
         }
         if (format.cfFormat == CF_UNICODETEXT || format.cfFormat == CF_TEXT) {
             jstring jstr = env->NewStringUTF(FORMAT_TEXT);
-            formatList.SetAtGrow(formatList.GetCount(), jstr);
+            formatList.Add(jstr);
             continue;
         }
         if (format.cfFormat == CF_HDROP) {
             jstring jstr = env->NewStringUTF(FORMAT_FILE_LIST);
-            formatList.SetAtGrow(formatList.GetCount(), jstr);
+            formatList.Add(jstr);
             continue;
         }
         if (format.cfFormat == CF_DIB) {
             jstring jstr = env->NewStringUTF(FORMAT_IMAGE);
-            formatList.SetAtGrow(formatList.GetCount(), jstr);
+            formatList.Add(jstr);
             continue;
         }
         if (format.cfFormat == cfShellUrlA || format.cfFormat == cfShellUrlW) {
             jstring jstr = env->NewStringUTF(FORMAT_URL);
-            formatList.SetAtGrow(formatList.GetCount(), jstr);
+            formatList.Add(jstr);
             continue;
         }
         if (format.cfFormat == cfHTML) {
             jstring jstr = env->NewStringUTF(FORMAT_HTML);
-            formatList.SetAtGrow(formatList.GetCount(), jstr);
+            formatList.Add(jstr);
             continue;
         }
         jstring jstr = getSerializedFormatName(env, format.cfFormat);
         if (jstr != NULL) {
-            formatList.SetAtGrow(formatList.GetCount(), jstr);
+            formatList.Add(jstr);
         }
     }
     enumFormats.Release();
 
-    jobjectArray result = env->NewObjectArray((jsize)formatList.GetCount(), 
classString, NULL);
-    for (jsize i = 0; i < (jsize)formatList.GetCount(); i++) {
+    jobjectArray result = env->NewObjectArray((jsize)formatList.GetSize(), 
classString, NULL);
+    for (jsize i = 0; i < (jsize)formatList.GetSize(); i++) {
         env->SetObjectArrayElement(result, i, formatList[i]);
     }
     return result;
@@ -1011,13 +1012,13 @@
         FORMATETC * list;
         int listLen = getFormatsForName(env, formatName, &list);
         for (int j = 0; j < listLen; j++) {
-            formatArray.SetAtGrow(formatArray.GetCount(), list[j]);
+            formatArray.Add(list[j]);
         }
         if (listLen == 0) {
             UINT serializedFormat = getSerializedFormat(env, formatName);
             if (serializedFormat != 0) {
                 FORMATETC fmt = { serializedFormat, 0, DVASPECT_CONTENT, -1, 
TYMED_HGLOBAL };
-                formatArray.SetAtGrow(formatArray.GetCount(), fmt);
+                formatArray.Add(fmt);
             }
         }
     }
@@ -1089,7 +1090,7 @@
 STDMETHODIMP WinDataObject::EnumFormatEtc(DWORD dwDirection, 
                                           IEnumFORMATETC ** ppEnumFormatEtc) {
     if(dwDirection == DATADIR_GET) {
-        return SHCreateStdEnumFmtEtc((UINT)formatArray.GetCount(), 
+        return SHCreateStdEnumFmtEtc((UINT)formatArray.GetSize(), 
                 formatArray.GetData(), ppEnumFormatEtc);
     }
     return E_NOTIMPL;
@@ -1108,8 +1109,8 @@
 }
 
 int WinDataObject::getFormatIndex(FORMATETC * fmt) {
-    for (size_t i=0; i<formatArray.GetCount(); i++) {
-        const FORMATETC & f = formatArray.GetAt(i);
+    for (size_t i=0; i< (size_t)formatArray.GetSize(); i++) {
+        const FORMATETC & f = formatArray[i];
         if (f.cfFormat == fmt->cfFormat
                 && f.ptd == fmt->ptd
                 && f.dwAspect == fmt->dwAspect

Reply via email to