mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 18:15:11 +00:00
[WBEMPROX] Sync with Wine Staging 3.3. CORE-14434
This commit is contained in:
parent
12e94103e6
commit
edccad14bf
19 changed files with 596 additions and 181 deletions
|
@ -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)
|
||||
|
|
|
@ -16,20 +16,58 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#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 "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>
|
||||
#endif
|
||||
#include "winspool.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
#include "wbemprox_private.h"
|
||||
|
||||
#include <winuser.h>
|
||||
#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>
|
||||
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 );
|
||||
|
|
|
@ -16,8 +16,21 @@
|
|||
* 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;
|
||||
|
|
|
@ -17,10 +17,23 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "wbemprox_private.h"
|
||||
#include "config.h"
|
||||
|
||||
#include <wbemprov.h>
|
||||
#include <rpcproxy.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"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
|
||||
|
||||
static HINSTANCE instance;
|
||||
|
||||
|
|
28
dll/win32/wbemprox/precomp.h
Normal file
28
dll/win32/wbemprox/precomp.h
Normal file
|
@ -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_ */
|
|
@ -18,8 +18,20 @@
|
|||
* 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;
|
||||
|
|
|
@ -16,8 +16,21 @@
|
|||
* 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;
|
||||
|
|
|
@ -16,9 +16,19 @@
|
|||
* 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 )
|
||||
|
|
|
@ -18,9 +18,23 @@
|
|||
* 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 )
|
||||
{
|
||||
|
|
|
@ -18,9 +18,20 @@
|
|||
* 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 )
|
||||
{
|
||||
|
|
|
@ -18,8 +18,21 @@
|
|||
* 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)
|
||||
|
|
|
@ -16,8 +16,22 @@
|
|||
* 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;
|
||||
|
|
|
@ -16,9 +16,19 @@
|
|||
* 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 )
|
||||
{
|
||||
|
|
|
@ -16,8 +16,22 @@
|
|||
* 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;
|
||||
|
|
|
@ -16,34 +16,12 @@
|
|||
* 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_ */
|
||||
|
|
|
@ -89,8 +89,20 @@
|
|||
* 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 )
|
||||
|
|
104
dll/win32/wbemprox/wql.tab.h
Normal file
104
dll/win32/wbemprox/wql.tab.h
Normal file
|
@ -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 */
|
|
@ -18,8 +18,20 @@
|
|||
* 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;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue