Index: trunk/src/shell32/dataobject.cpp
===================================================================
--- trunk/src/shell32/dataobject.cpp	(revision 3216)
+++ trunk/src/shell32/dataobject.cpp	(revision 3217)
@@ -1,3 +1,3 @@
-/* $Id: dataobject.cpp,v 1.1 1999-10-09 11:13:18 sandervl Exp $ */
+/* $Id: dataobject.cpp,v 1.2 2000-03-24 17:17:26 cbratschi Exp $ */
 
 /*
@@ -10,9 +10,9 @@
 
 /*
- *	IEnumFORMATETC, IDataObject
+ *      IEnumFORMATETC, IDataObject
  *
  * selecting and droping objects within the shell and/or common dialogs
  *
- *	Copyright 1998, 1999	<juergen.schmied@metronet.de>
+ *      Copyright 1998, 1999    <juergen.schmied@metronet.de>
  */
 
@@ -85,6 +85,6 @@
 LPENUMFORMATETC IEnumFORMATETC_Constructor(UINT cfmt, const FORMATETC afmt[])
 {
-	IEnumFORMATETCImpl* ef;
-	DWORD size=cfmt * sizeof(FORMATETC);
+        IEnumFORMATETCImpl* ef;
+        DWORD size=cfmt * sizeof(FORMATETC);
 
   dprintf(("SHELL32:dataobject:IEnumFORMATETC_Constructor(%08xh,%08xh)\n",
@@ -92,24 +92,24 @@
            afmt));
 
-	ef=(IEnumFORMATETCImpl*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IEnumFORMATETCImpl));
-
-	if(ef)
-	{
-	  ef->ref=1;
-	  ef->lpvtbl=&efvt;
-
-	  ef->countFmt = cfmt;
-	  ef->pFmt = (FORMATETC*)SHAlloc (size);
-
-	  if (ef->pFmt)
-	  {
-	    memcpy(ef->pFmt, afmt, size);
-	  }
-
-	  shell32_ObjCount++;
-	}
-
-	TRACE("(%p)->()\n",ef);
-	return (LPENUMFORMATETC)ef;
+        ef=(IEnumFORMATETCImpl*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IEnumFORMATETCImpl));
+
+        if(ef)
+        {
+          ef->ref=1;
+          ef->lpvtbl=&efvt;
+
+          ef->countFmt = cfmt;
+          ef->pFmt = (FORMATETC*)SHAlloc (size);
+
+          if (ef->pFmt)
+          {
+            memcpy(ef->pFmt, afmt, size);
+          }
+
+          shell32_ObjCount++;
+        }
+
+        TRACE("(%p)->()\n",ef);
+        return (LPENUMFORMATETC)ef;
 }
 
@@ -117,7 +117,7 @@
 static HRESULT WINAPI IEnumFORMATETC_fnQueryInterface(LPENUMFORMATETC iface, REFIID riid, LPVOID* ppvObj)
 {
-	ICOM_THIS(IEnumFORMATETCImpl,iface);
-	char    xriid[50];
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
+        ICOM_THIS(IEnumFORMATETCImpl,iface);
+        char    xriid[50];
+        WINE_StringFromCLSID((LPCLSID)riid,xriid);
 
   dprintf(("SHELL32:dataobject:IEnumFORMATETC_fnQueryInterface(%08xh,%08xh,%08xh)\n",
@@ -126,20 +126,20 @@
            xriid));
 
-			*ppvObj = NULL;
-
-	if(IsEqualIID(riid, &IID_IUnknown))
-	{ *ppvObj = This;
-	}
-	else if(IsEqualIID(riid, &IID_IEnumFORMATETC))
-	{ *ppvObj = (IDataObject*)This;
-	}
-
-	if(*ppvObj)
-	{ IEnumFORMATETC_AddRef((IEnumFORMATETC*)*ppvObj);
-	  TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj);
-	  return S_OK;
-	}
-	TRACE("-- Interface: E_NOINTERFACE\n");
-	return E_NOINTERFACE;
+                        *ppvObj = NULL;
+
+        if(IsEqualIID(riid, &IID_IUnknown))
+        { *ppvObj = This;
+        }
+        else if(IsEqualIID(riid, &IID_IEnumFORMATETC))
+        { *ppvObj = (IDataObject*)This;
+        }
+
+        if(*ppvObj)
+        { IEnumFORMATETC_AddRef((IEnumFORMATETC*)*ppvObj);
+          TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj);
+          return S_OK;
+        }
+        TRACE("-- Interface: E_NOINTERFACE\n");
+        return E_NOINTERFACE;
 
 }
@@ -148,5 +148,5 @@
 static ULONG WINAPI IEnumFORMATETC_fnAddRef(LPENUMFORMATETC iface)
 {
-	ICOM_THIS(IEnumFORMATETCImpl,iface);
+        ICOM_THIS(IEnumFORMATETCImpl,iface);
 
   dprintf(("SHELL32:dataobject:IEnumFORMATETC_fnAddRef(%08xh,%08xh)\n",
@@ -154,6 +154,6 @@
            This->ref));
 
-	shell32_ObjCount++;
-	return ++(This->ref);
+        shell32_ObjCount++;
+        return ++(This->ref);
 }
 
@@ -161,20 +161,20 @@
 static ULONG WINAPI IEnumFORMATETC_fnRelease(LPENUMFORMATETC iface)
 {
-	ICOM_THIS(IEnumFORMATETCImpl,iface);
+        ICOM_THIS(IEnumFORMATETCImpl,iface);
 
   dprintf(("SHELL32:dataobject:IEnumFORMATETC_fnRelease(%08xh)\n",
            This));
 
-	shell32_ObjCount--;
-
-	if (!--(This->ref))
-	{ TRACE(" destroying IEnumFORMATETC(%p)\n",This);
-	  if (This->pFmt)
-	  { SHFree (This->pFmt);
-	  }
-	  HeapFree(GetProcessHeap(),0,This);
-	  return 0;
-	}
-	return This->ref;
+        shell32_ObjCount--;
+
+        if (!--(This->ref))
+        { TRACE(" destroying IEnumFORMATETC(%p)\n",This);
+          if (This->pFmt)
+          { SHFree (This->pFmt);
+          }
+          HeapFree(GetProcessHeap(),0,This);
+          return 0;
+        }
+        return This->ref;
 }
 
