[WBEMPROX] Sync with Wine Staging 3.3. CORE-14434
authorAmine Khaldi <amine.khaldi@reactos.org>
Sat, 24 Mar 2018 12:12:50 +0000 (13:12 +0100)
committerAmine Khaldi <amine.khaldi@reactos.org>
Sat, 24 Mar 2018 12:12:50 +0000 (13:12 +0100)
19 files changed:
dll/win32/wbemprox/CMakeLists.txt
dll/win32/wbemprox/builtin.c
dll/win32/wbemprox/class.c
dll/win32/wbemprox/main.c
dll/win32/wbemprox/precomp.h [new file with mode: 0644]
dll/win32/wbemprox/process.c
dll/win32/wbemprox/qualifier.c
dll/win32/wbemprox/query.c
dll/win32/wbemprox/reg.c
dll/win32/wbemprox/security.c
dll/win32/wbemprox/service.c
dll/win32/wbemprox/services.c
dll/win32/wbemprox/table.c
dll/win32/wbemprox/wbemlocator.c
dll/win32/wbemprox/wbemprox_private.h
dll/win32/wbemprox/wql.tab.c
dll/win32/wbemprox/wql.tab.h [new file with mode: 0644]
dll/win32/wbemprox/wql.y
media/doc/README.WINE

index b2495e1..ac67fdf 100644 (file)
@@ -20,7 +20,7 @@ list(APPEND SOURCE
     table.c
     wbemlocator.c
     wql.tab.c
-    wbemprox_private.h)
+    precomp.h)
 
 add_library(wbemprox SHARED
     ${SOURCE}
@@ -33,5 +33,5 @@ set_module_type(wbemprox win32dll)
 target_link_libraries(wbemprox uuid wine)
 add_importlibs(wbemprox iphlpapi oleaut32 advapi32 user32 gdi32 version winspool ws2_32 rpcrt4 msvcrt kernel32 ntdll)
 add_dependencies(wbemprox d3d_idl_headers)
-add_pch(wbemprox wbemprox_private.h SOURCE)
+add_pch(wbemprox precomp.h SOURCE)
 add_cd_file(TARGET wbemprox DESTINATION reactos/system32/wbem FOR all)
index d32b72f..8728bd3 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-#include "wbemprox_private.h"
+#define COBJMACROS
+#define NONAMELESSUNION
+#define NONAMELESSSTRUCT
+
+#include "config.h"
+#include <stdarg.h>
+#include <fcntl.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
 
-#include <winuser.h>
+#include "ntstatus.h"
+#define WIN32_NO_STATUS
+#include "windef.h"
+#include "winbase.h"
+#ifdef __MINGW32__
+# include "winsock2.h"
+# include "ws2tcpip.h"
+# define WS_AF_UNSPEC AF_UNSPEC
+# define WS_NI_MAXHOST NI_MAXHOST
+# define WS_NI_NAMEREQD NI_NAMEREQD
+#else
+# define USE_WS_PREFIX
+# include "winsock2.h"
+# include "ws2tcpip.h"
+#endif
+#include "initguid.h"
+#include "wbemcli.h"
+#include "wbemprov.h"
+#include "iphlpapi.h"
+#include "tlhelp32.h"
+#ifndef __REACTOS__
+#include "d3d10.h"
+#endif
+#include "winternl.h"
+#include "winioctl.h"
+#include "winsvc.h"
+#include "winver.h"
+#include "sddl.h"
+#include "ntsecapi.h"
+#ifdef __REACTOS__
 #include <wingdi.h>
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#include <iphlpapi.h>
-#include <tlhelp32.h>
-#include <winternl.h>
-#include <winioctl.h>
-#include <winver.h>
-#include <ntsecapi.h>
-#include <winspool.h>
-#include <sddl.h>
+#endif
+#include "winspool.h"
+
+#include "wine/debug.h"
+#include "wbemprox_private.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
 
 static const WCHAR class_baseboardW[] =
     {'W','i','n','3','2','_','B','a','s','e','B','o','a','r','d',0};
@@ -110,6 +148,8 @@ static const WCHAR prop_adaptertypeW[] =
     {'A','d','a','p','t','e','r','T','y','p','e',0};
 static const WCHAR prop_addresswidthW[] =
     {'A','d','d','r','e','s','s','W','i','d','t','h',0};
+static const WCHAR prop_architectureW[] =
+    {'A','r','c','h','i','t','e','c','t','u','r','e',0};
 static const WCHAR prop_attributesW[] =
     {'A','t','t','r','i','b','u','t','e','s',0};
 #ifndef __REACTOS__
@@ -136,6 +176,8 @@ static const WCHAR prop_codesetW[] =
     {'C','o','d','e','S','e','t',0};
 static const WCHAR prop_commandlineW[] =
     {'C','o','m','m','a','n','d','L','i','n','e',0};
+static const WCHAR prop_configmanagererrorcodeW[] =
+    {'C','o','n','f','i','g','M','a','n','a','g','e','r','E','r','r','o','r','C','o','d','e',0};
 static const WCHAR prop_countrycodeW[] =
     {'C','o','u','n','t','r','y','C','o','d','e',0};
 static const WCHAR prop_cpustatusW[] =
@@ -188,6 +230,8 @@ static const WCHAR prop_domainroleW[] =
     {'D','o','m','a','i','n','R','o','l','e',0};
 static const WCHAR prop_driveW[] =
     {'D','r','i','v','e',0};
+static const WCHAR prop_driverdateW[] =
+    {'D','r','i','v','e','r','D','a','t','e',0};
 static const WCHAR prop_drivernameW[] =
     {'D','r','i','v','e','r','N','a','m','e',0};
 #ifndef __REACTOS__
@@ -204,6 +248,8 @@ static const WCHAR prop_flavorW[] =
     {'F','l','a','v','o','r',0};
 static const WCHAR prop_freespaceW[] =
     {'F','r','e','e','S','p','a','c','e',0};
+static const WCHAR prop_freephysicalmemoryW[] =
+    {'F','r','e','e','P','h','y','s','i','c','a','l','M','e','m','o','r','y',0};
 static const WCHAR prop_handleW[] =
     {'H','a','n','d','l','e',0};
 static const WCHAR prop_horizontalresolutionW[] =
@@ -218,6 +264,8 @@ static const WCHAR prop_indexW[] =
     {'I','n','d','e','x',0};
 static const WCHAR prop_installdateW[] =
     {'I','n','s','t','a','l','l','D','a','t','e',0};
+static const WCHAR prop_installeddisplaydriversW[]=
+    {'I','n','s','t','a','l','l','e','d','D','i','s','p','l','a','y','D','r','i','v','e','r','s',0};
 static const WCHAR prop_interfaceindexW[] =
     {'I','n','t','e','r','f','a','c','e','I','n','d','e','x',0};
 static const WCHAR prop_interfacetypeW[] =
@@ -230,12 +278,16 @@ static const WCHAR prop_ipenabledW[] =
     {'I','P','E','n','a','b','l','e','d',0};
 static const WCHAR prop_lastbootuptimeW[] =
     {'L','a','s','t','B','o','o','t','U','p','T','i','m','e',0};
+static const WCHAR prop_levelW[] =
+    {'L','e','v','e','l',0};
 static const WCHAR prop_localW[] =
     {'L','o','c','a','l',0};
 static const WCHAR prop_localdatetimeW[] =
     {'L','o','c','a','l','D','a','t','e','T','i','m','e',0};
 static const WCHAR prop_localeW[] =
     {'L','o','c','a','l','e',0};
+static const WCHAR prop_locationW[] =
+    {'L','o','c','a','t','i','o','n',0};
 static const WCHAR prop_lockpresentW[] =
     {'L','o','c','k','P','r','e','s','e','n','t',0};
 static const WCHAR prop_macaddressW[] =
@@ -282,6 +334,8 @@ static const WCHAR prop_pixelsperxlogicalinchW[] =
     {'P','i','x','e','l','s','P','e','r','X','L','o','g','i','c','a','l','I','n','c','h',0};
 static const WCHAR prop_pnpdeviceidW[] =
     {'P','N','P','D','e','v','i','c','e','I','D',0};
+static const WCHAR prop_portnameW[] =
+    {'P','o','r','t','N','a','m','e',0};
 static const WCHAR prop_pprocessidW[] =
     {'P','a','r','e','n','t','P','r','o','c','e','s','s','I','D',0};
 static const WCHAR prop_primaryW[] =
@@ -300,6 +354,8 @@ static const WCHAR prop_referenceddomainnameW[] =
     {'R','e','f','e','r','e','n','c','e','d','D','o','m','a','i','n','N','a','m','e',0};
 static const WCHAR prop_releasedateW[] =
     {'R','e','l','e','a','s','e','D','a','t','e',0};
+static const WCHAR prop_revisionW[] =
+    {'R','e','v','i','s','i','o','n',0};
 static const WCHAR prop_serialnumberW[] =
     {'S','e','r','i','a','l','N','u','m','b','e','r',0};
 static const WCHAR prop_servicepackmajorW[] =
@@ -310,8 +366,14 @@ static const WCHAR prop_servicetypeW[] =
     {'S','e','r','v','i','c','e','T','y','p','e',0};
 static const WCHAR prop_settingidW[] =
     {'S','e','t','t','i','n','g','I','D',0};
+static const WCHAR prop_skunumberW[] =
+    {'S','K','U','N','u','m','b','e','r',0};
 static const WCHAR prop_smbiosbiosversionW[] =
     {'S','M','B','I','O','S','B','I','O','S','V','e','r','s','i','o','n',0};
+static const WCHAR prop_smbiosmajorversionW[] =
+    {'S','M','B','I','O','S','M','a','j','o','r','V','e','r','s','i','o','n',0};
+static const WCHAR prop_smbiosminorversionW[] =
+    {'S','M','B','I','O','S','M','i','n','o','r','V','e','r','s','i','o','n',0};
 static const WCHAR prop_startmodeW[] =
     {'S','t','a','r','t','M','o','d','e',0};
 static const WCHAR prop_sidW[] =
@@ -326,6 +388,8 @@ static const WCHAR prop_startingoffsetW[] =
     {'S','t','a','r','t','i','n','g','O','f','f','s','e','t',0};
 static const WCHAR prop_stateW[] =
     {'S','t','a','t','e',0};
+static const WCHAR prop_statusW[] =
+    {'S','t','a','t','u','s',0};
 static const WCHAR prop_statusinfoW[] =
     {'S','t','a','t','u','s','I','n','f','o',0};
 static const WCHAR prop_strvalueW[] =
@@ -356,6 +420,8 @@ static const WCHAR prop_uuidW[] =
     {'U','U','I','D',0};
 static const WCHAR prop_varianttypeW[] =
     {'V','a','r','i','a','n','t','T','y','p','e',0};
+static const WCHAR prop_vendorW[] =
+    {'V','e','n','d','o','r',0};
 static const WCHAR prop_versionW[] =
     {'V','e','r','s','i','o','n',0};
 #ifndef __REACTOS__
@@ -395,6 +461,8 @@ static const struct column col_bios[] =
     { prop_releasedateW,        CIM_DATETIME },
     { prop_serialnumberW,       CIM_STRING },
     { prop_smbiosbiosversionW,  CIM_STRING },
+    { prop_smbiosmajorversionW, CIM_UINT16, VT_I4 },
+    { prop_smbiosminorversionW, CIM_UINT16, VT_I4 },
     { prop_versionW,            CIM_STRING|COL_FLAG_KEY }
 };
 static const struct column col_cdromdrive[] =
