void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2);
typedef enum {
+ SLDF_DEFAULT = 0x00000000,
SLDF_HAS_ID_LIST = 0x00000001,
SLDF_HAS_LINK_INFO = 0x00000002,
SLDF_HAS_NAME = 0x00000004,
SLDF_RUN_WITH_SHIMLAYER = 0x00020000,
SLDF_FORCE_NO_LINKTRACK = 0x00040000,
SLDF_ENABLE_TARGET_METADATA = 0x00080000,
+ SLDF_DISABLE_LINK_PATH_TRACKING = 0x00100000,
SLDF_DISABLE_KNOWNFOLDER_RELATIVE_TRACKING = 0x00200000,
- SLDF_VALID = 0x003ff7ff,
+#if (NTDDI_VERSION >= NTDDI_WIN7)
+ SLDF_NO_KF_ALIAS = 0x00400000,
+ SLDF_ALLOW_LINK_TO_LINK = 0x00800000,
+ SLDF_UNALIAS_ON_SAVE = 0x01000000,
+ SLDF_PREFER_ENVIRONMENT_PATH = 0x02000000,
+ SLDF_KEEP_LOCAL_IDLIST_FOR_UNC_TARGET = 0x04000000,
+#if (NTDDI_VERSION >= NTDDI_WIN8)
+ SLDF_PERSIST_VOLUME_ID_RELATIVE = 0x08000000,
+ SLDF_VALID = 0x0ffff7ff, /* Windows 8 */
+#else
+ SLDF_VALID = 0x07fff7ff, /* Windows 7 */
+#endif
+#else
+ SLDF_VALID = 0x003ff7ff, /* Windows Vista */
+#endif
SLDF_RESERVED = 0x80000000,
} SHELL_LINK_DATA_FLAGS;
#define SHCreateWorkerWindow SHCreateWorkerWindowA
#endif
+/*****************************************************************************
+ * Shell Link
+ */
+#include <pshpack1.h>
+
+typedef struct tagSHELL_LINK_HEADER
+{
+ /* The size of this structure (always 0x0000004C) */
+ DWORD dwSize;
+ /* CLSID = class identifier (always 00021401-0000-0000-C000-000000000046) */
+ CLSID clsid;
+ /* Flags (SHELL_LINK_DATA_FLAGS) */
+ DWORD dwFlags;
+ /* Informations about the link target: */
+ DWORD dwFileAttributes;
+ FILETIME ftCreationTime;
+ FILETIME ftLastAccessTime;
+ FILETIME ftLastWriteTime;
+ DWORD nFileSizeLow; /* only the least significant 32 bits */
+ /* The index of an icon (signed?) */
+ DWORD nIconIndex;
+ /* The expected window state of an application launched by the link */
+ DWORD nShowCommand;
+ /* The keystrokes used to launch the application */
+ WORD wHotKey;
+ /* Reserved (must be zero) */
+ WORD wReserved1;
+ DWORD dwReserved2;
+ DWORD dwReserved3;
+} SHELL_LINK_HEADER, *LPSHELL_LINK_HEADER;
+
+#include <poppack.h>
+
#ifdef __cplusplus
} /* extern "C" */
#endif /* defined(__cplusplus) */