@@ -182,7 +182,7 @@
 static HRESULT WINAPI IEnumFORMATETC_fnNext(LPENUMFORMATETC iface, ULONG celt, FORMATETC *rgelt, ULONG *pceltFethed)
 {
-	ICOM_THIS(IEnumFORMATETCImpl,iface);
-	UINT cfetch;
-	HRESULT hres = S_FALSE;
+        ICOM_THIS(IEnumFORMATETCImpl,iface);
+        UINT cfetch;
+        HRESULT hres = S_FALSE;
 
   dprintf(("SHELL32:dataobject:IEnumFORMATETC_fnNext(%08xh,%08xh,%08xh,%08xh)\n",
@@ -192,24 +192,24 @@
            pceltFethed));
 
-	if (This->posFmt < This->countFmt)
-	{
-	  cfetch = This->countFmt - This->posFmt;
-	  if (cfetch >= celt)
-	  {
-	    cfetch = celt;
-	    hres = S_OK;
-	  }
-	  memcpy(rgelt, &This->pFmt[This->posFmt], cfetch * sizeof(FORMATETC));
-	  This->posFmt += cfetch;
-	}
-	else
-	{
-	  cfetch = 0;
-	}
-
-	if (pceltFethed)
-	{
-	  *pceltFethed = cfetch;
-	}
+        if (This->posFmt < This->countFmt)
+        {
+          cfetch = This->countFmt - This->posFmt;
+          if (cfetch >= celt)
+          {
+            cfetch = celt;
+            hres = S_OK;
+          }
+          memcpy(rgelt, &This->pFmt[This->posFmt], cfetch * sizeof(FORMATETC));
+          This->posFmt += cfetch;
+        }
+        else
+        {
+          cfetch = 0;
+        }
+
+        if (pceltFethed)
+        {
+          *pceltFethed = cfetch;
+        }
 
         return hres;
@@ -219,5 +219,5 @@
 static HRESULT WINAPI IEnumFORMATETC_fnSkip(LPENUMFORMATETC iface, ULONG celt)
 {
-	ICOM_THIS(IEnumFORMATETCImpl,iface);
+        ICOM_THIS(IEnumFORMATETCImpl,iface);
 
   dprintf(("SHELL32:dataobject:IEnumFORMATETC_fnSkip(%08xh,%08xh) to be fixed\n",
@@ -225,15 +225,15 @@
            celt));
 
-	This->posFmt += celt;
-	if (This->posFmt > This->countFmt)
-	{
-	  This->posFmt = This->countFmt;
-	  return S_FALSE;
-	}
-	return S_OK;
+        This->posFmt += celt;
+        if (This->posFmt > This->countFmt)
+        {
+          This->posFmt = This->countFmt;
+          return S_FALSE;
+        }
+        return S_OK;
 }
 static HRESULT WINAPI IEnumFORMATETC_fnReset(LPENUMFORMATETC iface)
 {
-	ICOM_THIS(IEnumFORMATETCImpl,iface);
+        ICOM_THIS(IEnumFORMATETCImpl,iface);
 
   dprintf(("SHELL32:dataobject:IEnumFORMATETC_fnReset(%08xh) to be fixed\n",
@@ -247,5 +247,5 @@
 static HRESULT WINAPI IEnumFORMATETC_fnClone(LPENUMFORMATETC iface, LPENUMFORMATETC* ppenum)
 {
-	ICOM_THIS(IEnumFORMATETCImpl,iface);
+        ICOM_THIS(IEnumFORMATETCImpl,iface);
 
   dprintf(("SHELL32:dataobject:IEnumFORMATETC_fnClone(%08xh) not implemented\n",
@@ -253,5 +253,5 @@
            ppenum));
 
-	return E_NOTIMPL;
+        return E_NOTIMPL;
 }
 
@@ -310,17 +310,17 @@
 
 static IDLList_VTable idllvt =
-{	IDLList_GetState,
-	IDLList_GetElement,
-	IDLList_GetCount,
-	IDLList_StoreItem,
-	IDLList_AddItems,
-	IDLList_InitList,
-	IDLList_CleanList
+{       IDLList_GetState,
+        IDLList_GetElement,
+        IDLList_GetCount,
+        IDLList_StoreItem,
+        IDLList_AddItems,
+        IDLList_InitList,
+        IDLList_CleanList
 };
 
 LPIDLLIST IDLList_Constructor (UINT uStep)
 {
-	LPIDLLIST lpidll;
-	lpidll = (LPIDLLIST)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDLList));
+        LPIDLLIST lpidll;
+        lpidll = (LPIDLLIST)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDLList));
 
   dprintf(("SHELL32:dataobject:IDLList_Constructor(%08xh, %08xh) not implemented\n",
@@ -328,11 +328,11 @@
            uStep));
 
-	if (lpidll)
-	{
-	  lpidll->lpvtbl=&idllvt;
-	  lpidll->uStep=uStep;
-	}
-
-	return lpidll;
+        if (lpidll)
+        {
+          lpidll->lpvtbl=&idllvt;
+          lpidll->uStep=uStep;
+        }
+
+        return lpidll;
 }
 
@@ -343,5 +343,5 @@
            THIS));
 
-	IDLList_CleanList(THIS);
+        IDLList_CleanList(THIS);
 }
 
@@ -353,12 +353,12 @@
            THIS->dpa));
 
-	if (THIS->uStep == 0)
-	{
-	  if (THIS->dpa)
-	    return(State_Init);
-
-	  return(State_OutOfMem);
-	}
-	return(State_UnInit);
+        if (THIS->uStep == 0)
+        {
+          if (THIS->dpa)
+            return(State_Init);
+
+          return(State_OutOfMem);
+        }
+        return(State_UnInit);
 }
 
@@ -370,5 +370,5 @@
            nIndex));
 
-	return((LPITEMIDLIST)pDPA_GetPtr(THIS->dpa, nIndex));
+        return((LPITEMIDLIST)pDPA_GetPtr(THIS->dpa, nIndex));
 }
 
@@ -379,5 +379,5 @@
            THIS));
 
-	return(IDLList_GetState(THIS)==State_Init ? DPA_GetPtrCount(THIS->dpa) : 0);
+        return(IDLList_GetState(THIS)==State_Init ? DPA_GetPtrCount(THIS->dpa) : 0);
 }
 
@@ -389,8 +389,8 @@
            pidl));
 
-	if (pidl)
+        if (pidl)
         { if (IDLList_InitList(THIS) && pDPA_InsertPtr(THIS->dpa, 0x7fff, (LPSTR)pidl)>=0)
-	    return(TRUE);
-	  ILFree(pidl);
+            return(TRUE);
+          ILFree(pidl);
         }
         IDLList_CleanList(THIS);
@@ -401,5 +401,5 @@
 static BOOL WINAPI IDLList_AddItems(LPIDLLIST THIS, LPITEMIDLIST *apidl, UINT cidl)
 {
-	INT i;
+        INT i;
 
   dprintf(("SHELL32:dataobject:IDLList_AddItems((%p)->(apidl=%p cidl=%u)\n",
@@ -408,7 +408,7 @@
            cidl));
 
-	for (i=0; i<cidl; ++i)
+        for (i=0; i<cidl; ++i)
         { if (!IDLList_StoreItem(THIS, ILClone((LPCITEMIDLIST)apidl[i])))
-	    return(FALSE);
+            return(FALSE);
         }
         return(TRUE);
@@ -421,16 +421,16 @@
            THIS));
 
-	switch (IDLList_GetState(THIS))
+        switch (IDLList_GetState(THIS))
         { case State_Init:
-	    return(TRUE);
-
-	  case State_OutOfMem:
-	    return(FALSE);
-
-	  case State_UnInit:
-	  default:
-	    THIS->dpa = pDPA_Create(THIS->uStep);
-	    THIS->uStep = 0;
-	    return(IDLList_InitList(THIS));
+            return(TRUE);
+
+          case State_OutOfMem:
+            return(FALSE);
+
+          case State_UnInit:
+          default:
+            THIS->dpa = pDPA_Create(THIS->uStep);
+            THIS->uStep = 0;
+            return(IDLList_InitList(THIS));
         }
 }
@@ -439,13 +439,13 @@
 static void WINAPI IDLList_CleanList(LPIDLLIST THIS)
 {
-	INT i;
+        INT i;
 
   dprintf(("SHELL32:dataobject:IDLList_CleanList(%p)\n",
            THIS));
 
-	if (THIS->uStep != 0)
+        if (THIS->uStep != 0)
         { THIS->dpa = NULL;
-	  THIS->uStep = 0;
-	  return;
+          THIS->uStep = 0;
+          return;
         }
 
@@ -471,16 +471,16 @@
 typedef struct
 {
-	/* IUnknown fields */
-	ICOM_VTABLE(IDataObject)* lpvtbl;
-	DWORD		ref;
-
-	/* IDataObject fields */
-	LPIDLLIST	lpill;       /* the data of the dataobject */
-	LPITEMIDLIST	pidl;
-
-	FORMATETC	pFormatEtc[MAX_FORMATS];
-	UINT		cfShellIDList;
-	UINT		cfFileGroupDesc;
-	UINT		cfFileContents;
+        /* IUnknown fields */
+        ICOM_VTABLE(IDataObject)* lpvtbl;
+        DWORD           ref;
+
+        /* IDataObject fields */
+        LPIDLLIST       lpill;       /* the data of the dataobject */
+        LPITEMIDLIST    pidl;
+
+        FORMATETC       pFormatEtc[MAX_FORMATS];
+        UINT            cfShellIDList;
+        UINT            cfFileGroupDesc;
+        UINT            cfFileContents;
 
 } IDataObjectImpl;
@@ -493,7 +493,7 @@
 static HRESULT WINAPI IDataObject_fnQueryInterface(LPDATAOBJECT iface, REFIID riid, LPVOID * ppvObj)
 {
-	ICOM_THIS(IDataObjectImpl,iface);
-	char    xriid[50];
-	WINE_StringFromCLSID((LPCLSID)riid,xriid);
+        ICOM_THIS(IDataObjectImpl,iface);
+        char    xriid[50];
+        WINE_StringFromCLSID((LPCLSID)riid,xriid);
 
   dprintf(("SHELL32:dataobject:IDataObject_fnQueryInterface((%p)->(\n\tIID:\t%s,%p)\n",
@@ -502,20 +502,20 @@
            ppvObj));
 
-	*ppvObj = NULL;
-
-	if(IsEqualIID(riid, &IID_IUnknown))          /*IUnknown*/
-	{ *ppvObj = This;
-	}
-	else if(IsEqualIID(riid, &IID_IDataObject))  /*IDataObject*/
-	{ *ppvObj = (IDataObject*)This;
-	}
-
-	if(*ppvObj)
-	{ IDataObject_AddRef((IDataObject*)*ppvObj);
-	  TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj);
-	  return S_OK;
-	}
-	TRACE("-- Interface: E_NOINTERFACE\n");
-	return E_NOINTERFACE;
+        *ppvObj = NULL;
+
+        if(IsEqualIID(riid, &IID_IUnknown))          /*IUnknown*/
+        { *ppvObj = This;
+        }
+        else if(IsEqualIID(riid, &IID_IDataObject))  /*IDataObject*/
+        { *ppvObj = (IDataObject*)This;
+        }
+
+        if(*ppvObj)
+        { IDataObject_AddRef((IDataObject*)*ppvObj);
+          TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj);
+          return S_OK;
+        }
+        TRACE("-- Interface: E_NOINTERFACE\n");
+        return E_NOINTERFACE;
 }
 /**************************************************************************
@@ -524,5 +524,5 @@
 static ULONG WINAPI IDataObject_fnAddRef(LPDATAOBJECT iface)
 {
-	ICOM_THIS(IDataObjectImpl,iface);
+        ICOM_THIS(IDataObjectImpl,iface);
 
   dprintf(("SHELL32:dataobject:IDataObject_fnAddRef((%p)->(count=%lu)\n",
@@ -530,6 +530,6 @@
            This->ref));
 
-	shell32_ObjCount++;
-	return ++(This->ref);
+        shell32_ObjCount++;
+        return ++(This->ref);
 }
 /**************************************************************************
@@ -538,16 +538,16 @@
 static ULONG WINAPI IDataObject_fnRelease(LPDATAOBJECT iface)
 {
-	ICOM_THIS(IDataObjectImpl,iface);
+        ICOM_THIS(IDataObjectImpl,iface);
   dprintf(("SHELL32:dataobject:IDataObject_fnRelease(%p)\n",
            This));
-	shell32_ObjCount--;
-
-	if (!--(This->ref))
-	{ TRACE(" destroying IDataObject(%p)\n",This);
-	  IDLList_Destructor(This->lpill);
-	  HeapFree(GetProcessHeap(),0,This);
-	  return 0;
-	}
-	return This->ref;
+        shell32_ObjCount--;
+
+        if (!--(This->ref))
+        { TRACE(" destroying IDataObject(%p)\n",This);
+          IDLList_Destructor(This->lpill);
+          HeapFree(GetProcessHeap(),0,This);
+          return 0;
+        }
+        return This->ref;
 }
 
@@ -557,15 +557,15 @@
 static HRESULT WINAPI IDataObject_fnGetData(LPDATAOBJECT iface, LPFORMATETC pformatetcIn, STGMEDIUM *pmedium)
 {
-	ICOM_THIS(IDataObjectImpl,iface);
-
-	char	szTemp[256];
-	UINT	cItems;
-	DWORD	sizeCIDA, sizePidl, nOffset, nSize;
-	LPCIDA	pcida;
-	HGLOBAL	hmem;
-	int	i;
-	LPITEMIDLIST	pidl;
-	
-	GetClipboardFormatNameA (pformatetcIn->cfFormat, szTemp, 256);
+        ICOM_THIS(IDataObjectImpl,iface);
+
+        char    szTemp[256];
+        UINT    cItems;
+        DWORD   sizeCIDA, sizePidl, nOffset, nSize;
+        LPCIDA  pcida;
+        HGLOBAL hmem;
+        int     i;
+        LPITEMIDLIST    pidl;
+
+        GetClipboardFormatNameA (pformatetcIn->cfFormat, szTemp, 256);
 
   dprintf(("SHELL32:dataobject:IDataObject_fnGetData(%p)->(%p %p format=%s)\n",
@@ -575,64 +575,64 @@
            szTemp));
 
-	/* test expected format */
-	if (!(pformatetcIn->cfFormat == This->cfShellIDList))
-	{
-	  FIXME("-- clipformat not implemented\n");
-	  return (E_INVALIDARG);
-	}
-
-	if (pformatetcIn->ptd==NULL
-		&& (pformatetcIn->dwAspect & DVASPECT_CONTENT)
-		&& pformatetcIn->lindex==-1
-		&& (pformatetcIn->tymed&TYMED_HGLOBAL))
-	{
-	  cItems = This->lpill->lpvtbl->fnGetCount(This->lpill);
-	  if (cItems < 1) return(E_UNEXPECTED);
-	
-	  sizeCIDA = sizeof(CIDA) + sizeof (UINT)*(cItems);	/* without any pidl */
-	  sizePidl = ILGetSize (This->pidl);			/* add root pidl */
-
-	  nSize = sizeCIDA + sizePidl;
-	  hmem = GlobalAlloc(GHND|GMEM_SHARE, nSize);		
-	  if (!hmem) return(E_OUTOFMEMORY);
-	  pcida = (CIDA*)GlobalLock (hmem);
-
-	  nOffset = sizeCIDA;				/* start after the CIDA */
-	  pcida->cidl = cItems;
-
-	  pcida->aoffset[0] = nOffset;			/* first element */
-	  memcpy(((LPBYTE)pcida)+nOffset, This->pidl, sizePidl);
-	  nOffset += sizePidl;
-	  pdump(This->pidl);
-
-	  for (i=0; i< cItems; i++)
-	  {
-	    pidl = This->lpill->lpvtbl->fnGetElement(This->lpill, i);
-	    sizePidl = ILGetSize (pidl);
-	    nSize += sizePidl;				/* size of the structure */
-	    pdump(pidl);
-
-	    GlobalUnlock(hmem);				/* grow memory */
-	    hmem = GlobalReAlloc(hmem, nSize, GHND|GMEM_SHARE);
-	    if (!hmem) return(E_OUTOFMEMORY);
-	    pcida = (CIDA*)GlobalLock (hmem);
-
-	    pcida->aoffset[i+1] = nOffset;		/* copy element */
-	    memcpy(((LPBYTE)pcida)+nOffset, pidl, sizePidl);
-	    nOffset += sizePidl;
-	  }
-
-	  GlobalUnlock(hmem);
-
-	  pmedium->tymed = TYMED_HGLOBAL;
-	  pmedium->u.hGlobal = hmem;
-	  pmedium->pUnkForRelease = NULL;
-
-	  TRACE("(%p)->(cida at %p)\n", This, pcida);
-	  return hmem;
-	}
-
-	FIXME("-- can't serve format\n");
-	return (E_INVALIDARG);
+        /* test expected format */
+        if (!(pformatetcIn->cfFormat == This->cfShellIDList))
+        {
+          FIXME("-- clipformat not implemented\n");
+          return (E_INVALIDARG);
+        }
+
+        if (pformatetcIn->ptd==NULL
+                && (pformatetcIn->dwAspect & DVASPECT_CONTENT)
+                && pformatetcIn->lindex==-1
+                && (pformatetcIn->tymed&TYMED_HGLOBAL))
+        {
+          cItems = This->lpill->lpvtbl->fnGetCount(This->lpill);
+          if (cItems < 1) return(E_UNEXPECTED);
+
+          sizeCIDA = sizeof(CIDA) + sizeof (UINT)*(cItems);     /* without any pidl */
+          sizePidl = ILGetSize (This->pidl);                    /* add root pidl */
+
+          nSize = sizeCIDA + sizePidl;
+          hmem = GlobalAlloc(GHND|GMEM_SHARE, nSize);
+          if (!hmem) return(E_OUTOFMEMORY);
+          pcida = (CIDA*)GlobalLock (hmem);
+
+          nOffset = sizeCIDA;                           /* start after the CIDA */
+          pcida->cidl = cItems;
+
+          pcida->aoffset[0] = nOffset;                  /* first element */
+          memcpy(((LPBYTE)pcida)+nOffset, This->pidl, sizePidl);
+          nOffset += sizePidl;
+          pdump(This->pidl);
+
+          for (i=0; i< cItems; i++)
+          {
+            pidl = This->lpill->lpvtbl->fnGetElement(This->lpill, i);
+            sizePidl = ILGetSize (pidl);
+            nSize += sizePidl;                          /* size of the structure */
+            pdump(pidl);
+
+            GlobalUnlock(hmem);                         /* grow memory */
+            hmem = GlobalReAlloc(hmem, nSize, GHND|GMEM_SHARE);
+            if (!hmem) return(E_OUTOFMEMORY);
+            pcida = (CIDA*)GlobalLock (hmem);
+
+            pcida->aoffset[i+1] = nOffset;              /* copy element */
+            memcpy(((LPBYTE)pcida)+nOffset, pidl, sizePidl);
+            nOffset += sizePidl;
+          }
+
+          GlobalUnlock(hmem);
+
+          pmedium->tymed = TYMED_HGLOBAL;
+          pmedium->u.hGlobal = hmem;
+          pmedium->pUnkForRelease = NULL;
+
+          TRACE("(%p)->(cida at %p)\n", This, pcida);
+          return S_OK;
+        }
+
+        FIXME("-- can't serve format\n");
+        return (E_INVALIDARG);
 }
 