@@ -421,7 +489,11 @@ static const struct column col_compsys[] =
 static const struct column col_compsysproduct[] =
 {
     { prop_identifyingnumberW,  CIM_STRING|COL_FLAG_KEY },
-    { prop_uuidW,               CIM_STRING|COL_FLAG_DYNAMIC }
+    { prop_nameW,               CIM_STRING|COL_FLAG_KEY },
+    { prop_skunumberW,          CIM_STRING },
+    { prop_uuidW,               CIM_STRING|COL_FLAG_DYNAMIC },
+    { prop_vendorW,             CIM_STRING },
+    { prop_versionW,            CIM_STRING|COL_FLAG_KEY }
 };
 static const struct column col_datafile[] =
 {
@@ -512,6 +584,7 @@ static const struct column col_os[] =
     { prop_codesetW,                CIM_STRING|COL_FLAG_DYNAMIC },
     { prop_countrycodeW,            CIM_STRING|COL_FLAG_DYNAMIC },
     { prop_csdversionW,             CIM_STRING|COL_FLAG_DYNAMIC },
+    { prop_freephysicalmemoryW,     CIM_UINT64 },
     { prop_installdateW,            CIM_DATETIME },
     { prop_lastbootuptimeW,         CIM_DATETIME|COL_FLAG_DYNAMIC },
     { prop_localdatetimeW,          CIM_DATETIME|COL_FLAG_DYNAMIC },
@@ -554,11 +627,14 @@ static const struct column col_physicalmemory[] =
 static const struct column col_printer[] =
 {
     { prop_attributesW,           CIM_UINT32 },
+    { prop_deviceidW,             CIM_STRING|COL_FLAG_DYNAMIC|COL_FLAG_KEY },
     { prop_drivernameW,           CIM_STRING|COL_FLAG_DYNAMIC },
     { prop_horizontalresolutionW, CIM_UINT32 },
     { prop_localW,                CIM_BOOLEAN },
+    { prop_locationW,             CIM_STRING|COL_FLAG_DYNAMIC },
     { prop_nameW,                 CIM_STRING|COL_FLAG_DYNAMIC },
-    { prop_networkW,              CIM_BOOLEAN }
+    { prop_networkW,              CIM_BOOLEAN },
+    { prop_portnameW,             CIM_STRING|COL_FLAG_DYNAMIC },
 };
 static const struct column col_process[] =
 {
@@ -577,6 +653,7 @@ static const struct column col_process[] =
 static const struct column col_processor[] =
 {
     { prop_addresswidthW,         CIM_UINT16, VT_I4 },
+    { prop_architectureW,         CIM_UINT16, VT_I4 },
     { prop_captionW,              CIM_STRING|COL_FLAG_DYNAMIC },
     { prop_cpustatusW,            CIM_UINT16 },
     { prop_currentclockspeedW,    CIM_UINT32, VT_I4 },
@@ -584,6 +661,7 @@ static const struct column col_processor[] =
     { prop_descriptionW,          CIM_STRING|COL_FLAG_DYNAMIC },
     { prop_deviceidW,             CIM_STRING|COL_FLAG_DYNAMIC|COL_FLAG_KEY },
     { prop_familyW,               CIM_UINT16, VT_I4 },
+    { prop_levelW,                CIM_UINT16, VT_I4 },
     { prop_manufacturerW,         CIM_STRING|COL_FLAG_DYNAMIC },
     { prop_maxclockspeedW,        CIM_UINT32, VT_I4 },
     { prop_nameW,                 CIM_STRING|COL_FLAG_DYNAMIC },
@@ -591,6 +669,7 @@ static const struct column col_processor[] =
     { prop_numlogicalprocessorsW, CIM_UINT32, VT_I4 },
     { prop_processoridW,          CIM_STRING|COL_FLAG_DYNAMIC },
     { prop_processortypeW,        CIM_UINT16, VT_I4 },
+    { prop_revisionW,             CIM_UINT16, VT_I4 },
     { prop_uniqueidW,             CIM_STRING },
     { prop_versionW,              CIM_STRING|COL_FLAG_DYNAMIC }
 };
@@ -660,24 +739,28 @@ static const struct column col_systemsecurity[] =
 #ifndef __REACTOS__
 static const struct column col_videocontroller[] =
 {
-    { prop_adapterdactypeW,       CIM_STRING },
-    { prop_adapterramW,           CIM_UINT32, VT_I4 },
-    { prop_availabilityW,         CIM_UINT16 },
-    { prop_captionW,              CIM_STRING|COL_FLAG_DYNAMIC },
-    { prop_currentbitsperpixelW,  CIM_UINT32, VT_I4 },
-    { prop_currenthorizontalresW, CIM_UINT32, VT_I4 },
-    { prop_currentrefreshrateW,   CIM_UINT32, VT_I4 },
-    { prop_currentscanmodeW,      CIM_UINT16, VT_I4 },
-    { prop_currentverticalresW,   CIM_UINT32, VT_I4 },
-    { prop_descriptionW,          CIM_STRING|COL_FLAG_DYNAMIC },
-    { prop_deviceidW,             CIM_STRING|COL_FLAG_KEY },
-    { prop_driverversionW,        CIM_STRING },
-    { prop_nameW,                 CIM_STRING|COL_FLAG_DYNAMIC },
-    { prop_pnpdeviceidW,          CIM_STRING|COL_FLAG_DYNAMIC },
-    { prop_videoarchitectureW,    CIM_UINT16, VT_I4 },
-    { prop_videomemorytypeW,      CIM_UINT16, VT_I4 },
-    { prop_videomodedescriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
-    { prop_videoprocessorW,       CIM_STRING|COL_FLAG_DYNAMIC }
+    { prop_adapterdactypeW,         CIM_STRING },
+    { prop_adapterramW,             CIM_UINT32, VT_I4 },
+    { prop_availabilityW,           CIM_UINT16 },
+    { prop_captionW,                CIM_STRING|COL_FLAG_DYNAMIC },
+    { prop_configmanagererrorcodeW, CIM_UINT32, VT_I4 },
+    { prop_currentbitsperpixelW,    CIM_UINT32, VT_I4 },
+    { prop_currenthorizontalresW,   CIM_UINT32, VT_I4 },
+    { prop_currentrefreshrateW,     CIM_UINT32, VT_I4 },
+    { prop_currentscanmodeW,        CIM_UINT16, VT_I4 },
+    { prop_currentverticalresW,     CIM_UINT32, VT_I4 },
+    { prop_descriptionW,            CIM_STRING|COL_FLAG_DYNAMIC },
+    { prop_deviceidW,               CIM_STRING|COL_FLAG_KEY },
+    { prop_driverdateW,             CIM_DATETIME },
+    { prop_driverversionW,          CIM_STRING },
+    { prop_installeddisplaydriversW,CIM_STRING },
+    { prop_nameW,                   CIM_STRING|COL_FLAG_DYNAMIC },
+    { prop_pnpdeviceidW,            CIM_STRING|COL_FLAG_DYNAMIC },
+    { prop_statusW,                 CIM_STRING },
+    { prop_videoarchitectureW,      CIM_UINT16, VT_I4 },
+    { prop_videomemorytypeW,        CIM_UINT16, VT_I4 },
+    { prop_videomodedescriptionW,   CIM_STRING|COL_FLAG_DYNAMIC },
+    { prop_videoprocessorW,         CIM_STRING|COL_FLAG_DYNAMIC },
 };
 #endif
 
@@ -722,9 +805,15 @@ static const WCHAR compsys_modelW[] =
     {'W','i','n','e',0};
 static const WCHAR compsysproduct_identifyingnumberW[] =
     {'0',0};
+static const WCHAR compsysproduct_nameW[] =
+    {'W','i','n','e',0};
 static const WCHAR compsysproduct_uuidW[] =
     {'d','e','a','d','d','e','a','d','-','d','e','a','d','-','d','e','a','d','-','d','e','a','d','-',
      'd','e','a','d','d','e','a','d','d','e','a','d',0};
+static const WCHAR compsysproduct_vendorW[] =
+    {'T','h','e',' ','W','i','n','e',' ','P','r','o','j','e','c','t',0};
+static const WCHAR compsysproduct_versionW[] =
+    {'1','.','0',0};
 static const WCHAR diskdrive_interfacetypeW[] =
     {'I','D','E',0};
 static const WCHAR diskdrive_manufacturerW[] =
@@ -766,8 +855,12 @@ static const WCHAR videocontroller_dactypeW[] =
     {'I','n','t','e','g','r','a','t','e','d',' ','R','A','M','D','A','C',0};
 static const WCHAR videocontroller_deviceidW[] =
     {'V','i','d','e','o','C','o','n','t','r','o','l','l','e','r','1',0};
+static const WCHAR videocontroller_driverdateW[] =
+    {'2','0','1','7','0','1','0','1','0','0','0','0','0','0','.','0','0','0','0','0','0','+','0','0','0',0};
 static const WCHAR videocontroller_driverversionW[] =
     {'1','.','0',0};
+static const WCHAR videocontroller_statusW[] =
+    {'O','K',0};
 #endif
 
 #include "pshpack1.h"
@@ -790,6 +883,8 @@ struct record_bios
     const WCHAR *releasedate;
     const WCHAR *serialnumber;
     const WCHAR *smbiosbiosversion;
+    UINT16       smbiosmajorversion;
+    UINT16       smbiosminorversion;
     const WCHAR *version;
 };
 struct record_cdromdrive
@@ -816,7 +911,11 @@ struct record_computersystem
 struct record_computersystemproduct
 {
     const WCHAR *identifyingnumber;
+    const WCHAR *name;
+    const WCHAR *skunumber;
     const WCHAR *uuid;
+    const WCHAR *vendor;
+    const WCHAR *version;
 };
 struct record_datafile
 {
@@ -907,6 +1006,7 @@ struct record_operatingsystem
     const WCHAR *codeset;
     const WCHAR *countrycode;
     const WCHAR *csdversion;
+    UINT64       freephysicalmemory;
     const WCHAR *installdate;
     const WCHAR *lastbootuptime;
     const WCHAR *localdatetime;
@@ -949,11 +1049,14 @@ struct record_physicalmemory
 struct record_printer
 {
     UINT32       attributes;
+    const WCHAR *device_id;
     const WCHAR *drivername;
     UINT32       horizontalresolution;
     int          local;
+    const WCHAR *location;
     const WCHAR *name;
     int          network;
+    const WCHAR *portname;
 };
 struct record_process
 {
@@ -972,6 +1075,7 @@ struct record_process
 struct record_processor
 {
     UINT16       addresswidth;
+    UINT16       architecture;
     const WCHAR *caption;
     UINT16       cpu_status;
     UINT32       currentclockspeed;
@@ -979,6 +1083,7 @@ struct record_processor
     const WCHAR *description;
     const WCHAR *device_id;
     UINT16       family;
+    UINT16       level;
     const WCHAR *manufacturer;
     UINT32       maxclockspeed;
     const WCHAR *name;
@@ -986,6 +1091,7 @@ struct record_processor
     UINT32       num_logical_processors;
     const WCHAR *processor_id;
     UINT16       processortype;
+    UINT16       revision;
     const WCHAR *unique_id;
     const WCHAR *version;
 };
@@ -1057,6 +1163,7 @@ struct record_videocontroller
     UINT32       adapter_ram;
     UINT16       availability;
     const WCHAR *caption;
+    UINT32       config_errorcode;
     UINT32       current_bitsperpixel;
     UINT32       current_horizontalres;
     UINT32       current_refreshrate;
@@ -1064,9 +1171,12 @@ struct record_videocontroller
     UINT32       current_verticalres;
     const WCHAR *description;
     const WCHAR *device_id;
+    const WCHAR *driverdate;
     const WCHAR *driverversion;
+    const WCHAR *installeddriver;
     const WCHAR *name;
     const WCHAR *pnpdevice_id;
+    const WCHAR *status;
     UINT16       videoarchitecture;
     UINT16       videomemorytype;
     const WCHAR *videomodedescription;
@@ -1081,7 +1191,7 @@ static const struct record_baseboard data_baseboard[] =
 static const struct record_bios data_bios[] =
 {
     { bios_descriptionW, NULL, bios_manufacturerW, bios_nameW, bios_releasedateW, bios_serialnumberW,
-      bios_smbiosbiosversionW, bios_versionW }
+      bios_smbiosbiosversionW, 1, 0, bios_versionW }
 };
 static const struct record_param data_param[] =
 {
@@ -1290,6 +1400,15 @@ static UINT64 get_total_physical_memory(void)
     return status.ullTotalPhys;
 }
 
+static UINT64 get_available_physical_memory(void)
+{
+    MEMORYSTATUSEX status;
+
+    status.dwLength = sizeof(status);
+    if (!GlobalMemoryStatusEx( &status )) return 1024 * 1024 * 1024;
+    return status.ullAvailPhys;
+}
+
 static WCHAR *get_computername(void)
 {
     WCHAR *ret;
@@ -1403,7 +1522,11 @@ static enum fill_status fill_compsysproduct( struct table *table, const struct e
 
     rec = (struct record_computersystemproduct *)table->data;
     rec->identifyingnumber = compsysproduct_identifyingnumberW;
+    rec->name              = compsysproduct_nameW;
+    rec->skunumber         = NULL;
     rec->uuid              = get_compsysproduct_uuid();
+    rec->vendor            = compsysproduct_vendorW;
+    rec->version           = compsysproduct_versionW;
     if (!match_row( table, row, cond, &status )) free_row_values( table, row );
     else row++;
 
@@ -2416,10 +2539,12 @@ static enum fill_status fill_physicalmemory( struct table *table, const struct e
 
 static enum fill_status fill_printer( struct table *table, const struct expr *cond )
 {
+    static const WCHAR fmtW[] = {'P','r','i','n','t','e','r','%','d',0};
     struct record_printer *rec;
     enum fill_status status = FILL_STATUS_UNFILTERED;
     PRINTER_INFO_2W *info;
     DWORD i, offset = 0, count = 0, size = 0, num_rows = 0;
+    WCHAR id[20];
 
     EnumPrintersW( PRINTER_ENUM_LOCAL, NULL, 2, NULL, 0, &size, &count );
     if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) return FILL_STATUS_FAILED;
@@ -2440,11 +2565,15 @@ static enum fill_status fill_printer( struct table *table, const struct expr *co
     {
         rec = (struct record_printer *)(table->data + offset);
         rec->attributes           = info[i].Attributes;
+        sprintfW( id, fmtW, i );
+        rec->device_id            = heap_strdupW( id );
         rec->drivername           = heap_strdupW( info[i].pDriverName );
         rec->horizontalresolution = info[i].pDevMode->u1.s1.dmPrintQuality;
         rec->local                = -1;
+        rec->location             = heap_strdupW( info[i].pLocation );
         rec->name                 = heap_strdupW( info[i].pPrinterName );
         rec->network              = 0;
+        rec->portname             = heap_strdupW( info[i].pPortName );
         if (!match_row( table, i, cond, &status ))
         {
             free_row_values( table, i );
@@ -2561,6 +2690,12 @@ static void get_processor_version( WCHAR *version )
     do_cpuid( 1, regs );
     sprintfW( version, fmtW, (regs[0] & (15 << 4)) >> 4, regs[0] & 15 );
 }
+static UINT16 get_processor_revision(void)
+{
+    unsigned int regs[4] = {0, 0, 0, 0};
+    do_cpuid( 1, regs );
+    return regs[0];
+}
 static void get_processor_id( WCHAR *processor_id )
 {
     static const WCHAR fmtW[] = {'%','0','8','X','%','0','8','X',0};
@@ -2655,6 +2790,7 @@ static enum fill_status fill_processor( struct table *table, const struct expr *
     {
         rec = (struct record_processor *)(table->data + offset);
         rec->addresswidth           = get_osarchitecture() == os_32bitW ? 32 : 64;
+        rec->architecture           = get_osarchitecture() == os_32bitW ? 0 : 9;
         rec->caption                = heap_strdupW( caption );
         rec->cpu_status             = 1; /* CPU Enabled */
         rec->currentclockspeed      = get_processor_currentclockspeed( i );
@@ -2663,6 +2799,7 @@ static enum fill_status fill_processor( struct table *table, const struct expr *
         sprintfW( device_id, fmtW, i );
         rec->device_id              = heap_strdupW( device_id );
         rec->family                 = 2; /* Unknown */
+        rec->level                  = 15;
         rec->manufacturer           = heap_strdupW( manufacturer );
         rec->maxclockspeed          = get_processor_maxclockspeed( i );
         rec->name                   = heap_strdupW( name );
@@ -2670,6 +2807,7 @@ static enum fill_status fill_processor( struct table *table, const struct expr *
         rec->num_logical_processors = num_logical_processors;
         rec->processor_id           = heap_strdupW( processor_id );
         rec->processortype          = 3; /* central processor */
+        rec->revision               = get_processor_revision();
         rec->unique_id              = NULL;
         rec->version                = heap_strdupW( version );
         if (!match_row( table, i, cond, &status ))
@@ -2856,6 +2994,7 @@ static enum fill_status fill_os( struct table *table, const struct expr *cond )
     rec->codeset                = get_codeset();
     rec->countrycode            = get_countrycode();
     rec->csdversion             = ver.szCSDVersion[0] ? heap_strdupW( ver.szCSDVersion ) : NULL;
+    rec->freephysicalmemory     = get_available_physical_memory() / 1024;
     rec->installdate            = os_installdateW;
     rec->lastbootuptime         = get_lastbootuptime();
     rec->localdatetime          = get_localdatetime();
@@ -3160,6 +3299,29 @@ static WCHAR *get_pnpdeviceid( DXGI_ADAPTER_DESC *desc )
     return ret;
 }
 
+#define HW_VENDOR_AMD    0x1002
+#define HW_VENDOR_NVIDIA 0x10de
+#define HW_VENDOR_VMWARE 0x15ad
+#define HW_VENDOR_INTEL  0x8086
+
+static const WCHAR *get_installeddriver( UINT vendorid )
+{
+    static const WCHAR driver_amdW[] = {'a','t','i','c','f','x','3','2','.','d','l','l',0};
+    static const WCHAR driver_intelW[] = {'i','g','d','u','m','d','i','m','3','2','.','d','l','l',0};
+    static const WCHAR driver_nvidiaW[] = {'n','v','d','3','d','u','m','.','d','l','l',0};
+    static const WCHAR driver_wineW[] = {'w','i','n','e','.','d','l','l',0};
+
+    /* FIXME: wined3d has a better table, but we can not access this information through dxgi */
+
+    if (vendorid == HW_VENDOR_AMD)
+        return driver_amdW;
+    else if (vendorid == HW_VENDOR_NVIDIA)
+        return driver_nvidiaW;
+    else if (vendorid == HW_VENDOR_INTEL)
+        return driver_intelW;
+    return driver_wineW;
+}
+
 static enum fill_status fill_videocontroller( struct table *table, const struct expr *cond )
 {
     static const WCHAR fmtW[] = {'%','u',' ','x',' ','%','u',' ','x',' ','%','I','6','4','u',' ','c','o','l','o','r','s',0};
@@ -3194,6 +3356,7 @@ done:
     rec->adapter_dactype       = videocontroller_dactypeW;
     rec->adapter_ram           = vidmem;
     rec->availability          = 3; /* Running or Full Power */
+    rec->config_errorcode      = 0; /* no error */
     rec->caption               = heap_strdupW( name );
     rec->current_bitsperpixel  = get_bits_per_pixel( &hres, &vres );
     rec->current_horizontalres = hres;
@@ -3202,9 +3365,12 @@ done:
     rec->current_verticalres   = vres;
     rec->description           = heap_strdupW( name );
     rec->device_id             = videocontroller_deviceidW;
+    rec->driverdate            = videocontroller_driverdateW;
     rec->driverversion         = videocontroller_driverversionW;
+    rec->installeddriver       = get_installeddriver( desc.VendorId );
     rec->name                  = heap_strdupW( name );
     rec->pnpdevice_id          = get_pnpdeviceid( &desc );
+    rec->status                = videocontroller_statusW;
     rec->videoarchitecture     = 2; /* Unknown */
     rec->videomemorytype       = 2; /* Unknown */
     wsprintfW( mode, fmtW, hres, vres, (UINT64)1 << rec->current_bitsperpixel );
index 3d3e777..27229bd 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#define COBJMACROS
+
+#include "config.h"
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "objbase.h"
+#include "wbemcli.h"
+
+#include "wine/debug.h"
 #include "wbemprox_private.h"
 
+WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
+
 struct enum_class_object
 {
     IEnumWbemClassObject IEnumWbemClassObject_iface;
index 214dfd7..e6ccd5c 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#include "config.h"
+
+#include <stdarg.h>
+
+#define COBJMACROS
+
+#include "windef.h"
+#include "winbase.h"
+#include "objbase.h"
+#include "wbemcli.h"
+#include "wbemprov.h"
+#include "rpcproxy.h"
+
 #include "wbemprox_private.h"
+#include "wine/debug.h"
 
-#include <wbemprov.h>
-#include <rpcproxy.h>
+WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
 
 static HINSTANCE instance;
 
diff --git a/dll/win32/wbemprox/precomp.h b/dll/win32/wbemprox/precomp.h
new file mode 100644 (file)
index 0000000..54f2817
--- /dev/null
@@ -0,0 +1,28 @@
+
+#ifndef _WBEMPROX_PRECOMP_H_
+#define _WBEMPROX_PRECOMP_H_
+
+#include <wine/config.h>
+
+#include <stdarg.h>
+
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+#define COBJMACROS
+#define NONAMELESSUNION
+#define NONAMELESSSTRUCT
+
+#include <ntstatus.h>
+#define WIN32_NO_STATUS
+#include <windef.h>
+#include <winbase.h>
+#include <winuser.h>
+#include <winsvc.h>
+#include <objbase.h>
+#include <oleauto.h>
+#include <wbemcli.h>
+
+#include "wbemprox_private.h"
+
+#endif /* !_WBEMPROX_PRECOMP_H_ */
index 0f22a8d..6bc3f37 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#define COBJMACROS
+
+#include "config.h"
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wbemcli.h"
+
+#include "wine/debug.h"
 #include "wbemprox_private.h"
 
+WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
+
 static HRESULT get_owner( VARIANT *user, VARIANT *domain, VARIANT *retval )
 {
     DWORD len;
index c143386..4da3445 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#define COBJMACROS
+
+#include "config.h"
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "objbase.h"
+#include "wbemcli.h"
+
+#include "wine/debug.h"
 #include "wbemprox_private.h"
 
+WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
+
 struct qualifier_set
 {
     IWbemQualifierSet IWbemQualifierSet_iface;
index 3e37f42..76f5caa 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#define COBJMACROS
+
+#include "config.h"
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wbemcli.h"
+
+#include "wine/debug.h"
 #include "wbemprox_private.h"
 
-#include <winuser.h>
+WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
 
 HRESULT create_view( const struct property *proplist, const WCHAR *class,
                      const struct expr *cond, struct view **ret )
index 247dcaa..b0bacd7 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#define COBJMACROS
+
+#include "config.h"
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wbemcli.h"
+
+#include "wine/debug.h"
 #include "wbemprox_private.h"
 
+#ifdef __REACTOS__
 #include <winreg.h>
+#endif
+
+WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
 
 static HRESULT to_bstr_array( BSTR *strings, DWORD count, VARIANT *var )
 {
index 8b10929..d3057e0 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#define COBJMACROS
+
+#include "config.h"
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wbemcli.h"
+#include "iads.h"
+
+#include "wine/debug.h"
 #include "wbemprox_private.h"
 
-#include <iads.h>
+WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
 
 static HRESULT to_byte_array( void *data, DWORD size, VARIANT *var )
 {
index 6c09f76..b096c5c 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#define COBJMACROS
+
+#include "config.h"
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wbemcli.h"
+#include "winsvc.h"
+
+#include "wine/debug.h"
 #include "wbemprox_private.h"
 
+WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
+
 static UINT map_error( DWORD error )
 {
     switch (error)
index 70d1442..fd87feb 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#define COBJMACROS
+
+#include "config.h"
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "objbase.h"
+#include "wbemcli.h"
+
+#include "wine/debug.h"
+#include "wine/unicode.h"
 #include "wbemprox_private.h"
 
+WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
+
 struct client_security
 {
     IClientSecurity IClientSecurity_iface;
index 6c53a06..ad56e0c 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#define COBJMACROS
+
+#include "config.h"
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wbemcli.h"
+
+#include "wine/debug.h"
 #include "wbemprox_private.h"
 
-#include <winuser.h>
+WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
 
 HRESULT get_column_index( const struct table *table, const WCHAR *name, UINT *column )
 {
index 36eba95..6ed0aed 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#define COBJMACROS
+
+#include "config.h"
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "objbase.h"
+#include "wbemcli.h"
+
+#include "wine/debug.h"
+#include "wine/unicode.h"
 #include "wbemprox_private.h"
 
+WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
+
 typedef struct
 {
     IWbemLocator IWbemLocator_iface;
index 87fc719..a2696bb 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-#ifndef _WBEMPROX_PRIVATE_H_
-#define _WBEMPROX_PRIVATE_H_
+#pragma once
 
-#include <config.h>
-
-#include <stdarg.h>
-
-#define _INC_WINDOWS
-#define COM_NO_WINDOWS_H
-
-#define COBJMACROS
-#define NONAMELESSUNION
-#define NONAMELESSSTRUCT
-
-#include <ntstatus.h>
-#define WIN32_NO_STATUS
-#include <windef.h>
-#include <winbase.h>
-#include <winsvc.h>
-#include <objbase.h>
-#include <oleauto.h>
-#include <wbemcli.h>
-
-#include <wine/debug.h>
-#include <wine/list.h>
-#include <wine/unicode.h>
-
-WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
+#include "wine/debug.h"
+#include "wine/heap.h"
+#include "wine/list.h"
+#include "wine/unicode.h"
 
 IClientSecurity client_security DECLSPEC_HIDDEN;
 struct list *table_list DECLSPEC_HIDDEN;
@@ -252,26 +230,6 @@ HRESULT service_stop_service(IWbemClassObject *, IWbemClassObject *, IWbemClassO
 HRESULT security_get_sd(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN;
 HRESULT security_set_sd(IWbemClassObject *, IWbemClassObject *, IWbemClassObject **) DECLSPEC_HIDDEN;
 
-static inline void* __WINE_ALLOC_SIZE(1) heap_alloc(size_t size)
-{
-    return HeapAlloc(GetProcessHeap(), 0, size);
-}
-
-static inline void* __WINE_ALLOC_SIZE(1) heap_alloc_zero(size_t size)
-{
-    return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
-}
-
-static inline void* __WINE_ALLOC_SIZE(2) heap_realloc(void *mem, size_t size)
-{
-    return HeapReAlloc(GetProcessHeap(), 0, mem, size);
-}
-
-static inline BOOL heap_free(void *mem)
-{
-    return HeapFree(GetProcessHeap(), 0, mem);
-}
-
 static inline WCHAR *heap_strdupW( const WCHAR *src )
 {
     WCHAR *dst;
@@ -308,5 +266,3 @@ static const WCHAR param_typesW[] = {'T','y','p','e','s',0};
 static const WCHAR param_userW[] = {'U','s','e','r',0};
 static const WCHAR param_valueW[] = {'s','V','a','l','u','e',0};
 static const WCHAR param_valuenameW[] = {'s','V','a','l','u','e','N','a','m','e',0};
-
-#endif /* _WBEMPROX_PRIVATE_H_ */
index 4eaadd0..13baba5 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#include "config.h"
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wbemcli.h"
 #include "wbemprox_private.h"
 
+#include "wine/list.h"
+#include "wine/debug.h"
+#include "wine/unicode.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
+
 struct parser
 {
     const WCHAR *cmd;
@@ -243,7 +255,7 @@ static int wql_lex( void *val, struct parser *parser );
     result = current_view
 
 
-#line 247 "wql.tab.c" /* yacc.c:339  */
+#line 259 "wql.tab.c" /* yacc.c:339  */
 
 # ifndef YY_NULL
 #  if defined __cplusplus && 201103L <= __cplusplus
@@ -263,8 +275,8 @@ static int wql_lex( void *val, struct parser *parser );
 
 /* In a future release of Bison, this section will be replaced
    by #include "wql.tab.h".  */
-#ifndef YY_WQL_E_REACTOSSYNC3_0_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED
-# define YY_WQL_E_REACTOSSYNC3_0_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED
+#ifndef YY_WQL_E_REACTOSSYNC_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED
+# define YY_WQL_E_REACTOSSYNC_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED
 /* Debug traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 0
@@ -315,7 +327,7 @@ extern int wql_debug;
 typedef union YYSTYPE YYSTYPE;
 union YYSTYPE
 {
-#line 182 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:355  */
+#line 194 "wql.y" /* yacc.c:355  */
 
     struct string str;
     WCHAR *string;
@@ -324,7 +336,7 @@ union YYSTYPE
     struct expr *expr;
     int integer;
 
-#line 328 "wql.tab.c" /* yacc.c:355  */
+#line 340 "wql.tab.c" /* yacc.c:355  */
 };
 # define YYSTYPE_IS_TRIVIAL 1
 # define YYSTYPE_IS_DECLARED 1
@@ -334,11 +346,11 @@ union YYSTYPE
 
 int wql_parse (struct parser *ctx);
 
-#endif /* !YY_WQL_E_REACTOSSYNC3_0_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED  */
+#endif /* !YY_WQL_E_REACTOSSYNC_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED  */
 
 /* Copy the second part of user declarations.  */
 
-#line 342 "wql.tab.c" /* yacc.c:358  */
+#line 354 "wql.tab.c" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -619,11 +631,11 @@ static const yytype_uint8 yytranslate[] =
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   209,   209,   221,   233,   248,   249,   253,   260,   266,
-     275,   284,   291,   297,   303,   309,   315,   321,   327,   333,
-     339,   345,   351,   357,   363,   369,   375,   381,   387,   393,
-     399,   405,   411,   417,   423,   432,   441,   450,   456,   462,
-     468
+       0,   221,   221,   233,   245,   260,   261,   265,   272,   278,
+     287,   296,   303,   309,   315,   321,   327,   333,   339,   345,
+     351,   357,   363,   369,   375,   381,   387,   393,   399,   405,
+     411,   417,   423,   429,   435,   444,   453,   462,   468,   474,
+     480
 };
 #endif
 
@@ -1448,7 +1460,7 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-#line 210 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 222 "wql.y" /* yacc.c:1646  */
     {
             HRESULT hr;
             struct parser *parser = ctx;
@@ -1460,11 +1472,11 @@ yyreduce:
 
             PARSER_BUBBLE_UP_VIEW( parser, (yyval.view), view );
         }
-#line 1464 "wql.tab.c" /* yacc.c:1646  */
+#line 1476 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 3:
-#line 222 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 234 "wql.y" /* yacc.c:1646  */
     {
             HRESULT hr;
             struct parser *parser = ctx;
@@ -1476,11 +1488,11 @@ yyreduce:
 
             PARSER_BUBBLE_UP_VIEW( parser, (yyval.view), view );
         }
-#line 1480 "wql.tab.c" /* yacc.c:1646  */
+#line 1492 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 4:
-#line 234 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 246 "wql.y" /* yacc.c:1646  */
     {
             HRESULT hr;
             struct parser *parser = ctx;
@@ -1492,355 +1504,355 @@ yyreduce:
 
             PARSER_BUBBLE_UP_VIEW( parser, (yyval.view), view );
         }
-#line 1496 "wql.tab.c" /* yacc.c:1646  */
+#line 1508 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 6:
-#line 250 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 262 "wql.y" /* yacc.c:1646  */
     {
             (yyvsp[-2].proplist)->next = (yyvsp[0].proplist);
         }
-#line 1504 "wql.tab.c" /* yacc.c:1646  */
+#line 1516 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 7:
-#line 254 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 266 "wql.y" /* yacc.c:1646  */
     {
             (yyval.proplist) = NULL;
         }
-#line 1512 "wql.tab.c" /* yacc.c:1646  */
+#line 1524 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 8:
-#line 261 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 273 "wql.y" /* yacc.c:1646  */
     {
             (yyval.proplist) = alloc_property( ctx, (yyvsp[-2].string), (yyvsp[0].string) );
             if (!(yyval.proplist))
                 YYABORT;
         }
-#line 1522 "wql.tab.c" /* yacc.c:1646  */
+#line 1534 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 9:
-#line 267 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 279 "wql.y" /* yacc.c:1646  */
     {
             (yyval.proplist) = alloc_property( ctx, NULL, (yyvsp[0].string) );
             if (!(yyval.proplist))
                 YYABORT;
         }
-#line 1532 "wql.tab.c" /* yacc.c:1646  */
+#line 1544 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 10:
-#line 276 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 288 "wql.y" /* yacc.c:1646  */
     {
             (yyval.string) = get_string( ctx, &(yyvsp[0].str) );
             if (!(yyval.string))
                 YYABORT;
         }
-#line 1542 "wql.tab.c" /* yacc.c:1646  */
+#line 1554 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 11:
-#line 285 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 297 "wql.y" /* yacc.c:1646  */
     {
             (yyval.integer) = get_int( ctx );
         }
-#line 1550 "wql.tab.c" /* yacc.c:1646  */
+#line 1562 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 12:
-#line 292 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 304 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = (yyvsp[-1].expr);
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1560 "wql.tab.c" /* yacc.c:1646  */
+#line 1572 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 13:
-#line 298 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 310 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_AND, (yyvsp[0].expr) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1570 "wql.tab.c" /* yacc.c:1646  */
+#line 1582 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 14:
-#line 304 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 316 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_OR, (yyvsp[0].expr) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1580 "wql.tab.c" /* yacc.c:1646  */
+#line 1592 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 15:
-#line 310 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 322 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_unary( ctx, (yyvsp[0].expr), OP_NOT );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1590 "wql.tab.c" /* yacc.c:1646  */
+#line 1602 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 16:
-#line 316 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 328 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_EQ, (yyvsp[0].expr) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1600 "wql.tab.c" /* yacc.c:1646  */
+#line 1612 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 17:
-#line 322 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 334 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_GT, (yyvsp[0].expr) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1610 "wql.tab.c" /* yacc.c:1646  */
+#line 1622 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 18:
-#line 328 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 340 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_LT, (yyvsp[0].expr) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1620 "wql.tab.c" /* yacc.c:1646  */
+#line 1632 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 19:
-#line 334 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 346 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_LE, (yyvsp[0].expr) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1630 "wql.tab.c" /* yacc.c:1646  */
+#line 1642 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 20:
-#line 340 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 352 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_GE, (yyvsp[0].expr) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1640 "wql.tab.c" /* yacc.c:1646  */
+#line 1652 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 21:
-#line 346 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 358 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_NE, (yyvsp[0].expr) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1650 "wql.tab.c" /* yacc.c:1646  */
+#line 1662 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 22:
-#line 352 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 364 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_EQ, (yyvsp[0].expr) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1660 "wql.tab.c" /* yacc.c:1646  */
+#line 1672 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 23:
-#line 358 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 370 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_GT, (yyvsp[0].expr) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1670 "wql.tab.c" /* yacc.c:1646  */
+#line 1682 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 24:
-#line 364 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 376 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_LT, (yyvsp[0].expr) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1680 "wql.tab.c" /* yacc.c:1646  */
+#line 1692 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 25:
-#line 370 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 382 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_LE, (yyvsp[0].expr) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1690 "wql.tab.c" /* yacc.c:1646  */
+#line 1702 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 26:
-#line 376 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 388 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_GE, (yyvsp[0].expr) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1700 "wql.tab.c" /* yacc.c:1646  */
+#line 1712 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 27:
-#line 382 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 394 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_NE, (yyvsp[0].expr) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1710 "wql.tab.c" /* yacc.c:1646  */
+#line 1722 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 28:
-#line 388 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 400 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_LIKE, (yyvsp[0].expr) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1720 "wql.tab.c" /* yacc.c:1646  */
+#line 1732 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 29:
-#line 394 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 406 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_unary( ctx, (yyvsp[-2].expr), OP_ISNULL );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1730 "wql.tab.c" /* yacc.c:1646  */
+#line 1742 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 30:
-#line 400 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 412 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_unary( ctx, (yyvsp[-3].expr), OP_NOTNULL );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1740 "wql.tab.c" /* yacc.c:1646  */
+#line 1752 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 31:
-#line 406 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 418 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_unary( ctx, (yyvsp[-2].expr), OP_ISNULL );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1750 "wql.tab.c" /* yacc.c:1646  */
+#line 1762 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 32:
-#line 412 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 424 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_unary( ctx, (yyvsp[0].expr), OP_ISNULL );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1760 "wql.tab.c" /* yacc.c:1646  */
+#line 1772 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 33:
-#line 418 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 430 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_unary( ctx, (yyvsp[-2].expr), OP_NOTNULL );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1770 "wql.tab.c" /* yacc.c:1646  */
+#line 1782 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 34:
-#line 424 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 436 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_unary( ctx, (yyvsp[0].expr), OP_NOTNULL );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1780 "wql.tab.c" /* yacc.c:1646  */
+#line 1792 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 35:
-#line 433 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 445 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_sval( ctx, &(yyvsp[0].str) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1790 "wql.tab.c" /* yacc.c:1646  */
+#line 1802 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 36:
-#line 442 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 454 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_propval( ctx, (yyvsp[0].proplist) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1800 "wql.tab.c" /* yacc.c:1646  */
+#line 1812 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 37:
-#line 451 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 463 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_ival( ctx, (yyvsp[0].integer) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1810 "wql.tab.c" /* yacc.c:1646  */
+#line 1822 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 38:
-#line 457 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 469 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_sval( ctx, &(yyvsp[0].str) );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1820 "wql.tab.c" /* yacc.c:1646  */
+#line 1832 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 39:
-#line 463 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 475 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_bval( ctx, -1 );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1830 "wql.tab.c" /* yacc.c:1646  */
+#line 1842 "wql.tab.c" /* yacc.c:1646  */
     break;
 
   case 40:
-#line 469 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646  */
+#line 481 "wql.y" /* yacc.c:1646  */
     {
             (yyval.expr) = expr_bval( ctx, 0 );
             if (!(yyval.expr))
                 YYABORT;
         }
-#line 1840 "wql.tab.c" /* yacc.c:1646  */
+#line 1852 "wql.tab.c" /* yacc.c:1646  */
     break;
 
 
-#line 1844 "wql.tab.c" /* yacc.c:1646  */
+#line 1856 "wql.tab.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -2068,7 +2080,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 476 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1906  */
+#line 488 "wql.y" /* yacc.c:1906  */
 
 
 HRESULT parse_query( const WCHAR *str, struct view **view, struct list *mem )
diff --git a/dll/win32/wbemprox/wql.tab.h b/dll/win32/wbemprox/wql.tab.h
new file mode 100644 (file)
index 0000000..3b0a77c
--- /dev/null
@@ -0,0 +1,104 @@
+/* A Bison parser, made by GNU Bison 3.0.  */
+
+/* Bison interface for Yacc-like parsers in C
+
+   Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* As a special exception, you may create a larger work that contains
+   part or all of the Bison parser skeleton and distribute that work
+   under terms of your choice, so long as that work isn't itself a
+   parser generator using the skeleton or a modified version thereof
+   as a parser skeleton.  Alternatively, if you modify or redistribute
+   the parser skeleton itself, you may (at your option) remove this
+   special exception, which will cause the skeleton and the resulting
+   Bison output files to be licensed under the GNU General Public
+   License without this special exception.
+
+   This special exception was added by the Free Software Foundation in
+   version 2.2 of Bison.  */
+
+#ifndef YY_WQL_E_REACTOSSYNC_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED
+# define YY_WQL_E_REACTOSSYNC_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED
+/* Debug traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+#if YYDEBUG
+extern int wql_debug;
+#endif
+
+/* Token type.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+  enum yytokentype
+  {
+    TK_SELECT = 258,
+    TK_FROM = 259,
+    TK_STAR = 260,
+    TK_COMMA = 261,
+    TK_DOT = 262,
+    TK_IS = 263,
+    TK_LP = 264,
+    TK_RP = 265,
+    TK_NULL = 266,
+    TK_FALSE = 267,
+    TK_TRUE = 268,
+    TK_INTEGER = 269,
+    TK_WHERE = 270,
+    TK_SPACE = 271,
+    TK_MINUS = 272,
+    TK_ILLEGAL = 273,
+    TK_BY = 274,
+    TK_STRING = 275,
+    TK_ID = 276,
+    TK_OR = 277,
+    TK_AND = 278,
+    TK_NOT = 279,
+    TK_EQ = 280,
+    TK_NE = 281,
+    TK_LT = 282,
+    TK_GT = 283,
+    TK_LE = 284,
+    TK_GE = 285,
+    TK_LIKE = 286
+  };
+#endif
+
+/* Value type.  */
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE YYSTYPE;
+union YYSTYPE
+{
+#line 194 "wql.y" /* yacc.c:1909  */
+
+    struct string str;
+    WCHAR *string;
+    struct property *proplist;
+    struct view *view;
+    struct expr *expr;
+    int integer;
+
+#line 95 "wql.tab.h" /* yacc.c:1909  */
+};
+# define YYSTYPE_IS_TRIVIAL 1
+# define YYSTYPE_IS_DECLARED 1
+#endif
+
+
+
+int wql_parse (struct parser *ctx);
+
+#endif /* !YY_WQL_E_REACTOSSYNC_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED  */
index beba2de..88da2b9 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+#include "config.h"
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wbemcli.h"
 #include "wbemprox_private.h"
 
+#include "wine/list.h"
+#include "wine/debug.h"
+#include "wine/unicode.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
+
 struct parser
 {
     const WCHAR *cmd;
index 3e1658c..b4bd2a8 100644 (file)
@@ -195,7 +195,7 @@ reactos/dll/win32/vbscript            # Synced to WineStaging-3.3
 reactos/dll/win32/version             # Synced to WineStaging-3.3
 reactos/dll/win32/vssapi              # Synced to WineStaging-2.9
 reactos/dll/win32/wbemdisp            # Synced to WineStaging-3.3
-reactos/dll/win32/wbemprox            # Synced to Wine-3.0
+reactos/dll/win32/wbemprox            # Synced to WineStaging-3.3
 reactos/dll/win32/windowscodecs       # Synced to WineStaging-3.3
 reactos/dll/win32/windowscodecsext    # Synced to WineStaging-2.9
 reactos/dll/win32/winemp3.acm         # Synced to Wine-3.0