diff options
Diffstat (limited to 'Src/Plugins/Library/ml_disc/copyinternal.h')
-rw-r--r-- | Src/Plugins/Library/ml_disc/copyinternal.h | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/Src/Plugins/Library/ml_disc/copyinternal.h b/Src/Plugins/Library/ml_disc/copyinternal.h new file mode 100644 index 00000000..b59be7a6 --- /dev/null +++ b/Src/Plugins/Library/ml_disc/copyinternal.h @@ -0,0 +1,125 @@ +#ifndef NULLOSFT_MEDIALIBRARY_MLDISC_COPYFILES_INTERNAL_HEADER +#define NULLOSFT_MEDIALIBRARY_MLDISC_COPYFILES_INTERNAL_HEADER + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +#include <windows.h> +#include "../Agave/Metadata/api_metadata.h" +#include "../ml_local/api_mldb.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +#define STRCOMP_INVARIANT MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT) + +#define CPM_UPDATEDISKSIZE (WM_APP + 2) + + +typedef struct _COPYDATA +{ + LONG ref; + HWND hDialog; + HWND hOwner; + HANDLE hThread; + BOOL bCancel; + DWORD errorCode; + UINT errorMsgId; + LPWSTR *ppszFiles; + ULONGLONG *pFSizes; + INT count; + UINT uFlags; + api_metadata *pMetaReader; + api_mldb *pMlDb; + WCHAR szDestination[MAX_PATH]; + WCHAR szTitleFormat[128]; +} COPYDATA; + +#define FCF_ADDTOMLDB 0x00000002L +#define FCF_USETITLEFMT 0x00000004L +#define FCF_SKIPFILE 0x00010000L +#define FCF_OVERWRITEFILE 0x00020000L +#define FCF_DELETEREADONLY 0x00040000L + + + +INT_PTR CALLBACK CopyPrepare_DialogProc(HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK CopyProgress_DialogProc(HWND hdlg, UINT uMsg, WPARAM wParam, LPARAM lParam); + + +LONG CopyFiles_AddRef(COPYDATA *pcd); +LONG CopyFiles_Release(COPYDATA *pcd); +BOOL CopyFiles_StartCopy(COPYDATA *pcd); +BOOL CopyFiles_CancelCopy(COPYDATA *pcd); + +BOOL CopyFiles_CreateDirectory(LPCTSTR pszDirectory); +BOOL CopyFiles_FormatFileName(LPTSTR pszNewFileName, INT cchBufferMax, LPCTSTR pszFileToRename, LPCTSTR pszOrigFileName, LPCTSTR pszDestination, LPCTSTR pszFormat, api_metadata *pMetaReader); + +HBITMAP CopyFiles_LoadResourcePng(LPCTSTR pszResource); + +#define CFM_NOTIFY (WM_APP + 3) + +// notify task +#define CFT_INITIALIZING 0x0001 +#define CFT_COPYING 0x0002 +#define CFT_FINISHED 0x0003 +#define CFT_CONFLICT 0x0004 // conflicts always use SendMessage + + +// init task operations code +#define CFO_INIT 0x0000 +#define CFO_CACLSIZE 0x0001 +#define CFO_CHECKDESTINATION 0x0002 + + +// copy task operations code +#define CFO_INIT 0x0000 // time to set tast text +#define CFO_NEXTFILE 0x0001 // lParam - MAKELPARAM(file index, total count) +#define CFO_PROGRESS 0x0002 // lParam - percent +#define CFO_POSTCOPY 0x0003 + + +// conflicts + +#define EXISTFILE_CANCELCOPY 0x0001 // almost like return FALSE but will not produce error +#define EXISTFILE_SKIP 0x0002 // skip +#define EXISTFILE_OVERWRITE 0x0003 // overwrite +#define EXISTFILE_APPLY_ONCE 0x0000 // apply only once +#define EXISTFILE_APPLY_TO_ALL 0x0100 // apply to all files with the same conflict + +#define READONLY_CANCELCOPY 0x0001 +#define READONLY_DELETE 0x0002 +#define READONLY_DELETEALL 0x0003 + +typedef struct _FILECONFLICT +{ + LPCTSTR pszNameExisting; + LPCTSTR pszNameNew; +} FILECONFLICT; + + +#define CFO_DESTNOTEXIST 0x0000 // return FALSE to create destination or TRUE to cancel copy operation. param -pszDestionation +#define CFO_FILEALREDYEXIST 0x0001 // return FALSE to fail with access denied, or EXISTFILE_XXX, param = (FILECONFLICT*) +#define CFO_READONLY 0x0002 // return FALSE to fail, or RADONLY_XXX, param = (LPCTSTR)pszFileName + + + + + + +// finished task operations code +#define CFO_FAILED 0x0001 +#define CFO_SUCCESS 0x0002 +#define CFO_CANCELLED 0x0003 + + +#ifdef __cplusplus +} +#endif + + + +#endif // NULLOSFT_MEDIALIBRARY_MLDISC_COPYFILES_INTERNAL_HEADER
\ No newline at end of file |