├── LinkHelper.dsw
├── LinkHelper.sln
├── LinkHelper
├── Clean.bat
├── DragEdit.cpp
├── DragEdit.h
├── LinkHelper.cpp
├── LinkHelper.dsp
├── LinkHelper.h
├── LinkHelper.rc
├── LinkHelper.vcproj
├── LinkHelperDlg.cpp
├── LinkHelperDlg.h
├── MLink.cpp
├── MLink.h
├── StdAfx.cpp
├── StdAfx.h
├── VcHelper.h
├── res
│ ├── LinkHelper.ico
│ ├── LinkHelper.rc2
│ └── LinkHelper123.ico
└── resource.h
├── ReadMe.md
└── ScreenShot.png
/LinkHelper.dsw:
--------------------------------------------------------------------------------
1 | Microsoft Developer Studio Workspace File, Format Version 6.00
2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
3 |
4 | ###############################################################################
5 |
6 | Project: "LinkHelper"=.\LinkHelper.dsp - Package Owner=<4>
7 |
8 | Package=<5>
9 | {{{
10 | }}}
11 |
12 | Package=<4>
13 | {{{
14 | }}}
15 |
16 | ###############################################################################
17 |
18 | Global:
19 |
20 | Package=<5>
21 | {{{
22 | }}}
23 |
24 | Package=<3>
25 | {{{
26 | }}}
27 |
28 | ###############################################################################
29 |
30 |
--------------------------------------------------------------------------------
/LinkHelper.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 10.00
3 | # Visual Studio 2008
4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LinkHelper", "LinkHelper/LinkHelper.vcproj", "{C9C0CB3E-A301-42A4-9A1D-3BD274F07668}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|Win32 = Debug|Win32
9 | Release|Win32 = Release|Win32
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {C9C0CB3E-A301-42A4-9A1D-3BD274F07668}.Debug|Win32.ActiveCfg = Debug|Win32
13 | {C9C0CB3E-A301-42A4-9A1D-3BD274F07668}.Debug|Win32.Build.0 = Debug|Win32
14 | {C9C0CB3E-A301-42A4-9A1D-3BD274F07668}.Release|Win32.ActiveCfg = Release|Win32
15 | {C9C0CB3E-A301-42A4-9A1D-3BD274F07668}.Release|Win32.Build.0 = Release|Win32
16 | EndGlobalSection
17 | GlobalSection(SolutionProperties) = preSolution
18 | HideSolutionNode = FALSE
19 | EndGlobalSection
20 | EndGlobal
21 |
--------------------------------------------------------------------------------
/LinkHelper/Clean.bat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wanttobeno/LinkHelper/3e6d7f70027be3c8f74332aebaf376868d875f46/LinkHelper/Clean.bat
--------------------------------------------------------------------------------
/LinkHelper/DragEdit.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wanttobeno/LinkHelper/3e6d7f70027be3c8f74332aebaf376868d875f46/LinkHelper/DragEdit.cpp
--------------------------------------------------------------------------------
/LinkHelper/DragEdit.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wanttobeno/LinkHelper/3e6d7f70027be3c8f74332aebaf376868d875f46/LinkHelper/DragEdit.h
--------------------------------------------------------------------------------
/LinkHelper/LinkHelper.cpp:
--------------------------------------------------------------------------------
1 | // LinkHelper.cpp : Defines the class behaviors for the application.
2 | //
3 |
4 | #include "stdafx.h"
5 | #include "LinkHelper.h"
6 | #include "LinkHelperDlg.h"
7 |
8 | #ifdef _DEBUG
9 | #define new DEBUG_NEW
10 | #undef THIS_FILE
11 | static char THIS_FILE[] = __FILE__;
12 | #endif
13 |
14 | /////////////////////////////////////////////////////////////////////////////
15 | // CLinkHelperApp
16 |
17 | BEGIN_MESSAGE_MAP(CLinkHelperApp, CWinApp)
18 | //{{AFX_MSG_MAP(CLinkHelperApp)
19 | //}}AFX_MSG
20 | ON_COMMAND(ID_HELP, CWinApp::OnHelp)
21 | END_MESSAGE_MAP()
22 |
23 | /////////////////////////////////////////////////////////////////////////////
24 | // CLinkHelperApp construction
25 |
26 | CLinkHelperApp::CLinkHelperApp()
27 | {
28 | }
29 |
30 | /////////////////////////////////////////////////////////////////////////////
31 | // The one and only CLinkHelperApp object
32 |
33 | CLinkHelperApp theApp;
34 |
35 | /////////////////////////////////////////////////////////////////////////////
36 | // CLinkHelperApp initialization
37 |
38 | BOOL CLinkHelperApp::InitInstance()
39 | {
40 | // Standard initialization
41 |
42 | CLinkHelperDlg dlg;
43 | m_pMainWnd = &dlg;
44 | int nResponse = dlg.DoModal();
45 | if (nResponse == IDOK)
46 | {
47 | }
48 | else if (nResponse == IDCANCEL)
49 | {
50 | }
51 |
52 | // Since the dialog has been closed, return FALSE so that we exit the
53 | // application, rather than start the application's message pump.
54 | return FALSE;
55 | }
56 |
--------------------------------------------------------------------------------
/LinkHelper/LinkHelper.dsp:
--------------------------------------------------------------------------------
1 | # Microsoft Developer Studio Project File - Name="LinkHelper" - Package Owner=<4>
2 | # Microsoft Developer Studio Generated Build File, Format Version 6.00
3 | # ** DO NOT EDIT **
4 |
5 | # TARGTYPE "Win32 (x86) Application" 0x0101
6 |
7 | CFG=LinkHelper - Win32 Debug
8 | !MESSAGE This is not a valid makefile. To build this project using NMAKE,
9 | !MESSAGE use the Export Makefile command and run
10 | !MESSAGE
11 | !MESSAGE NMAKE /f "LinkHelper.mak".
12 | !MESSAGE
13 | !MESSAGE You can specify a configuration when running NMAKE
14 | !MESSAGE by defining the macro CFG on the command line. For example:
15 | !MESSAGE
16 | !MESSAGE NMAKE /f "LinkHelper.mak" CFG="LinkHelper - Win32 Debug"
17 | !MESSAGE
18 | !MESSAGE Possible choices for configuration are:
19 | !MESSAGE
20 | !MESSAGE "LinkHelper - Win32 Release" (based on "Win32 (x86) Application")
21 | !MESSAGE "LinkHelper - Win32 Debug" (based on "Win32 (x86) Application")
22 | !MESSAGE
23 |
24 | # Begin Project
25 | # PROP AllowPerConfigDependencies 0
26 | # PROP Scc_ProjName ""
27 | # PROP Scc_LocalPath ""
28 | CPP=cl.exe
29 | MTL=midl.exe
30 | RSC=rc.exe
31 |
32 | !IF "$(CFG)" == "LinkHelper - Win32 Release"
33 |
34 | # PROP BASE Use_MFC 6
35 | # PROP BASE Use_Debug_Libraries 0
36 | # PROP BASE Output_Dir "Release"
37 | # PROP BASE Intermediate_Dir "Release"
38 | # PROP BASE Target_Dir ""
39 | # PROP Use_MFC 6
40 | # PROP Use_Debug_Libraries 0
41 | # PROP Output_Dir "Release"
42 | # PROP Intermediate_Dir "Release"
43 | # PROP Target_Dir ""
44 | # ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
45 | # ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c
46 | # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
47 | # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
48 | # ADD BASE RSC /l 0x804 /d "NDEBUG" /d "_AFXDLL"
49 | # ADD RSC /l 0x804 /d "NDEBUG" /d "_AFXDLL"
50 | BSC32=bscmake.exe
51 | # ADD BASE BSC32 /nologo
52 | # ADD BSC32 /nologo
53 | LINK32=link.exe
54 | # ADD BASE LINK32 /nologo /subsystem:windows /machine:I386
55 | # ADD LINK32 /nologo /subsystem:windows /machine:I386
56 |
57 | !ELSEIF "$(CFG)" == "LinkHelper - Win32 Debug"
58 |
59 | # PROP BASE Use_MFC 6
60 | # PROP BASE Use_Debug_Libraries 1
61 | # PROP BASE Output_Dir "Debug"
62 | # PROP BASE Intermediate_Dir "Debug"
63 | # PROP BASE Target_Dir ""
64 | # PROP Use_MFC 6
65 | # PROP Use_Debug_Libraries 1
66 | # PROP Output_Dir "Debug"
67 | # PROP Intermediate_Dir "Debug"
68 | # PROP Target_Dir ""
69 | # ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
70 | # ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FR /Yu"stdafx.h" /FD /GZ /c
71 | # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
72 | # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
73 | # ADD BASE RSC /l 0x804 /d "_DEBUG" /d "_AFXDLL"
74 | # ADD RSC /l 0x804 /d "_DEBUG" /d "_AFXDLL"
75 | BSC32=bscmake.exe
76 | # ADD BASE BSC32 /nologo
77 | # ADD BSC32 /nologo
78 | LINK32=link.exe
79 | # ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
80 | # ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
81 |
82 | !ENDIF
83 |
84 | # Begin Target
85 |
86 | # Name "LinkHelper - Win32 Release"
87 | # Name "LinkHelper - Win32 Debug"
88 | # Begin Group "Source Files"
89 |
90 | # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
91 | # Begin Source File
92 |
93 | SOURCE=.\DragEdit.cpp
94 | # End Source File
95 | # Begin Source File
96 |
97 | SOURCE=.\LinkHelper.cpp
98 | # End Source File
99 | # Begin Source File
100 |
101 | SOURCE=.\LinkHelper.rc
102 | # End Source File
103 | # Begin Source File
104 |
105 | SOURCE=.\LinkHelperDlg.cpp
106 | # End Source File
107 | # Begin Source File
108 |
109 | SOURCE=.\MLink.cpp
110 | # End Source File
111 | # Begin Source File
112 |
113 | SOURCE=.\StdAfx.cpp
114 | # ADD CPP /Yc"stdafx.h"
115 | # End Source File
116 | # End Group
117 | # Begin Group "Header Files"
118 |
119 | # PROP Default_Filter "h;hpp;hxx;hm;inl"
120 | # Begin Source File
121 |
122 | SOURCE=.\DragEdit.h
123 | # End Source File
124 | # Begin Source File
125 |
126 | SOURCE=.\LinkHelper.h
127 | # End Source File
128 | # Begin Source File
129 |
130 | SOURCE=.\LinkHelperDlg.h
131 | # End Source File
132 | # Begin Source File
133 |
134 | SOURCE=.\MLink.h
135 | # End Source File
136 | # Begin Source File
137 |
138 | SOURCE=.\Resource.h
139 | # End Source File
140 | # Begin Source File
141 |
142 | SOURCE=.\StdAfx.h
143 | # End Source File
144 | # Begin Source File
145 |
146 | SOURCE=.\VcHelper.h
147 | # End Source File
148 | # End Group
149 | # Begin Group "Resource Files"
150 |
151 | # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
152 | # Begin Source File
153 |
154 | SOURCE=.\res\LinkHelper.ico
155 | # End Source File
156 | # Begin Source File
157 |
158 | SOURCE=.\res\LinkHelper.rc2
159 | # End Source File
160 | # End Group
161 | # End Target
162 | # End Project
163 |
--------------------------------------------------------------------------------
/LinkHelper/LinkHelper.h:
--------------------------------------------------------------------------------
1 | // LinkHelper.h : main header file for the LINKHELPER application
2 | //
3 |
4 | #if !defined(AFX_LINKHELPER_H__D5953CB5_BC55_4854_9F86_F3A927BA7C0A__INCLUDED_)
5 | #define AFX_LINKHELPER_H__D5953CB5_BC55_4854_9F86_F3A927BA7C0A__INCLUDED_
6 |
7 | #if _MSC_VER > 1000
8 | #pragma once
9 | #endif // _MSC_VER > 1000
10 |
11 | #ifndef __AFXWIN_H__
12 | #error include 'stdafx.h' before including this file for PCH
13 | #endif
14 |
15 | #include "resource.h" // main symbols
16 |
17 | /////////////////////////////////////////////////////////////////////////////
18 | // CLinkHelperApp:
19 | // See LinkHelper.cpp for the implementation of this class
20 | //
21 |
22 | class CLinkHelperApp : public CWinApp
23 | {
24 | public:
25 | CLinkHelperApp();
26 |
27 | // Overrides
28 | // ClassWizard generated virtual function overrides
29 | //{{AFX_VIRTUAL(CLinkHelperApp)
30 | public:
31 | virtual BOOL InitInstance();
32 | //}}AFX_VIRTUAL
33 |
34 | // Implementation
35 |
36 | //{{AFX_MSG(CLinkHelperApp)
37 | //}}AFX_MSG
38 | DECLARE_MESSAGE_MAP()
39 | };
40 |
41 |
42 | /////////////////////////////////////////////////////////////////////////////
43 |
44 | //{{AFX_INSERT_LOCATION}}
45 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
46 |
47 | #endif // !defined(AFX_LINKHELPER_H__D5953CB5_BC55_4854_9F86_F3A927BA7C0A__INCLUDED_)
48 |
--------------------------------------------------------------------------------
/LinkHelper/LinkHelper.rc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wanttobeno/LinkHelper/3e6d7f70027be3c8f74332aebaf376868d875f46/LinkHelper/LinkHelper.rc
--------------------------------------------------------------------------------
/LinkHelper/LinkHelper.vcproj:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
15 |
16 |
17 |
18 |
19 |
29 |
32 |
35 |
38 |
41 |
50 |
68 |
71 |
76 |
79 |
92 |
95 |
98 |
101 |
106 |
109 |
112 |
115 |
116 |
126 |
129 |
132 |
135 |
138 |
147 |
164 |
167 |
172 |
175 |
187 |
190 |
193 |
196 |
201 |
204 |
207 |
210 |
211 |
212 |
213 |
214 |
215 |
219 |
222 |
225 |
229 |
230 |
233 |
237 |
238 |
239 |
242 |
245 |
249 |
250 |
253 |
257 |
258 |
259 |
262 |
265 |
269 |
270 |
273 |
277 |
278 |
279 |
282 |
285 |
289 |
290 |
293 |
297 |
298 |
299 |
302 |
305 |
309 |
310 |
313 |
317 |
318 |
319 |
322 |
325 |
330 |
331 |
334 |
339 |
340 |
341 |
342 |
346 |
349 |
350 |
353 |
354 |
357 |
358 |
361 |
362 |
365 |
366 |
369 |
370 |
373 |
374 |
375 |
379 |
382 |
383 |
386 |
387 |
388 |
389 |
390 |
391 |
392 |
--------------------------------------------------------------------------------
/LinkHelper/LinkHelperDlg.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wanttobeno/LinkHelper/3e6d7f70027be3c8f74332aebaf376868d875f46/LinkHelper/LinkHelperDlg.cpp
--------------------------------------------------------------------------------
/LinkHelper/LinkHelperDlg.h:
--------------------------------------------------------------------------------
1 | // LinkHelperDlg.h : header file
2 | //
3 |
4 | #if !defined(AFX_LINKHELPERDLG_H__F551E536_4C2F_45A6_93E9_A686EDA31E7D__INCLUDED_)
5 | #define AFX_LINKHELPERDLG_H__F551E536_4C2F_45A6_93E9_A686EDA31E7D__INCLUDED_
6 |
7 | #if _MSC_VER > 1000
8 | #pragma once
9 | #endif // _MSC_VER > 1000
10 | /////////////////////////////////////////////////////////////////////////////
11 | // CLinkHelperDlg dialog
12 | #include "DragEdit.h"
13 |
14 | class CLinkHelperDlg : public CDialog
15 | {
16 | // Construction
17 | public:
18 | CLinkHelperDlg(CWnd* pParent = NULL); // standard constructor
19 | CToolTipCtrl* m_tipBtnCtr;
20 | // Dialog Data
21 | //{{AFX_DATA(CLinkHelperDlg)
22 | enum { IDD = IDD_LINKHELPER_DIALOG };
23 | CDragEdit m_DragDst;
24 | CDragEdit m_DragEdit;
25 | CString m_szDst;
26 | CString m_szSrc;
27 | //}}AFX_DATA
28 |
29 | // ClassWizard generated virtual function overrides
30 | //{{AFX_VIRTUAL(CLinkHelperDlg)
31 | public:
32 | virtual BOOL PreTranslateMessage(MSG* pMsg);
33 | protected:
34 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
35 | //}}AFX_VIRTUAL
36 |
37 | // Implementation
38 | protected:
39 | HICON m_hIcon;
40 |
41 | // Generated message map functions
42 | //{{AFX_MSG(CLinkHelperDlg)
43 | virtual BOOL OnInitDialog();
44 | afx_msg void OnPaint();
45 | afx_msg HCURSOR OnQueryDragIcon();
46 | virtual void OnOK();
47 | //}}AFX_MSG
48 | DECLARE_MESSAGE_MAP()
49 | };
50 |
51 | //{{AFX_INSERT_LOCATION}}
52 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
53 |
54 | #endif // !defined(AFX_LINKHELPERDLG_H__F551E536_4C2F_45A6_93E9_A686EDA31E7D__INCLUDED_)
55 |
--------------------------------------------------------------------------------
/LinkHelper/MLink.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wanttobeno/LinkHelper/3e6d7f70027be3c8f74332aebaf376868d875f46/LinkHelper/MLink.cpp
--------------------------------------------------------------------------------
/LinkHelper/MLink.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wanttobeno/LinkHelper/3e6d7f70027be3c8f74332aebaf376868d875f46/LinkHelper/MLink.h
--------------------------------------------------------------------------------
/LinkHelper/StdAfx.cpp:
--------------------------------------------------------------------------------
1 | // stdafx.cpp : source file that includes just the standard includes
2 | // LinkHelper.pch will be the pre-compiled header
3 | // stdafx.obj will contain the pre-compiled type information
4 |
5 | #include "stdafx.h"
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/LinkHelper/StdAfx.h:
--------------------------------------------------------------------------------
1 | // stdafx.h : include file for standard system include files,
2 | // or project specific include files that are used frequently, but
3 | // are changed infrequently
4 | //
5 |
6 | #if !defined(AFX_STDAFX_H__5050EE97_06E7_4A25_92C4_2D4635859B43__INCLUDED_)
7 | #define AFX_STDAFX_H__5050EE97_06E7_4A25_92C4_2D4635859B43__INCLUDED_
8 |
9 | #if _MSC_VER > 1000
10 | #pragma once
11 | #endif // _MSC_VER > 1000
12 |
13 | #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
14 |
15 | #include // MFC core and standard components
16 | #include // MFC extensions
17 | #include // MFC support for Internet Explorer 4 Common Controls
18 | #ifndef _AFX_NO_AFXCMN_SUPPORT
19 | #include // MFC support for Windows Common Controls
20 | #endif // _AFX_NO_AFXCMN_SUPPORT
21 |
22 |
23 | #if defined _M_IX86
24 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
25 | #elif defined _M_IA64
26 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
27 | #elif defined _M_X64
28 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
29 | #else
30 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
31 | #endif
32 |
33 | //{{AFX_INSERT_LOCATION}}
34 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
35 |
36 | #endif // !defined(AFX_STDAFX_H__5050EE97_06E7_4A25_92C4_2D4635859B43__INCLUDED_)
37 |
--------------------------------------------------------------------------------
/LinkHelper/VcHelper.h:
--------------------------------------------------------------------------------
1 | #ifndef CVCHELPER_H__
2 | #define CVCHELPER_H__
3 |
4 | #include
5 |
6 |
7 |
8 | #ifndef InitializeObjectAttributes
9 | #define InitializeObjectAttributes( p, n, a, r, s ) { \
10 | (p)->Length = sizeof( OBJECT_ATTRIBUTES ); \
11 | (p)->RootDirectory = r; \
12 | (p)->Attributes = a; \
13 | (p)->ObjectName = n; \
14 | (p)->SecurityDescriptor = s; \
15 | (p)->SecurityQualityOfService = NULL; \
16 | }
17 | #endif
18 |
19 |
20 | #define OBJ_CASE_INSENSITIVE 0x00000040L
21 |
22 | #define FILE_CREATE 0x00000002
23 | #define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020
24 | #define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000
25 |
26 | #ifndef NT_SUCCESS
27 | #define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
28 | #endif
29 |
30 | #define SYMBOLIC_LINK_FLAG_DIRECTORY (0x1)
31 |
32 |
33 |
34 | #ifndef _UNICODE_STRING
35 | typedef struct _UNICODE_STRING {
36 | USHORT Length;
37 | USHORT MaximumLength;
38 | PWSTR Buffer;
39 | } UNICODE_STRING;
40 | typedef UNICODE_STRING *PUNICODE_STRING;
41 | typedef const UNICODE_STRING *PCUNICODE_STRING;
42 |
43 | #endif // _UNICODE_STRING
44 |
45 |
46 |
47 | #ifndef _OBJECT_ATTRIBUTES
48 | typedef struct _OBJECT_ATTRIBUTES {
49 | ULONG Length;
50 | HANDLE RootDirectory;
51 | PUNICODE_STRING ObjectName;
52 | ULONG Attributes;
53 | PVOID SecurityDescriptor;
54 | PVOID SecurityQualityOfService;
55 | } OBJECT_ATTRIBUTES;
56 | typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;
57 |
58 | #endif
59 |
60 | #define _W64
61 |
62 | typedef _W64 long LONG_PTR, *PLONG_PTR;
63 | typedef _W64 unsigned long ULONG_PTR, *PULONG_PTR;
64 |
65 | #define __int3264 __int32
66 |
67 |
68 | typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;
69 |
70 | typedef struct _IO_STATUS_BLOCK {
71 | union {
72 | NTSTATUS Status;
73 | PVOID Pointer;
74 | } DUMMYUNIONNAME;
75 |
76 | ULONG_PTR Information;
77 | } IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
78 |
79 |
80 | #endif // CVCHELPER_H__
--------------------------------------------------------------------------------
/LinkHelper/res/LinkHelper.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wanttobeno/LinkHelper/3e6d7f70027be3c8f74332aebaf376868d875f46/LinkHelper/res/LinkHelper.ico
--------------------------------------------------------------------------------
/LinkHelper/res/LinkHelper.rc2:
--------------------------------------------------------------------------------
1 | //
2 | // LINKHELPER.RC2 - resources Microsoft Visual C++ does not edit directly
3 | //
4 |
5 | #ifdef APSTUDIO_INVOKED
6 | #error this file is not editable by Microsoft Visual C++
7 | #endif //APSTUDIO_INVOKED
8 |
9 |
10 | /////////////////////////////////////////////////////////////////////////////
11 | // Add manually edited resources here...
12 |
13 | /////////////////////////////////////////////////////////////////////////////
14 |
--------------------------------------------------------------------------------
/LinkHelper/res/LinkHelper123.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wanttobeno/LinkHelper/3e6d7f70027be3c8f74332aebaf376868d875f46/LinkHelper/res/LinkHelper123.ico
--------------------------------------------------------------------------------
/LinkHelper/resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
2 | // Microsoft Developer Studio generated include file.
3 | // Used by LinkHelper.rc
4 | //
5 | #define IDD_LINKHELPER_DIALOG 102
6 | #define IDR_MAINFRAME 128
7 | #define IDC_SRC 1000
8 | #define IDC_DST 1001
9 |
10 | // Next default values for new objects
11 | //
12 | #ifdef APSTUDIO_INVOKED
13 | #ifndef APSTUDIO_READONLY_SYMBOLS
14 | #define _APS_NEXT_RESOURCE_VALUE 129
15 | #define _APS_NEXT_COMMAND_VALUE 32771
16 | #define _APS_NEXT_CONTROL_VALUE 1002
17 | #define _APS_NEXT_SYMED_VALUE 101
18 | #endif
19 | #endif
20 |
--------------------------------------------------------------------------------
/ReadMe.md:
--------------------------------------------------------------------------------
1 |
2 | ##### 用法
3 |
4 | ```
5 | 1、拖入文件夹到目标的编辑框
6 | 2、在保存的编辑框填写保存的完整路径。
7 | ```
8 |
9 | 拖入可执行程序,创建的是快捷方式,
10 |
11 |
12 | 
13 |
14 |
15 |
16 |
17 | #### 扩展知识
18 |
19 | ##### 硬链接
20 | 硬链接就是让多个不在或者同在一个目录下的文件名,同时能够修改同一个文件,其中一个修改后,所有与其有硬链接的文件都一起修改了
21 |
22 | ##### 限制:
23 |
24 | ```
25 | 1、硬连接适用于在同一个卷的文件级别,不允许给目录创建硬链接;
26 | 2、硬连接是不能跨卷的,只有在同一文件系统中的文件之间才能创建链接。
27 | 硬链接在Windows系统下的应用
28 | 1.节省硬盘空间。同样的文件,只需要维护硬连接关系,不需要进行多重的拷贝,这样可以节省硬盘空间。
29 | 2.重命名文件。重命名文件并不需要打开该文件,只需改动某个目录项的内容即可。
30 | 3.删除文件。删除文件只需将相应的目录项删除,该文件的链接数减1,如果删除目录项后该文件的链接数为零,这时系统才把真正的文件从磁盘上删除。
31 | 4.文件更新。如果涉及文件更新,只需要先在WinSxS目录里面下载好一个新版本,然后修改Windows\System32下面同名文件的硬连接关系,从旧版本的硬连接指向新版本的硬连接,这样就能够快速的完成文件的更新工作,而不需要进行文件的复制,速度也会快不少。
32 | 5.卸载补丁。遇到需要补丁卸载的情况,只需要把硬连接指向改为旧版本就可以了,没有文件替换的问题。而且建立了硬连接关系的文件之间的修改是同步的,因此只要有一方被修改了,另一方也会得到修改。
33 | ```
34 |
35 | ##### 符号链接
36 |
37 | ```
38 | 符号链接又叫软链接,是一类特殊的文件,这个文件包含了另一个文件的路径名(绝对路径或者相对路径)。
39 | 路径可以是任意文件或目录,可以链接不同文件系统的文件。
40 | 在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,
41 | 但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身。
42 | ```
--------------------------------------------------------------------------------
/ScreenShot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wanttobeno/LinkHelper/3e6d7f70027be3c8f74332aebaf376868d875f46/ScreenShot.png
--------------------------------------------------------------------------------