@@ -640,5 +640,5 @@
 static HRESULT WINAPI IDataObject_fnGetDataHere(LPDATAOBJECT iface, LPFORMATETC pformatetc, STGMEDIUM *pmedium)
 {
-	ICOM_THIS(IDataObjectImpl,iface);
+        ICOM_THIS(IDataObjectImpl,iface);
   dprintf(("SHELL32:dataobject:IDataObject_fnGetDataHere(%p)->(%p %p) not implemented\n",
            This,
@@ -646,5 +646,5 @@
            pmedium));
 
-	return E_NOTIMPL;
+        return E_NOTIMPL;
 }
 
@@ -652,7 +652,7 @@
 static HRESULT WINAPI IDataObject_fnQueryGetData(LPDATAOBJECT iface, LPFORMATETC pformatetc)
 {
-	ICOM_THIS(IDataObjectImpl,iface);
-	UINT i;
-	
+        ICOM_THIS(IDataObjectImpl,iface);
+        UINT i;
+
   dprintf(("SHELL32:dataobject:IDataObject_fnQueryGetData((%p)->(fmt=0x%08x tym=0x%08lx)\n",
            This,
@@ -660,18 +660,18 @@
            pformatetc->tymed));
 
-	if(!(DVASPECT_CONTENT & pformatetc->dwAspect))
-	  return DV_E_DVASPECT;
-
-	/* check our formats table what we have */
-	for (i=0; i<MAX_FORMATS; i++)
-	{
-	  if ((This->pFormatEtc[i].cfFormat == pformatetc->cfFormat)
-	   && (This->pFormatEtc[i].tymed == pformatetc->tymed))
-	  {
-	    return S_OK;
-	  }
-	}
-
-	return DV_E_TYMED;
+        if(!(DVASPECT_CONTENT & pformatetc->dwAspect))
+          return DV_E_DVASPECT;
+
+        /* check our formats table what we have */
+        for (i=0; i<MAX_FORMATS; i++)
+        {
+          if ((This->pFormatEtc[i].cfFormat == pformatetc->cfFormat)
+           && (This->pFormatEtc[i].tymed == pformatetc->tymed))
+          {
+            return S_OK;
+          }
+        }
+
+        return DV_E_TYMED;
 }
 
