View the DQSD CVS repository here:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/dqsd/

Update of /cvsroot/dqsd/dqsd/src/DQSDTools
In directory sc8-pr-cvs1:/tmp/cvs-serv7022/src/DQSDTools

Modified Files:
        DQSDTools.idl Launcher.cpp Launcher.h 
Log Message:
added FileExists and RenameFile functions to DQSDTools dll

Index: DQSDTools.idl
===================================================================
RCS file: /cvsroot/dqsd/dqsd/src/DQSDTools/DQSDTools.idl,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** DQSDTools.idl       23 Oct 2002 01:51:25 -0000      1.23
--- DQSDTools.idl       27 Jun 2003 22:36:32 -0000      1.24
***************
*** 35,38 ****
--- 35,40 ----
                [id(17), helpstring("method GetSpecialFolderLocation")] HRESULT 
GetSpecialFolderLocation([in] BSTR bstrSpecialFolder, [out,retval] BSTR* 
pbstrLocation);
                [id(18), helpstring("method GetFolders")] HRESULT GetFolders([in] BSTR 
bstrBaseFolder, [out,retval] BSTR* pbstrFolders);
+               [id(19), helpstring("method FileExists")] HRESULT FileExists([in] BSTR 
bstrBaseFolder, [out,retval] VARIANT_BOOL *pbExists);
+               [id(20), helpstring("method RenameFile")] HRESULT RenameFile([in] BSTR 
bstrFromFile, [in] BSTR bstrToFile);
        };
        [

Index: Launcher.cpp
===================================================================
RCS file: /cvsroot/dqsd/dqsd/src/DQSDTools/Launcher.cpp,v
retrieving revision 1.36
retrieving revision 1.37
diff -C2 -d -r1.36 -r1.37
*** Launcher.cpp        23 Oct 2002 05:42:43 -0000      1.36
--- Launcher.cpp        27 Jun 2003 22:36:32 -0000      1.37
***************
*** 9,12 ****
--- 9,13 ----
  #include <shlobj.h>
  
+ 
  #pragma comment(lib, "Version.lib")
  
***************
*** 686,690 ****
  
        LPITEMIDLIST pidl;
!       HRESULT hr = SHGetSpecialFolderLocation(NULL, nFolder, &pidl);
        if (!SUCCEEDED(hr)) {
                return E_FAIL;
--- 687,691 ----
  
        LPITEMIDLIST pidl;
!       HRESULT hr = ::SHGetSpecialFolderLocation(NULL, nFolder, &pidl);
        if (!SUCCEEDED(hr)) {
                return E_FAIL;
***************
*** 739,742 ****
--- 740,823 ----
  
        *pbstrFolders = bstrFolders.Detach();
+       return S_OK;
+ }
+ 
+ STDMETHODIMP CLauncher::FileExists(BSTR bstrFilename, VARIANT_BOOL *pbExists)
+ {
+       USES_CONVERSION;
+ 
+       // Get the full pathname after applying some defaults
+       TCHAR szFilename[ _MAX_PATH ];
+       HRESULT hr = GetFilename( W2CT( bstrFilename ), szFilename );
+       if ( FAILED( hr ) )
+               return hr;
+ 
+       DWORD dwAttributes = ::GetFileAttributes(szFilename);
+ #pragma warning(disable: 4310) // cast truncates constant value
+       *pbExists = ( (dwAttributes == -1) ? VARIANT_FALSE : VARIANT_TRUE);
+ #pragma warning(default: 4310) // cast truncates constant value
+       
+       return S_OK;
+ }
+ 
+ STDMETHODIMP CLauncher::RenameFile(BSTR bstrFromFilename, BSTR bstrToFilename)
+ {
+       USES_CONVERSION;
+ 
+       // Get the full from pathname after applying some defaults and terminate with 
double \0's
+       TCHAR szFromFilename[ _MAX_PATH ];
+       HRESULT hr = GetFilename( W2CT( bstrFromFilename ), szFromFilename );
+       if ( FAILED( hr ) )
+               return hr;
+ 
+       szFromFilename[lstrlen(szFromFilename)+1] = '\0';
+ 
+       // Make sure that from filename already exists
+       VARIANT_BOOL bExists;
+       hr = FileExists( bstrFromFilename, &bExists);
+       if ( FAILED(hr))
+               return hr;
+ 
+ #pragma warning(disable: 4310) // cast truncates constant value
+       if (bExists == VARIANT_FALSE)
+       {
+               return Error(_T("Source filename does not exist."), IID_ILauncher, 
E_FAIL);
+       }
+ #pragma warning(default: 4310) // cast truncates constant value
+ 
+       // Get the full to pathname after applying some defaults and terminate with 
double \0's
+       TCHAR szToFilename[ _MAX_PATH ];
+       hr = GetFilename( W2CT( bstrToFilename ), szToFilename );
+       if ( FAILED( hr ) )
+               return hr;
+ 
+       szToFilename[lstrlen(szToFilename)+1] = '\0';
+ 
+       // Make sure to filename doesn't already exist
+       hr = FileExists( bstrToFilename, &bExists);
+       if ( FAILED(hr))
+               return hr;
+ 
+ #pragma warning(disable: 4310) // cast truncates constant value
+       if (bExists == VARIANT_TRUE)
+       {
+               return Error(_T("Destination filename already exists."), 
IID_ILauncher, E_FAIL);
+       }
+ #pragma warning(default: 4310) // cast truncates constant value
+ 
+        // Rename the file
+       SHFILEOPSTRUCT sfo;
+     ZeroMemory ( &sfo, sizeof ( sfo ) );
+ 
+     sfo.hwnd = NULL;
+     sfo.wFunc = FO_RENAME;
+     sfo.pFrom = szFromFilename;
+     sfo.pTo = szToFilename;
+     sfo.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR | 
FOF_FILESONLY | FOF_NOERRORUI;
+ 
+     hr = ::SHFileOperation(&sfo);
+       if (FAILED( hr) )
+               return hr;
+ 
        return S_OK;
  }

Index: Launcher.h
===================================================================
RCS file: /cvsroot/dqsd/dqsd/src/DQSDTools/Launcher.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** Launcher.h  21 Oct 2002 04:46:16 -0000      1.20
--- Launcher.h  27 Jun 2003 22:36:32 -0000      1.21
***************
*** 79,82 ****
--- 79,84 ----
        STDMETHOD(GetSpecialFolderLocation)(/*[in]*/ BSTR bstrSpecialFolder, 
/*[out,retval]*/ BSTR* pbstrLocation);
        STDMETHOD(GetFolders)(/*[in]*/ BSTR bstrBaseFolder, /*[out,retval]*/ BSTR* 
pbstrFolders);
+       STDMETHOD(FileExists)(/*[in]*/ BSTR bstrFilename, /*[out,retval]*/ 
VARIANT_BOOL* pbExists);
+       STDMETHOD(RenameFile)(/*[in]*/ BSTR bstrFromFilename, /*[in]*/ BSTR 
bstrToFilename);
  
  public:




-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100006ave/direct;at.asp_061203_01/01
_______________________________________________
DQSD-CVS mailing list
https://lists.sourceforge.net/lists/listinfo/dqsd-cvs
DQSD CVS repository:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/dqsd/

Reply via email to