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/pre... ============================================================================== --- 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/rap... ============================================================================== --- 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/pre... ============================================================================== --- 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/precomp... ============================================================================== --- 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/userin... ============================================================================== --- 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=589... ============================================================================== --- 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=589... ============================================================================== --- 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?rev... ============================================================================== --- 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/precom... ============================================================================== --- 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/precom... ============================================================================== --- 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/precomp... ============================================================================== --- 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?r... ============================================================================== --- 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/filedlgb... ============================================================================== --- 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.h... ============================================================================== --- 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?rev... ============================================================================== --- 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_pri... ============================================================================== --- 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/setupapi... ============================================================================== --- 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.h... ============================================================================== --- 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.c... ============================================================================== --- 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=5... ============================================================================== --- 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.h... ============================================================================== --- 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