@@ -679,5 +679,5 @@
 static HRESULT WINAPI IDataObject_fnGetCanonicalFormatEtc(LPDATAOBJECT iface, LPFORMATETC pformatetcIn, LPFORMATETC pformatetcOut)
 {
-	ICOM_THIS(IDataObjectImpl,iface);
+        ICOM_THIS(IDataObjectImpl,iface);
 
   dprintf(("SHELL32:dataobject:IDataObject_fnGetCanonicalFormatEtc((%p)->(%p %p) not implemented\n",
@@ -686,5 +686,5 @@
            pformatetcOut));
 
-	return E_NOTIMPL;
+        return E_NOTIMPL;
 }
 
@@ -692,5 +692,5 @@
 static HRESULT WINAPI IDataObject_fnSetData(LPDATAOBJECT iface, LPFORMATETC pformatetc, STGMEDIUM *pmedium, BOOL fRelease)
 {
-	ICOM_THIS(IDataObjectImpl,iface);
+        ICOM_THIS(IDataObjectImpl,iface);
   dprintf(("SHELL32:dataobject:IDataObject_fnSetData((%p)->(%p %p %08xh) not implemented\n",
            This,
@@ -698,5 +698,5 @@
            pmedium,
            fRelease));
-	return E_NOTIMPL;
+        return E_NOTIMPL;
 }
 
@@ -704,5 +704,5 @@
 static HRESULT WINAPI IDataObject_fnEnumFormatEtc(LPDATAOBJECT iface, DWORD dwDirection, IEnumFORMATETC **ppenumFormatEtc)
 {
-	ICOM_THIS(IDataObjectImpl,iface);
+        ICOM_THIS(IDataObjectImpl,iface);
 
   dprintf(("SHELL32:dataobject:IDataObject_fnEnumFormatEtc((%p)->(%08xh %p)\n",
@@ -711,18 +711,18 @@
            ppenumFormatEtc));
 
-	*ppenumFormatEtc=NULL;
-
-	/* only get data */
-	if (DATADIR_GET == dwDirection)
-	{
-	  *ppenumFormatEtc = IEnumFORMATETC_Constructor(MAX_FORMATS, This->pFormatEtc);
-	  return (*ppenumFormatEtc) ? S_OK : E_FAIL;
-	}
-	
-	return E_NOTIMPL;
+        *ppenumFormatEtc=NULL;
+
+        /* only get data */
+        if (DATADIR_GET == dwDirection)
+        {
+          *ppenumFormatEtc = IEnumFORMATETC_Constructor(MAX_FORMATS, This->pFormatEtc);
+          return (*ppenumFormatEtc) ? S_OK : E_FAIL;
+        }
+
+        return E_NOTIMPL;
 }
 static HRESULT WINAPI IDataObject_fnDAdvise(LPDATAOBJECT iface, FORMATETC *pformatetc, DWORD advf, IAdviseSink *pAdvSink, DWORD *pdwConnection)
 {
-	ICOM_THIS(IDataObjectImpl,iface);
+        ICOM_THIS(IDataObjectImpl,iface);
   dprintf(("SHELL32:dataobject:IDataObject_fnDAdvise((%p)->(%p %08xh %p %p) not implemented.\n",
            This,
@@ -732,5 +732,5 @@
            pdwConnection));
 
-	return E_NOTIMPL;
+        return E_NOTIMPL;
 }
 
@@ -738,35 +738,35 @@
 static HRESULT WINAPI IDataObject_fnDUnadvise(LPDATAOBJECT iface, DWORD dwConnection)
 {
-	ICOM_THIS(IDataObjectImpl,iface);
+        ICOM_THIS(IDataObjectImpl,iface);
   dprintf(("SHELL32:dataobject:IDataObject_fnDUnadvise((%p)->(%08xh) not implemented.\n",
            This,
            dwConnection));
-	return E_NOTIMPL;
+        return E_NOTIMPL;
 }
 static HRESULT WINAPI IDataObject_fnEnumDAdvise(LPDATAOBJECT iface, IEnumSTATDATA **ppenumAdvise)
 {
-	ICOM_THIS(IDataObjectImpl,iface);
+        ICOM_THIS(IDataObjectImpl,iface);
   dprintf(("SHELL32:dataobject:IDataObject_fnEnumDAdvise((%p)->(%p) not implemented.\n",
            This,
            ppenumAdvise));
 
-	return E_NOTIMPL;
+        return E_NOTIMPL;
 }
 
 static struct ICOM_VTABLE(IDataObject) dtovt =
 {
-	ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
-	IDataObject_fnQueryInterface,
-	IDataObject_fnAddRef,
-	IDataObject_fnRelease,
-	IDataObject_fnGetData,
-	IDataObject_fnGetDataHere,
-	IDataObject_fnQueryGetData,
-	IDataObject_fnGetCanonicalFormatEtc,
-	IDataObject_fnSetData,
-	IDataObject_fnEnumFormatEtc,
-	IDataObject_fnDAdvise,
-	IDataObject_fnDUnadvise,
-	IDataObject_fnEnumDAdvise
+        ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
+        IDataObject_fnQueryInterface,
+        IDataObject_fnAddRef,
+        IDataObject_fnRelease,
+        IDataObject_fnGetData,
+        IDataObject_fnGetDataHere,
+        IDataObject_fnQueryGetData,
+        IDataObject_fnGetCanonicalFormatEtc,
+        IDataObject_fnSetData,
+        IDataObject_fnEnumFormatEtc,
+        IDataObject_fnDAdvise,
+        IDataObject_fnDUnadvise,
+        IDataObject_fnEnumDAdvise
 };
 
