Signed-off-by: Vijay Kiran Kamuju infyquest@gmail.com --- include/shlobj.h | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-)
diff --git a/include/shlobj.h b/include/shlobj.h index e963578d6cbd..9a7741a19378 100644 --- a/include/shlobj.h +++ b/include/shlobj.h @@ -1397,7 +1397,13 @@ typedef enum { SLDF_FORCE_NO_LINKTRACK = 0x00040000, SLDF_ENABLE_TARGET_METADATA = 0x00080000, SLDF_DISABLE_KNOWNFOLDER_RELATIVE_TRACKING = 0x00200000, - SLDF_VALID = 0x003ff7ff, + SDLF_NO_KF_ALIAS = 0x00400000, + SDLF_ALLOW_LINK_TO_LINK = 0x00800000, + SDLF_UNALIAS_ON_SAVE = 0x01000000, + SDLF_PREFER_ENVIRONMENT_PATH = 0x02000000, + SDLF_KEEP_LOCAL_IDLIST_FOR_UNC_TARGET = 0x04000000, + SDLF_PERSIST_VOLUME_ID_ACTIVE = 0x08000000, + SLDF_VALID = 0x0ffff7ff, SLDF_RESERVED = 0x80000000, } SHELL_LINK_DATA_FLAGS;
@@ -1407,6 +1413,35 @@ typedef struct tagDATABLOCKHEADER DWORD dwSignature; } DATABLOCK_HEADER, *LPDATABLOCK_HEADER, *LPDBLIST;
+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; + +typedef struct { + DATABLOCK_HEADER dbh; + UINT uCodePage; +} NT_FE_CONSOLE_PROPS, *LPNT_FE_CONSOLE_PROPS; + typedef struct { DATABLOCK_HEADER dbh; CHAR szDarwinID[MAX_PATH];
Latest Official documentation can be found at link below: https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-SH... https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-shllink/16cb...
Signed-off-by: Vijay Kiran Kamuju infyquest@gmail.com --- dlls/shell32/shelllink.c | 51 ++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 25 deletions(-)
diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c index 9a61ea100d26..622b20ebde87 100644 --- a/dlls/shell32/shelllink.c +++ b/dlls/shell32/shelllink.c @@ -73,15 +73,16 @@ typedef struct _LINK_HEADER GUID MagicGuid; /* 0x04 is CLSID_ShellLink */ DWORD dwFlags; /* 0x14 describes elements following */ DWORD dwFileAttr; /* 0x18 attributes of the target file */ - FILETIME Time1; /* 0x1c */ - FILETIME Time2; /* 0x24 */ - FILETIME Time3; /* 0x2c */ - DWORD dwFileLength; /* 0x34 File length */ - DWORD nIcon; /* 0x38 icon number */ - DWORD fStartup; /* 0x3c startup type */ - DWORD wHotKey; /* 0x40 hotkey */ - DWORD Unknown5; /* 0x44 */ - DWORD Unknown6; /* 0x48 */ + FILETIME CreationTime; /* 0x1c creation time of target file */ + FILETIME AccessTime; /* 0x24 access time of target file */ + FILETIME WriteTime; /* 0x2c write time of target file */ + DWORD dwFileSize; /* 0x34 File size of target file */ + DWORD nIcon; /* 0x38 icon number or index */ + DWORD fStartup; /* 0x3c startup type or window state of application */ + DWORD wHotKey:2; /* 0x40 hotkey */ + DWORD Reserved1:2; /* 0x42 reserved = 0 */ + DWORD Reserved2; /* 0x44 reserved = 0 */ + DWORD Reserved3; /* 0x48 reserved = 0 */ } LINK_HEADER, * PLINK_HEADER;
#define SHLINK_LOCAL 0 @@ -134,9 +135,9 @@ typedef struct /* data structures according to the information in the link */ LPITEMIDLIST pPidl; WORD wHotKey; - SYSTEMTIME time1; - SYSTEMTIME time2; - SYSTEMTIME time3; + SYSTEMTIME CreationTime; + SYSTEMTIME AccessTime; + SYSTEMTIME WriteTime;
DWORD iShowCmd; LPWSTR sIcoPath; @@ -774,20 +775,20 @@ static HRESULT WINAPI IPersistStream_fnLoad( heap_free(This->sComponent); This->sComponent = NULL;
- This->wHotKey = (WORD)hdr.wHotKey; + This->wHotKey = hdr.wHotKey; This->iIcoNdx = hdr.nIcon; - FileTimeToSystemTime (&hdr.Time1, &This->time1); - FileTimeToSystemTime (&hdr.Time2, &This->time2); - FileTimeToSystemTime (&hdr.Time3, &This->time3); + FileTimeToSystemTime (&hdr.CreationTime, &This->CreationTime); + FileTimeToSystemTime (&hdr.AccessTime, &This->AccessTime); + FileTimeToSystemTime (&hdr.WriteTime, &This->WriteTime); if (TRACE_ON(shell)) { WCHAR sTemp[MAX_PATH]; - GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &This->time1, NULL, sTemp, ARRAY_SIZE(sTemp)); - TRACE("-- time1: %s\n", debugstr_w(sTemp) ); - GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &This->time2, NULL, sTemp, ARRAY_SIZE(sTemp)); - TRACE("-- time2: %s\n", debugstr_w(sTemp) ); - GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &This->time3, NULL, sTemp, ARRAY_SIZE(sTemp)); - TRACE("-- time3: %s\n", debugstr_w(sTemp) ); + GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &This->CreationTime, NULL, sTemp, ARRAY_SIZE(sTemp)); + TRACE("-- CreationTime: %s\n", debugstr_w(sTemp) ); + GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &This->AccessTime, NULL, sTemp, ARRAY_SIZE(sTemp)); + TRACE("-- AccessTime: %s\n", debugstr_w(sTemp) ); + GetDateFormatW(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &This->WriteTime, NULL, sTemp, ARRAY_SIZE(sTemp)); + TRACE("-- WriteTime: %s\n", debugstr_w(sTemp) ); }
/* load all the new stuff */ @@ -1041,9 +1042,9 @@ static HRESULT WINAPI IPersistStream_fnSave( if( This->sComponent ) header.dwFlags |= SLDF_HAS_DARWINID;
- SystemTimeToFileTime ( &This->time1, &header.Time1 ); - SystemTimeToFileTime ( &This->time2, &header.Time2 ); - SystemTimeToFileTime ( &This->time3, &header.Time3 ); + SystemTimeToFileTime ( &This->CreationTime, &header.CreationTime ); + SystemTimeToFileTime ( &This->AccessTime, &header.AccessTime ); + SystemTimeToFileTime ( &This->WriteTime, &header.WriteTime );
/* write the Shortcut header */ r = IStream_Write( stm, &header, sizeof(header), &count );
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=60971
Your paranoid android.
=== debian10 (32 bit report) ===
shell32: shelllink.c:714: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:732: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:748: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:764: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:792: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:813: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:843: Test failed: GetHotkey returned 0x0000 instead of 0x1234
=== debian10 (32 bit Chinese:China report) ===
shell32: shelllink.c:714: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:732: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:748: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:764: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:792: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:813: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:843: Test failed: GetHotkey returned 0x0000 instead of 0x1234
=== debian10 (32 bit WoW report) ===
shell32: shelllink.c:714: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:732: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:748: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:764: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:792: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:813: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:843: Test failed: GetHotkey returned 0x0000 instead of 0x1234
=== debian10 (64 bit WoW report) ===
shell32: shelllink.c:714: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:732: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:748: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:764: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:792: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:813: Test failed: GetHotkey returned 0x0000 instead of 0x1234 shelllink.c:843: Test failed: GetHotkey returned 0x0000 instead of 0x1234