ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
October 2014
----- 2025 -----
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
19 participants
730 discussions
Start a n
N
ew thread
[jgardou] 64620: [PSDK] - Fix mismatch between DEV_BROADCAST_DEVICEINTERFACE_W and DEV_BROADCAST_DEVICEINTERFACE_A - Add DEV_BROADCAST_HANDLE structure definition
by jgardou@svn.reactos.org
Author: jgardou Date: Wed Oct 8 19:50:23 2014 New Revision: 64620 URL:
http://svn.reactos.org/svn/reactos?rev=64620&view=rev
Log: [PSDK] - Fix mismatch between DEV_BROADCAST_DEVICEINTERFACE_W and DEV_BROADCAST_DEVICEINTERFACE_A - Add DEV_BROADCAST_HANDLE structure definition Modified: trunk/reactos/include/psdk/dbt.h Modified: trunk/reactos/include/psdk/dbt.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/dbt.h?rev=646…
============================================================================== --- trunk/reactos/include/psdk/dbt.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/dbt.h [iso-8859-1] Wed Oct 8 19:50:23 2014 @@ -1,5 +1,7 @@ #ifndef _DBT_H #define _DBT_H + +#include "winuser.h" #ifdef __cplusplus extern "C" { @@ -18,6 +20,7 @@ #define DBT_DEVTYP_PORT 3 #define DBT_DEVTYP_NET 4 #define DBT_DEVTYP_DEVICEINTERFACE 5 +#define DBT_DEVTYP_HANDLE 6 #define DBT_APPYBEGIN 0 #define DBT_APPYEND 1 #define DBT_DEVNODES_CHANGED 7 @@ -99,18 +102,37 @@ DWORD dbcv_unitmask; WORD dbcv_flags; } DEV_BROADCAST_VOLUME,*PDEV_BROADCAST_VOLUME; -typedef struct _DEV_BROADCAST_DEVICEINTERFACE { +typedef struct _DEV_BROADCAST_DEVICEINTERFACE_A { DWORD dbcc_size; DWORD dbcc_devicetype; DWORD dbcc_reserved; GUID dbcc_classguid; - TCHAR dbcc_name[1]; -} DEV_BROADCAST_DEVICEINTERFACE, *PDEV_BROADCAST_DEVICEINTERFACE; + CHAR dbcc_name[1]; +} DEV_BROADCAST_DEVICEINTERFACE_A, *PDEV_BROADCAST_DEVICEINTERFACE_A; +typedef struct _DEV_BROADCAST_DEVICEINTERFACE_W { + DWORD dbcc_size; + DWORD dbcc_devicetype; + DWORD dbcc_reserved; + GUID dbcc_classguid; + WCHAR dbcc_name[1]; +} DEV_BROADCAST_DEVICEINTERFACE_W, *PDEV_BROADCAST_DEVICEINTERFACE_W; +typedef struct _DEV_BROADCAST_HANDLE { + DWORD dbch_size; + DWORD dbch_devicetype; + DWORD dbch_reserved; + HANDLE dbch_handle; + HDEVNOTIFY dbch_hdevnotify; + GUID dbch_eventguid; + LONG dbch_nameoffset; + BYTE dbch_data[1]; +} DEV_BROADCAST_HANDLE, *PDEV_BROADCAST_HANDLE; #ifdef UNICODE typedef DEV_BROADCAST_PORT_W DEV_BROADCAST_PORT, *PDEV_BROADCAST_PORT; +typedef DEV_BROADCAST_DEVICEINTERFACE_W DEV_BROADCAST_DEVICEINTERFACE, *PDEV_BROADCAST_DEVICEINTERFACE; #else typedef DEV_BROADCAST_PORT_A DEV_BROADCAST_PORT, *PDEV_BROADCAST_PORT; +typedef DEV_BROADCAST_DEVICEINTERFACE_A DEV_BROADCAST_DEVICEINTERFACE, *PDEV_BROADCAST_DEVICEINTERFACE; #endif #ifdef __cplusplus
10 years, 3 months
1
0
0
0
[jgardou] 64619: [NTOS/SE] - Correctly reference/dereference token object when the set token is already in use.
by jgardou@svn.reactos.org
Author: jgardou Date: Wed Oct 8 19:50:14 2014 New Revision: 64619 URL:
http://svn.reactos.org/svn/reactos?rev=64619&view=rev
Log: [NTOS/SE] - Correctly reference/dereference token object when the set token is already in use. Modified: trunk/reactos/ntoskrnl/se/token.c Modified: trunk/reactos/ntoskrnl/se/token.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/se/token.c?rev=64…
============================================================================== --- trunk/reactos/ntoskrnl/se/token.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/se/token.c [iso-8859-1] Wed Oct 8 19:50:14 2014 @@ -243,19 +243,28 @@ if (OldToken == NewToken) { /* So it's a nop. */ - PsDereferencePrimaryToken(OldToken); + *OldTokenP = OldToken; return STATUS_SUCCESS; } Status = SepCompareTokens(OldToken, NewToken, &IsEqual); if (!NT_SUCCESS(Status)) { + *OldTokenP = NULL; PsDereferencePrimaryToken(OldToken); return Status; } - PsDereferencePrimaryToken(OldToken); - return IsEqual ? STATUS_SUCCESS : STATUS_TOKEN_ALREADY_IN_USE; + if (!IsEqual) + { + *OldTokenP = NULL; + PsDereferencePrimaryToken(OldToken); + return STATUS_TOKEN_ALREADY_IN_USE; + } + /* Silently return STATUS_SUCCESS but do not set the new token, + * as it's already in use elsewhere. */ + *OldTokenP = OldToken; + return STATUS_SUCCESS; } /* Mark new token in use */
10 years, 3 months
1
0
0
0
[pschweitzer] 64618: [NTFS] - Add missing defines about file attributes - Implement NtfsFCBIsDirectory() Source: http://bos.asmhackers.net/docs/filesystems/ntfs/filename.html
by pschweitzer@svn.reactos.org
Author: pschweitzer Date: Wed Oct 8 19:45:33 2014 New Revision: 64618 URL:
http://svn.reactos.org/svn/reactos?rev=64618&view=rev
Log: [NTFS] - Add missing defines about file attributes - Implement NtfsFCBIsDirectory() Source:
http://bos.asmhackers.net/docs/filesystems/ntfs/filename.html
Modified: trunk/reactos/drivers/filesystems/ntfs/fcb.c trunk/reactos/drivers/filesystems/ntfs/ntfs.h Modified: trunk/reactos/drivers/filesystems/ntfs/fcb.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/ntfs/f…
============================================================================== --- trunk/reactos/drivers/filesystems/ntfs/fcb.c [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/ntfs/fcb.c [iso-8859-1] Wed Oct 8 19:45:33 2014 @@ -118,10 +118,7 @@ BOOLEAN NtfsFCBIsDirectory(PNTFS_FCB Fcb) { - UNREFERENCED_PARAMETER(Fcb); -// return(Fcb->entry.Attrib & FILE_ATTRIBUTE_DIRECTORY); -// return(Fcb->Entry.FileFlags & 0x02); - return TRUE; + return ((Fcb->Entry.FileAttributes & NTFS_FILE_TYPE_DIRECTORY) == NTFS_FILE_TYPE_DIRECTORY); } Modified: trunk/reactos/drivers/filesystems/ntfs/ntfs.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/ntfs/n…
============================================================================== --- trunk/reactos/drivers/filesystems/ntfs/ntfs.h [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/ntfs/ntfs.h [iso-8859-1] Wed Oct 8 19:45:33 2014 @@ -187,6 +187,13 @@ #define NTFS_FILE_NAME_WIN32 1 #define NTFS_FILE_NAME_DOS 2 #define NTFS_FILE_NAME_WIN32_AND_DOS 3 + +#define NTFS_FILE_TYPE_READ_ONLY 0x1 +#define NTFS_FILE_TYPE_HIDDEN 0x2 +#define NTFS_FILE_TYPE_SYSTEM 0x4 +#define NTFS_FILE_TYPE_ARCHIVE 0x20 +#define NTFS_FILE_TYPE_COMPRESSED 0x800 +#define NTFS_FILE_TYPE_DIRECTORY 0x10000000 typedef struct {
10 years, 3 months
1
0
0
0
[pschweitzer] 64617: [NTFS] - Add a directory entry into FCB which will be a copy of the $FILE_NAME attribute of the FILE record. Though, it won't contain the name itself (in the FCB instead), so k...
by pschweitzer@svn.reactos.org
Author: pschweitzer Date: Wed Oct 8 19:32:21 2014 New Revision: 64617 URL:
http://svn.reactos.org/svn/reactos?rev=64617&view=rev
Log: [NTFS] - Add a directory entry into FCB which will be a copy of the $FILE_NAME attribute of the FILE record. Though, it won't contain the name itself (in the FCB instead), so keep first char NULL and length 0. - Implement its support (which requires opening the FILE record 5 first) for root FCB creation. Modified: trunk/reactos/drivers/filesystems/ntfs/fcb.c trunk/reactos/drivers/filesystems/ntfs/ntfs.h Modified: trunk/reactos/drivers/filesystems/ntfs/fcb.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/ntfs/f…
============================================================================== --- trunk/reactos/drivers/filesystems/ntfs/fcb.c [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/ntfs/fcb.c [iso-8859-1] Wed Oct 8 19:32:21 2014 @@ -275,19 +275,43 @@ NtfsMakeRootFCB(PNTFS_VCB Vcb) { PNTFS_FCB Fcb; + PFILE_RECORD_HEADER MftRecord; + PFILENAME_ATTRIBUTE FileName; + + MftRecord = ExAllocatePoolWithTag(NonPagedPool, + Vcb->NtfsInfo.BytesPerFileRecord, + TAG_NTFS); + if (MftRecord == NULL) + { + return NULL; + } + + if (!NT_SUCCESS(ReadFileRecord(Vcb, NTFS_FILE_ROOT, MftRecord))) + { + return NULL; + } + + FileName = GetFileNameFromRecord(MftRecord); + if (!FileName) + { + return NULL; + } Fcb = NtfsCreateFCB(L"\\", Vcb); - -// memset(Fcb->entry.Filename, ' ', 11); - -// Fcb->Entry.DataLengthL = Vcb->CdInfo.RootSize; -// Fcb->Entry.ExtentLocationL = Vcb->CdInfo.RootStart; -// Fcb->Entry.FileFlags = 0x02; // FILE_ATTRIBUTE_DIRECTORY; + if (!Fcb) + { + return NULL; + } + + memcpy(&Fcb->Entry, FileName, FIELD_OFFSET(FILENAME_ATTRIBUTE, NameLength)); + Fcb->Entry.NameType = FileName->NameType; + Fcb->Entry.NameLength = 0; + Fcb->Entry.Name[0] = UNICODE_NULL; Fcb->RefCount = 1; Fcb->DirIndex = 0; - Fcb->RFCB.FileSize.QuadPart = PAGE_SIZE;//Vcb->CdInfo.RootSize; - Fcb->RFCB.ValidDataLength.QuadPart = PAGE_SIZE;//Vcb->CdInfo.RootSize; - Fcb->RFCB.AllocationSize.QuadPart = PAGE_SIZE;//Vcb->CdInfo.RootSize; + Fcb->RFCB.FileSize.QuadPart = FileName->DataSize; + Fcb->RFCB.ValidDataLength.QuadPart = FileName->DataSize; + Fcb->RFCB.AllocationSize.QuadPart = FileName->AllocatedSize; Fcb->MFTIndex = NTFS_FILE_ROOT; NtfsFCBInitializeCache(Vcb, Fcb); @@ -390,6 +414,8 @@ return STATUS_INSUFFICIENT_RESOURCES; } + memcpy(&rcFCB->Entry, FileName, FIELD_OFFSET(FILENAME_ATTRIBUTE, NameLength)); + rcFCB->Entry.NameType = FileName->NameType; rcFCB->RFCB.FileSize.QuadPart = FileName->DataSize; rcFCB->RFCB.ValidDataLength.QuadPart = FileName->DataSize; rcFCB->RFCB.AllocationSize.QuadPart = FileName->AllocatedSize; Modified: trunk/reactos/drivers/filesystems/ntfs/ntfs.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/ntfs/n…
============================================================================== --- trunk/reactos/drivers/filesystems/ntfs/ntfs.h [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/ntfs/ntfs.h [iso-8859-1] Wed Oct 8 19:32:21 2014 @@ -107,43 +107,6 @@ NTFS_INFO NtfsInfo; } DEVICE_EXTENSION, *PDEVICE_EXTENSION, NTFS_VCB, *PNTFS_VCB; - - -#define FCB_CACHE_INITIALIZED 0x0001 -#define FCB_IS_VOLUME_STREAM 0x0002 -#define FCB_IS_VOLUME 0x0004 -#define MAX_PATH 260 - -typedef struct _FCB -{ - NTFSIDENTIFIER Identifier; - - FSRTL_COMMON_FCB_HEADER RFCB; - SECTION_OBJECT_POINTERS SectionObjectPointers; - - PFILE_OBJECT FileObject; - PNTFS_VCB Vcb; - - WCHAR *ObjectName; /* point on filename (250 chars max) in PathName */ - WCHAR PathName[MAX_PATH]; /* path+filename 260 max */ - - ERESOURCE PagingIoResource; - ERESOURCE MainResource; - - LIST_ENTRY FcbListEntry; - struct _FCB* ParentFcb; - - ULONG DirIndex; - - LONG RefCount; - ULONG Flags; - - ULONGLONG MFTIndex; - -// DIR_RECORD Entry; - -} NTFS_FCB, *PNTFS_FCB; - typedef struct { @@ -414,6 +377,41 @@ NTFS_ATTR_RECORD Record; } NTFS_ATTR_CONTEXT, *PNTFS_ATTR_CONTEXT; +#define FCB_CACHE_INITIALIZED 0x0001 +#define FCB_IS_VOLUME_STREAM 0x0002 +#define FCB_IS_VOLUME 0x0004 +#define MAX_PATH 260 + +typedef struct _FCB +{ + NTFSIDENTIFIER Identifier; + + FSRTL_COMMON_FCB_HEADER RFCB; + SECTION_OBJECT_POINTERS SectionObjectPointers; + + PFILE_OBJECT FileObject; + PNTFS_VCB Vcb; + + WCHAR *ObjectName; /* point on filename (250 chars max) in PathName */ + WCHAR PathName[MAX_PATH]; /* path+filename 260 max */ + + ERESOURCE PagingIoResource; + ERESOURCE MainResource; + + LIST_ENTRY FcbListEntry; + struct _FCB* ParentFcb; + + ULONG DirIndex; + + LONG RefCount; + ULONG Flags; + + ULONGLONG MFTIndex; + + FILENAME_ATTRIBUTE Entry; + +} NTFS_FCB, *PNTFS_FCB; + extern PNTFS_GLOBAL_DATA NtfsGlobalData; //int CdfsStrcmpi( wchar_t *str1, wchar_t *str2 );
10 years, 3 months
1
0
0
0
[akhaldi] 64616: [WINDOWSCODECS_WINETEST] * Sync with Wine 1.7.27. CORE-8540
by akhaldi@svn.reactos.org
Author: akhaldi Date: Wed Oct 8 19:32:14 2014 New Revision: 64616 URL:
http://svn.reactos.org/svn/reactos?rev=64616&view=rev
Log: [WINDOWSCODECS_WINETEST] * Sync with Wine 1.7.27. CORE-8540 Modified: trunk/rostests/winetests/windowscodecs/converter.c trunk/rostests/winetests/windowscodecs/metadata.c trunk/rostests/winetests/windowscodecs/propertybag.c trunk/rostests/winetests/windowscodecs/tiffformat.c Modified: trunk/rostests/winetests/windowscodecs/converter.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/windowscodecs/c…
============================================================================== --- trunk/rostests/winetests/windowscodecs/converter.c [iso-8859-1] (original) +++ trunk/rostests/winetests/windowscodecs/converter.c [iso-8859-1] Wed Oct 8 19:32:14 2014 @@ -383,6 +383,7 @@ static const WCHAR wszTiffCompressionMethod[] = {'T','i','f','f','C','o','m','p','r','e','s','s','i','o','n','M','e','t','h','o','d',0}; static const WCHAR wszCompressionQuality[] = {'C','o','m','p','r','e','s','s','i','o','n','Q','u','a','l','i','t','y',0}; +static const WCHAR wszInterlaceOption[] = {'I','n','t','e','r','l','a','c','e','O','p','t','i','o','n',0}; static const struct property_opt_test_data testdata_tiff_props[] = { { wszTiffCompressionMethod, VT_UI1, VT_UI1, WICTiffCompressionDontCare }, @@ -513,8 +514,16 @@ } } +struct setting { + const WCHAR *name; + PROPBAG2_TYPE type; + VARTYPE vt; + void *value; +}; + static void test_multi_encoder(const struct bitmap_data **srcs, const CLSID* clsid_encoder, - const struct bitmap_data **dsts, const CLSID *clsid_decoder, const char *name) + const struct bitmap_data **dsts, const CLSID *clsid_decoder, WICRect *rc, + const struct setting *settings, const char *name) { HRESULT hr; IWICBitmapEncoder *encoder; @@ -559,6 +568,26 @@ if(options) test_encoder_properties(clsid_encoder, options); + if (settings) + { + int j; + for (j=0; settings[j].name; j++) + { + PROPBAG2 propbag; + VARIANT var; + + memset(&propbag, 0, sizeof(propbag)); + memset(&var, 0, sizeof(var)); + propbag.pstrName = (LPOLESTR)settings[j].name; + propbag.dwType = settings[j].type; + V_VT(&var) = settings[j].vt; + V_UNKNOWN(&var) = settings[j].value; + + hr = IPropertyBag2_Write(options, 1, &propbag, &var); + ok(SUCCEEDED(hr), "Writing property %s failed, hr=%x\n", wine_dbgstr_w(settings[j].name), hr); + } + } + hr = IWICBitmapFrameEncode_Initialize(frameencode, options); ok(SUCCEEDED(hr), "Initialize failed, hr=%x\n", hr); @@ -570,8 +599,14 @@ hr = IWICBitmapFrameEncode_SetSize(frameencode, srcs[i]->width, srcs[i]->height); ok(SUCCEEDED(hr), "SetSize failed, hr=%x\n", hr); - hr = IWICBitmapFrameEncode_WriteSource(frameencode, &src_obj->IWICBitmapSource_iface, NULL); - ok(SUCCEEDED(hr), "WriteSource failed, hr=%x\n", hr); + hr = IWICBitmapFrameEncode_WriteSource(frameencode, &src_obj->IWICBitmapSource_iface, rc); + if (rc && (rc->Width <= 0 || rc->Height <= 0)) + { + /* WriteSource fails but WriteSource_Proxy succeeds. */ + ok(hr == E_INVALIDARG, "WriteSource failed, hr=%x (%s)\n", hr, name); + hr = IWICBitmapFrameEncode_WriteSource_Proxy(frameencode, &src_obj->IWICBitmapSource_iface, rc); + } + ok(SUCCEEDED(hr), "WriteSource failed, hr=%x (%s)\n", hr, name); hr = IWICBitmapFrameEncode_Commit(frameencode); ok(SUCCEEDED(hr), "Commit failed, hr=%x\n", hr); @@ -640,7 +675,39 @@ dsts[0] = dst; dsts[1] = NULL; - test_multi_encoder(srcs, clsid_encoder, dsts, clsid_decoder, name); + test_multi_encoder(srcs, clsid_encoder, dsts, clsid_decoder, NULL, NULL, name); +} + +static void test_encoder_rects(void) +{ + const struct bitmap_data *srcs[2]; + const struct bitmap_data *dsts[2]; + WICRect rc; + + srcs[0] = &testdata_24bppBGR; + srcs[1] = NULL; + dsts[0] = &testdata_24bppBGR; + dsts[1] = NULL; + + rc.X = 0; + rc.Y = 0; + rc.Width = 4; + rc.Height = 2; + + test_multi_encoder(srcs, &CLSID_WICTiffEncoder, dsts, &CLSID_WICTiffDecoder, &rc, NULL, "test_encoder_rects full"); + + rc.Width = 0; + test_multi_encoder(srcs, &CLSID_WICTiffEncoder, dsts, &CLSID_WICTiffDecoder, &rc, NULL, "test_encoder_rects width=0"); + + rc.Width = -1; + test_multi_encoder(srcs, &CLSID_WICTiffEncoder, dsts, &CLSID_WICTiffDecoder, &rc, NULL, "test_encoder_rects width=-1"); + + rc.Width = 4; + rc.Height = 0; + test_multi_encoder(srcs, &CLSID_WICTiffEncoder, dsts, &CLSID_WICTiffDecoder, &rc, NULL, "test_encoder_rects height=0"); + + rc.Height = -1; + test_multi_encoder(srcs, &CLSID_WICTiffEncoder, dsts, &CLSID_WICTiffDecoder, &rc, NULL, "test_encoder_rects height=-1"); } static const struct bitmap_data *multiple_frames[3] = { @@ -648,6 +715,15 @@ &testdata_24bppBGR, NULL}; +static const struct bitmap_data *single_frame[2] = { + &testdata_24bppBGR, + NULL}; + +static const struct setting png_interlace_settings[] = { + {wszInterlaceOption, PROPBAG2_TYPE_DATA, VT_BOOL, (void*)VARIANT_TRUE}, + {NULL} +}; + START_TEST(converter) { CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); @@ -678,7 +754,12 @@ &testdata_24bppBGR, &CLSID_WICTiffDecoder, "TIFF encoder 24bppBGR"); test_multi_encoder(multiple_frames, &CLSID_WICTiffEncoder, - multiple_frames, &CLSID_WICTiffDecoder, "TIFF encoder multi-frame"); + multiple_frames, &CLSID_WICTiffDecoder, NULL, NULL, "TIFF encoder multi-frame"); + + test_encoder_rects(); + + test_multi_encoder(single_frame, &CLSID_WICPngEncoder, + single_frame, &CLSID_WICPngDecoder, NULL, png_interlace_settings, "PNG encoder interlaced"); CoUninitialize(); } Modified: trunk/rostests/winetests/windowscodecs/metadata.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/windowscodecs/m…
============================================================================== --- trunk/rostests/winetests/windowscodecs/metadata.c [iso-8859-1] (original) +++ trunk/rostests/winetests/windowscodecs/metadata.c [iso-8859-1] Wed Oct 8 19:32:14 2014 @@ -850,7 +850,13 @@ stream, &reader); todo_wine ok(hr == S_OK, "CreateMetadataReaderFromContainer failed, hr=%x\n", hr); - if (FAILED(hr)) return; + /* NOTE: removed once Wine is fixed */ + if (FAILED(hr)) + { + IStream_Release(stream); + IWICComponentFactory_Release(factory); + return; + } if (SUCCEEDED(hr)) { Modified: trunk/rostests/winetests/windowscodecs/propertybag.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/windowscodecs/p…
============================================================================== --- trunk/rostests/winetests/windowscodecs/propertybag.c [iso-8859-1] (original) +++ trunk/rostests/winetests/windowscodecs/propertybag.c [iso-8859-1] Wed Oct 8 19:32:14 2014 @@ -72,10 +72,12 @@ ok(pb[0].vt == VT_UI1, "Invalid variant type, pb[0].vt=%x\n", pb[0].vt); ok(pb[0].dwType == PROPBAG2_TYPE_DATA, "Invalid variant type, pb[0].dwType=%x\n", pb[0].dwType); ok(lstrcmpW(pb[0].pstrName, wszTestProperty1) == 0, "Invalid property name, pb[0].pstrName=%s\n", wine_dbgstr_w(pb[0].pstrName)); + CoTaskMemFree(pb[0].pstrName); ok(pb[1].vt == VT_R4, "Invalid variant type, pb[1].vt=%x\n", pb[1].vt); ok(pb[1].dwType == PROPBAG2_TYPE_DATA, "Invalid variant type, pb[1].dwType=%x\n", pb[1].dwType); ok(lstrcmpW(pb[1].pstrName, wszTestProperty2) == 0, "Invalid property name, pb[1].pstrName=%s\n", wine_dbgstr_w(pb[1].pstrName)); + CoTaskMemFree(pb[1].pstrName); } static void test_propertybag_countproperties(IPropertyBag2 *property, ULONG expected_count) Modified: trunk/rostests/winetests/windowscodecs/tiffformat.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/windowscodecs/t…
============================================================================== --- trunk/rostests/winetests/windowscodecs/tiffformat.c [iso-8859-1] (original) +++ trunk/rostests/winetests/windowscodecs/tiffformat.c [iso-8859-1] Wed Oct 8 19:32:14 2014 @@ -241,6 +241,9 @@ todo_wine ok(hr == WINCODEC_ERR_COMPONENTNOTFOUND, "expected WINCODEC_ERR_COMPONENTNOTFOUND, got %#x\n", hr); + if (SUCCEEDED(hr)) + IWICBitmapDecoder_Release(decoder); + pos.QuadPart = 0; hr = IStream_Seek(stream, pos, SEEK_SET, NULL); ok(hr == S_OK, "IStream_Seek error %#x\n", hr);
10 years, 3 months
1
0
0
0
[akhaldi] 64615: [WINDOWSCODECS] * Sync with Wine 1.7.27. CORE-8540
by akhaldi@svn.reactos.org
Author: akhaldi Date: Wed Oct 8 19:30:33 2014 New Revision: 64615 URL:
http://svn.reactos.org/svn/reactos?rev=64615&view=rev
Log: [WINDOWSCODECS] * Sync with Wine 1.7.27. CORE-8540 Modified: trunk/reactos/dll/win32/windowscodecs/bmpencode.c trunk/reactos/dll/win32/windowscodecs/icnsformat.c trunk/reactos/dll/win32/windowscodecs/imgfactory.c trunk/reactos/dll/win32/windowscodecs/jpegformat.c trunk/reactos/dll/win32/windowscodecs/main.c trunk/reactos/dll/win32/windowscodecs/pngformat.c trunk/reactos/dll/win32/windowscodecs/propertybag.c trunk/reactos/dll/win32/windowscodecs/proxy.c trunk/reactos/dll/win32/windowscodecs/tiffformat.c trunk/reactos/dll/win32/windowscodecs/typeof.h trunk/reactos/dll/win32/windowscodecs/ungif.c trunk/reactos/dll/win32/windowscodecs/wincodecs_private.h trunk/reactos/media/doc/README.WINE Modified: trunk/reactos/dll/win32/windowscodecs/bmpencode.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/windowscodecs/bm…
============================================================================== --- trunk/reactos/dll/win32/windowscodecs/bmpencode.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/windowscodecs/bmpencode.c [iso-8859-1] Wed Oct 8 19:30:33 2014 @@ -245,63 +245,22 @@ { BmpFrameEncode *This = impl_from_IWICBitmapFrameEncode(iface); HRESULT hr; - WICRect rc; - WICPixelFormatGUID guid; TRACE("(%p,%p,%p)\n", iface, pIBitmapSource, prc); - if (!This->initialized || !This->width || !This->height) + if (!This->initialized) return WINCODEC_ERR_WRONGSTATE; - if (!This->format) - { - hr = IWICBitmapSource_GetPixelFormat(pIBitmapSource, &guid); - if (FAILED(hr)) return hr; - hr = BmpFrameEncode_SetPixelFormat(iface, &guid); - if (FAILED(hr)) return hr; - } - - hr = IWICBitmapSource_GetPixelFormat(pIBitmapSource, &guid); - if (FAILED(hr)) return hr; - if (memcmp(&guid, This->format->guid, sizeof(GUID)) != 0) - { - /* should use WICConvertBitmapSource to convert, but that's unimplemented */ - ERR("format %s unsupported\n", debugstr_guid(&guid)); - return E_FAIL; - } - - if (This->xres == 0.0 || This->yres == 0.0) - { - double xres, yres; - hr = IWICBitmapSource_GetResolution(pIBitmapSource, &xres, &yres); - if (FAILED(hr)) return hr; - hr = BmpFrameEncode_SetResolution(iface, xres, yres); - if (FAILED(hr)) return hr; - } - - if (!prc) - { - UINT width, height; - hr = IWICBitmapSource_GetSize(pIBitmapSource, &width, &height); - if (FAILED(hr)) return hr; - rc.X = 0; - rc.Y = 0; - rc.Width = width; - rc.Height = height; - prc = &rc; - } - - if (prc->Width != This->width) return E_INVALIDARG; - - hr = BmpFrameEncode_AllocateBits(This); - if (FAILED(hr)) return hr; - - hr = IWICBitmapSource_CopyPixels(pIBitmapSource, prc, This->stride, - This->stride*(This->height-This->lineswritten), - This->bits + This->stride*This->lineswritten); - - This->lineswritten += prc->Height; - - return S_OK; + hr = configure_write_source(iface, pIBitmapSource, prc, + This->format ? This->format->guid : NULL, This->width, This->height, + This->xres, This->yres); + + if (SUCCEEDED(hr)) + { + hr = write_source(iface, pIBitmapSource, prc, + This->format->guid, This->format->bpp, This->width, This->height); + } + + return hr; } static HRESULT WINAPI BmpFrameEncode_Commit(IWICBitmapFrameEncode *iface) Modified: trunk/reactos/dll/win32/windowscodecs/icnsformat.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/windowscodecs/ic…
============================================================================== --- trunk/reactos/dll/win32/windowscodecs/icnsformat.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/windowscodecs/icnsformat.c [iso-8859-1] Wed Oct 8 19:30:33 2014 @@ -374,66 +374,22 @@ { IcnsFrameEncode *This = impl_from_IWICBitmapFrameEncode(iface); HRESULT hr; - WICRect rc; - WICPixelFormatGUID guid; - UINT stride; - BYTE *pixeldata = NULL; TRACE("(%p,%p,%p)\n", iface, pIBitmapSource, prc); - if (!This->initialized || !This->size) - { - hr = WINCODEC_ERR_WRONGSTATE; - goto end; - } - - hr = IWICBitmapSource_GetPixelFormat(pIBitmapSource, &guid); - if (FAILED(hr)) - goto end; - if (!IsEqualGUID(&guid, &GUID_WICPixelFormat32bppBGRA)) - { - FIXME("format %s unsupported, could use WICConvertBitmapSource to convert\n", debugstr_guid(&guid)); - hr = E_FAIL; - goto end; - } - - if (!prc) - { - UINT width, height; - hr = IWICBitmapSource_GetSize(pIBitmapSource, &width, &height); - if (FAILED(hr)) - goto end; - rc.X = 0; - rc.Y = 0; - rc.Width = width; - rc.Height = height; - prc = &rc; - } - - if (prc->Width != This->size) - { - hr = E_INVALIDARG; - goto end; - } - - stride = (32 * This->size + 7)/8; - pixeldata = HeapAlloc(GetProcessHeap(), 0, stride * prc->Height); - if (!pixeldata) - { - hr = E_OUTOFMEMORY; - goto end; - } - - hr = IWICBitmapSource_CopyPixels(pIBitmapSource, prc, stride, - stride*prc->Height, pixeldata); + if (!This->initialized) + return WINCODEC_ERR_WRONGSTATE; + + hr = configure_write_source(iface, pIBitmapSource, &prc, + &GUID_WICPixelFormat32bppBGRA, This->size, This->size, + 1.0, 1.0); + if (SUCCEEDED(hr)) { - hr = IWICBitmapFrameEncode_WritePixels(iface, prc->Height, stride, - stride*prc->Height, pixeldata); - } - -end: - HeapFree(GetProcessHeap(), 0, pixeldata); + hr = write_source(iface, pIBitmapSource, prc, + &GUID_WICPixelFormat32bppBGRA, 32, This->size, This->size); + } + return hr; } Modified: trunk/reactos/dll/win32/windowscodecs/imgfactory.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/windowscodecs/im…
============================================================================== --- trunk/reactos/dll/win32/windowscodecs/imgfactory.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/windowscodecs/imgfactory.c [iso-8859-1] Wed Oct 8 19:30:33 2014 @@ -529,20 +529,22 @@ IWICBitmapLock_Release(lock); } - if (SUCCEEDED(hr)) - hr = PaletteImpl_Create(&palette); - if (SUCCEEDED(hr) && (format_type == WICPixelFormatNumericRepresentationUnspecified || format_type == WICPixelFormatNumericRepresentationIndexed)) { - hr = IWICBitmapSource_CopyPalette(piBitmapSource, palette); + hr = PaletteImpl_Create(&palette); if (SUCCEEDED(hr)) - hr = IWICBitmap_SetPalette(result, palette); - else - hr = S_OK; - - IWICPalette_Release(palette); + { + hr = IWICBitmapSource_CopyPalette(piBitmapSource, palette); + + if (SUCCEEDED(hr)) + hr = IWICBitmap_SetPalette(result, palette); + else + hr = S_OK; + + IWICPalette_Release(palette); + } } if (SUCCEEDED(hr)) Modified: trunk/reactos/dll/win32/windowscodecs/jpegformat.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/windowscodecs/jp…
============================================================================== --- trunk/reactos/dll/win32/windowscodecs/jpegformat.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/windowscodecs/jpegformat.c [iso-8859-1] Wed Oct 8 19:30:33 2014 @@ -1088,70 +1088,20 @@ { JpegEncoder *This = impl_from_IWICBitmapFrameEncode(iface); HRESULT hr; - WICRect rc; - WICPixelFormatGUID guid; - UINT stride; - BYTE *pixeldata; TRACE("(%p,%p,%p)\n", iface, pIBitmapSource, prc); - if (!This->frame_initialized || !This->width || !This->height) + if (!This->frame_initialized) return WINCODEC_ERR_WRONGSTATE; - if (!This->format) - { - hr = IWICBitmapSource_GetPixelFormat(pIBitmapSource, &guid); - if (FAILED(hr)) return hr; - hr = IWICBitmapFrameEncode_SetPixelFormat(iface, &guid); - if (FAILED(hr)) return hr; - } - - hr = IWICBitmapSource_GetPixelFormat(pIBitmapSource, &guid); - if (FAILED(hr)) return hr; - if (memcmp(&guid, This->format->guid, sizeof(GUID)) != 0) - { - /* FIXME: should use WICConvertBitmapSource to convert */ - ERR("format %s unsupported\n", debugstr_guid(&guid)); - return E_FAIL; - } - - if (This->xres == 0.0 || This->yres == 0.0) - { - double xres, yres; - hr = IWICBitmapSource_GetResolution(pIBitmapSource, &xres, &yres); - if (FAILED(hr)) return hr; - hr = IWICBitmapFrameEncode_SetResolution(iface, xres, yres); - if (FAILED(hr)) return hr; - } - - if (!prc) - { - UINT width, height; - hr = IWICBitmapSource_GetSize(pIBitmapSource, &width, &height); - if (FAILED(hr)) return hr; - rc.X = 0; - rc.Y = 0; - rc.Width = width; - rc.Height = height; - prc = &rc; - } - - if (prc->Width != This->width) return E_INVALIDARG; - - stride = (This->format->bpp * This->width + 7)/8; - - pixeldata = HeapAlloc(GetProcessHeap(), 0, stride * prc->Height); - if (!pixeldata) return E_OUTOFMEMORY; - - hr = IWICBitmapSource_CopyPixels(pIBitmapSource, prc, stride, - stride*prc->Height, pixeldata); + hr = configure_write_source(iface, pIBitmapSource, prc, + This->format ? This->format->guid : NULL, This->width, This->height, + This->xres, This->yres); if (SUCCEEDED(hr)) { - hr = IWICBitmapFrameEncode_WritePixels(iface, prc->Height, stride, - stride*prc->Height, pixeldata); - } - - HeapFree(GetProcessHeap(), 0, pixeldata); + hr = write_source(iface, pIBitmapSource, prc, + This->format->guid, This->format->bpp, This->width, This->height); + } return hr; } Modified: trunk/reactos/dll/win32/windowscodecs/main.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/windowscodecs/ma…
============================================================================== --- trunk/reactos/dll/win32/windowscodecs/main.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/windowscodecs/main.c [iso-8859-1] Wed Oct 8 19:30:33 2014 @@ -103,6 +103,92 @@ } } +HRESULT configure_write_source(IWICBitmapFrameEncode *iface, + IWICBitmapSource *source, const WICRect *prc, + const WICPixelFormatGUID *format, + INT width, INT height, double xres, double yres) +{ + HRESULT hr=S_OK; + WICPixelFormatGUID src_format, dst_format; + + if (width == 0 || height == 0) + return WINCODEC_ERR_WRONGSTATE; + + hr = IWICBitmapSource_GetPixelFormat(source, &src_format); + if (FAILED(hr)) return hr; + + if (!format) + { + dst_format = src_format; + + hr = IWICBitmapFrameEncode_SetPixelFormat(iface, &dst_format); + if (FAILED(hr)) return hr; + + format = &dst_format; + } + + if (!IsEqualGUID(&src_format, format)) + { + /* FIXME: should use WICConvertBitmapSource to convert */ + ERR("format %s unsupported\n", debugstr_guid(&src_format)); + return E_FAIL; + } + + if (xres == 0.0 || yres == 0.0) + { + hr = IWICBitmapSource_GetResolution(source, &xres, &yres); + if (FAILED(hr)) return hr; + hr = IWICBitmapFrameEncode_SetResolution(iface, xres, yres); + if (FAILED(hr)) return hr; + } + + return hr; +} + +HRESULT write_source(IWICBitmapFrameEncode *iface, + IWICBitmapSource *source, const WICRect *prc, + const WICPixelFormatGUID *format, UINT bpp, + INT width, INT height) +{ + HRESULT hr=S_OK; + WICRect rc; + UINT stride; + BYTE* pixeldata; + + if (!prc) + { + UINT src_width, src_height; + hr = IWICBitmapSource_GetSize(source, &src_width, &src_height); + if (FAILED(hr)) return hr; + rc.X = 0; + rc.Y = 0; + rc.Width = src_width; + rc.Height = src_height; + prc = &rc; + } + + if (prc->Width != width || prc->Height <= 0) + return E_INVALIDARG; + + stride = (bpp * width + 7)/8; + + pixeldata = HeapAlloc(GetProcessHeap(), 0, stride * prc->Height); + if (!pixeldata) return E_OUTOFMEMORY; + + hr = IWICBitmapSource_CopyPixels(source, prc, stride, + stride*prc->Height, pixeldata); + + if (SUCCEEDED(hr)) + { + hr = IWICBitmapFrameEncode_WritePixels(iface, prc->Height, stride, + stride*prc->Height, pixeldata); + } + + HeapFree(GetProcessHeap(), 0, pixeldata); + + return hr; +} + void reverse_bgr8(UINT bytesperpixel, LPBYTE bits, UINT width, UINT height, INT stride) { UINT x, y; Modified: trunk/reactos/dll/win32/windowscodecs/pngformat.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/windowscodecs/pn…
============================================================================== --- trunk/reactos/dll/win32/windowscodecs/pngformat.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/windowscodecs/pngformat.c [iso-8859-1] Wed Oct 8 19:30:33 2014 @@ -21,6 +21,8 @@ #ifdef HAVE_PNG_H #include <png.h> #endif + +static const WCHAR wszPngInterlaceOption[] = {'I','n','t','e','r','l','a','c','e','O','p','t','i','o','n',0}; static HRESULT read_png_chunk(IStream *stream, BYTE *type, BYTE **data, ULONG *data_size) { @@ -164,6 +166,7 @@ #endif MAKE_FUNCPTR(png_set_filler); MAKE_FUNCPTR(png_set_gray_to_rgb); +MAKE_FUNCPTR(png_set_interlace_handling); MAKE_FUNCPTR(png_set_IHDR); MAKE_FUNCPTR(png_set_pHYs); MAKE_FUNCPTR(png_set_read_fn); @@ -213,6 +216,7 @@ #endif LOAD_FUNCPTR(png_set_filler); LOAD_FUNCPTR(png_set_gray_to_rgb); + LOAD_FUNCPTR(png_set_interlace_handling); LOAD_FUNCPTR(png_set_IHDR); LOAD_FUNCPTR(png_set_pHYs); LOAD_FUNCPTR(png_set_read_fn); @@ -1041,6 +1045,10 @@ BOOL frame_committed; BOOL committed; CRITICAL_SECTION lock; + BOOL interlace; + BYTE *data; + UINT stride; + UINT passes; } PngEncoder; static inline PngEncoder *impl_from_IWICBitmapEncoder(IWICBitmapEncoder *iface) @@ -1092,8 +1100,32 @@ IPropertyBag2 *pIEncoderOptions) { PngEncoder *This = impl_from_IWICBitmapFrameEncode(iface); + BOOL interlace; + PROPBAG2 opts[1]= {{0}}; + VARIANT opt_values[1]; + HRESULT opt_hres[1]; + HRESULT hr; + TRACE("(%p,%p)\n", iface, pIEncoderOptions); + opts[0].pstrName = (LPOLESTR)wszPngInterlaceOption; + opts[0].vt = VT_BOOL; + + if (pIEncoderOptions) + { + hr = IPropertyBag2_Read(pIEncoderOptions, 1, opts, NULL, opt_values, opt_hres); + + if (FAILED(hr)) + return hr; + } + else + memset(opt_values, 0, sizeof(opt_values)); + + if (V_VT(&opt_values[0]) == VT_EMPTY) + interlace = FALSE; + else + interlace = (V_BOOL(&opt_values[0]) != 0); + EnterCriticalSection(&This->lock); if (This->frame_initialized) @@ -1101,6 +1133,8 @@ LeaveCriticalSection(&This->lock); return WINCODEC_ERR_WRONGSTATE; } + + This->interlace = interlace; This->frame_initialized = TRUE; @@ -1239,8 +1273,21 @@ if (!This->info_written) { + if (This->interlace) + { + /* libpng requires us to write all data multiple times in this case. */ + This->stride = (This->format->bpp * This->width + 7)/8; + This->data = HeapAlloc(GetProcessHeap(), 0, This->height * This->stride); + if (!This->data) + { + LeaveCriticalSection(&This->lock); + return E_OUTOFMEMORY; + } + } + ppng_set_IHDR(This->png_ptr, This->info_ptr, This->width, This->height, - This->format->bit_depth, This->format->color_type, PNG_INTERLACE_NONE, + This->format->bit_depth, This->format->color_type, + This->interlace ? PNG_INTERLACE_ADAM7 : PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); if (This->xres != 0.0 && This->yres != 0.0) @@ -1257,7 +1304,24 @@ if (This->format->swap_rgb) ppng_set_bgr(This->png_ptr); + if (This->interlace) + This->passes = ppng_set_interlace_handling(This->png_ptr); + This->info_written = TRUE; + } + + if (This->interlace) + { + /* Just store the data so we can write it in multiple passes in Commit. */ + for (i=0; i<lineCount; i++) + memcpy(This->data + This->stride * (This->lines_written + i), + pbPixels + cbStride * i, + This->stride); + + This->lines_written += lineCount; + + LeaveCriticalSection(&This->lock); + return S_OK; } row_pointers = HeapAlloc(GetProcessHeap(), 0, lineCount * sizeof(png_byte*)); @@ -1285,70 +1349,20 @@ { PngEncoder *This = impl_from_IWICBitmapFrameEncode(iface); HRESULT hr; - WICRect rc; - WICPixelFormatGUID guid; - UINT stride; - BYTE *pixeldata; TRACE("(%p,%p,%p)\n", iface, pIBitmapSource, prc); - if (!This->frame_initialized || !This->width || !This->height) + if (!This->frame_initialized) return WINCODEC_ERR_WRONGSTATE; - if (!This->format) - { - hr = IWICBitmapSource_GetPixelFormat(pIBitmapSource, &guid); - if (FAILED(hr)) return hr; - hr = IWICBitmapFrameEncode_SetPixelFormat(iface, &guid); - if (FAILED(hr)) return hr; - } - - hr = IWICBitmapSource_GetPixelFormat(pIBitmapSource, &guid); - if (FAILED(hr)) return hr; - if (memcmp(&guid, This->format->guid, sizeof(GUID)) != 0) - { - /* FIXME: should use WICConvertBitmapSource to convert */ - ERR("format %s unsupported\n", debugstr_guid(&guid)); - return E_FAIL; - } - - if (This->xres == 0.0 || This->yres == 0.0) - { - double xres, yres; - hr = IWICBitmapSource_GetResolution(pIBitmapSource, &xres, &yres); - if (FAILED(hr)) return hr; - hr = IWICBitmapFrameEncode_SetResolution(iface, xres, yres); - if (FAILED(hr)) return hr; - } - - if (!prc) - { - UINT width, height; - hr = IWICBitmapSource_GetSize(pIBitmapSource, &width, &height); - if (FAILED(hr)) return hr; - rc.X = 0; - rc.Y = 0; - rc.Width = width; - rc.Height = height; - prc = &rc; - } - - if (prc->Width != This->width) return E_INVALIDARG; - - stride = (This->format->bpp * This->width + 7)/8; - - pixeldata = HeapAlloc(GetProcessHeap(), 0, stride * prc->Height); - if (!pixeldata) return E_OUTOFMEMORY; - - hr = IWICBitmapSource_CopyPixels(pIBitmapSource, prc, stride, - stride*prc->Height, pixeldata); + hr = configure_write_source(iface, pIBitmapSource, prc, + This->format ? This->format->guid : NULL, This->width, This->height, + This->xres, This->yres); if (SUCCEEDED(hr)) { - hr = IWICBitmapFrameEncode_WritePixels(iface, prc->Height, stride, - stride*prc->Height, pixeldata); - } - - HeapFree(GetProcessHeap(), 0, pixeldata); + hr = write_source(iface, pIBitmapSource, prc, + This->format->guid, This->format->bpp, This->width, This->height); + } return hr; } @@ -1356,6 +1370,7 @@ static HRESULT WINAPI PngFrameEncode_Commit(IWICBitmapFrameEncode *iface) { PngEncoder *This = impl_from_IWICBitmapFrameEncode(iface); + png_byte **row_pointers=NULL; jmp_buf jmpbuf; TRACE("(%p)\n", iface); @@ -1371,13 +1386,34 @@ if (setjmp(jmpbuf)) { LeaveCriticalSection(&This->lock); + HeapFree(GetProcessHeap(), 0, row_pointers); return E_FAIL; } ppng_set_error_fn(This->png_ptr, jmpbuf, user_error_fn, user_warning_fn); + if (This->interlace) + { + int i; + + row_pointers = HeapAlloc(GetProcessHeap(), 0, This->height * sizeof(png_byte*)); + if (!row_pointers) + { + LeaveCriticalSection(&This->lock); + return E_OUTOFMEMORY; + } + + for (i=0; i<This->height; i++) + row_pointers[i] = This->data + This->stride * i; + + for (i=0; i<This->passes; i++) + ppng_write_rows(This->png_ptr, row_pointers, This->height); + } + ppng_write_end(This->png_ptr, This->info_ptr); This->frame_committed = TRUE; + + HeapFree(GetProcessHeap(), 0, row_pointers); LeaveCriticalSection(&This->lock); @@ -1456,6 +1492,7 @@ ppng_destroy_write_struct(&This->png_ptr, &This->info_ptr); if (This->stream) IStream_Release(This->stream); + HeapFree(GetProcessHeap(), 0, This->data); HeapFree(GetProcessHeap(), 0, This); } @@ -1579,6 +1616,8 @@ { PngEncoder *This = impl_from_IWICBitmapEncoder(iface); HRESULT hr; + PROPBAG2 opts[1]= {{0}}; + TRACE("(%p,%p,%p)\n", iface, ppIFrameEncode, ppIEncoderOptions); EnterCriticalSection(&This->lock); @@ -1595,7 +1634,11 @@ return WINCODEC_ERR_NOTINITIALIZED; } - hr = CreatePropertyBag2(NULL, 0, ppIEncoderOptions); + opts[0].pstrName = (LPOLESTR)wszPngInterlaceOption; + opts[0].vt = VT_BOOL; + opts[0].dwType = PROPBAG2_TYPE_DATA; + + hr = CreatePropertyBag2(opts, 1, ppIEncoderOptions); if (FAILED(hr)) { LeaveCriticalSection(&This->lock); @@ -1690,6 +1733,7 @@ This->lines_written = 0; This->frame_committed = FALSE; This->committed = FALSE; + This->data = NULL; InitializeCriticalSection(&This->lock); This->lock.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": PngEncoder.lock"); Modified: trunk/reactos/dll/win32/windowscodecs/propertybag.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/windowscodecs/pr…
============================================================================== --- trunk/reactos/dll/win32/windowscodecs/propertybag.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/windowscodecs/propertybag.c [iso-8859-1] Wed Oct 8 19:30:33 2014 @@ -232,7 +232,7 @@ if (iProperty+cProperties > This->prop_count ) return WINCODEC_ERR_VALUEOUTOFRANGE; - *pcProperties = max(cProperties, This->prop_count-iProperty); + *pcProperties = min(cProperties, This->prop_count-iProperty); for (i=0; i < *pcProperties; i++) { Modified: trunk/reactos/dll/win32/windowscodecs/proxy.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/windowscodecs/pr…
============================================================================== --- trunk/reactos/dll/win32/windowscodecs/proxy.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/windowscodecs/proxy.c [iso-8859-1] Wed Oct 8 19:30:33 2014 @@ -208,6 +208,9 @@ HRESULT WINAPI IWICBitmapFrameEncode_WriteSource_Proxy_W(IWICBitmapFrameEncode *iface, IWICBitmapSource *pIBitmapSource, WICRect *prc) { + if (prc && (prc->Width <= 0 || prc->Height <= 0)) + prc = NULL; + return IWICBitmapFrameEncode_WriteSource(iface, pIBitmapSource, prc); } Modified: trunk/reactos/dll/win32/windowscodecs/tiffformat.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/windowscodecs/ti…
============================================================================== --- trunk/reactos/dll/win32/windowscodecs/tiffformat.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/windowscodecs/tiffformat.c [iso-8859-1] Wed Oct 8 19:30:33 2014 @@ -1636,73 +1636,23 @@ { TiffFrameEncode *This = impl_from_IWICBitmapFrameEncode(iface); HRESULT hr; - WICRect rc; - WICPixelFormatGUID guid; - UINT stride; - BYTE *pixeldata; TRACE("(%p,%p,%p)\n", iface, pIBitmapSource, prc); - if (!This->initialized || !This->width || !This->height) + if (!This->initialized) return WINCODEC_ERR_WRONGSTATE; - if (!This->format) - { - hr = IWICBitmapSource_GetPixelFormat(pIBitmapSource, &guid); - if (FAILED(hr)) return hr; - hr = IWICBitmapFrameEncode_SetPixelFormat(iface, &guid); - if (FAILED(hr)) return hr; - } - - hr = IWICBitmapSource_GetPixelFormat(pIBitmapSource, &guid); - if (FAILED(hr)) return hr; - if (memcmp(&guid, This->format->guid, sizeof(GUID)) != 0) - { - /* FIXME: should use WICConvertBitmapSource to convert */ - ERR("format %s unsupported\n", debugstr_guid(&guid)); - return E_FAIL; - } - - if (This->xres == 0.0 || This->yres == 0.0) - { - double xres, yres; - hr = IWICBitmapSource_GetResolution(pIBitmapSource, &xres, &yres); - if (FAILED(hr)) return hr; - hr = IWICBitmapFrameEncode_SetResolution(iface, xres, yres); - if (FAILED(hr)) return hr; - } - - if (!prc) - { - UINT width, height; - hr = IWICBitmapSource_GetSize(pIBitmapSource, &width, &height); - if (FAILED(hr)) return hr; - rc.X = 0; - rc.Y = 0; - rc.Width = width; - rc.Height = height; - prc = &rc; - } - - if (prc->Width != This->width) return E_INVALIDARG; - - stride = (This->format->bpp * This->width + 7)/8; - - pixeldata = HeapAlloc(GetProcessHeap(), 0, stride * prc->Height); - if (!pixeldata) return E_OUTOFMEMORY; - - hr = IWICBitmapSource_CopyPixels(pIBitmapSource, prc, stride, - stride*prc->Height, pixeldata); + hr = configure_write_source(iface, pIBitmapSource, prc, + This->format ? This->format->guid : NULL, This->width, This->height, + This->xres, This->yres); if (SUCCEEDED(hr)) { - hr = IWICBitmapFrameEncode_WritePixels(iface, prc->Height, stride, - stride*prc->Height, pixeldata); - } - - HeapFree(GetProcessHeap(), 0, pixeldata); - - return S_OK; + hr = write_source(iface, pIBitmapSource, prc, + This->format->guid, This->format->bpp, This->width, This->height); + } + + return hr; } static HRESULT WINAPI TiffFrameEncode_Commit(IWICBitmapFrameEncode *iface) Modified: trunk/reactos/dll/win32/windowscodecs/typeof.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/windowscodecs/ty…
============================================================================== --- trunk/reactos/dll/win32/windowscodecs/typeof.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/windowscodecs/typeof.h [iso-8859-1] Wed Oct 8 19:30:33 2014 @@ -60,6 +60,7 @@ typedef void (__cdecl typeof(png_set_error_fn))(struct png_struct_def *, void *, png_error_ptr_1, png_error_ptr_1); typedef void (__cdecl typeof(png_set_expand_gray_1_2_4_to_8))(struct png_struct_def *); typedef void (__cdecl typeof(png_set_filler))(struct png_struct_def *, unsigned int, int); +typedef int (__cdecl typeof(png_set_interlace_handling))(struct png_struct_def *); typedef void (__cdecl typeof(png_set_gray_to_rgb))(struct png_struct_def *); typedef void (__cdecl typeof(png_set_IHDR))(struct png_struct_def *, struct png_info_def *, unsigned int, unsigned int, int, int, int, int, int); typedef void (__cdecl typeof(png_set_pHYs))(struct png_struct_def *, struct png_info_def *, unsigned int, unsigned int, int); Modified: trunk/reactos/dll/win32/windowscodecs/ungif.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/windowscodecs/un…
============================================================================== --- trunk/reactos/dll/win32/windowscodecs/ungif.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/windowscodecs/ungif.c [iso-8859-1] Wed Oct 8 19:30:33 2014 @@ -405,10 +405,7 @@ GifFile->Image.Interlace = (Buf[0] & 0x40); if (Buf[0] & 0x80) { /* Does this image have local color map? */ - /*** FIXME: Why do we check both of these in order to do this? - * Why do we have both Image and SavedImages? */ - if (GifFile->Image.ColorMap && GifFile->SavedImages == NULL) - FreeMapObject(GifFile->Image.ColorMap); + FreeMapObject(GifFile->Image.ColorMap); GifFile->Image.ColorMap = MakeMapObject(1 << BitsPerPixel, NULL); if (GifFile->Image.ColorMap == NULL) { Modified: trunk/reactos/dll/win32/windowscodecs/wincodecs_private.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/windowscodecs/wi…
============================================================================== --- trunk/reactos/dll/win32/windowscodecs/wincodecs_private.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/windowscodecs/wincodecs_private.h [iso-8859-1] Wed Oct 8 19:30:33 2014 @@ -126,6 +126,16 @@ UINT srcwidth, UINT srcheight, INT srcstride, const WICRect *rc, UINT dststride, UINT dstbuffersize, BYTE *dstbuffer) DECLSPEC_HIDDEN; +extern HRESULT configure_write_source(IWICBitmapFrameEncode *iface, + IWICBitmapSource *source, const WICRect *prc, + const WICPixelFormatGUID *format, + INT width, INT height, double xres, double yres) DECLSPEC_HIDDEN; + +extern HRESULT write_source(IWICBitmapFrameEncode *iface, + IWICBitmapSource *source, const WICRect *prc, + const WICPixelFormatGUID *format, UINT bpp, + INT width, INT height) DECLSPEC_HIDDEN; + extern void reverse_bgr8(UINT bytesperpixel, LPBYTE bits, UINT width, UINT height, INT stride) DECLSPEC_HIDDEN; extern HRESULT get_pixelformat_bpp(const GUID *pixelformat, UINT *bpp) DECLSPEC_HIDDEN; Modified: trunk/reactos/media/doc/README.WINE URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=…
============================================================================== --- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original) +++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Wed Oct 8 19:30:33 2014 @@ -208,7 +208,7 @@ reactos/dll/win32/wbemdisp # Synced to Wine-1.7.17 reactos/dll/win32/wbemprox # Synced to Wine-1.7.27 reactos/dll/win32/wer # Autosync -reactos/dll/win32/windowscodecs # Synced to Wine-1.7.17 +reactos/dll/win32/windowscodecs # Synced to Wine-1.7.27 reactos/dll/win32/windowscodecsext # Synced to Wine-1.7.17 reactos/dll/win32/winemp3.acm # Synced to Wine-1.7.17 reactos/dll/win32/wing32 # Out of sync
10 years, 3 months
1
0
0
0
[pschweitzer] 64614: [NTFS] ReadFileRecord() returns a NTSTATUS
by pschweitzer@svn.reactos.org
Author: pschweitzer Date: Wed Oct 8 19:25:00 2014 New Revision: 64614 URL:
http://svn.reactos.org/svn/reactos?rev=64614&view=rev
Log: [NTFS] ReadFileRecord() returns a NTSTATUS Modified: trunk/reactos/drivers/filesystems/ntfs/mft.c Modified: trunk/reactos/drivers/filesystems/ntfs/mft.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/ntfs/m…
============================================================================== --- trunk/reactos/drivers/filesystems/ntfs/mft.c [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/ntfs/mft.c [iso-8859-1] Wed Oct 8 19:25:00 2014 @@ -500,7 +500,7 @@ return STATUS_INSUFFICIENT_RESOURCES; } - if (ReadFileRecord(Vcb, MFTIndex, MftRecord)) + if (NT_SUCCESS(ReadFileRecord(Vcb, MFTIndex, MftRecord))) { //Magic = MftRecord->Magic;
10 years, 3 months
1
0
0
0
[akhaldi] 64613: [PSDK] * Update iads.idl. CORE-8540
by akhaldi@svn.reactos.org
Author: akhaldi Date: Wed Oct 8 19:19:01 2014 New Revision: 64613 URL:
http://svn.reactos.org/svn/reactos?rev=64613&view=rev
Log: [PSDK] * Update iads.idl. CORE-8540 Modified: trunk/reactos/include/psdk/iads.idl Modified: trunk/reactos/include/psdk/iads.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/iads.idl?rev=…
============================================================================== --- trunk/reactos/include/psdk/iads.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/iads.idl [iso-8859-1] Wed Oct 8 19:19:01 2014 @@ -42,6 +42,286 @@ ADS_RIGHT_GENERIC_WRITE = 0x40000000, ADS_RIGHT_GENERIC_READ = 0x80000000 } ADS_RIGHTS_ENUM; + +typedef enum +{ + ADS_SECURE_AUTHENTICATION = 0x1, + ADS_USE_ENCRYPTION = 0x2, + ADS_USE_SSL = 0x2, + ADS_READONLY_SERVER = 0x4, + ADS_PROMPT_CREDENTIALS = 0x8, + ADS_NO_AUTHENTICATION = 0x10, + ADS_FAST_BIND = 0x20, + ADS_USE_SIGNING = 0x40, + ADS_USE_SEALING = 0x80, + ADS_USE_DELEGATION = 0x100, + ADS_SERVER_BIND = 0x200, + ADS_NO_REFERRAL_CHASING = 0x400, + ADS_AUTH_RESERVED = 0x80000000 +} ADS_AUTHENTICATION_ENUM; + +typedef enum +{ + ADS_SEARCHPREF_ASYNCHRONOUS, + ADS_SEARCHPREF_DEREF_ALIASES, + ADS_SEARCHPREF_SIZE_LIMIT, + ADS_SEARCHPREF_TIME_LIMIT, + ADS_SEARCHPREF_ATTRIBTYPES_ONLY, + ADS_SEARCHPREF_SEARCH_SCOPE, + ADS_SEARCHPREF_TIMEOUT, + ADS_SEARCHPREF_PAGESIZE, + ADS_SEARCHPREF_PAGED_TIME_LIMIT, + ADS_SEARCHPREF_CHASE_REFERRALS, + ADS_SEARCHPREF_SORT_ON, + ADS_SEARCHPREF_CACHE_RESULTS, + ADS_SEARCHPREF_DIRSYNC, + ADS_SEARCHPREF_TOMBSTONE, + ADS_SEARCHPREF_VLV, + ADS_SEARCHPREF_ATTRIBUTE_QUERY, + ADS_SEARCHPREF_SECURITY_MASK, + ADS_SEARCHPREF_DIRSYNC_FLAG, + ADS_SEARCHPREF_EXTENDED_DN +} ADS_SEARCHPREF_ENUM; + +typedef ADS_SEARCHPREF_ENUM *PADS_SEARCHPREF_INFO; + +typedef enum +{ + ADS_STATUS_S_OK, + ADS_STATUS_INVALID_SEARCHPREF, + ADS_STATUS_INVALID_SEARCHPREFVALUE +} ADS_STATUSENUM; + +typedef enum +{ + ADSTYPE_INVALID, + ADSTYPE_DN_STRING, + ADSTYPE_CASE_EXACT_STRING, + ADSTYPE_CASE_IGNORE_STRING, + ADSTYPE_PRINTABLE_STRING, + ADSTYPE_NUMERIC_STRING, + ADSTYPE_BOOLEAN, + ADSTYPE_INTEGER, + ADSTYPE_OCTET_STRING, + ADSTYPE_UTC_TIME, + ADSTYPE_LARGE_INTEGER, + ADSTYPE_PROV_SPECIFIC, + ADSTYPE_OBJECT_CLASS, + ADSTYPE_CASEIGNORE_LIST, + ADSTYPE_OCTET_LIST, + ADSTYPE_PATH, + ADSTYPE_POSTALADDRESS, + ADSTYPE_TIMESTAMP, + ADSTYPE_BACKLINK, + ADSTYPE_TYPEDNAME, + ADSTYPE_HOLD, + ADSTYPE_NETADDRESS, + ADSTYPE_REPLICAPOINTER, + ADSTYPE_FAXNUMBER, + ADSTYPE_EMAIL, + ADSTYPE_NT_SECURITY_DESCRIPTOR, + ADSTYPE_UNKNOWN, + ADSTYPE_DN_WITH_BINARY, + ADSTYPE_DN_WITH_STRING +} ADSTYPEENUM; + +typedef enum +{ + ADS_PASSWORD_ENCODE_REQUIRE_SSL, + ADS_PASSWORD_ENCODE_CLEAR +} ADS_PASSWORD_ENCODING_ENUM; + +typedef struct _ADS_CASEIGNORE_LIST +{ + struct _ADS_CASEIGNORE_LIST *Next; + LPWSTR String; +} ADS_CASEIGNORE_LIST; + +typedef struct _ADS_OCTET_LIST +{ + struct _ADS_OCTET_LIST *Next; + DWORD Length; + BYTE *Data; +} ADS_OCTET_LIST; + +typedef struct +{ + DWORD Type; + LPWSTR VolumeName; + LPWSTR Path; +} ADS_PATH, *PADS_PATH; + +typedef struct +{ + DWORD WholeSeconds; + DWORD EventID; +} ADS_TIMESTAMP; + + +typedef ADSTYPEENUM ADSTYPE; +typedef LPWSTR ADS_DN_STRING; +typedef LPWSTR *PADS_DN_STRING; +typedef LPWSTR ADS_CASE_EXACT_STRING; +typedef LPWSTR *PADS_CASE_EXACT_STRING; +typedef LPWSTR ADS_CASE_IGNORE_STRING; +typedef LPWSTR *PADS_CASE_IGNORE_STRING; +typedef LPWSTR ADS_PRINTABLE_STRING; +typedef LPWSTR *PADS_PRINTABLE_STRING; +typedef LPWSTR ADS_NUMERIC_STRING; +typedef LPWSTR *PADS_NUMERIC_STRING; +typedef DWORD ADS_BOOLEAN; +typedef DWORD *LPNDS_BOOLEAN; +typedef DWORD ADS_INTEGER; +typedef DWORD *PADS_INTEGER; +typedef SYSTEMTIME ADS_UTC_TIME; +typedef SYSTEMTIME *PADS_UTC_TIME; +typedef LARGE_INTEGER ADS_LARGE_INTEGER; +typedef LARGE_INTEGER *PADS_LARGE_INTEGER; +typedef LPWSTR ADS_OBJECT_CLASS; +typedef LPWSTR *PADS_OBJECT_CLASS; +typedef struct _ADS_OCTET_LIST *PADS_OCTET_LIST; +typedef struct _ADS_CASEIGNORE_LIST *PADS_CASEIGNORE_LIST; +typedef ADS_STATUSENUM ADS_STATUS; +typedef ADS_SEARCHPREF_ENUM ADS_SEARCHPREF; +typedef HANDLE ADS_SEARCH_HANDLE; +typedef HANDLE *PADS_SEARCH_HANDLE; + + +typedef struct +{ + DWORD dwLength; + BYTE *lpValue; +} ADS_OCTET_STRING; + +typedef struct +{ + DWORD dwLength; + BYTE *lpValue; +} ADS_PROV_SPECIFIC; + +typedef struct +{ + LPWSTR PostalAddress[ 6 ]; +} ADS_POSTALADDRESS, *PADS_POSTALADDRESS; + +typedef struct +{ + LPWSTR ObjectName; + DWORD Level; + DWORD Interval; +} ADS_TYPEDNAME, *PADS_TYPEDNAME; + +typedef struct +{ + DWORD RemoteID; + LPWSTR ObjectName; +} ADS_BACKLINK; + +typedef struct +{ + LPWSTR ObjectName; + DWORD Amount; +} ADS_HOLD; + +typedef struct +{ + DWORD AddressType; + DWORD AddressLength; + BYTE *Address; +} ADS_NETADDRESS, *PADS_NETADDRESS; + +typedef struct +{ + LPWSTR ServerName; + DWORD ReplicaType; + DWORD ReplicaNumber; + DWORD Count; + PADS_NETADDRESS ReplicaAddressHints; +} ADS_REPLICAPOINTER, *PADS_REPLICAPOINTER; + +typedef struct +{ + LPWSTR TelephoneNumber; + DWORD NumberOfBits; + BYTE *Parameters; +} ADS_FAXNUMBER, *PADS_FAXNUMBER; + + +typedef struct +{ + LPWSTR Address; + DWORD Type; +} ADS_EMAIL, *PADS_EMAIL; + +typedef struct +{ + DWORD dwLength; + BYTE *lpValue; +} ADS_NT_SECURITY_DESCRIPTOR; + +typedef struct +{ + DWORD dwLength; + BYTE *lpBinaryValue; + LPWSTR pszDNString; +} ADS_DN_WITH_BINARY, *PADS_DN_WITH_BINARY; + +typedef struct +{ + LPWSTR pszStringValue; + LPWSTR pszDNString; +} ADS_DN_WITH_STRING, *PADS_DN_WITH_STRING; + +typedef struct _adsvalue +{ + ADSTYPE dwType; + union + { + ADS_DN_STRING DNString; + ADS_CASE_EXACT_STRING CaseExactString; + ADS_CASE_IGNORE_STRING CaseIgnoreString; + ADS_PRINTABLE_STRING PrintableString; + ADS_NUMERIC_STRING NumericString; + ADS_BOOLEAN Boolean; + ADS_INTEGER Integer; + ADS_OCTET_STRING OctetString; + ADS_UTC_TIME UTCTime; + ADS_LARGE_INTEGER LargeInteger; + ADS_OBJECT_CLASS ClassName; + ADS_PROV_SPECIFIC ProviderSpecific; + PADS_CASEIGNORE_LIST pCaseIgnoreList; + PADS_OCTET_LIST pOctetList; + PADS_PATH pPath; + PADS_POSTALADDRESS pPostalAddress; + ADS_TIMESTAMP Timestamp; + ADS_BACKLINK BackLink; + PADS_TYPEDNAME pTypedName; + ADS_HOLD Hold; + PADS_NETADDRESS pNetAddress; + PADS_REPLICAPOINTER pReplicaPointer; + PADS_FAXNUMBER pFaxNumber; + ADS_EMAIL Email; + ADS_NT_SECURITY_DESCRIPTOR SecurityDescriptor; + PADS_DN_WITH_BINARY pDNWithBinary; + PADS_DN_WITH_STRING pDNWithString; + }; +} ADSVALUE, *PADSVALUE; + +typedef struct ads_searchpref_info +{ + ADS_SEARCHPREF dwSearchPref; + ADSVALUE vValue; + ADS_STATUS dwStatus; +} ADS_SEARCHPREF_INFO; + +typedef struct ads_search_column +{ + LPWSTR pszAttrName; + ADSTYPE dwADsType; + PADSVALUE pADsValues; + DWORD dwNumValues; + HANDLE hReserved; +} ADS_SEARCH_COLUMN, *PADS_SEARCH_COLUMN; /***************************************************************************** * IADsContainer interface @@ -84,3 +364,416 @@ [in] BSTR bstrNewName, [out, retval] IDispatch **ppObject); } + +/***************************************************************************** + * IADs interface + */ +[ + odl, + uuid(FD8256D0-FD15-11CE-ABC4-02608C9E7553), + dual, + oleautomation +] +interface IADs : IDispatch +{ + [id(0x00000002), propget] + HRESULT Name([out, retval] BSTR* retval); + + [id(0x00000003), propget] + HRESULT Class([out, retval] BSTR* retval); + + [id(0x00000004), propget] + HRESULT GUID([out, retval] BSTR* retval); + + [id(0x00000005), propget] + HRESULT ADsPath([out, retval] BSTR* retval); + + [id(0x00000006), propget] + HRESULT Parent([out, retval] BSTR* retval); + + [id(0x00000007), propget] + HRESULT Schema([out, retval] BSTR* retval); + + [id(0x00000008)] + HRESULT GetInfo(); + + [id(0x00000009)] + HRESULT SetInfo(); + + [id(0x0000000a)] + HRESULT Get([in] BSTR bstrName, [out, retval] VARIANT* pvProp); + + [id(0x0000000b)] + HRESULT Put([in] BSTR bstrName, [in] VARIANT vProp); + + [id(0x0000000c)] + HRESULT GetEx([in] BSTR bstrName, [out, retval] VARIANT* pvProp); + + [id(0x0000000d)] + HRESULT PutEx([in] long lnControlCode, [in] BSTR bstrName, [in] VARIANT vProp); + + [id(0x0000000e)] + HRESULT GetInfoEx( [in] VARIANT vProperties, [in] long lnReserved); +}; + +/***************************************************************************** + * IADsMembers interface + */ +[ + odl, + uuid(451A0030-72EC-11CF-B03B-00AA006E0975), + dual, + oleautomation +] +interface IADsMembers : IDispatch +{ + [id(0x00000002), propget] + HRESULT Count([out, retval] long* plCount); + + [id(0xfffffffc), propget] + HRESULT _NewEnum([out, retval] IUnknown** ppEnumerator); + + [id(0x00000003), propget] + HRESULT Filter([out, retval] VARIANT* pvFilter); + + [id(0x00000003), propput] + HRESULT Filter([in] VARIANT pvFilter); +}; + +/***************************************************************************** + * IADsGroup interface + */ +[ + odl, + uuid(27636B00-410F-11CF-B1FF-02608C9E7553), + dual, + oleautomation +] +interface IADsGroup : IADs { + [id(0x0000000f), propget] + HRESULT Description([out, retval] BSTR* retval); + + [id(0x0000000f), propput] + HRESULT Description([in] BSTR retval); + + [id(0x00000010)] + HRESULT Members([out, retval] IADsMembers** ppMembers); + + [id(0x00000011)] + HRESULT IsMember([in] BSTR bstrMember, [out, retval] VARIANT_BOOL* bMember); + + [id(0x00000012)] + HRESULT Add([in] BSTR bstrNewItem); + + [id(0x00000013)] + HRESULT Remove([in] BSTR bstrItemToBeRemoved); +}; + +/***************************************************************************** + * IADsUser interface + */ +[ + odl, + uuid(3E37E320-17E2-11CF-ABC4-02608C9E7553), + dual, + oleautomation +] +interface IADsUser : IADs +{ + [id(0x00000035), propget] + HRESULT BadLoginAddress([out, retval] BSTR* retval); + + [id(0x00000036), propget] + HRESULT BadLoginCount([out, retval] long* retval); + + [id(0x00000038), propget] + HRESULT LastLogin([out, retval] DATE* retval); + + [id(0x00000039), propget] + HRESULT LastLogoff([out, retval] DATE* retval); + + [id(0x0000003a), propget] + HRESULT LastFailedLogin([out, retval] DATE* retval); + + [id(0x0000003b), propget] + HRESULT PasswordLastChanged([out, retval] DATE* retval); + + [id(0x0000000f), propget] + HRESULT Description([out, retval] BSTR* retval); + + [id(0x0000000f), propput] + HRESULT Description([in] BSTR retval); + + [id(0x00000013), propget] + HRESULT Division([out, retval] BSTR* retval); + + [id(0x00000013), propput] + HRESULT Division([in] BSTR retval); + + [id(0x0000007a), propget] + HRESULT Department([out, retval] BSTR* retval); + + [id(0x0000007a), propput] + HRESULT Department([in] BSTR retval); + + [id(0x00000014), propget] + HRESULT EmployeeID([out, retval] BSTR* retval); + + [id(0x00000014), propput] + HRESULT EmployeeID([in] BSTR retval); + + [id(0x00000017), propget] + HRESULT FullName([out, retval] BSTR* retval); + + [id(0x00000017), propput] + HRESULT FullName([in] BSTR retval); + + [id(0x00000016), propget] + HRESULT FirstName([out, retval] BSTR* retval); + + [id(0x00000016), propput] + HRESULT FirstName([in] BSTR retval); + + [id(0x00000019), propget] + HRESULT LastName([out, retval] BSTR* retval); + + [id(0x00000019), propput] + HRESULT LastName([in] BSTR retval); + + [id(0x0000001b), propget] + HRESULT OtherName([out, retval] BSTR* retval); + + [id(0x0000001b), propput] + HRESULT OtherName([in] BSTR retval); + + [id(0x00000072), propget] + HRESULT NamePrefix([out, retval] BSTR* retval); + + [id(0x00000072), propput] + HRESULT NamePrefix([in] BSTR retval); + + [id(0x00000073), propget] + HRESULT NameSuffix([out, retval] BSTR* retval); + + [id(0x00000073), propput] + HRESULT NameSuffix([in] BSTR retval); + + [id(0x00000024), propget] + HRESULT Title([out, retval] BSTR* retval); + + [id(0x00000024), propput] + HRESULT Title([in] BSTR retval); + + [id(0x0000001a), propget] + HRESULT Manager([out, retval] BSTR* retval); + + [id(0x0000001a), propput] + HRESULT Manager([in] BSTR retval); + + [id(0x00000020), propget] + HRESULT TelephoneHome([out, retval] VARIANT* retval); + + [id(0x00000020), propput] + HRESULT TelephoneHome([in] VARIANT retval); + + [id(0x00000021), propget] + HRESULT TelephoneMobile([out, retval] VARIANT* retval); + + [id(0x00000021), propput] + HRESULT TelephoneMobile([in] VARIANT retval); + + [id(0x00000022), propget] + HRESULT TelephoneNumber([out, retval] VARIANT* retval); + + [id(0x00000022), propput] + HRESULT TelephoneNumber([in] VARIANT retval); + + [id(0x00000011), propget] + HRESULT TelephonePager([out, retval] VARIANT* retval); + + [id(0x00000011), propput] + HRESULT TelephonePager([in] VARIANT retval); + + [id(0x00000010), propget] + HRESULT FaxNumber([out, retval] VARIANT* retval); + + [id(0x00000010), propput] + HRESULT FaxNumber([in] VARIANT retval); + + [id(0x0000001c), propget] + HRESULT OfficeLocations([out, retval] VARIANT* retval); + + [id(0x0000001c), propput] + HRESULT OfficeLocations([in] VARIANT retval); + + [id(0x0000001e), propget] + HRESULT PostalAddresses([out, retval] VARIANT* retval); + + [id(0x0000001e), propput] + HRESULT PostalAddresses([in] VARIANT retval); + + [id(0x0000001f), propget] + HRESULT PostalCodes([out, retval] VARIANT* retval); + + [id(0x0000001f), propput] + HRESULT PostalCodes([in] VARIANT retval); + + [id(0x00000075), propget] + HRESULT SeeAlso([out, retval] VARIANT* retval); + + [id(0x00000075), propput] + HRESULT SeeAlso([in] VARIANT retval); + + [id(0x00000025), propget] + HRESULT AccountDisabled([out, retval] VARIANT_BOOL* retval); + + [id(0x00000025), propput] + HRESULT AccountDisabled([in] VARIANT_BOOL retval); + + [id(0x00000026), propget] + HRESULT AccountExpirationDate([out, retval] DATE* retval); + + [id(0x00000026), propput] + HRESULT AccountExpirationDate([in] DATE retval); + + [id(0x00000029), propget] + HRESULT GraceLoginsAllowed([out, retval] long* retval); + + [id(0x00000029), propput] + HRESULT GraceLoginsAllowed([in] long retval); + + [id(0x0000002a), propget] + HRESULT GraceLoginsRemaining([out, retval] long* retval); + + [id(0x0000002a), propput] + HRESULT GraceLoginsRemaining([in] long retval); + + [id(0x0000002b), propget] + HRESULT IsAccountLocked([out, retval] VARIANT_BOOL* retval); + + [id(0x0000002b), propput] + HRESULT IsAccountLocked([in] VARIANT_BOOL retval); + + [id(0x0000002d), propget] + HRESULT LoginHours([out, retval] VARIANT* retval); + + [id(0x0000002d), propput] + HRESULT LoginHours([in] VARIANT retval); + + [id(0x0000002e), propget] + HRESULT LoginWorkstations([out, retval] VARIANT* retval); + + [id(0x0000002e), propput] + HRESULT LoginWorkstations([in] VARIANT retval); + + [id(0x0000002f), propget] + HRESULT MaxLogins([out, retval] long* retval); + + [id(0x0000002f), propput] + HRESULT MaxLogins([in] long retval); + + [id(0x00000030), propget] + HRESULT MaxStorage([out, retval] long* retval); + + [id(0x00000030), propput] + HRESULT MaxStorage([in] long retval); + + [id(0x00000031), propget] + HRESULT PasswordExpirationDate([out, retval] DATE* retval); + + [id(0x00000031), propput] + HRESULT PasswordExpirationDate([in] DATE retval); + + [id(0x00000032), propget] + HRESULT PasswordMinimumLength([out, retval] long* retval); + + [id(0x00000032), propput] + HRESULT PasswordMinimumLength([in] long retval); + + [id(0x00000033), propget] + HRESULT PasswordRequired([out, retval] VARIANT_BOOL* retval); + + [id(0x00000033), propput] + HRESULT PasswordRequired([in] VARIANT_BOOL retval); + + [id(0x00000034), propget] + HRESULT RequireUniquePassword([out, retval] VARIANT_BOOL* retval); + + [id(0x00000034), propput] + HRESULT RequireUniquePassword([in] VARIANT_BOOL retval); + + [id(0x0000003c), propget] + HRESULT EmailAddress([out, retval] BSTR* retval); + + [id(0x0000003c), propput] + HRESULT EmailAddress([in] BSTR retval); + + [id(0x0000003d), propget] + HRESULT HomeDirectory([out, retval] BSTR* retval); + + [id(0x0000003d), propput] + HRESULT HomeDirectory([in] BSTR retval); + + [id(0x0000003e), propget] + HRESULT Languages([out, retval] VARIANT* retval); + + [id(0x0000003e), propput] + HRESULT Languages([in] VARIANT retval); + + [id(0x0000003f), propget] + HRESULT Profile([out, retval] BSTR* retval); + + [id(0x0000003f), propput] + HRESULT Profile([in] BSTR retval); + + [id(0x00000040), propget] + HRESULT LoginScript([out, retval] BSTR* retval); + + [id(0x00000040), propput] + HRESULT LoginScript([in] BSTR retval); + + [id(0x00000041), propget] + HRESULT Picture([out, retval] VARIANT* retval); + + [id(0x00000041), propput] + HRESULT Picture([in] VARIANT retval); + + [id(0x00000078), propget] + HRESULT HomePage([out, retval] BSTR* retval); + + [id(0x00000078), propput] + HRESULT HomePage([in] BSTR retval); + + [id(0x00000042)] + HRESULT Groups([out, retval] IADsMembers** ppGroups); + + [id(0x00000043)] + HRESULT SetPassword([in] BSTR NewPassword); + + [id(0x00000044)] + HRESULT ChangePassword([in] BSTR bstrOldPassword, [in] BSTR bstrNewPassword); +}; + +/***************************************************************************** + * IDirectorySearch interface + */ +[ + odl, + local, + uuid(109BA8EC-92F0-11D0-A790-00C04FD8D5A8) +] +interface IDirectorySearch : IUnknown +{ + HRESULT SetSearchPreference([in] PADS_SEARCHPREF_INFO pSearchPrefs, [in] DWORD dwNumPrefs); + HRESULT ExecuteSearch([in] LPWSTR pszSearchFilter, [in] LPWSTR* pAttributeNames, + [in] DWORD dwNumberAttributes, [out] PADS_SEARCH_HANDLE phSearchResult); + HRESULT AbandonSearch([in] ADS_SEARCH_HANDLE phSearchResult); + HRESULT GetFirstRow([in] ADS_SEARCH_HANDLE hSearchResult); + HRESULT GetNextRow([in] ADS_SEARCH_HANDLE hSearchResult); + HRESULT GetPreviousRow([in] ADS_SEARCH_HANDLE hSearchResult); + HRESULT GetNextColumnName([in] ADS_SEARCH_HANDLE hSearchHandle, [out] LPWSTR* ppszColumnName); + HRESULT GetColumn( [in] ADS_SEARCH_HANDLE hSearchResult, [in] LPWSTR szColumnName, + [out] PADS_SEARCH_COLUMN pSearchColumn); + HRESULT FreeColumn([in] PADS_SEARCH_COLUMN pSearchColumn); + HRESULT CloseSearchHandle([in] ADS_SEARCH_HANDLE hSearchResult); +};
10 years, 3 months
1
0
0
0
[akhaldi] 64612: [WBEMPROX_WINETEST] * Sync with Wine 1.7.27. CORE-8540
by akhaldi@svn.reactos.org
Author: akhaldi Date: Wed Oct 8 19:18:00 2014 New Revision: 64612 URL:
http://svn.reactos.org/svn/reactos?rev=64612&view=rev
Log: [WBEMPROX_WINETEST] * Sync with Wine 1.7.27. CORE-8540 Modified: trunk/rostests/winetests/wbemprox/CMakeLists.txt trunk/rostests/winetests/wbemprox/query.c trunk/rostests/winetests/wbemprox/services.c Modified: trunk/rostests/winetests/wbemprox/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/wbemprox/CMakeL…
============================================================================== --- trunk/rostests/winetests/wbemprox/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/winetests/wbemprox/CMakeLists.txt [iso-8859-1] Wed Oct 8 19:18:00 2014 @@ -9,5 +9,5 @@ add_executable(wbemprox_winetest ${SOURCE}) target_link_libraries(wbemprox_winetest uuid) set_module_type(wbemprox_winetest win32cui) -add_importlibs(wbemprox_winetest oleaut32 ole32 user32 msvcrt kernel32) +add_importlibs(wbemprox_winetest advapi32 oleaut32 ole32 user32 msvcrt kernel32) add_cd_file(TARGET wbemprox_winetest DESTINATION reactos/bin FOR all) Modified: trunk/rostests/winetests/wbemprox/query.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/wbemprox/query.…
============================================================================== --- trunk/rostests/winetests/wbemprox/query.c [iso-8859-1] (original) +++ trunk/rostests/winetests/wbemprox/query.c [iso-8859-1] Wed Oct 8 19:18:00 2014 @@ -650,6 +650,83 @@ SysFreeString( wql ); } +static void test_SystemSecurity( IWbemServices *services ) +{ + static const WCHAR systemsecurityW[] = {'_','_','S','y','s','t','e','m','S','e','c','u','r','i','t','y',0}; + static const WCHAR getsdW[] = {'G','e','t','S','D',0}; + static const WCHAR returnvalueW[] = {'R','e','t','u','r','n','V','a','l','u','e',0}; + static const WCHAR sdW[] = {'S','D',0}; + BSTR class = SysAllocString( systemsecurityW ), method; + IWbemClassObject *reg, *out; + VARIANT retval, var_sd; + void *data; + SECURITY_DESCRIPTOR_RELATIVE *sd; + CIMTYPE type; + HRESULT hr; + BYTE sid_admin_buffer[SECURITY_MAX_SID_SIZE]; + SID *sid_admin = (SID*)sid_admin_buffer; + DWORD sid_size; + BOOL ret; + + hr = IWbemServices_GetObject( services, class, 0, NULL, ®, NULL ); + if (hr != S_OK) + { + win_skip( "__SystemSecurity not available\n" ); + return; + } + + sid_size = sizeof(sid_admin_buffer); + ret = CreateWellKnownSid( WinBuiltinAdministratorsSid, NULL, sid_admin, &sid_size ); + ok( ret, "CreateWellKnownSid failed\n" ); + + out = NULL; + method = SysAllocString( getsdW ); + hr = IWbemServices_ExecMethod( services, class, method, 0, NULL, NULL, &out, NULL ); + ok( hr == S_OK || hr == WBEM_E_ACCESS_DENIED, "failed to execute method %08x\n", hr ); + SysFreeString( method ); + + if (SUCCEEDED(hr)) + { + type = 0xdeadbeef; + VariantInit( &retval ); + hr = IWbemClassObject_Get( out, returnvalueW, 0, &retval, &type, NULL ); + ok( hr == S_OK, "failed to get return value %08x\n", hr ); + ok( V_VT( &retval ) == VT_I4, "unexpected variant type 0x%x\n", V_VT( &retval ) ); + ok( !V_I4( &retval ), "unexpected error %u\n", V_UI4( &retval ) ); + ok( type == CIM_UINT32, "unexpected type 0x%x\n", type ); + + type = 0xdeadbeef; + VariantInit( &var_sd ); + hr = IWbemClassObject_Get( out, sdW, 0, &var_sd, &type, NULL ); + ok( hr == S_OK, "failed to get names %08x\n", hr ); + ok( V_VT( &var_sd ) == (VT_UI1|VT_ARRAY), "unexpected variant type 0x%x\n", V_VT( &var_sd ) ); + ok( type == (CIM_UINT8|CIM_FLAG_ARRAY), "unexpected type 0x%x\n", type ); + + hr = SafeArrayAccessData( V_ARRAY( &var_sd ), &data ); + ok( hr == S_OK, "SafeArrayAccessData failed %x\n", hr ); + if (SUCCEEDED(hr)) + { + sd = data; + + ok( (sd->Control & SE_SELF_RELATIVE) == SE_SELF_RELATIVE, "relative flag unset\n" ); + ok( sd->Owner != 0, "no owner SID\n"); + ok( sd->Group != 0, "no owner SID\n"); + ok( EqualSid( (PSID)((LPBYTE)sd + sd->Owner), sid_admin ), "unexpected owner SID\n" ); + ok( EqualSid( (PSID)((LPBYTE)sd + sd->Group), sid_admin ), "unexpected group SID\n" ); + + hr = SafeArrayUnaccessData( V_ARRAY( &var_sd ) ); + ok( hr == S_OK, "SafeArrayUnaccessData failed %x\n", hr ); + } + + VariantClear( &var_sd ); + IWbemClassObject_Release( out ); + } + else if (hr == WBEM_E_ACCESS_DENIED) + win_skip( "insufficient privs to test __SystemSecurity\n" ); + + SysFreeString( class ); +} + START_TEST(query) { static const WCHAR cimv2W[] = {'R','O','O','T','\\','C','I','M','V','2',0}; @@ -682,6 +759,7 @@ test_notification_query_async( services ); test_query_async( services ); test_GetNames( services ); + test_SystemSecurity( services ); SysFreeString( path ); IWbemServices_Release( services ); Modified: trunk/rostests/winetests/wbemprox/services.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/wbemprox/servic…
============================================================================== --- trunk/rostests/winetests/wbemprox/services.c [iso-8859-1] (original) +++ trunk/rostests/winetests/wbemprox/services.c [iso-8859-1] Wed Oct 8 19:18:00 2014 @@ -131,7 +131,7 @@ { path8W, WBEM_E_INVALID_NAMESPACE }, { path9W, S_OK }, { path10W, WBEM_E_INVALID_PARAMETER }, - { path11W, S_OK }, + { path11W, S_OK, FALSE, WBEM_E_INVALID_PARAMETER }, { path12W, S_OK }, { path13W, S_OK }, { path14W, S_OK }, @@ -139,8 +139,8 @@ { path16W, S_OK }, { path17W, WBEM_E_INVALID_NAMESPACE }, { path18W, S_OK }, - { path19W, WBEM_E_INVALID_NAMESPACE }, - { path20W, WBEM_E_INVALID_NAMESPACE }, + { path19W, WBEM_E_INVALID_NAMESPACE, FALSE, WBEM_E_INVALID_PARAMETER }, + { path20W, WBEM_E_INVALID_NAMESPACE, FALSE, WBEM_E_INVALID_PARAMETER }, { path21W, S_OK }, { path22W, S_OK }, { path23W, WBEM_E_INVALID_NAMESPACE },
10 years, 3 months
1
0
0
0
[akhaldi] 64611: [WBEMPROX] * Sync with Wine 1.7.27. CORE-8540
by akhaldi@svn.reactos.org
Author: akhaldi Date: Wed Oct 8 19:17:38 2014 New Revision: 64611 URL:
http://svn.reactos.org/svn/reactos?rev=64611&view=rev
Log: [WBEMPROX] * Sync with Wine 1.7.27. CORE-8540 Added: trunk/reactos/dll/win32/wbemprox/security.c (with props) Modified: trunk/reactos/dll/win32/wbemprox/CMakeLists.txt trunk/reactos/dll/win32/wbemprox/builtin.c trunk/reactos/dll/win32/wbemprox/class.c trunk/reactos/dll/win32/wbemprox/main.c trunk/reactos/dll/win32/wbemprox/process.c trunk/reactos/dll/win32/wbemprox/query.c trunk/reactos/dll/win32/wbemprox/reg.c trunk/reactos/dll/win32/wbemprox/service.c trunk/reactos/dll/win32/wbemprox/table.c trunk/reactos/dll/win32/wbemprox/wbemprox_private.h trunk/reactos/dll/win32/wbemprox/wql.tab.c trunk/reactos/media/doc/README.WINE [This mail would be too long, it was shortened to contain the URLs only.] Modified: trunk/reactos/dll/win32/wbemprox/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wbemprox/CMakeLi…
Modified: trunk/reactos/dll/win32/wbemprox/builtin.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wbemprox/builtin…
Modified: trunk/reactos/dll/win32/wbemprox/class.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wbemprox/class.c…
Modified: trunk/reactos/dll/win32/wbemprox/main.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wbemprox/main.c?…
Modified: trunk/reactos/dll/win32/wbemprox/process.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wbemprox/process…
Modified: trunk/reactos/dll/win32/wbemprox/query.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wbemprox/query.c…
Modified: trunk/reactos/dll/win32/wbemprox/reg.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wbemprox/reg.c?r…
Added: trunk/reactos/dll/win32/wbemprox/security.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wbemprox/securit…
Modified: trunk/reactos/dll/win32/wbemprox/service.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wbemprox/service…
Modified: trunk/reactos/dll/win32/wbemprox/table.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wbemprox/table.c…
Modified: trunk/reactos/dll/win32/wbemprox/wbemprox_private.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wbemprox/wbempro…
Modified: trunk/reactos/dll/win32/wbemprox/wql.tab.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/wbemprox/wql.tab…
Modified: trunk/reactos/media/doc/README.WINE URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=…
10 years, 3 months
1
0
0
0
← Newer
1
...
52
53
54
55
56
57
58
...
73
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
Results per page:
10
25
50
100
200