@@ -776,36 +776,36 @@
 LPDATAOBJECT IDataObject_Constructor(HWND hwndOwner, LPITEMIDLIST pMyPidl, LPITEMIDLIST * apidl, UINT cidl)
 {
-	IDataObjectImpl* dto;
-
-	dto = (IDataObjectImpl*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDataObjectImpl));
-
-	if (dto)
-	{
-	  dto->ref=1;
-	  dto->lpvtbl=&dtovt;
-	  dto->pidl=ILClone(pMyPidl);
-
-	  /* fill the ItemID List List */
-	  dto->lpill = IDLList_Constructor (8);
-	  if (! dto->lpill )
-	    return NULL;
-	
-	  dto->lpill->lpvtbl->fnAddItems(dto->lpill, apidl, cidl);
-
-	  /* */
-	  dto->cfShellIDList = RegisterClipboardFormatA(CFSTR_SHELLIDLIST);
-/*	  dto->cfFileGroupDesc = RegisterClipboardFormatA(CFSTR_FILEDESCRIPTORA);
-	  dto->cfFileContents = RegisterClipboardFormatA(CFSTR_FILECONTENTS);
+        IDataObjectImpl* dto;
+
+        dto = (IDataObjectImpl*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDataObjectImpl));
+
+        if (dto)
+        {
+          dto->ref=1;
+          dto->lpvtbl=&dtovt;
+          dto->pidl=ILClone(pMyPidl);
+
+          /* fill the ItemID List List */
+          dto->lpill = IDLList_Constructor (8);
+          if (! dto->lpill )
+            return NULL;
+
+          dto->lpill->lpvtbl->fnAddItems(dto->lpill, apidl, cidl);
+
+          /* */
+          dto->cfShellIDList = RegisterClipboardFormatA(CFSTR_SHELLIDLIST);
+/*        dto->cfFileGroupDesc = RegisterClipboardFormatA(CFSTR_FILEDESCRIPTORA);
+          dto->cfFileContents = RegisterClipboardFormatA(CFSTR_FILECONTENTS);
 */
-	  InitFormatEtc(dto->pFormatEtc[0], dto->cfShellIDList, TYMED_HGLOBAL);
-
-	  shell32_ObjCount++;
-	}
-	
+          InitFormatEtc(dto->pFormatEtc[0], dto->cfShellIDList, TYMED_HGLOBAL);
+
+          shell32_ObjCount++;
+        }
+
   dprintf(("SHELL32:dataobject:IDataObject_Constructor((%p)->(apidl=%p cidl=%u)\n",
            dto,
            apidl,
            cidl));
-	return (LPDATAOBJECT)dto;
-}
-
+        return (LPDATAOBJECT)dto;
+}
+
Index: trunk/src/shell32/shlfolder.cpp
===================================================================
--- trunk/src/shell32/shlfolder.cpp	(revision 3216)
+++ trunk/src/shell32/shlfolder.cpp	(revision 3217)
@@ -1,3 +1,3 @@
-/* $Id: shlfolder.cpp,v 1.7 2000-03-22 16:55:52 cbratschi Exp $ */
+/* $Id: shlfolder.cpp,v 1.8 2000-03-24 17:17:27 cbratschi Exp $ */
 /*
  * Shell Folder stuff
@@ -1656,6 +1656,6 @@
  { IDS_SHV_COLUMN1, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 15 },
  { IDS_SHV_COLUMN3, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 },
- { IDS_SHV_COLUMN6, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 },
- { IDS_SHV_COLUMN7, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 },
+ { IDS_SHV_COLUMN3DV, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 },
+ { IDS_SHV_COLUMN4DV, SHCOLSTATE_TYPE_STR | SHCOLSTATE_ONBYDEFAULT, LVCFMT_RIGHT, 10 },
 };
 #define MYCOMPUTERSHELLVIEWCOLUMNS 4
Index: trunk/src/shell32/shlview.cpp
===================================================================
--- trunk/src/shell32/shlview.cpp	(revision 3216)
+++ trunk/src/shell32/shlview.cpp	(revision 3217)
@@ -1,3 +1,3 @@
-/* $Id: shlview.cpp,v 1.7 2000-03-22 16:55:52 cbratschi Exp $ */
+/* $Id: shlview.cpp,v 1.8 2000-03-24 17:17:28 cbratschi Exp $ */
 /*
  * ShellView
@@ -14,5 +14,5 @@
  * appearing in the view. To fix this it should use the IShellFolder2
  * interface when possible to get the informations dynamically
- * this will take a lot of work to implemet and wont likely not
+ * this will take a lot of work to implement and wont likely not
  * be done in near future
  * Please considder this when code new features. Mail me if you
@@ -105,4 +105,5 @@
 #define LISTVIEW_COLUMN_TIME 3
 #define LISTVIEW_COLUMN_ATTRIB 4
+//CB: todo: drive view!
 
 /*menu items */
@@ -328,5 +329,5 @@
         lvColumn.fmt = sd.fmt;
         lvColumn.cx = sd.cxChar*8; /* chars->pixel */
-         StrRetToStrNA( szTemp, 50, &sd.str, NULL);
+        StrRetToStrNA( szTemp, 50, &sd.str, NULL);
         ListView_InsertColumnA(This->hWndList, i, &lvColumn);
       }
@@ -475,9 +476,14 @@
    UINT     i;
    LVITEMA  lvItem;
-   HRESULT     hRes;
+   HRESULT  hRes;
    HDPA     hdpa;
 
+//CB: really slow, even without debug information
+   //DecreaseLogCount();
    TRACE("%p\n",This);
 
+//CB: FindFirstFileA, many calls to FindNextFileA in this block
+//    OS/2's APIs can read more than one file per call -> much faster
+//    -> add a new API for faster handling
    /* get the itemlist from the shfolder*/
    hRes = IShellFolder_EnumObjects(This->pSFParent,This->hWnd, SHCONTF_NONFOLDERS | SHCONTF_FOLDERS, &pEnumIDList);
@@ -489,6 +495,7 @@
    }
 
+//CB: ILClone calls
    /* create a pointer array */
-   hdpa = pDPA_Create(16);
+   hdpa = pDPA_Create(64);
    if (!hdpa)
    {
@@ -505,4 +512,5 @@
    }
 
+//CB: only Get* calls
    /*sort the array*/
    pDPA_Sort(hdpa, (PFNDPACOMPARE)ShellView_CompareItems, (LPARAM)This->pSFParent);
@@ -511,15 +519,17 @@
    SendMessageA(This->hWndList, WM_SETREDRAW, FALSE, 0);
 
