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/