Francois Gouget : winedump: Use the standard SLDF_XXX flag names instead of inventing new ones. Add the missing flags.

Alexandre Julliard julliard at winehq.org
Mon Feb 4 08:42:49 CST 2008


Module: wine
Branch: master
Commit: 85eac20afdc0c64650054e0eded45ea2dbe3ac9f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=85eac20afdc0c64650054e0eded45ea2dbe3ac9f

Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Sat Jan 26 03:10:44 2008 +0100

winedump: Use the standard SLDF_XXX flag names instead of inventing new ones. Add the missing flags.

---

 tools/winedump/lnk.c |  102 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 67 insertions(+), 35 deletions(-)

diff --git a/tools/winedump/lnk.c b/tools/winedump/lnk.c
index 529e4ef..2754602 100644
--- a/tools/winedump/lnk.c
+++ b/tools/winedump/lnk.c
@@ -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 & SCF_PIDL)
+    if (hdr->dwFlags & SLDF_HAS_ID_LIST)
         dump_pidl();
-    if (hdr->dwFlags & SCF_LOCATION)
+    if (hdr->dwFlags & SLDF_HAS_LINK_INFO)
         dump_location();
-    if (hdr->dwFlags & SCF_DESCRIPTION)
-        dump_string("Description", hdr->dwFlags & SCF_UNICODE);
-    if (hdr->dwFlags & SCF_RELATIVE)
-        dump_string("Relative path", hdr->dwFlags & SCF_UNICODE);
-    if (hdr->dwFlags & SCF_WORKDIR)
-        dump_string("Working directory", hdr->dwFlags & SCF_UNICODE);
-    if (hdr->dwFlags & SCF_ARGS)
-        dump_string("Arguments", hdr->dwFlags & SCF_UNICODE);
-    if (hdr->dwFlags & SCF_CUSTOMICON)
-        dump_string("Icon path", hdr->dwFlags & SCF_UNICODE);
-    if (hdr->dwFlags & SCF_PRODUCT)
+    if (hdr->dwFlags & SLDF_HAS_NAME)
+        dump_string("Description", hdr->dwFlags & SLDF_UNICODE);
+    if (hdr->dwFlags & SLDF_HAS_RELPATH)
+        dump_string("Relative path", hdr->dwFlags & SLDF_UNICODE);
+    if (hdr->dwFlags & SLDF_HAS_WORKINGDIR)
+        dump_string("Working directory", hdr->dwFlags & SLDF_UNICODE);
+    if (hdr->dwFlags & SLDF_HAS_ARGS)
+        dump_string("Arguments", hdr->dwFlags & SLDF_UNICODE);
+    if (hdr->dwFlags & SLDF_HAS_ICONLOCATION)
+        dump_string("Icon path", hdr->dwFlags & SLDF_UNICODE);
+    if (hdr->dwFlags & SLDF_HAS_LOGO3ID)
         dump_advertise_info("product");
-    if (hdr->dwFlags & SCF_COMPONENT)
+    if (hdr->dwFlags & SLDF_HAS_DARWINID)
         dump_advertise_info("msi string");
 }




More information about the wine-cvs mailing list