-   for (i=0; i < DPA_GetPtrCount(hdpa); ++i)   /* DPA_GetPtrCount is a macro*/
+   ZeroMemory(&lvItem, sizeof(lvItem));                   /* create the listviewitem*/
+   lvItem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;     /*set the mask*/
+   lvItem.pszText = LPSTR_TEXTCALLBACKA;                  /*get text on a callback basis*/
+   lvItem.iImage = I_IMAGECALLBACK;                       /*get the image on a callback basis*/
+
+   for (i = 0; i < DPA_GetPtrCount(hdpa); ++i)   /* DPA_GetPtrCount is a macro*/
    {
      pidl = (LPITEMIDLIST)DPA_GetPtr(hdpa, i);
+
      if (IncludeObject(This, pidl) == S_OK) /* in a commdlg This works as a filemask*/
      {
-       ZeroMemory(&lvItem, sizeof(lvItem)); /* create the listviewitem*/
-       lvItem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;     /*set the mask*/
-       lvItem.iItem = i;  /*add the item to the end of the list*/
-       lvItem.lParam = (LPARAM) pidl;             /*set the item's data*/
-       lvItem.pszText = LPSTR_TEXTCALLBACKA;         /*get text on a callback basis*/
-       lvItem.iImage = I_IMAGECALLBACK;           /*get the image on a callback basis*/
+       lvItem.iItem = i;                                      /*add the item to the end of the list*/
+       lvItem.lParam = (LPARAM)pidl;                         /*set the item's data*/
        ListView_InsertItemA(This->hWndList, &lvItem);
      }
@@ -535,4 +545,5 @@
    IEnumIDList_Release(pEnumIDList); /* destroy the list*/
    pDPA_Destroy(hdpa);
+   //IncreaseLogCount();
 
    return S_OK;
@@ -1078,4 +1089,5 @@
               {
                 SHELLDETAILS sd;
+
                 IShellFolder2_GetDetailsOf(This->pSF2Parent, pidl, lpdi->item.iSubItem, &sd);
                 StrRetToStrNA( lpdi->item.pszText, lpdi->item.cchTextMax, &sd.str, NULL);
Index: trunk/src/shell32/shres.orc
===================================================================
--- trunk/src/shell32/shres.orc	(revision 3216)
+++ trunk/src/shell32/shres.orc	(revision 3217)
@@ -1,3 +1,3 @@
-/* $Id: shres.orc,v 1.1 2000-03-06 23:39:08 bird Exp $ */
+/* $Id: shres.orc,v 1.2 2000-03-24 17:17:29 cbratschi Exp $ */
 /*
  * Top level resource file for Common Dialogs
@@ -28,58 +28,58 @@
 MENU_001 MENU DISCARDABLE
 BEGIN
-	MENUITEM "Lar&ge Icons",	FCIDM_SHVIEW_BIGICON
-	MENUITEM "S&mall Icons",	FCIDM_SHVIEW_SMALLICON
-	MENUITEM "&List",		FCIDM_SHVIEW_LISTVIEW
-	MENUITEM "&Details",		FCIDM_SHVIEW_REPORTVIEW
+        MENUITEM "Lar&ge Icons",        FCIDM_SHVIEW_BIGICON
+        MENUITEM "S&mall Icons",        FCIDM_SHVIEW_SMALLICON
+        MENUITEM "&List",               FCIDM_SHVIEW_LISTVIEW
+        MENUITEM "&Details",            FCIDM_SHVIEW_REPORTVIEW
 END
 
 MENU_002 MENU DISCARDABLE
 BEGIN
-	POPUP""
-	BEGIN
-	  POPUP "&View"
-	  BEGIN
-	    MENUITEM "Lar&ge Icons",	FCIDM_SHVIEW_BIGICON
-	    MENUITEM "S&mall Icons",	FCIDM_SHVIEW_SMALLICON
-	    MENUITEM "&List",		FCIDM_SHVIEW_LISTVIEW
-	    MENUITEM "&Details",	FCIDM_SHVIEW_REPORTVIEW
-	  END
-	  MENUITEM SEPARATOR
-	  POPUP "Arrange &Icons"
-	  BEGIN
-	    MENUITEM "By &Name",	0x30	/* column 0 */
-	    MENUITEM "By &Type",	0x32	/* column 2 */
-	    MENUITEM "By &Size",	0x31	/* ... */
-	    MENUITEM "By &Date",	0x33
-	    MENUITEM SEPARATOR
-	    MENUITEM "&Auto Arrange",	FCIDM_SHVIEW_AUTOARRANGE
-	  END
-	  MENUITEM "Line up Icons",	FCIDM_SHVIEW_SNAPTOGRID
-	  MENUITEM SEPARATOR
-	  MENUITEM "Paste",		FCIDM_SHVIEW_INSERT
-	  MENUITEM "Paste as Link",	FCIDM_SHVIEW_INSERTLINK
-	  POPUP "New"
-	  BEGIN
-	    MENUITEM "New &Folder",	0x7053
-	    MENUITEM "New &Link",	0x7052
-	    MENUITEM SEPARATOR
-	  END
-	  MENUITEM "Propertys",		FCIDM_SHVIEW_PROPERTIES
-	END
+        POPUP""
+        BEGIN
+          POPUP "&View"
+          BEGIN
+            MENUITEM "Lar&ge Icons",    FCIDM_SHVIEW_BIGICON
+            MENUITEM "S&mall Icons",    FCIDM_SHVIEW_SMALLICON
+            MENUITEM "&List",           FCIDM_SHVIEW_LISTVIEW
+            MENUITEM "&Details",        FCIDM_SHVIEW_REPORTVIEW
+          END
+          MENUITEM SEPARATOR
+          POPUP "Arrange &Icons"
+          BEGIN
+            MENUITEM "By &Name",        0x30    /* column 0 */
+            MENUITEM "By &Type",        0x32    /* column 2 */
+            MENUITEM "By &Size",        0x31    /* ... */
+            MENUITEM "By &Date",        0x33
+            MENUITEM SEPARATOR
+            MENUITEM "&Auto Arrange",   FCIDM_SHVIEW_AUTOARRANGE
+          END
+          MENUITEM "Line up Icons",     FCIDM_SHVIEW_SNAPTOGRID
+          MENUITEM SEPARATOR
+          MENUITEM "Paste",             FCIDM_SHVIEW_INSERT
+          MENUITEM "Paste as Link",     FCIDM_SHVIEW_INSERTLINK
+          POPUP "New"
+          BEGIN
+            MENUITEM "New &Folder",     0x7053
+            MENUITEM "New &Link",       0x7052
+            MENUITEM SEPARATOR
+          END
+          MENUITEM "Properties",        FCIDM_SHVIEW_PROPERTIES
+        END
 END
 
 MENU_SHV_FILE MENU DISCARDABLE
 BEGIN
-	POPUP""
-	BEGIN
-	  MENUITEM "C&ut",		FCIDM_SHVIEW_CUT
-	  MENUITEM "&Copy",	FCIDM_SHVIEW_COPY
-	  MENUITEM SEPARATOR
-	  MENUITEM "&Link",	0x7051
-	  MENUITEM "&Delete",	FCIDM_SHVIEW_DELETE
-	  MENUITEM "&Rename",	0x7050
-	  MENUITEM SEPARATOR
-	  MENUITEM "&Propertys",	FCIDM_SHVIEW_PROPERTIES
-	END
+        POPUP""
+        BEGIN
+          MENUITEM "C&ut",              FCIDM_SHVIEW_CUT
+          MENUITEM "&Copy",             FCIDM_SHVIEW_COPY
+          MENUITEM SEPARATOR
+          MENUITEM "&Link",             0x7051
+          MENUITEM "&Delete",           FCIDM_SHVIEW_DELETE
+          MENUITEM "&Rename",           0x7050
+          MENUITEM SEPARATOR
+          MENUITEM "&Properties",       FCIDM_SHVIEW_PROPERTIES
+        END
 END
 SHBRSFORFOLDER_MSGBOX DIALOG 15, 40, 128, 152
@@ -91,42 +91,43 @@
  PUSHBUTTON "Cancel", 2, 58, 132, 50, 12
  CONTROL "Tree1",99,"SysTreeView32",
- 	TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
-	WS_BORDER | WS_TABSTOP,
-	4, 4, 120, 120
+        TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT |
+        WS_BORDER | WS_TABSTOP,
+        4, 4, 120, 120
 }
 
 /*
-	columns in the shellview
+        columns in the shellview
 */
 STRINGTABLE DISCARDABLE
 {
-	IDS_SHV_COLUMN1		"File"
-	IDS_SHV_COLUMN2		"Size"
-	IDS_SHV_COLUMN3		"Type"
-	IDS_SHV_COLUMN4		"Modifyed"
-	IDS_SHV_COLUMN5		"Size"		/* drive view */
-	IDS_SHV_COLUMN6		"Size avaiable"	/* drive view */
+        IDS_SHV_COLUMN1         "File"
+        IDS_SHV_COLUMN2         "Size"
+        IDS_SHV_COLUMN3         "Type"
+        IDS_SHV_COLUMN4         "Modified"
+        IDS_SHV_COLUMN5         "Attrs"
+        IDS_SHV_COLUMN3DV       "Size"           /* drive view */
+        IDS_SHV_COLUMN4DV       "Size available" /* drive view */
 }
 
 /*
-	special folders
+        special folders
 */
 STRINGTABLE DISCARDABLE
 {
-	IDS_DESKTOP		"Desktop"
-	IDS_MYCOMPUTER		"My Computer"
+        IDS_DESKTOP             "Desktop"
+        IDS_MYCOMPUTER          "My Computer"
 }
 
 /*
-	context menus
+        context menus
 */
 STRINGTABLE DISCARDABLE
 {
-	IDS_VIEW_LARGE		"Lar&ge Icons"
-	IDS_VIEW_SMALL		"S&mall Icons"
-	IDS_VIEW_LIST		"&List"
-	IDS_VIEW_DETAILS	"&Details"
-	IDS_SELECT		"Select"
-	IDS_OPEN		"Open"
+        IDS_VIEW_LARGE          "Lar&ge Icons"
+        IDS_VIEW_SMALL          "S&mall Icons"
+        IDS_VIEW_LIST           "&List"
+        IDS_VIEW_DETAILS        "&Details"
+        IDS_SELECT              "Select"
+        IDS_OPEN                "Open"
 }
 
@@ -163,10 +164,10 @@
     BLOCK "VarFileInfo"
     BEGIN
-	VALUE "Translation", 0x409, 0x04E4
+        VALUE "Translation", 0x409, 0x04E4
     END
 END
 
 /* document */
-0	ICON
+0       ICON
 {'
 00 00 01 00 04 00 10 10 10 00 00 00 00 00 28 01
@@ -468,5 +469,5 @@
 
 /* folder */
-3	ICON
+3       ICON
 {'
 00 00 01 00 04 00 10 10 10 00 00 00 00 00 28 01
@@ -768,5 +769,5 @@
 
 /* drive */
-8	ICON
+8       ICON
 {'
 00 00 01 00 04 00 10 10 10 00 00 00 00 00 28 01
@@ -1068,5 +1069,5 @@
 
 /* mycomputer */
-15	ICON
+15      ICON
 {'
 00 00 01 00 02 00 10 10 10 00 00 00 00 00 28 01
@@ -1141,5 +1142,5 @@
 
 /* desktop */
-34	ICON
+34      ICON
 {'
 00 00 01 00 02 00 10 10 10 00 00 00 00 00 28 01
Index: trunk/src/shell32/shresdef.h
===================================================================
--- trunk/src/shell32/shresdef.h	(revision 3216)
+++ trunk/src/shell32/shresdef.h	(revision 3217)
@@ -1,3 +1,3 @@
-/* $Id: shresdef.h,v 1.2 2000-01-08 04:37:02 phaller Exp $ */
+/* $Id: shresdef.h,v 1.3 2000-03-24 17:17:30 cbratschi Exp $ */
 
 /*
@@ -22,21 +22,21 @@
  * columntitles for the shellview
  */
-#define IDS_SHV_COLUMN1		7
-#define IDS_SHV_COLUMN2		8
-#define IDS_SHV_COLUMN3		9
-#define IDS_SHV_COLUMN4		10
-#define IDS_SHV_COLUMN5		11
-#define IDS_SHV_COLUMN6		12
-#define IDS_SHV_COLUMN7		13
+#define IDS_SHV_COLUMN1         7
+#define IDS_SHV_COLUMN2         8
+#define IDS_SHV_COLUMN3         9
+#define IDS_SHV_COLUMN4         10
+#define IDS_SHV_COLUMN5         11
+#define IDS_SHV_COLUMN3DV       12
+#define IDS_SHV_COLUMN4DV       13
 
-#define IDS_DESKTOP		20
-#define IDS_MYCOMPUTER		21
+#define IDS_DESKTOP             20
+#define IDS_MYCOMPUTER          21
 
-#define IDS_SELECT		22
-#define IDS_OPEN		23
-#define IDS_VIEW_LARGE		24
-#define IDS_VIEW_SMALL		25
-#define IDS_VIEW_LIST		26
-#define IDS_VIEW_DETAILS	27
+#define IDS_SELECT              22
+#define IDS_OPEN                23
+#define IDS_VIEW_LARGE          24
+#define IDS_VIEW_SMALL          25
+#define IDS_VIEW_LIST           26
+#define IDS_VIEW_DETAILS        27
 
 
