Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
dadigang
Ventoy
Commits
1ca48923
Commit
1ca48923
authored
Feb 17, 2022
by
longpanda
Browse files
VentoyVlnk add cmdline mode.
VentoyVlnk.exe -i xxx.iso -o xxx.vlnk.iso
parent
730fdd51
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
146 additions
and
50 deletions
+146
-50
Vlnk/src/main_windows.c
Vlnk/src/main_windows.c
+146
-50
Vlnk/vs/VentoyVlnk/Release/VentoyVlnk.exe
Vlnk/vs/VentoyVlnk/Release/VentoyVlnk.exe
+0
-0
No files found.
Vlnk/src/main_windows.c
View file @
1ca48923
...
@@ -13,12 +13,17 @@ static CHAR g_LogFile[MAX_PATH];
...
@@ -13,12 +13,17 @@ static CHAR g_LogFile[MAX_PATH];
static
HWND
g_create_button
;
static
HWND
g_create_button
;
static
HWND
g_parse_button
;
static
HWND
g_parse_button
;
static
BOOL
g_ShowHelp
=
FALSE
;
static
WCHAR
g_CmdInFile
[
MAX_PATH
];
static
WCHAR
g_CmdOutFile
[
MAX_PATH
];
typedef
enum
MSGID
typedef
enum
MSGID
{
{
MSGID_ERROR
=
0
,
MSGID_ERROR
=
0
,
MSGID_INFO
,
MSGID_INFO
,
MSGID_BTN_CREATE
,
MSGID_BTN_CREATE
,
MSGID_BTN_PARSE
,
MSGID_BTN_PARSE
,
MSGID_SRC_NONEXIST
,
MSGID_SRC_UNSUPPORTED
,
MSGID_SRC_UNSUPPORTED
,
MSGID_FS_UNSUPPORTED
,
MSGID_FS_UNSUPPORTED
,
MSGID_SUFFIX_UNSUPPORTED
,
MSGID_SUFFIX_UNSUPPORTED
,
...
@@ -42,6 +47,7 @@ const WCHAR *g_msg_cn[MSGID_BUTT] =
...
@@ -42,6 +47,7 @@ const WCHAR *g_msg_cn[MSGID_BUTT] =
L"提醒"
,
L"提醒"
,
L"创建"
,
L"创建"
,
L"解析"
,
L"解析"
,
L"指定的文件不存在"
,
L"不支持为此文件创建vlnk"
,
L"不支持为此文件创建vlnk"
,
L"不支持的文件系统"
,
L"不支持的文件系统"
,
L"不支持的文件后缀名"
,
L"不支持的文件后缀名"
,
...
@@ -61,6 +67,7 @@ const WCHAR *g_msg_en[MSGID_BUTT] =
...
@@ -61,6 +67,7 @@ const WCHAR *g_msg_en[MSGID_BUTT] =
L"Info"
,
L"Info"
,
L"Create"
,
L"Create"
,
L"Parse"
,
L"Parse"
,
L"The specified file is not exist!"
,
L"This file is not supported for vlnk"
,
L"This file is not supported for vlnk"
,
L"Unsupported file system!"
,
L"Unsupported file system!"
,
L"Unsupported file suffix!"
,
L"Unsupported file suffix!"
,
...
@@ -78,6 +85,22 @@ const WCHAR *g_msg_en[MSGID_BUTT] =
...
@@ -78,6 +85,22 @@ const WCHAR *g_msg_en[MSGID_BUTT] =
const
WCHAR
**
g_msg_lang
=
NULL
;
const
WCHAR
**
g_msg_lang
=
NULL
;
HINSTANCE
g_hInst
;
HINSTANCE
g_hInst
;
static
int
VtoyMessageBox
(
_In_opt_
HWND
hWnd
,
_In_opt_
LPCWSTR
lpText
,
_In_opt_
LPCWSTR
lpCaption
,
_In_
UINT
uType
)
{
if
(
g_CmdInFile
[
0
]
&&
g_CmdOutFile
[
0
])
{
return
0
;
}
return
MessageBox
(
hWnd
,
lpText
,
lpCaption
,
uType
);
}
static
void
Log2File
(
const
char
*
log
)
static
void
Log2File
(
const
char
*
log
)
{
{
...
@@ -340,7 +363,7 @@ End:
...
@@ -340,7 +363,7 @@ End:
}
}
static
int
CreateVlnk
(
HWND
hWnd
,
WCHAR
*
Dir
)
static
int
CreateVlnk
(
HWND
hWnd
,
WCHAR
*
Dir
,
WCHAR
*
InFile
,
WCHAR
*
OutFile
)
{
{
int
i
;
int
i
;
int
end
;
int
end
;
...
@@ -358,20 +381,27 @@ static int CreateVlnk(HWND hWnd, WCHAR *Dir)
...
@@ -358,20 +381,27 @@ static int CreateVlnk(HWND hWnd, WCHAR *Dir)
WCHAR
*
Pos
=
NULL
;
WCHAR
*
Pos
=
NULL
;
ventoy_vlnk
*
vlnk
=
NULL
;
ventoy_vlnk
*
vlnk
=
NULL
;
ofn
.
lStructSize
=
sizeof
(
ofn
);
if
(
InFile
)
ofn
.
hwndOwner
=
hWnd
;
ofn
.
lpstrFile
=
szFile
;
ofn
.
nMaxFile
=
sizeof
(
szFile
);
ofn
.
lpstrFilter
=
L"Vlnk Source File
\0
*.iso;*.img;*.wim;*.vhd;*.vhdx;*.vtoy;*.efi;*.dat
\0
"
;
ofn
.
nFilterIndex
=
1
;
ofn
.
lpstrFileTitle
=
NULL
;
ofn
.
nMaxFileTitle
=
0
;
ofn
.
lpstrInitialDir
=
NULL
;
ofn
.
Flags
=
OFN_PATHMUSTEXIST
|
OFN_FILEMUSTEXIST
;
if
(
GetOpenFileName
(
&
ofn
)
!=
TRUE
)
{
{
return
1
;
wcscpy_s
(
szFile
,
MAX_PATH
,
InFile
);
}
else
{
ofn
.
lStructSize
=
sizeof
(
ofn
);
ofn
.
hwndOwner
=
hWnd
;
ofn
.
lpstrFile
=
szFile
;
ofn
.
nMaxFile
=
sizeof
(
szFile
);
ofn
.
lpstrFilter
=
L"Vlnk Source File
\0
*.iso;*.img;*.wim;*.vhd;*.vhdx;*.vtoy;*.efi;*.dat
\0
"
;
ofn
.
nFilterIndex
=
1
;
ofn
.
lpstrFileTitle
=
NULL
;
ofn
.
nMaxFileTitle
=
0
;
ofn
.
lpstrInitialDir
=
NULL
;
ofn
.
Flags
=
OFN_PATHMUSTEXIST
|
OFN_FILEMUSTEXIST
;
if
(
GetOpenFileName
(
&
ofn
)
!=
TRUE
)
{
return
1
;
}
}
}
LogW
(
L"Create vlnk for <%ls>
\n
"
,
szFile
);
LogW
(
L"Create vlnk for <%ls>
\n
"
,
szFile
);
...
@@ -380,7 +410,7 @@ static int CreateVlnk(HWND hWnd, WCHAR *Dir)
...
@@ -380,7 +410,7 @@ static int CreateVlnk(HWND hWnd, WCHAR *Dir)
if
(
len
<
5
||
szFile
[
0
]
==
'.'
||
szFile
[
1
]
!=
':'
)
if
(
len
<
5
||
szFile
[
0
]
==
'.'
||
szFile
[
1
]
!=
':'
)
{
{
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_SRC_UNSUPPORTED
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
Vtoy
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_SRC_UNSUPPORTED
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
return
1
;
return
1
;
}
}
...
@@ -406,7 +436,7 @@ static int CreateVlnk(HWND hWnd, WCHAR *Dir)
...
@@ -406,7 +436,7 @@ static int CreateVlnk(HWND hWnd, WCHAR *Dir)
}
}
else
else
{
{
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_FS_UNSUPPORTED
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
Vtoy
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_FS_UNSUPPORTED
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
return
1
;
return
1
;
}
}
...
@@ -419,13 +449,13 @@ static int CreateVlnk(HWND hWnd, WCHAR *Dir)
...
@@ -419,13 +449,13 @@ static int CreateVlnk(HWND hWnd, WCHAR *Dir)
if
(
!
IsSupportedImgSuffix
(
suffix
))
if
(
!
IsSupportedImgSuffix
(
suffix
))
{
{
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_SUFFIX_UNSUPPORTED
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
Vtoy
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_SUFFIX_UNSUPPORTED
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
return
1
;
return
1
;
}
}
if
(
IsVlnkFile
(
szFile
,
NULL
))
if
(
IsVlnkFile
(
szFile
,
NULL
))
{
{
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_ALREADY_VLNK
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
Vtoy
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_ALREADY_VLNK
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
return
1
;
return
1
;
}
}
...
@@ -459,14 +489,14 @@ static int CreateVlnk(HWND hWnd, WCHAR *Dir)
...
@@ -459,14 +489,14 @@ static int CreateVlnk(HWND hWnd, WCHAR *Dir)
if
(
len
>=
VLNK_NAME_MAX
)
if
(
len
>=
VLNK_NAME_MAX
)
{
{
LogA
(
"File name length %d overflow
\n
"
,
len
);
LogA
(
"File name length %d overflow
\n
"
,
len
);
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_FILE_NAME_TOO_LONG
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
Vtoy
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_FILE_NAME_TOO_LONG
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
return
1
;
return
1
;
}
}
DiskExtend
.
StartingOffset
.
QuadPart
=
0
;
DiskExtend
.
StartingOffset
.
QuadPart
=
0
;
if
(
GetPhyDiskInfo
((
char
)
szFile
[
0
],
&
DiskSig
,
&
DiskExtend
))
if
(
GetPhyDiskInfo
((
char
)
szFile
[
0
],
&
DiskSig
,
&
DiskExtend
))
{
{
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_DISK_INFO_ERR
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
Vtoy
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_DISK_INFO_ERR
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
return
1
;
return
1
;
}
}
...
@@ -477,22 +507,38 @@ static int CreateVlnk(HWND hWnd, WCHAR *Dir)
...
@@ -477,22 +507,38 @@ static int CreateVlnk(HWND hWnd, WCHAR *Dir)
vlnk
=
(
ventoy_vlnk
*
)
Buf
;
vlnk
=
(
ventoy_vlnk
*
)
Buf
;
ventoy_create_vlnk
(
DiskSig
,
(
uint64_t
)
DiskExtend
.
StartingOffset
.
QuadPart
,
UTF8Path
,
vlnk
);
ventoy_create_vlnk
(
DiskSig
,
(
uint64_t
)
DiskExtend
.
StartingOffset
.
QuadPart
,
UTF8Path
,
vlnk
);
DefaultVlnkDstFullPath
(
Pos
+
1
,
Dir
,
DstFullPath
);
if
(
OutFile
)
{
wcscpy_s
(
DstFullPath
,
MAX_PATH
,
OutFile
);
}
else
{
DefaultVlnkDstFullPath
(
Pos
+
1
,
Dir
,
DstFullPath
);
}
LogW
(
L"vlnk output file path is <%ls>
\n
"
,
DstFullPath
);
LogW
(
L"vlnk output file path is <%ls>
\n
"
,
DstFullPath
);
if
(
SaveBuffer2File
(
DstFullPath
,
Buf
,
VLNK_FILE_LEN
)
==
0
)
if
(
SaveBuffer2File
(
DstFullPath
,
Buf
,
VLNK_FILE_LEN
)
==
0
)
{
{
WCHAR
Msg
[
1024
];
WCHAR
Msg
[
1024
];
swprintf_s
(
Msg
,
1024
,
L"%ls
\r\n\r\n
%ls"
,
g_msg_lang
[
MSGID_VLNK_SUCCESS
],
DstFullPath
+
lstrlen
(
Dir
)
+
1
);
LogW
(
L"Vlnk file create success <%ls>
\n
"
,
DstFullPath
);
LogW
(
L"Vlnk file create success <%ls>
\n
"
,
DstFullPath
);
MessageBox
(
hWnd
,
Msg
,
g_msg_lang
[
MSGID_INFO
],
MB_OK
|
MB_ICONINFORMATION
);
if
(
OutFile
)
{
swprintf_s
(
Msg
,
1024
,
L"%ls
\r\n\r\n
%ls"
,
g_msg_lang
[
MSGID_VLNK_SUCCESS
],
DstFullPath
);
VtoyMessageBox
(
hWnd
,
Msg
,
g_msg_lang
[
MSGID_INFO
],
MB_OK
|
MB_ICONINFORMATION
);
}
else
{
swprintf_s
(
Msg
,
1024
,
L"%ls
\r\n\r\n
%ls"
,
g_msg_lang
[
MSGID_VLNK_SUCCESS
],
DstFullPath
+
lstrlen
(
Dir
)
+
1
);
VtoyMessageBox
(
hWnd
,
Msg
,
g_msg_lang
[
MSGID_INFO
],
MB_OK
|
MB_ICONINFORMATION
);
}
}
}
else
else
{
{
LogA
(
"Vlnk file save failed
\n
"
);
LogA
(
"Vlnk file save failed
\n
"
);
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_CREATE_FILE_ERR
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
Vtoy
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_CREATE_FILE_ERR
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
}
}
free
(
Buf
);
free
(
Buf
);
...
@@ -567,7 +613,7 @@ static int ParseVlnk(HWND hWnd)
...
@@ -567,7 +613,7 @@ static int ParseVlnk(HWND hWnd)
if
(
!
IsVlnkFile
(
szFile
,
&
vlnk
))
if
(
!
IsVlnkFile
(
szFile
,
&
vlnk
))
{
{
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_INVALID_VLNK
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
Vtoy
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_INVALID_VLNK
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
return
1
;
return
1
;
}
}
...
@@ -581,7 +627,7 @@ static int ParseVlnk(HWND hWnd)
...
@@ -581,7 +627,7 @@ static int ParseVlnk(HWND hWnd)
if
(
!
IsSupportedImgSuffix
(
suffix
))
if
(
!
IsSupportedImgSuffix
(
suffix
))
{
{
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_SUFFIX_UNSUPPORTED
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
Vtoy
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_SUFFIX_UNSUPPORTED
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
return
1
;
return
1
;
}
}
...
@@ -598,7 +644,7 @@ static int ParseVlnk(HWND hWnd)
...
@@ -598,7 +644,7 @@ static int ParseVlnk(HWND hWnd)
Letter
=
GetDriveLetter
(
vlnk
.
disk_signature
,
vlnk
.
part_offset
);
Letter
=
GetDriveLetter
(
vlnk
.
disk_signature
,
vlnk
.
part_offset
);
if
(
Letter
==
0
)
if
(
Letter
==
0
)
{
{
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_VLNK_NO_DST
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
Vtoy
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_VLNK_NO_DST
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
return
1
;
return
1
;
}
}
...
@@ -609,13 +655,13 @@ static int ParseVlnk(HWND hWnd)
...
@@ -609,13 +655,13 @@ static int ParseVlnk(HWND hWnd)
hFile
=
CreateFileW
(
szDst
,
FILE_READ_EA
,
FILE_SHARE_READ
,
0
,
OPEN_EXISTING
,
0
,
0
);
hFile
=
CreateFileW
(
szDst
,
FILE_READ_EA
,
FILE_SHARE_READ
,
0
,
OPEN_EXISTING
,
0
,
0
);
if
(
INVALID_HANDLE_VALUE
==
hFile
)
if
(
INVALID_HANDLE_VALUE
==
hFile
)
{
{
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_VLNK_NO_DST
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
Vtoy
MessageBox
(
hWnd
,
g_msg_lang
[
MSGID_VLNK_NO_DST
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
return
1
;
return
1
;
}
}
CloseHandle
(
hFile
);
CloseHandle
(
hFile
);
swprintf_s
(
Msg
,
1024
,
L"%ls %ls"
,
g_msg_lang
[
MSGID_VLNK_POINT_TO
],
szDst
);
swprintf_s
(
Msg
,
1024
,
L"%ls %ls"
,
g_msg_lang
[
MSGID_VLNK_POINT_TO
],
szDst
);
MessageBox
(
hWnd
,
Msg
,
g_msg_lang
[
MSGID_INFO
],
MB_OK
|
MB_ICONINFORMATION
);
Vtoy
MessageBox
(
hWnd
,
Msg
,
g_msg_lang
[
MSGID_INFO
],
MB_OK
|
MB_ICONINFORMATION
);
return
0
;
return
0
;
}
}
...
@@ -637,7 +683,7 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lPara
...
@@ -637,7 +683,7 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lPara
if
(
CtrlID
==
IDC_BUTTON1
)
if
(
CtrlID
==
IDC_BUTTON1
)
{
{
EnableWindow
(
g_create_button
,
FALSE
);
EnableWindow
(
g_create_button
,
FALSE
);
CreateVlnk
(
hWnd
,
g_CurDirW
);
CreateVlnk
(
hWnd
,
g_CurDirW
,
NULL
,
NULL
);
EnableWindow
(
g_create_button
,
TRUE
);
EnableWindow
(
g_create_button
,
TRUE
);
}
}
else
if
(
CtrlID
==
IDC_BUTTON2
)
else
if
(
CtrlID
==
IDC_BUTTON2
)
...
@@ -664,9 +710,46 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lPara
...
@@ -664,9 +710,46 @@ INT_PTR CALLBACK DialogProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lPara
return
0
;
return
0
;
}
}
int
APIENTRY
WinMain
(
HINSTANCE
hInstance
,
HINSTANCE
hPrevInstance
,
LPSTR
lpCmdLine
,
INT
nCmdShow
)
static
int
ParseCmdLine
(
LPSTR
lpCmdLine
)
{
{
int
i
;
int
i
;
int
argc
=
0
;
LPWSTR
*
lpszArgv
=
NULL
;
lpszArgv
=
CommandLineToArgvW
(
GetCommandLineW
(),
&
argc
);
for
(
i
=
0
;
i
<
argc
;
i
++
)
{
if
(
lstrcmp
(
lpszArgv
[
i
],
L"-q"
)
==
0
||
lstrcmp
(
lpszArgv
[
i
],
L"-Q"
)
==
0
)
{
g_LogFile
[
0
]
=
0
;
}
else
if
(
lstrcmp
(
lpszArgv
[
i
],
L"-h"
)
==
0
||
lstrcmp
(
lpszArgv
[
i
],
L"-H"
)
==
0
)
{
g_ShowHelp
=
TRUE
;
}
else
if
(
lstrcmp
(
lpszArgv
[
i
],
L"-i"
)
==
0
||
lstrcmp
(
lpszArgv
[
i
],
L"-I"
)
==
0
)
{
if
(
i
+
1
<
argc
)
{
wcscpy_s
(
g_CmdInFile
,
MAX_PATH
,
lpszArgv
[
i
+
1
]);
}
}
else
if
(
lstrcmp
(
lpszArgv
[
i
],
L"-o"
)
==
0
||
lstrcmp
(
lpszArgv
[
i
],
L"-O"
)
==
0
)
{
if
(
i
+
1
<
argc
)
{
wcscpy_s
(
g_CmdOutFile
,
MAX_PATH
,
lpszArgv
[
i
+
1
]);
}
}
}
return
argc
;
}
int
APIENTRY
WinMain
(
HINSTANCE
hInstance
,
HINSTANCE
hPrevInstance
,
LPSTR
lpCmdLine
,
INT
nCmdShow
)
{
DWORD
dwAttrib
;
HANDLE
hMutex
;
HANDLE
hMutex
;
UNREFERENCED_PARAMETER
(
hPrevInstance
);
UNREFERENCED_PARAMETER
(
hPrevInstance
);
...
@@ -680,32 +763,45 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
...
@@ -680,32 +763,45 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
g_msg_lang
=
g_msg_en
;
g_msg_lang
=
g_msg_en
;
}
}
hMutex
=
CreateMutexA
(
NULL
,
TRUE
,
"VtoyVlnkMUTEX"
);
hMutex
=
CreateMutexA
(
NULL
,
TRUE
,
"VtoyVlnkMUTEX"
);
if
((
hMutex
!=
NULL
)
&&
(
GetLastError
()
==
ERROR_ALREADY_EXISTS
))
if
((
hMutex
!=
NULL
)
&&
(
GetLastError
()
==
ERROR_ALREADY_EXISTS
))
{
{
MessageBoxW
(
NULL
,
g_msg_lang
[
MSGID_RUNNING_TIP
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
MessageBoxW
(
NULL
,
g_msg_lang
[
MSGID_RUNNING_TIP
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
return
1
;
return
1
;
}
}
GetCurrentDirectoryA
(
MAX_PATH
,
g_CurDirA
);
GetCurrentDirectoryA
(
MAX_PATH
,
g_CurDirA
);
GetCurrentDirectoryW
(
MAX_PATH
,
g_CurDirW
);
GetCurrentDirectoryW
(
MAX_PATH
,
g_CurDirW
);
sprintf_s
(
g_LogFile
,
sizeof
(
g_LogFile
),
"%s
\\
VentoyVlnk.log"
,
g_CurDirA
);
sprintf_s
(
g_LogFile
,
sizeof
(
g_LogFile
),
"%s
\\
VentoyVlnk.log"
,
g_CurDirA
);
for
(
i
=
0
;
i
<
__argc
;
i
++
)
ParseCmdLine
(
lpCmdLine
);
g_hInst
=
hInstance
;
if
(
g_ShowHelp
)
{
{
if
(
strncmp
(
__argv
[
i
],
"-Q"
,
2
)
==
0
||
VtoyMessageBox
(
NULL
,
L"VentoyVlnk.exe CMD
\r\n
-i Input file path
\r\n
-o Output vlnk file path
\r\n
-q Quite mode (no log)"
,
L"Tip"
,
MB_OK
);
strncmp
(
__argv
[
i
],
"-q"
,
2
)
==
0
)
return
0
;
{
g_LogFile
[
0
]
=
0
;
break
;
}
}
}
else
if
(
g_CmdInFile
[
0
]
&&
g_CmdOutFile
[
0
])
{
LogA
(
"========= VentoyVlnk Cmdline Mode =========
\n
"
);
LogA
(
"========= VentoyVlnk =========
\n
"
);
dwAttrib
=
GetFileAttributesW
(
g_CmdInFile
);
if
(
dwAttrib
==
INVALID_FILE_ATTRIBUTES
||
(
dwAttrib
&
FILE_ATTRIBUTE_DIRECTORY
))
{
LogW
(
L"File <<%ls>> does not exist!
\n
"
,
g_CmdInFile
);
VtoyMessageBox
(
NULL
,
g_msg_lang
[
MSGID_SRC_NONEXIST
],
g_msg_lang
[
MSGID_ERROR
],
MB_OK
|
MB_ICONERROR
);
return
1
;
}
g_hInst
=
hInstance
;
return
CreateVlnk
(
NULL
,
g_CurDirW
,
g_CmdInFile
,
g_CmdOutFile
);
DialogBoxA
(
hInstance
,
MAKEINTRESOURCEA
(
IDD_DIALOG1
),
NULL
,
DialogProc
);
}
else
{
LogA
(
"========= VentoyVlnk GUI Mode =========
\n
"
);
return
0
;
DialogBoxA
(
hInstance
,
MAKEINTRESOURCEA
(
IDD_DIALOG1
),
NULL
,
DialogProc
);
return
0
;
}
}
}
Vlnk/vs/VentoyVlnk/Release/VentoyVlnk.exe
View file @
1ca48923
No preview for this file type
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment