aboutsummaryrefslogtreecommitdiff
path: root/Src/Plugins/Library/ml_disc/copyinternal.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Plugins/Library/ml_disc/copyinternal.h')
-rw-r--r--Src/Plugins/Library/ml_disc/copyinternal.h125
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