Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
85eac20a
Commit
85eac20a
authored
Jan 26, 2008
by
Francois Gouget
Committed by
Alexandre Julliard
Feb 04, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winedump: Use the standard SLDF_XXX flag names instead of inventing new ones.…
winedump: Use the standard SLDF_XXX flag names instead of inventing new ones. Add the missing flags.
parent
5caa63ca
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
67 additions
and
35 deletions
+67
-35
lnk.c
tools/winedump/lnk.c
+67
-35
No files found.
tools/winedump/lnk.c
View file @
85eac20a
...
...
@@ -38,16 +38,36 @@
#include "pshpack1.h"
#define SCF_PIDL 1
#define SCF_LOCATION 2
#define SCF_DESCRIPTION 4
#define SCF_RELATIVE 8
#define SCF_WORKDIR 0x10
#define SCF_ARGS 0x20
#define SCF_CUSTOMICON 0x40
#define SCF_UNICODE 0x80
#define SCF_PRODUCT 0x800
#define SCF_COMPONENT 0x1000
typedef
enum
{
SLDF_HAS_ID_LIST
=
0x00000001
,
SLDF_HAS_LINK_INFO
=
0x00000002
,
SLDF_HAS_NAME
=
0x00000004
,
SLDF_HAS_RELPATH
=
0x00000008
,
SLDF_HAS_WORKINGDIR
=
0x00000010
,
SLDF_HAS_ARGS
=
0x00000020
,
SLDF_HAS_ICONLOCATION
=
0x00000040
,
SLDF_UNICODE
=
0x00000080
,
SLDF_FORCE_NO_LINKINFO
=
0x00000100
,
SLDF_HAS_EXP_SZ
=
0x00000200
,
SLDF_RUN_IN_SEPARATE
=
0x00000400
,
SLDF_HAS_LOGO3ID
=
0x00000800
,
SLDF_HAS_DARWINID
=
0x00001000
,
SLDF_RUNAS_USER
=
0x00002000
,
SLDF_HAS_EXP_ICON_SZ
=
0x00004000
,
SLDF_NO_PIDL_ALIAS
=
0x00008000
,
SLDF_FORCE_UNCNAME
=
0x00010000
,
SLDF_RUN_WITH_SHIMLAYER
=
0x00020000
,
SLDF_FORCE_NO_LINKTRACK
=
0x00040000
,
SLDF_ENABLE_TARGET_METADATA
=
0x00080000
,
SLDF_DISABLE_KNOWNFOLDER_RELATIVE_TRACKING
=
0x00200000
,
SLDF_RESERVED
=
0x80000000
,
}
SHELL_LINK_DATA_FLAGS
;
typedef
struct
tagDATABLOCKHEADER
{
DWORD
cbSize
;
DWORD
dwSignature
;
}
DATABLOCK_HEADER
;
typedef
struct
_LINK_HEADER
{
...
...
@@ -351,39 +371,51 @@ void lnk_dump(void)
/* dump out all the flags */
printf
(
"Flags: %04x ( "
,
hdr
->
dwFlags
);
#define FLAG(x) if(hdr->dwFlags & SCF_##x) printf("%s ",#x);
FLAG
(
PIDL
)
FLAG
(
LOCATION
)
FLAG
(
DESCRIPTION
)
FLAG
(
RELATIVE
)
FLAG
(
WORKDIR
)
FLAG
(
ARGS
)
FLAG
(
CUSTOMICON
)
FLAG
(
UNICODE
)
FLAG
(
PRODUCT
)
FLAG
(
COMPONENT
)
#define FLAG(x) if(hdr->dwFlags & SLDF_##x) printf("%s ",#x)
FLAG
(
HAS_ID_LIST
);
FLAG
(
HAS_LINK_INFO
);
FLAG
(
HAS_NAME
);
FLAG
(
HAS_RELPATH
);
FLAG
(
HAS_WORKINGDIR
);
FLAG
(
HAS_ARGS
);
FLAG
(
HAS_ICONLOCATION
);
FLAG
(
UNICODE
);
FLAG
(
FORCE_NO_LINKINFO
);
FLAG
(
HAS_EXP_SZ
);
FLAG
(
RUN_IN_SEPARATE
);
FLAG
(
HAS_LOGO3ID
);
FLAG
(
HAS_DARWINID
);
FLAG
(
RUNAS_USER
);
FLAG
(
HAS_EXP_ICON_SZ
);
FLAG
(
NO_PIDL_ALIAS
);
FLAG
(
FORCE_UNCNAME
);
FLAG
(
RUN_WITH_SHIMLAYER
);
FLAG
(
FORCE_NO_LINKTRACK
);
FLAG
(
ENABLE_TARGET_METADATA
);
FLAG
(
DISABLE_KNOWNFOLDER_RELATIVE_TRACKING
);
FLAG
(
RESERVED
);
#undef FLAG
printf
(
")
\n
"
);
printf
(
"Length: %04x
\n
"
,
hdr
->
dwFileLength
);
printf
(
"
\n
"
);
if
(
hdr
->
dwFlags
&
S
CF_PIDL
)
if
(
hdr
->
dwFlags
&
S
LDF_HAS_ID_LIST
)
dump_pidl
();
if
(
hdr
->
dwFlags
&
S
CF_LOCATION
)
if
(
hdr
->
dwFlags
&
S
LDF_HAS_LINK_INFO
)
dump_location
();
if
(
hdr
->
dwFlags
&
S
CF_DESCRIPTION
)
dump_string
(
"Description"
,
hdr
->
dwFlags
&
S
C
F_UNICODE
);
if
(
hdr
->
dwFlags
&
S
CF_RELATIVE
)
dump_string
(
"Relative path"
,
hdr
->
dwFlags
&
S
C
F_UNICODE
);
if
(
hdr
->
dwFlags
&
S
CF_WORK
DIR
)
dump_string
(
"Working directory"
,
hdr
->
dwFlags
&
S
C
F_UNICODE
);
if
(
hdr
->
dwFlags
&
S
CF
_ARGS
)
dump_string
(
"Arguments"
,
hdr
->
dwFlags
&
S
C
F_UNICODE
);
if
(
hdr
->
dwFlags
&
S
CF_CUSTOMIC
ON
)
dump_string
(
"Icon path"
,
hdr
->
dwFlags
&
S
C
F_UNICODE
);
if
(
hdr
->
dwFlags
&
S
CF_PRODUCT
)
if
(
hdr
->
dwFlags
&
S
LDF_HAS_NAME
)
dump_string
(
"Description"
,
hdr
->
dwFlags
&
S
LD
F_UNICODE
);
if
(
hdr
->
dwFlags
&
S
LDF_HAS_RELPATH
)
dump_string
(
"Relative path"
,
hdr
->
dwFlags
&
S
LD
F_UNICODE
);
if
(
hdr
->
dwFlags
&
S
LDF_HAS_WORKING
DIR
)
dump_string
(
"Working directory"
,
hdr
->
dwFlags
&
S
LD
F_UNICODE
);
if
(
hdr
->
dwFlags
&
S
LDF_HAS
_ARGS
)
dump_string
(
"Arguments"
,
hdr
->
dwFlags
&
S
LD
F_UNICODE
);
if
(
hdr
->
dwFlags
&
S
LDF_HAS_ICONLOCATI
ON
)
dump_string
(
"Icon path"
,
hdr
->
dwFlags
&
S
LD
F_UNICODE
);
if
(
hdr
->
dwFlags
&
S
LDF_HAS_LOGO3ID
)
dump_advertise_info
(
"product"
);
if
(
hdr
->
dwFlags
&
S
CF_COMPONENT
)
if
(
hdr
->
dwFlags
&
S
LDF_HAS_DARWINID
)
dump_advertise_info
(
"msi string"
);
}
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