#ifndef __IMG_ORIGINAL_20150818__ #define __IMG_ORIGINAL_20150818__ #pragma once #include "Imgkernel.h" class AFX_EXT_CLASS ImgOfOriginal : public Imgkernel::ImgEnvInterface, public Imgkernel::ImgCopyInterface, public Imgkernel::ImgLoadInterface, public Imgkernel::ImgLoadExInterface { static ULONG_PTR m_gdiplusToken; public: ImgOfOriginal(void); ~ImgOfOriginal(void); // 过滤非复制扩展名的文件,同时去掉缩略图,保留指定复制扩展名的文件; CString GetFileName(IN CONST CString& strfile); void GetFilteringImg(IN CStringArray &AryImgs, IN LPCTSTR lpCopyExt); void GetFilteringImg(IN STR_VEC &vtImgs, IN LPCTSTR lpCopyExt); void SubgroupExt(IN STR_VEC &vtAllImgs, IN LPCTSTR lpSubgroupExt, IN CStringArray &AryImgs); // 分组扩展名; void SubgroupExt(IN STR_VEC &vtAllImgs, IN LPCTSTR lpSubgroupExt, IN STR_VEC &vtImgs); // 分组扩展名; public: BOOL InitializeEnvironment(IN LPCTSTR lpBranchId, IN IMGSHARE_VEC* pvtImgShareInfo); #if 0 // 将本地共享目录插入gp_vtImgShareInfo中; void AppendLocalSharepath(IMGSHARE_VEC *pvtImgShareInfo); // 获取指定相片类型的本地共享路径; BOOL GetLocalSharedirectory( IN CONST INT &nImgType, // 相片类型; OUT LPTSTR lpResultSharedirectory, // 返回要获取的本地共享路径; IN CONST INT &nBufSize // 缓存大小; ) /**/; #endif // 获取本地可用的订单共享路径;需要version表信息; // 同时需要判断version表中的目录是否属于共享目录或本地目录; BOOL GetLocalEnableShareDirectory( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; OUT LPTSTR lpEnableShareDirectory, // 返回可用的共享目录; IN CONST INT &nBufSize // lpEnableShareDirectory数组大小; ) ; // 导入时,获取可用的共享逻辑硬盘; BOOL GetEnableShareDirectory( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; OUT LPTSTR lpEnableShareDirectory, // 返回可用的共享目录; IN CONST INT &nBufSize // 缓存大小; ) /**/; ////////////////////////////////////////////////////////////////////////// // 获取指定相片类型的订单号的全部共享路径; // 只返回目录,不获取文件; BOOL GetOrderAllShareDirectory( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名 ; IN LPCTSTR lpOrderNum, // 订单号; OUT CStringArray& AryOfOrderAllShareDirectory // 返回订单的全部共享路径; ) /**/; BOOL GetOrderAllShareDirectory( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名 ; IN LPCTSTR lpOrderNum, // 订单号; OUT STR_VEC& AryOfOrderAllShareDirectory // 返回订单的全部共享路径; ) /**/; // 获取指定相片类型的订单景点或套系的全部共享路径; // 只返回目录,不获取文件; BOOL GetSceneryAllShareDirectory( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN LPCTSTR lpScenery, // 景点名或套系名; OUT CStringArray &AryOfSceneryAllShareDirectory // 返回指定景点或套系的全部共享路径; ) /**/; BOOL GetSceneryAllShareDirectory( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN LPCTSTR lpScenery, // 景点名或套系名; OUT STR_VEC &AryOfSceneryAllShareDirectory // 返回指定景点或套系的全部共享路径; ) /**/; ////////////////////////////////////////////////////////////////////////// // 获取指定路径的全部相片路径; BOOL LoadSpecifiedpathImages( IN LPCTSTR lpSepcifiedpath, // 指定加载的路径; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT CStringArray &AryOfSpecifiedpathImages // 返回该路径下全部相片的路径(包括子目录); ) /**/; BOOL LoadSpecifiedpathImages( IN LPCTSTR lpSepcifiedpath, // 指定加载的路径; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT STR_VEC &AryOfSpecifiedpathImages // 返回该路径下全部相片的路径(包括子目录); ) /**/; // 从指定目录里获取选中相片的共享路径;可与LoadSelectedIamges配套使用; BOOL LoadSelectedIamgesFromSpecifiedpath( IN LPCTSTR lpSepcifiedpath, // 指定加载的路径; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; IN CStringArray &AryOfSelectedIamges, // 选中的相片集; OUT CStringArray &AryOfNoExistIamges, // 不存的相片文件名; OUT CStringArray &AryOfSelectedImagepaths // 选中的相片路径; ) /**/; BOOL LoadSelectedIamgesFromSpecifiedpath( IN LPCTSTR lpSepcifiedpath, // 指定加载的路径; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; IN STR_VEC &AryOfSelectedIamges, // 选中的相片集; OUT STR_VEC &AryOfNoExistIamges, // 不存的相片文件名; OUT STR_VEC &AryOfSelectedImagepaths // 选中的相片路径; ) /**/; // 加载选中相片的共享路径; BOOL LoadSelectedIamges( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; IN CStringArray &AryOfSelectedIamges, // 选中的相片集; OUT CStringArray &AryOfNoExistIamges, // 不存的相片文件名; OUT CStringArray &AryOfSelectedImagepaths // 选中的相片路径; ) /**/; BOOL LoadSelectedIamges( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; IN STR_VEC &AryOfSelectedIamges, // 选中的相片集; OUT STR_VEC &AryOfNoExistIamges, // 不存的相片文件名; OUT STR_VEC &AryOfSelectedImagepaths // 选中的相片路径; ) /**/; // 加载选中相片的共享路径(相片名前带子目录名,如:"内景\005"); BOOL LoadSelectedIamges2( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; IN CStringArray &AryOfSelectedIamges, // 选中的相片集; OUT CStringArray &AryOfNoExistIamges, // 不存的相片文件名; OUT CStringArray &AryOfSelectedImagepaths // 选中的相片路径; ) /**/; BOOL LoadSelectedIamges2( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; IN STR_VEC &AryOfSelectedIamges, // 选中的相片集; OUT STR_VEC &AryOfNoExistIamges, // 不存的相片文件名; OUT STR_VEC &AryOfSelectedImagepaths // 选中的相片路径; ) /**/; // 按顺序加载选中相片的共享路径; BOOL LoadSelectedIamgesInOrder( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; IN CStringArray &AryOfSelectedIamges, // 选中的相片集; OUT CStringArray &AryOfNoExistIamges, // 不存的相片文件名; OUT CStringArray &AryOfSelectedImagepaths // 选中的相片路径; ) /**/; BOOL LoadSelectedIamgesInOrder( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; IN STR_VEC &AryOfSelectedIamges, // 选中的相片集; OUT STR_VEC &AryOfNoExistIamges, // 不存的相片文件名; OUT STR_VEC &AryOfSelectedImagepaths // 选中的相片路径; ) /**/; // 加载选中的景点或套系名的全部相片的共享路径; BOOL LoadSceneryImages( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN LPCTSTR lpScenery, // 景点名或套系名; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT CStringArray& AryOfSceneryImagepaths, // 返回所选景点的相片的共享路径; OUT CStringArray* pAryOfSceneryDirectory = NULL // 返回所选景点的文件夹共享路径; ) /**/; BOOL LoadSceneryImages( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN LPCTSTR lpScenery, // 景点名或套系名; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT STR_VEC& AryOfSceneryImagepaths, // 返回所选景点的相片的共享路径; OUT STR_VEC* pAryOfSceneryDirectory = NULL // 返回所选景点的文件夹共享路径; )/* */; // 加载指定订单的全部相片的共享路径; BOOL LoadOrderImages( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT CStringArray& AryOfOrderImagePaths, // 返回所选订单的相片的共享路径; OUT CStringArray* pAryOfOrderDirectory = NULL // 返回所选订单文件夹的共享路径; ) /**/; BOOL LoadOrderImages( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT STR_VEC& AryOfOrderImagePaths, // 返回所选订单的相片的共享路径; OUT STR_VEC* pAryOfOrderDirectory = NULL // 返回所选订单文件夹的共享路径; ) /**/; ////////////////////////////////////////////////////////////////////////// // 扩展函数; BOOL LoadSpecifiedpathImagesEx( IN LPCTSTR lpSepcifiedpath, // 指定加载的路径; IN BOOL bLoadInSubfolder, // 是否加载子目录; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT CStringArray &AryOfLoadImgs, // 返回要加载的扩展名的相片的路径(包括子目录); IN LPCTSTR lpWithExt, // 要附带的扩展名; OUT CStringArray &AryOfWithImgs // 返回要附带的扩展名的相片的路径(包括子目录); ); // 扩展函数; BOOL LoadSpecifiedpathImagesEx( IN LPCTSTR lpSepcifiedpath, // 指定加载的路径; IN BOOL bLoadInSubfolder, // 是否加载子目录; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT STR_VEC &AryOfLoadImgs, // 返回要加载的扩展名的相片的路径(包括子目录); IN LPCTSTR lpWithExt, // 要附带的扩展名; OUT STR_VEC &AryOfWithImgs // 返回要附带的扩展名的相片的路径(包括子目录); ); // 扩展函数; BOOL LoadSelectedIamgesFromSpecifiedpathEx( IN LPCTSTR lpSepcifiedpath, // 指定加载的路径; IN BOOL bLoadInSubfolder, // 是否加载子目录; IN CStringArray &AryOfSelectedIamges, // 选中的相片集,只有文件名,没有扩展名和路径; OUT CStringArray &AryOfNoExistIamges, // 不存的相片文件名; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT CStringArray &AryOfLoadImagepaths, // 要加载的扩展名的相片的路径; IN LPCTSTR lpWithExt, // 要附带的扩展名; OUT CStringArray &AryOfWithImagepaths // 要附带的扩展名的相片的路径; ); // 扩展函数; BOOL LoadSelectedIamgesFromSpecifiedpathEx( IN LPCTSTR lpSepcifiedpath, // 指定加载的路径; IN BOOL bLoadInSubfolder, // 是否加载子目录; IN STR_VEC &AryOfSelectedIamges, // 选中的相片集,只有文件名,没有扩展名和路径; OUT STR_VEC &AryOfNoExistIamges, // 不存的相片文件名; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT STR_VEC &AryOfLoadImagepaths, // 要加载的扩展名的相片的路径; IN LPCTSTR lpWithExt, // 要附带的扩展名; OUT STR_VEC &AryOfWithImagepaths // 要附带的扩展名的相片的路径; ); // 扩展函数; BOOL LoadSelectedIamgesEx( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN BOOL bLoadInSubfolder, // 是否加载订单子目录; IN CStringArray &AryOfSelectedIamges, // 选中的相片集,只有文件名,没有路径与扩展名; OUT CStringArray &AryOfNoExistIamges, // 不存的相片文件名; IN LPCTSTR lpLoadExt, // 要加载的扩展名; OUT CStringArray &AryOfLoadImagepaths, // 要加载的扩展名的相片路径; IN LPCTSTR lpWithExt, // 要附带的扩展名; OUT CStringArray &AryOfWithImagepaths // 要附带的扩展名的相片路径; ); // 扩展函数; BOOL LoadSelectedIamgesEx( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN BOOL bLoadInSubfolder, // 是否加载订单子目录; IN STR_VEC &AryOfSelectedIamges, // 选中的相片集,只有文件名,没有路径与扩展名; OUT STR_VEC &AryOfNoExistIamges, // 不存的相片文件名; IN LPCTSTR lpLoadExt, // 要加载的扩展名; OUT STR_VEC &AryOfLoadImagepaths, // 要加载的扩展名的相片路径; IN LPCTSTR lpWithExt, // 要附带的扩展名; OUT STR_VEC &AryOfWithImagepaths // 要附带的扩展名的相片路径; ); BOOL LoadSelectedIamgesInOrderEx( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN BOOL bLoadInSubfolder, // 是否加载订单子目录; IN CStringArray &AryOfSelectedIamges, // 选中的相片集; OUT CStringArray &AryOfNoExistIamges, // 不存的相片文件名; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT CStringArray &AryOfLoadImagepaths, // 要加载的扩展名的相片路径; IN LPCTSTR lpWithExt, // 要附带的扩展名; OUT CStringArray &AryOfWithImagepaths // 要附带的扩展名的相片路径; ); BOOL LoadSelectedIamgesInOrderEx( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN BOOL bLoadInSubfolder, // 是否加载订单子目录; IN STR_VEC &AryOfSelectedIamges, // 选中的相片集; OUT STR_VEC &AryOfNoExistIamges, // 不存的相片文件名; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT STR_VEC &AryOfLoadImagepaths, // 要加载的扩展名的相片路径; IN LPCTSTR lpWithExt, // 要附带的扩展名; OUT STR_VEC &AryOfWithImagepaths // 要附带的扩展名的相片路径; ); BOOL LoadSceneryImagesEx( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN LPCTSTR lpScenery, // 景点名或套系名; // 由于是景点文件夹,认为没有子目录;(即使有,也不加载) //IN BOOL bLoadInSubfolder, // 是否加载订单子目录; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT CStringArray& AryOfLoadImagepaths, // 返回所选景点的相片的共享路径; IN LPCTSTR lpWithExt, // 要附带的扩展名; IN CStringArray& AryOfWithImagepaths, // 要附带的扩展名的相片的路; OUT CStringArray* pAryOfSceneryDirectory = NULL // 返回所选景点的文件夹共享路径; ); BOOL LoadSceneryImagesEx( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN LPCTSTR lpScenery, // 景点名或套系名; // 由于是景点文件夹,认为没有子目录;(即使有,也不加载) //IN BOOL bLoadInSubfolder, // 是否加载订单子目录; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT STR_VEC& AryOfLoadImagepaths, // 返回所选景点的相片的共享路径; IN LPCTSTR lpWithExt, // 要附带的扩展名; IN STR_VEC& AryOfWithImagepaths, // 要附带的扩展名的相片的路; OUT STR_VEC* pAryOfSceneryDirectory = NULL // 返回所选景点的文件夹共享路径; ); BOOL LoadOrderImagesEx( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN BOOL bLoadInSubfolder, // 是否加载订单子目录; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT CStringArray& AryOfOrderImagePaths, // 返回所选订单的相片的共享路径; IN LPCTSTR lpWithExt, // 要附带的扩展名; IN CStringArray& AryOfWithImagepaths, // 要附带的扩展名的相片的路; OUT CStringArray* pAryOfOrderDirectory = NULL // 返回所选订单文件夹的共享路径; ); BOOL LoadOrderImagesEx( IN CONST INT &nImgType, // 相片类型; IN LPCTSTR lpBranchId, // 分店域名; IN LPCTSTR lpOrderNum, // 订单号; IN BOOL bLoadInSubfolder, // 是否加载订单子目录; IN LPCTSTR lpLoadExt, // 要加载哪些扩展名; OUT STR_VEC& AryOfOrderImagePaths, // 返回所选订单的相片的共享路径; IN LPCTSTR lpWithExt, // 要附带的扩展名; IN STR_VEC& AryOfWithImagepaths, // 要附带的扩展名的相片的路; OUT STR_VEC* pAryOfOrderDirectory = NULL // 返回所选订单文件夹的共享路径; ); public: ////////////////////////////////////////////////////////////////////////// // Copy; INT CopyImg2Specifiedpath( IN LPCTSTR lpExistpath, // 相片源目录; IN LPCTSTR lpSpecifiedpath, // 目标路径; IN LPCTSTR lpCopyExt, // 指定要复制的文件的扩展名; IN CONST DWORD &dwCopyPix, // 复制时是否要压缩成指定像素; IN BOOL bOriginalCopy, // 复制源相片时,是否原样复制; IN BOOL bFailIfExists // 目标文件存在是否复制; );//ok INT CopyImg2Specifiedpath( IN CStringArray& AryOfSelectedImg, // 要导入到指定目录的相片路径; IN LPCTSTR lpSpecifiedpath, // 导入相片目标路径; IN LPCTSTR lpWithExt, // 复制文件时同时复制同名的不同扩展名的文件; IN CONST DWORD &dwCopyPix, // 复制时是否要压缩成指定像素; IN BOOL bCopyBySubpath, // 复制是否创建指定部分子目录; IN LPCTSTR lpSeparator, // 源目录从分隔符以后的部分在目标目录下创建子目录; IN BOOL bFailIfExists // 目标文件存在是否复制; );//ok INT CopyImg2Specifiedpath( IN STR_VEC& AryOfSelectedImg, // 要导入到指定目录的相片路径; IN LPCTSTR lpSpecifiedpath, // 导入相片目标路径; IN LPCTSTR lpWithExt, // 复制文件时同时复制同名的不同扩展名的文件; IN CONST DWORD &dwCopyPix, // 复制时是否要压缩成指定像素; IN BOOL bCopyBySubpath, // 复制是否创建指定部分子目录; IN LPCTSTR lpSeparator, // 源目录从分隔符以后的部分在目标目录下创建子目录; IN BOOL bFailIfExists // 目标文件存在是否复制; );//ok INT CopyImg2Specifiedpath( IN CStringArray& AryOfExistImages, // 要导入到指定目录的相片路径; IN CStringArray& AryOfNewImages, // 新的目标文件路径; IN CONST DWORD &dwCopyPix, // 复制时是否要压缩成指定像素; IN LPCTSTR lpWithExt, // 复制文件时同时复制同名的不同扩展名的文件; IN BOOL bFailIfExists // 目标文件存在是否复制; ); /* AryOfExistImages.GetSize() == AryOfNewImages.GetSize() */ INT CopyImg2Specifiedpath( IN STR_VEC& AryOfExistImages, // 要导入到指定目录的相片路径; IN STR_VEC& AryOfNewImages, // 新的目标文件路径; IN CONST DWORD &dwCopyPix, // 复制时是否要压缩成指定像素; IN LPCTSTR lpWithExt, // 复制文件时同时复制同名的不同扩展名的文件; IN BOOL bFailIfExists // 目标文件存在是否复制; ); /* AryOfExistImages.GetSize() == AryOfNewImages.GetSize() */ ////////////////////////////////////////////////////////////////////////// // Copy_ex; INT CopyImg2Specifiedpath_ex( IN LPCTSTR lpExistpath, // 相片源目录; IN LPCTSTR lpSpecifiedpath, // 目标路径; IN LPCTSTR lpCopyExt, // 指定要复制的文件的扩展名; IN LPCTSTR lpWithExt, // 复制文件时同时复制同名的不同扩展名的文件; IN CONST DWORD &dwCopyPix, // 复制时是否要压缩成指定像素; IN BOOL bOriginalCopy, // 复制源相片时,是否原样复制; IN BOOL bFailIfExists // 目标文件存在是否复制; ); }; #endif