mirror of
https://github.com/reactos/reactos.git
synced 2025-04-22 13:10:39 +00:00
[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 ! svn path=/trunk/; revision=58930
This commit is contained in:
parent
148e43e691
commit
800947d692
24 changed files with 244 additions and 8 deletions
|
@ -11,6 +11,7 @@
|
||||||
#include <winsvc.h>
|
#include <winsvc.h>
|
||||||
#include <winuser.h>
|
#include <winuser.h>
|
||||||
#include <windowsx.h> /* GET_X/Y_LPARAM */
|
#include <windowsx.h> /* GET_X/Y_LPARAM */
|
||||||
|
#include <wincon.h>
|
||||||
#include <tchar.h>
|
#include <tchar.h>
|
||||||
#include <commdlg.h>
|
#include <commdlg.h>
|
||||||
#include <cderr.h>
|
#include <cderr.h>
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include <winreg.h>
|
#include <winreg.h>
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
#include <winuser.h>
|
#include <winuser.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <commdlg.h>
|
#include <commdlg.h>
|
||||||
#include <shlobj.h>
|
#include <shlobj.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
#include <winnls.h>
|
#include <winnls.h>
|
||||||
#include <winuser.h>
|
#include <winuser.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <richedit.h>
|
#include <richedit.h>
|
||||||
#include <shellapi.h>
|
#include <shellapi.h>
|
||||||
#include <shlwapi.h>
|
#include <shlwapi.h>
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
#include <winnls.h>
|
#include <winnls.h>
|
||||||
#include <winver.h>
|
#include <winver.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <shellapi.h>
|
#include <shellapi.h>
|
||||||
#include <shlobj.h>
|
#include <shlobj.h>
|
||||||
#include <shlobj_undoc.h>
|
#include <shlobj_undoc.h>
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
#include <winreg.h>
|
#include <winreg.h>
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
#include <winnls.h>
|
#include <winnls.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <ole2.h>
|
#include <ole2.h>
|
||||||
#include <shlwapi.h>
|
#include <shlwapi.h>
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
#include <winbase.h>
|
#include <winbase.h>
|
||||||
#include <winreg.h>
|
#include <winreg.h>
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <shellapi.h>
|
#include <shellapi.h>
|
||||||
#include <regstr.h>
|
#include <regstr.h>
|
||||||
#include <shlobj.h>
|
#include <shlobj.h>
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <winreg.h>
|
#include <winreg.h>
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
#include <winuser.h>
|
#include <winuser.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <shellapi.h>
|
#include <shellapi.h>
|
||||||
#include <commdlg.h>
|
#include <commdlg.h>
|
||||||
#include <cpl.h>
|
#include <cpl.h>
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include <winreg.h>
|
#include <winreg.h>
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
#include <winuser.h>
|
#include <winuser.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <commdlg.h>
|
#include <commdlg.h>
|
||||||
#include <cplext.h>
|
#include <cplext.h>
|
||||||
#include <tchar.h>
|
#include <tchar.h>
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include <winreg.h>
|
#include <winreg.h>
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
#include <winnls.h>
|
#include <winnls.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <powrprof.h>
|
#include <powrprof.h>
|
||||||
#include <tchar.h>
|
#include <tchar.h>
|
||||||
#include <cpl.h>
|
#include <cpl.h>
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <windef.h>
|
#include <windef.h>
|
||||||
#include <winbase.h>
|
#include <winbase.h>
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <tchar.h>
|
#include <tchar.h>
|
||||||
#include <shlobj.h>
|
#include <shlobj.h>
|
||||||
#include <dll/desk/deskcplx.h>
|
#include <dll/desk/deskcplx.h>
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <windef.h>
|
#include <windef.h>
|
||||||
#include <winbase.h>
|
#include <winbase.h>
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <tchar.h>
|
#include <tchar.h>
|
||||||
#include <shlobj.h>
|
#include <shlobj.h>
|
||||||
#include <dll/desk/deskcplx.h>
|
#include <dll/desk/deskcplx.h>
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include <windef.h>
|
#include <windef.h>
|
||||||
#include <winbase.h>
|
#include <winbase.h>
|
||||||
#include <winreg.h>
|
#include <winreg.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <shellapi.h>
|
#include <shellapi.h>
|
||||||
#include <shlobj.h>
|
#include <shlobj.h>
|
||||||
#include <tchar.h>
|
#include <tchar.h>
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include <winreg.h>
|
#include <winreg.h>
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
#include <winnls.h>
|
#include <winnls.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <shellapi.h>
|
#include <shellapi.h>
|
||||||
#include <shlobj.h>
|
#include <shlobj.h>
|
||||||
#include <shlobj_undoc.h>
|
#include <shlobj_undoc.h>
|
||||||
|
|
|
@ -165,6 +165,7 @@ typedef struct {
|
||||||
#include "wingdi.h"
|
#include "wingdi.h"
|
||||||
#include "winuser.h"
|
#include "winuser.h"
|
||||||
#include "winnls.h"
|
#include "winnls.h"
|
||||||
|
#include "wincon.h"
|
||||||
#include "commctrl.h"
|
#include "commctrl.h"
|
||||||
#include "shlobj.h"
|
#include "shlobj.h"
|
||||||
#include "shellapi.h"
|
#include "shellapi.h"
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
//#include "windef.h"
|
//#include "windef.h"
|
||||||
//#include "winbase.h"
|
//#include "winbase.h"
|
||||||
//#include "winuser.h"
|
//#include "winuser.h"
|
||||||
|
#include "wincon.h"
|
||||||
#include <shlobj.h>
|
#include <shlobj.h>
|
||||||
//#include "objbase.h"
|
//#include "objbase.h"
|
||||||
//#include "commdlg.h"
|
//#include "commdlg.h"
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include <winbase.h>
|
#include <winbase.h>
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
//#include "winuser.h"
|
//#include "winuser.h"
|
||||||
|
#include <wincon.h>
|
||||||
|
|
||||||
//#include "ole2.h"
|
//#include "ole2.h"
|
||||||
//#include "olectl.h"
|
//#include "olectl.h"
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
//#include "winnls.h"
|
//#include "winnls.h"
|
||||||
#include <shlwapi.h>
|
#include <shlwapi.h>
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <wine/debug.h>
|
#include <wine/debug.h>
|
||||||
//#include "msi.h"
|
//#include "msi.h"
|
||||||
//#include "msiquery.h"
|
//#include "msiquery.h"
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include <winuser.h>
|
#include <winuser.h>
|
||||||
#include <winnls.h>
|
#include <winnls.h>
|
||||||
#include <windowsx.h>
|
#include <windowsx.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <newdev.h>
|
#include <newdev.h>
|
||||||
#include <regstr.h>
|
#include <regstr.h>
|
||||||
#include <cfgmgr32.h>
|
#include <cfgmgr32.h>
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
#include <winsvc.h>
|
#include <winsvc.h>
|
||||||
#include <winver.h>
|
#include <winver.h>
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <objbase.h>
|
#include <objbase.h>
|
||||||
#include <lzexpand.h>
|
#include <lzexpand.h>
|
||||||
#include <cfgmgr32.h>
|
#include <cfgmgr32.h>
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include <wingdi.h>
|
#include <wingdi.h>
|
||||||
#include <winreg.h>
|
#include <winreg.h>
|
||||||
#include <winuser.h>
|
#include <winuser.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <shellapi.h>
|
#include <shellapi.h>
|
||||||
#include <commdlg.h>
|
#include <commdlg.h>
|
||||||
#include <ddeml.h>
|
#include <ddeml.h>
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
//#include "winuser.h"
|
//#include "winuser.h"
|
||||||
#include <winver.h>
|
#include <winver.h>
|
||||||
#include <winnetwk.h>
|
#include <winnetwk.h>
|
||||||
|
#include <wincon.h>
|
||||||
#include <mmsystem.h>
|
#include <mmsystem.h>
|
||||||
//#include "objbase.h"
|
//#include "objbase.h"
|
||||||
//#include "exdisp.h"
|
//#include "exdisp.h"
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include <winnls.h>
|
#include <winnls.h>
|
||||||
#include <winuser.h>
|
#include <winuser.h>
|
||||||
#include <windowsx.h>
|
#include <windowsx.h>
|
||||||
|
#include <wincon.h>
|
||||||
#define NTOS_MODE_USER
|
#define NTOS_MODE_USER
|
||||||
#include <ndk/cmfuncs.h>
|
#include <ndk/cmfuncs.h>
|
||||||
#include <ndk/rtlfuncs.h>
|
#include <ndk/rtlfuncs.h>
|
||||||
|
|
|
@ -1449,7 +1449,7 @@ typedef struct {
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
DWORD cbSize;
|
DWORD cbSize;
|
||||||
DWORD cbSignature;
|
DWORD dwSignature;
|
||||||
CHAR szTarget[MAX_PATH];
|
CHAR szTarget[MAX_PATH];
|
||||||
WCHAR szwTarget[MAX_PATH];
|
WCHAR szwTarget[MAX_PATH];
|
||||||
} EXP_SZ_LINK, *LPEXP_SZ_LINK;
|
} EXP_SZ_LINK, *LPEXP_SZ_LINK;
|
||||||
|
@ -1467,14 +1467,45 @@ typedef struct {
|
||||||
BYTE abPropertyStorage[1];
|
BYTE abPropertyStorage[1];
|
||||||
} EXP_PROPERTYSTORAGE;
|
} EXP_PROPERTYSTORAGE;
|
||||||
|
|
||||||
#define EXP_SZ_LINK_SIG 0xa0000001
|
#ifdef LF_FACESIZE
|
||||||
#define NT_CONSOLE_PROPS_SIG 0xa0000002
|
typedef struct {
|
||||||
#define NT_FE_CONSOLE_PROPS_SIG 0xa0000004
|
DATABLOCK_HEADER dbh;
|
||||||
#define EXP_SPECIAL_FOLDER_SIG 0xa0000005
|
WORD wFillAttribute;
|
||||||
#define EXP_DARWIN_ID_SIG 0xa0000006
|
WORD wPopupFillAttribute;
|
||||||
#define EXP_SZ_ICON_SIG 0xa0000007
|
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_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 {
|
typedef struct _SHChangeDWORDAsIDList {
|
||||||
USHORT cb;
|
USHORT cb;
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
* ReactOS undocumented shell interface
|
* ReactOS undocumented shell interface
|
||||||
*
|
*
|
||||||
* Copyright 2009 Andrew Hill <ash77 at domain reactos.org>
|
* Copyright 2009 Andrew Hill <ash77 at domain reactos.org>
|
||||||
|
* Copyright 2013 Dominik Hornung
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -867,6 +868,188 @@ typedef struct tagSHELL_LINK_HEADER
|
||||||
DWORD dwReserved3;
|
DWORD dwReserved3;
|
||||||
} SHELL_LINK_HEADER, *LPSHELL_LINK_HEADER;
|
} 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, NULL–terminated string) */
|
||||||
|
DWORD cbNetNameOffset;
|
||||||
|
/* Offset of the DeviceName field (ANSI, NULL–terminated 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, NULL–terminated string) */
|
||||||
|
DWORD cbNetNameOffset;
|
||||||
|
/* Offset of the DeviceName field (ANSI, NULL–terminated string) */
|
||||||
|
DWORD cbDeviceNameOffset;
|
||||||
|
/* Type of the network provider (WNNC_NET_* defined in winnetwk.h) */
|
||||||
|
DWORD dwNetworkProviderType;
|
||||||
|
/* Offset of the NetNameUnicode field (Unicode, NULL–terminated string) */
|
||||||
|
DWORD cbNetNameUnicodeOffset;
|
||||||
|
/* Offset of the DeviceNameUnicode field (Unicode, NULL–terminated 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>
|
#include <poppack.h>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
Loading…
Reference in a new issue