Author: akhaldi
Date: Sat May 4 20:43:16 2013
New Revision: 58930
URL:
http://svn.reactos.org/svn/reactos?rev=58930&view=rev
Log:
[PSDK]
* Add NT_CONSOLE_PROPS and NT_FE_CONSOLE_PROPS and fix EXP_SZ_LINK.
* Add SHELL_LINK_INFO_* and some Shell Link Extra Data structures (for
IShellLinkDataList).
[USERINIT][CPLS][DLLS]
* Add the now necessary wincon.h inclusion.
* Brought to you by Dominik Hornung.
CORE-7162 #resolve #comment Committed in r58930. Danke !
Modified:
trunk/reactos/base/applications/mscutils/servman/precomp.h
trunk/reactos/base/applications/mstsc/precomp.h
trunk/reactos/base/applications/rapps/rapps.h
trunk/reactos/base/shell/explorer-new/precomp.h
trunk/reactos/base/shell/explorer/precomp.h
trunk/reactos/base/system/userinit/userinit.c
trunk/reactos/dll/cpl/desk/desk.h
trunk/reactos/dll/cpl/main/main.h
trunk/reactos/dll/cpl/sysdm/precomp.h
trunk/reactos/dll/shellext/deskadp/precomp.h
trunk/reactos/dll/shellext/deskmon/precomp.h
trunk/reactos/dll/shellext/slayer/precomp.h
trunk/reactos/dll/win32/browseui/precomp.h
trunk/reactos/dll/win32/comdlg32/cdlg.h
trunk/reactos/dll/win32/comdlg32/filedlgbrowser.h
trunk/reactos/dll/win32/ieframe/ieframe.h
trunk/reactos/dll/win32/msi/package.c
trunk/reactos/dll/win32/newdev/newdev_private.h
trunk/reactos/dll/win32/setupapi/setupapi_private.h
trunk/reactos/dll/win32/shell32/precomp.h
trunk/reactos/dll/win32/shlwapi/ordinal.c
trunk/reactos/dll/win32/syssetup/precomp.h
trunk/reactos/include/psdk/shlobj.h
trunk/reactos/include/psdk/shlobj_undoc.h
Modified: trunk/reactos/base/applications/mscutils/servman/precomp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mscutils…
==============================================================================
--- trunk/reactos/base/applications/mscutils/servman/precomp.h [iso-8859-1] (original)
+++ trunk/reactos/base/applications/mscutils/servman/precomp.h [iso-8859-1] Sat May 4
20:43:16 2013
@@ -11,6 +11,7 @@
#include <winsvc.h>
#include <winuser.h>
#include <windowsx.h> /* GET_X/Y_LPARAM */
+#include <wincon.h>
#include <tchar.h>
#include <commdlg.h>
#include <cderr.h>
Modified: trunk/reactos/base/applications/mstsc/precomp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/mstsc/pr…
==============================================================================
--- trunk/reactos/base/applications/mstsc/precomp.h [iso-8859-1] (original)
+++ trunk/reactos/base/applications/mstsc/precomp.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -7,6 +7,7 @@
#include <winreg.h>
#include <wingdi.h>
#include <winuser.h>
+#include <wincon.h>
#include <commdlg.h>
#include <shlobj.h>
#include <stdio.h>
Modified: trunk/reactos/base/applications/rapps/rapps.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
==============================================================================
--- trunk/reactos/base/applications/rapps/rapps.h [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/rapps.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -8,6 +8,7 @@
#include <wingdi.h>
#include <winnls.h>
#include <winuser.h>
+#include <wincon.h>
#include <richedit.h>
#include <shellapi.h>
#include <shlwapi.h>
Modified: trunk/reactos/base/shell/explorer-new/precomp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer-new/pr…
==============================================================================
--- trunk/reactos/base/shell/explorer-new/precomp.h [iso-8859-1] (original)
+++ trunk/reactos/base/shell/explorer-new/precomp.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -12,6 +12,7 @@
#include <wingdi.h>
#include <winnls.h>
#include <winver.h>
+#include <wincon.h>
#include <shellapi.h>
#include <shlobj.h>
#include <shlobj_undoc.h>
Modified: trunk/reactos/base/shell/explorer/precomp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/explorer/precom…
==============================================================================
--- trunk/reactos/base/shell/explorer/precomp.h [iso-8859-1] (original)
+++ trunk/reactos/base/shell/explorer/precomp.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -37,6 +37,7 @@
#include <winreg.h>
#include <wingdi.h>
#include <winnls.h>
+#include <wincon.h>
#include <ole2.h>
#include <shlwapi.h>
Modified: trunk/reactos/base/system/userinit/userinit.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/userinit/useri…
==============================================================================
--- trunk/reactos/base/system/userinit/userinit.c [iso-8859-1] (original)
+++ trunk/reactos/base/system/userinit/userinit.c [iso-8859-1] Sat May 4 20:43:16 2013
@@ -32,6 +32,7 @@
#include <winbase.h>
#include <winreg.h>
#include <wingdi.h>
+#include <wincon.h>
#include <shellapi.h>
#include <regstr.h>
#include <shlobj.h>
Modified: trunk/reactos/dll/cpl/desk/desk.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/desk/desk.h?rev=58…
==============================================================================
--- trunk/reactos/dll/cpl/desk/desk.h [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/desk/desk.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -9,6 +9,7 @@
#include <winreg.h>
#include <wingdi.h>
#include <winuser.h>
+#include <wincon.h>
#include <shellapi.h>
#include <commdlg.h>
#include <cpl.h>
Modified: trunk/reactos/dll/cpl/main/main.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/main/main.h?rev=58…
==============================================================================
--- trunk/reactos/dll/cpl/main/main.h [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/main/main.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -7,6 +7,7 @@
#include <winreg.h>
#include <wingdi.h>
#include <winuser.h>
+#include <wincon.h>
#include <commdlg.h>
#include <cplext.h>
#include <tchar.h>
Modified: trunk/reactos/dll/cpl/sysdm/precomp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/sysdm/precomp.h?re…
==============================================================================
--- trunk/reactos/dll/cpl/sysdm/precomp.h [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/sysdm/precomp.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -11,6 +11,7 @@
#include <winreg.h>
#include <wingdi.h>
#include <winnls.h>
+#include <wincon.h>
#include <powrprof.h>
#include <tchar.h>
#include <cpl.h>
Modified: trunk/reactos/dll/shellext/deskadp/precomp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/deskadp/preco…
==============================================================================
--- trunk/reactos/dll/shellext/deskadp/precomp.h [iso-8859-1] (original)
+++ trunk/reactos/dll/shellext/deskadp/precomp.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -9,6 +9,7 @@
#include <windef.h>
#include <winbase.h>
#include <wingdi.h>
+#include <wincon.h>
#include <tchar.h>
#include <shlobj.h>
#include <dll/desk/deskcplx.h>
Modified: trunk/reactos/dll/shellext/deskmon/precomp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/deskmon/preco…
==============================================================================
--- trunk/reactos/dll/shellext/deskmon/precomp.h [iso-8859-1] (original)
+++ trunk/reactos/dll/shellext/deskmon/precomp.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -9,6 +9,7 @@
#include <windef.h>
#include <winbase.h>
#include <wingdi.h>
+#include <wincon.h>
#include <tchar.h>
#include <shlobj.h>
#include <dll/desk/deskcplx.h>
Modified: trunk/reactos/dll/shellext/slayer/precomp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/slayer/precom…
==============================================================================
--- trunk/reactos/dll/shellext/slayer/precomp.h [iso-8859-1] (original)
+++ trunk/reactos/dll/shellext/slayer/precomp.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -5,6 +5,7 @@
#include <windef.h>
#include <winbase.h>
#include <winreg.h>
+#include <wincon.h>
#include <shellapi.h>
#include <shlobj.h>
#include <tchar.h>
Modified: trunk/reactos/dll/win32/browseui/precomp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/precomp…
==============================================================================
--- trunk/reactos/dll/win32/browseui/precomp.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/precomp.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -7,6 +7,7 @@
#include <winreg.h>
#include <wingdi.h>
#include <winnls.h>
+#include <wincon.h>
#include <shellapi.h>
#include <shlobj.h>
#include <shlobj_undoc.h>
Modified: trunk/reactos/dll/win32/comdlg32/cdlg.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comdlg32/cdlg.h?…
==============================================================================
--- trunk/reactos/dll/win32/comdlg32/cdlg.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comdlg32/cdlg.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -165,6 +165,7 @@
#include "wingdi.h"
#include "winuser.h"
#include "winnls.h"
+#include "wincon.h"
#include "commctrl.h"
#include "shlobj.h"
#include "shellapi.h"
Modified: trunk/reactos/dll/win32/comdlg32/filedlgbrowser.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comdlg32/filedlg…
==============================================================================
--- trunk/reactos/dll/win32/comdlg32/filedlgbrowser.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comdlg32/filedlgbrowser.h [iso-8859-1] Sat May 4 20:43:16
2013
@@ -33,6 +33,7 @@
//#include "windef.h"
//#include "winbase.h"
//#include "winuser.h"
+#include "wincon.h"
#include <shlobj.h>
//#include "objbase.h"
//#include "commdlg.h"
Modified: trunk/reactos/dll/win32/ieframe/ieframe.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/ieframe/ieframe.…
==============================================================================
--- trunk/reactos/dll/win32/ieframe/ieframe.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/ieframe/ieframe.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -31,6 +31,7 @@
#include <winbase.h>
#include <wingdi.h>
//#include "winuser.h"
+#include <wincon.h>
//#include "ole2.h"
//#include "olectl.h"
Modified: trunk/reactos/dll/win32/msi/package.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msi/package.c?re…
==============================================================================
--- trunk/reactos/dll/win32/msi/package.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msi/package.c [iso-8859-1] Sat May 4 20:43:16 2013
@@ -33,6 +33,7 @@
//#include "winnls.h"
#include <shlwapi.h>
#include <wingdi.h>
+#include <wincon.h>
#include <wine/debug.h>
//#include "msi.h"
//#include "msiquery.h"
Modified: trunk/reactos/dll/win32/newdev/newdev_private.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/newdev/newdev_pr…
==============================================================================
--- trunk/reactos/dll/win32/newdev/newdev_private.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/newdev/newdev_private.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -15,6 +15,7 @@
#include <winuser.h>
#include <winnls.h>
#include <windowsx.h>
+#include <wincon.h>
#include <newdev.h>
#include <regstr.h>
#include <cfgmgr32.h>
Modified: trunk/reactos/dll/win32/setupapi/setupapi_private.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/setupapi/setupap…
==============================================================================
--- trunk/reactos/dll/win32/setupapi/setupapi_private.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/setupapi/setupapi_private.h [iso-8859-1] Sat May 4 20:43:16
2013
@@ -34,6 +34,7 @@
#include <winsvc.h>
#include <winver.h>
#include <wingdi.h>
+#include <wincon.h>
#include <objbase.h>
#include <lzexpand.h>
#include <cfgmgr32.h>
Modified: trunk/reactos/dll/win32/shell32/precomp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/precomp.…
==============================================================================
--- trunk/reactos/dll/win32/shell32/precomp.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/precomp.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -15,6 +15,7 @@
#include <wingdi.h>
#include <winreg.h>
#include <winuser.h>
+#include <wincon.h>
#include <shellapi.h>
#include <commdlg.h>
#include <ddeml.h>
Modified: trunk/reactos/dll/win32/shlwapi/ordinal.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/ordinal.…
==============================================================================
--- trunk/reactos/dll/win32/shlwapi/ordinal.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shlwapi/ordinal.c [iso-8859-1] Sat May 4 20:43:16 2013
@@ -43,6 +43,7 @@
//#include "winuser.h"
#include <winver.h>
#include <winnetwk.h>
+#include <wincon.h>
#include <mmsystem.h>
//#include "objbase.h"
//#include "exdisp.h"
Modified: trunk/reactos/dll/win32/syssetup/precomp.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/syssetup/precomp…
==============================================================================
--- trunk/reactos/dll/win32/syssetup/precomp.h [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/syssetup/precomp.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -12,6 +12,7 @@
#include <winnls.h>
#include <winuser.h>
#include <windowsx.h>
+#include <wincon.h>
#define NTOS_MODE_USER
#include <ndk/cmfuncs.h>
#include <ndk/rtlfuncs.h>
Modified: trunk/reactos/include/psdk/shlobj.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/shlobj.h?rev=…
==============================================================================
--- trunk/reactos/include/psdk/shlobj.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/shlobj.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -1449,7 +1449,7 @@
typedef struct {
DWORD cbSize;
- DWORD cbSignature;
+ DWORD dwSignature;
CHAR szTarget[MAX_PATH];
WCHAR szwTarget[MAX_PATH];
} EXP_SZ_LINK, *LPEXP_SZ_LINK;
@@ -1467,14 +1467,45 @@
BYTE abPropertyStorage[1];
} EXP_PROPERTYSTORAGE;
-#define EXP_SZ_LINK_SIG 0xa0000001
-#define NT_CONSOLE_PROPS_SIG 0xa0000002
-#define NT_FE_CONSOLE_PROPS_SIG 0xa0000004
-#define EXP_SPECIAL_FOLDER_SIG 0xa0000005
-#define EXP_DARWIN_ID_SIG 0xa0000006
-#define EXP_SZ_ICON_SIG 0xa0000007
+#ifdef LF_FACESIZE
+typedef struct {
+ DATABLOCK_HEADER dbh;
+ WORD wFillAttribute;
+ WORD wPopupFillAttribute;
+ COORD dwScreenBufferSize;
+ COORD dwWindowSize;
+ COORD dwWindowOrigin;
+ DWORD nFont;
+ DWORD nInputBufferSize;
+ COORD dwFontSize;
+ UINT uFontFamily;
+ UINT uFontWeight;
+ WCHAR FaceName[LF_FACESIZE];
+ UINT uCursorSize;
+ BOOL bFullScreen;
+ BOOL bQuickEdit;
+ BOOL bInsertMode;
+ BOOL bAutoPosition;
+ UINT uHistoryBufferSize;
+ UINT uNumberOfHistoryBuffers;
+ BOOL bHistoryNoDup;
+ COLORREF ColorTable[16];
+} NT_CONSOLE_PROPS, *LPNT_CONSOLE_PROPS;
+#endif
+
+typedef struct {
+ DATABLOCK_HEADER dbh;
+ UINT uCodePage;
+} NT_FE_CONSOLE_PROPS, *LPNT_FE_CONSOLE_PROPS;
+
+#define EXP_SZ_LINK_SIG 0xa0000001 /* EXP_SZ_LINK */
+#define NT_CONSOLE_PROPS_SIG 0xa0000002 /* NT_CONSOLE_PROPS */
+#define NT_FE_CONSOLE_PROPS_SIG 0xa0000004 /* NT_FE_CONSOLE_PROPS */
+#define EXP_SPECIAL_FOLDER_SIG 0xa0000005 /* EXP_SPECIAL_FOLDER */
+#define EXP_DARWIN_ID_SIG 0xa0000006 /* EXP_DARWIN_LINK */
+#define EXP_SZ_ICON_SIG 0xa0000007 /* EXP_SZ_LINK */
#define EXP_LOGO3_ID_SIG EXP_SZ_ICON_SIG /* Old SDKs only */
-#define EXP_PROPERTYSTORAGE_SIG 0xa0000009
+#define EXP_PROPERTYSTORAGE_SIG 0xa0000009 /* EXP_PROPERTYSTORAGE */
typedef struct _SHChangeDWORDAsIDList {
USHORT cb;
Modified: trunk/reactos/include/psdk/shlobj_undoc.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/shlobj_undoc.…
==============================================================================
--- trunk/reactos/include/psdk/shlobj_undoc.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/shlobj_undoc.h [iso-8859-1] Sat May 4 20:43:16 2013
@@ -2,6 +2,7 @@
* ReactOS undocumented shell interface
*
* Copyright 2009 Andrew Hill <ash77 at domain reactos.org>
+ * Copyright 2013 Dominik Hornung
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -867,6 +868,188 @@
DWORD dwReserved3;
} SHELL_LINK_HEADER, *LPSHELL_LINK_HEADER;
+/*****************************************************************************
+ * SHELL_LINK_INFOA/W
+ * If cbHeaderSize == 0x0000001C then use SHELL_LINK_INFOA
+ * If cbHeaderSize >= 0x00000024 then use SHELL_LINK_INFOW
+ */
+typedef struct tagSHELL_LINK_INFOA
+{
+ /* Size of the link info data */
+ DWORD cbSize;
+ /* Size of this structure (ANSI: = 0x0000001C) */
+ DWORD cbHeaderSize;
+ /* Specifies which fields are present/populated (SLI_*) */
+ DWORD dwFlags;
+ /* Offset of the VolumeID field (SHELL_LINK_INFO_VOLUME_ID) */
+ DWORD cbVolumeIDOffset;
+ /* Offset of the LocalBasePath field (ANSI, NULL-terminated string) */
+ DWORD cbLocalBasePathOffset;
+ /* Offset of the CommonNetworkRelativeLink field (SHELL_LINK_INFO_CNR_LINK) */
+ DWORD cbCommonNetworkRelativeLinkOffset;
+ /* Offset of the CommonPathSuffix field (ANSI, NULL-terminated string) */
+ DWORD cbCommonPathSuffixOffset;
+} SHELL_LINK_INFOA, *LPSHELL_LINK_INFOA;
+
+typedef struct tagSHELL_LINK_INFOW
+{
+ /* Size of the link info data */
+ DWORD cbSize;
+ /* Size of this structure (Unicode: >= 0x00000024) */
+ DWORD cbHeaderSize;
+ /* Specifies which fields are present/populated (SLI_*) */
+ DWORD dwFlags;
+ /* Offset of the VolumeID field (SHELL_LINK_INFO_VOLUME_ID) */
+ DWORD cbVolumeIDOffset;
+ /* Offset of the LocalBasePath field (ANSI, NULL-terminated string) */
+ DWORD cbLocalBasePathOffset;
+ /* Offset of the CommonNetworkRelativeLink field (SHELL_LINK_INFO_CNR_LINK) */
+ DWORD cbCommonNetworkRelativeLinkOffset;
+ /* Offset of the CommonPathSuffix field (ANSI, NULL-terminated string) */
+ DWORD cbCommonPathSuffixOffset;
+ /* Offset of the LocalBasePathUnicode field (Unicode, NULL-terminated string) */
+ DWORD cbLocalBasePathUnicodeOffset;
+ /* Offset of the CommonPathSuffixUnicode field (Unicode, NULL-terminated string) */
+ DWORD cbCommonPathSuffixUnicodeOffset;
+} SHELL_LINK_INFOW, *LPSHELL_LINK_INFOW;
+
+/* VolumeID, LocalBasePath, LocalBasePathUnicode(cbHeaderSize >= 0x24) are present */
+#define SLI_VALID_LOCAL 0x00000001
+/* CommonNetworkRelativeLink is present */
+#define SLI_VALID_NETWORK 0x00000002
+
+/*****************************************************************************
+ * SHELL_LINK_INFO_VOLUME_IDA/W
+ * If cbVolumeLabelOffset != 0x00000014 (should be 0x00000010) then use
+ * SHELL_LINK_INFO_VOLUME_IDA
+ * If cbVolumeLabelOffset == 0x00000014 then use SHELL_LINK_INFO_VOLUME_IDW
+ */
+typedef struct tagSHELL_LINK_INFO_VOLUME_IDA
+{
+ /* Size of the VolumeID field (> 0x00000010) */
+ DWORD cbSize;
+ /* Drive type of the drive the link target is stored on (DRIVE_*) */
+ DWORD dwDriveType;
+ /* Serial number of the volume the link target is stored on */
+ DWORD nDriveSerialNumber;
+ /* Offset of the volume label (ANSI, NULL-terminated string).
+ Must be != 0x00000014 (see tagSHELL_LINK_INFO_VOLUME_IDW) */
+ DWORD cbVolumeLabelOffset;
+} SHELL_LINK_INFO_VOLUME_IDA, *LPSHELL_LINK_INFO_VOLUME_IDA;
+
+typedef struct tagSHELL_LINK_INFO_VOLUME_IDW
+{
+ /* Size of the VolumeID field (> 0x00000010) */
+ DWORD cbSize;
+ /* Drive type of the drive the link target is stored on (DRIVE_*) */
+ DWORD dwDriveType;
+ /* Serial number of the volume the link target is stored on */
+ DWORD nDriveSerialNumber;
+ /* Offset of the volume label (ANSI, NULL-terminated string).
+ If the value of this field is 0x00000014, ignore it and use
+ cbVolumeLabelUnicodeOffset! */
+ DWORD cbVolumeLabelOffset;
+ /* Offset of the volume label (Unicode, NULL-terminated string).
+ If the value of the VolumeLabelOffset field is not 0x00000014,
+ this field must be ignored (==> it doesn't exists ==> ANSI). */
+ DWORD cbVolumeLabelUnicodeOffset;
+} SHELL_LINK_INFO_VOLUME_IDW, *LPSHELL_LINK_INFO_VOLUME_IDW;
+
+/*****************************************************************************
+ * SHELL_LINK_INFO_CNR_LINKA/W (CNR = Common Network Relative)
+ * If cbNetNameOffset == 0x00000014 then use SHELL_LINK_INFO_CNR_LINKA
+ * If cbNetNameOffset > 0x00000014 then use SHELL_LINK_INFO_CNR_LINKW
+ */
+typedef struct tagSHELL_LINK_INFO_CNR_LINKA
+{
+ /* Size of the CommonNetworkRelativeLink field (>= 0x00000014) */
+ DWORD cbSize;
+ /* Specifies which fields are present/populated (SLI_CNR_*) */
+ DWORD dwFlags;
+ /* Offset of the NetName field (ANSI, NULLterminated string) */
+ DWORD cbNetNameOffset;
+ /* Offset of the DeviceName field (ANSI, NULLterminated string) */
+ DWORD cbDeviceNameOffset;
+ /* Type of the network provider (WNNC_NET_* defined in winnetwk.h) */
+ DWORD dwNetworkProviderType;
+} SHELL_LINK_INFO_CNR_LINKA, *LPSHELL_LINK_INFO_CNR_LINKA;
+
+typedef struct tagSHELL_LINK_INFO_CNR_LINKW
+{
+ /* Size of the CommonNetworkRelativeLink field (>= 0x00000014) */
+ DWORD cbSize;
+ /* Specifies which fields are present/populated (SLI_CNR_*) */
+ DWORD dwFlags;
+ /* Offset of the NetName field (ANSI, NULLterminated string) */
+ DWORD cbNetNameOffset;
+ /* Offset of the DeviceName field (ANSI, NULLterminated string) */
+ DWORD cbDeviceNameOffset;
+ /* Type of the network provider (WNNC_NET_* defined in winnetwk.h) */
+ DWORD dwNetworkProviderType;
+ /* Offset of the NetNameUnicode field (Unicode, NULLterminated string) */
+ DWORD cbNetNameUnicodeOffset;
+ /* Offset of the DeviceNameUnicode field (Unicode, NULLterminated string) */
+ DWORD cbDeviceNameUnicodeOffset;
+} SHELL_LINK_INFO_CNR_LINKW, *LPSHELL_LINK_INFO_CNR_LINKW;
+
+/* DeviceName is present */
+#define SLI_CNR_VALID_DEVICE 0x00000001
+/* NetworkProviderType is present */
+#define SLI_CNR_VALID_NET_TYPE 0x00000002
+
+/*****************************************************************************
+ * Shell Link Extra Data (IShellLinkDataList)
+ */
+typedef struct tagEXP_TRACKER
+{
+ /* .cbSize = 0x00000060, .dwSignature = 0xa0000003 */
+ DATABLOCK_HEADER dbh;
+ /* Length >= 0x00000058 */
+ DWORD nLength;
+ /* Must be 0x00000000 */
+ DWORD nVersion;
+ /* NetBIOS name (ANSI, unused bytes are set to zero) */
+ CHAR szMachineID[16]; /* "variable" >= 16 (?) */
+ /* Some GUIDs for the Link Tracking service (from the FS?) */
+ GUID guidDroidVolume;
+ GUID guidDroidObject;
+ GUID guidDroidBirthVolume;
+ GUID guidDroidBirthObject;
+} EXP_TRACKER, *LPEXP_TRACKER;
+
+typedef struct tagEXP_SHIM
+{
+ /* .cbSize >= 0x00000088, .dwSignature = 0xa0000008 */
+ DATABLOCK_HEADER dbh;
+ /* Name of a shim layer to apply (Unicode, unused bytes are set to zero) */
+ WCHAR szwLayerName[64]; /* "variable" >= 64 */
+} EXP_SHIM, *LPEXP_SHIM;
+
+typedef struct tagEXP_KNOWN_FOLDER
+{
+ /* .cbSize = 0x0000001c, .dwSignature = 0xa000000b */
+ DATABLOCK_HEADER dbh;
+ /* A GUID value that identifies a known folder */
+ GUID guidKnownFolder;
+ /* Specifies the location of the ItemID of the first child
+ segment of the IDList specified by guidKnownFolder */
+ DWORD cbOffset;
+} EXP_KNOWN_FOLDER, *LPEXP_KNOWN_FOLDER;
+
+typedef struct tagEXP_VISTA_ID_LIST
+{
+ /* .cbSize >= 0x0000000a, .dwSignature = 0xa000000c */
+ DATABLOCK_HEADER dbh;
+ /* Specifies an alternate IDList that can be used instead
+ of the "normal" IDList (SLDF_HAS_ID_LIST) */
+ /* LPITEMIDLIST pIDList; (variable) */
+} EXP_VISTA_ID_LIST, *LPEXP_VISTA_ID_LIST;
+
+#define EXP_TRACKER_SIG 0xa0000003
+#define EXP_SHIM_SIG 0xa0000008
+#define EXP_KNOWN_FOLDER_SIG 0xa000000b
+#define EXP_VISTA_ID_LIST_SIG 0xa000000c
+
#include <poppack.h>
#ifdef __cplusplus