Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
e938ff9a
Commit
e938ff9a
authored
Jun 21, 2008
by
Vitaliy Margolen
Committed by
Alexandre Julliard
Jun 23, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dxdiagn: Use helper functions for adding properties to container.
parent
8ab96ba2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
84 deletions
+36
-84
provider.c
dlls/dxdiagn/provider.c
+36
-84
No files found.
dlls/dxdiagn/provider.c
View file @
e938ff9a
...
...
@@ -156,15 +156,20 @@ static inline HRESULT add_prop_str( IDxDiagContainer* cont, LPCWSTR prop, LPCWST
static
inline
HRESULT
add_prop_ui4
(
IDxDiagContainer
*
cont
,
LPCWSTR
prop
,
DWORD
data
)
{
HRESULT
hr
;
VARIANT
var
;
V_VT
(
&
var
)
=
VT_UI4
;
V_UI4
(
&
var
)
=
data
;
hr
=
IDxDiagContainerImpl_AddProp
(
cont
,
prop
,
&
var
);
VariantClear
(
&
var
);
return
IDxDiagContainerImpl_AddProp
(
cont
,
prop
,
&
var
);
}
return
hr
;
static
inline
HRESULT
add_prop_bool
(
IDxDiagContainer
*
cont
,
LPCWSTR
prop
,
BOOL
data
)
{
VARIANT
var
;
V_VT
(
&
var
)
=
VT_BOOL
;
V_BOOL
(
&
var
)
=
data
;
return
IDxDiagContainerImpl_AddProp
(
cont
,
prop
,
&
var
);
}
/**
...
...
@@ -189,7 +194,6 @@ static HRESULT DXDiag_AddFileDescContainer(IDxDiagContainer* pSubCont, const WCH
static
const
WCHAR
szFinal_Retail_v
[]
=
{
'F'
,
'i'
,
'n'
,
'a'
,
'l'
,
' '
,
'R'
,
'e'
,
't'
,
'a'
,
'i'
,
'l'
,
0
};
static
const
WCHAR
szEnglish_v
[]
=
{
'E'
,
'n'
,
'g'
,
'l'
,
'i'
,
's'
,
'h'
,
0
};
static
const
WCHAR
szVersionFormat
[]
=
{
'%'
,
'u'
,
'.'
,
'%'
,
'0'
,
'2'
,
'u'
,
'.'
,
'%'
,
'0'
,
'4'
,
'u'
,
'.'
,
'%'
,
'0'
,
'4'
,
'u'
,
0
};
VARIANT
v
;
WCHAR
szFile
[
512
];
WCHAR
szVersion_v
[
1024
];
...
...
@@ -210,15 +214,9 @@ static HRESULT DXDiag_AddFileDescContainer(IDxDiagContainer* pSubCont, const WCH
boolret
=
GetFileVersionInfoW
(
szFile
,
0
,
retval
,
pVersionInfo
);
boolret
=
VerQueryValueW
(
pVersionInfo
,
szSlashSep
,
(
LPVOID
)
&
pFileInfo
,
&
uiLength
);
V_VT
(
&
v
)
=
VT_BSTR
;
V_BSTR
(
&
v
)
=
SysAllocString
(
szFile
);
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
szPath
,
&
v
);
VariantClear
(
&
v
);
V_VT
(
&
v
)
=
VT_BSTR
;
V_BSTR
(
&
v
)
=
SysAllocString
(
szFileName
);
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
szName
,
&
v
);
VariantClear
(
&
v
);
V_VT
(
&
v
)
=
VT_BOOL
;
V_BOOL
(
&
v
)
=
boolret
;
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
bExists
,
&
v
);
VariantClear
(
&
v
);
add_prop_str
(
pSubCont
,
szPath
,
szFile
);
add_prop_str
(
pSubCont
,
szName
,
szFileName
);
add_prop_bool
(
pSubCont
,
bExists
,
boolret
);
if
(
boolret
)
{
snprintfW
(
szVersion_v
,
sizeof
(
szVersion_v
)
/
sizeof
(
szVersion_v
[
0
]),
...
...
@@ -230,27 +228,13 @@ static HRESULT DXDiag_AddFileDescContainer(IDxDiagContainer* pSubCont, const WCH
TRACE
(
"Found version as (%s)
\n
"
,
debugstr_w
(
szVersion_v
));
V_VT
(
&
v
)
=
VT_BSTR
;
V_BSTR
(
&
v
)
=
SysAllocString
(
szVersion_v
);
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
szVersion
,
&
v
);
VariantClear
(
&
v
);
V_VT
(
&
v
)
=
VT_BSTR
;
V_BSTR
(
&
v
)
=
SysAllocString
(
szFinal_Retail_v
);
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
szAttributes
,
&
v
);
VariantClear
(
&
v
);
V_VT
(
&
v
)
=
VT_BSTR
;
V_BSTR
(
&
v
)
=
SysAllocString
(
szEnglish_v
);
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
szLanguageEnglish
,
&
v
);
VariantClear
(
&
v
);
V_VT
(
&
v
)
=
VT_UI4
;
V_UI4
(
&
v
)
=
pFileInfo
->
dwFileDateMS
;
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
dwFileTimeHigh
,
&
v
);
VariantClear
(
&
v
);
V_VT
(
&
v
)
=
VT_UI4
;
V_UI4
(
&
v
)
=
pFileInfo
->
dwFileDateLS
;
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
dwFileTimeLow
,
&
v
);
VariantClear
(
&
v
);
V_VT
(
&
v
)
=
VT_BOOL
;
V_BOOL
(
&
v
)
=
(
0
!=
((
pFileInfo
->
dwFileFlags
&
pFileInfo
->
dwFileFlagsMask
)
&
VS_FF_PRERELEASE
));
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
bBeta
,
&
v
);
VariantClear
(
&
v
);
V_VT
(
&
v
)
=
VT_BOOL
;
V_BOOL
(
&
v
)
=
(
0
!=
((
pFileInfo
->
dwFileFlags
&
pFileInfo
->
dwFileFlagsMask
)
&
VS_FF_DEBUG
));
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
bDebug
,
&
v
);
VariantClear
(
&
v
);
add_prop_str
(
pSubCont
,
szVersion
,
szVersion_v
);
add_prop_str
(
pSubCont
,
szAttributes
,
szFinal_Retail_v
);
add_prop_str
(
pSubCont
,
szLanguageEnglish
,
szEnglish_v
);
add_prop_ui4
(
pSubCont
,
dwFileTimeHigh
,
pFileInfo
->
dwFileDateMS
);
add_prop_ui4
(
pSubCont
,
dwFileTimeLow
,
pFileInfo
->
dwFileDateLS
);
add_prop_bool
(
pSubCont
,
bBeta
,
0
!=
((
pFileInfo
->
dwFileFlags
&
pFileInfo
->
dwFileFlagsMask
)
&
VS_FF_PRERELEASE
));
add_prop_bool
(
pSubCont
,
bDebug
,
0
!=
((
pFileInfo
->
dwFileFlags
&
pFileInfo
->
dwFileFlagsMask
)
&
VS_FF_DEBUG
));
}
HeapFree
(
GetProcessHeap
(),
0
,
pVersionInfo
);
...
...
@@ -280,21 +264,12 @@ static HRESULT DXDiag_InitDXDiagSystemInfoContainer(IDxDiagContainer* pSubCont)
OSVERSIONINFOW
info
;
VARIANT
v
;
V_VT
(
&
v
)
=
VT_UI4
;
V_UI4
(
&
v
)
=
9
;
IDxDiagContainerImpl_AddProp
(
pSubCont
,
dwDirectXVersionMajor
,
&
v
);
V_VT
(
&
v
)
=
VT_UI4
;
V_UI4
(
&
v
)
=
0
;
IDxDiagContainerImpl_AddProp
(
pSubCont
,
dwDirectXVersionMinor
,
&
v
);
V_VT
(
&
v
)
=
VT_BSTR
;
V_BSTR
(
&
v
)
=
SysAllocString
(
szDirectXVersionLetter_v
);
IDxDiagContainerImpl_AddProp
(
pSubCont
,
szDirectXVersionLetter
,
&
v
);
VariantClear
(
&
v
);
V_VT
(
&
v
)
=
VT_BSTR
;
V_BSTR
(
&
v
)
=
SysAllocString
(
szDirectXVersionEnglish_v
);
IDxDiagContainerImpl_AddProp
(
pSubCont
,
szDirectXVersionEnglish
,
&
v
);
VariantClear
(
&
v
);
V_VT
(
&
v
)
=
VT_BSTR
;
V_BSTR
(
&
v
)
=
SysAllocString
(
szDirectXVersionLongEnglish_v
);
IDxDiagContainerImpl_AddProp
(
pSubCont
,
szDirectXVersionLongEnglish
,
&
v
);
VariantClear
(
&
v
);
V_VT
(
&
v
)
=
VT_BOOL
;
V_BOOL
(
&
v
)
=
FALSE
;
IDxDiagContainerImpl_AddProp
(
pSubCont
,
bDebug
,
&
v
);
add_prop_ui4
(
pSubCont
,
dwDirectXVersionMajor
,
9
);
add_prop_ui4
(
pSubCont
,
dwDirectXVersionMinor
,
0
);
add_prop_str
(
pSubCont
,
szDirectXVersionLetter
,
szDirectXVersionLetter_v
);
add_prop_str
(
pSubCont
,
szDirectXVersionEnglish
,
szDirectXVersionEnglish_v
);
add_prop_str
(
pSubCont
,
szDirectXVersionLongEnglish
,
szDirectXVersionLongEnglish_v
);
add_prop_bool
(
pSubCont
,
bDebug
,
FALSE
);
msex
.
dwLength
=
sizeof
(
msex
);
GlobalMemoryStatusEx
(
&
msex
);
...
...
@@ -306,18 +281,10 @@ static HRESULT DXDiag_InitDXDiagSystemInfoContainer(IDxDiagContainer* pSubCont)
info
.
dwOSVersionInfoSize
=
sizeof
(
info
);
GetVersionExW
(
&
info
);
V_VT
(
&
v
)
=
VT_UI4
;
V_UI4
(
&
v
)
=
info
.
dwMajorVersion
;
IDxDiagContainerImpl_AddProp
(
pSubCont
,
dwOSMajorVersion
,
&
v
);
V_VT
(
&
v
)
=
VT_UI4
;
V_UI4
(
&
v
)
=
info
.
dwMinorVersion
;
IDxDiagContainerImpl_AddProp
(
pSubCont
,
dwOSMinorVersion
,
&
v
);
V_VT
(
&
v
)
=
VT_UI4
;
V_UI4
(
&
v
)
=
info
.
dwBuildNumber
;
IDxDiagContainerImpl_AddProp
(
pSubCont
,
dwOSBuildNumber
,
&
v
);
V_VT
(
&
v
)
=
VT_UI4
;
V_UI4
(
&
v
)
=
info
.
dwPlatformId
;
IDxDiagContainerImpl_AddProp
(
pSubCont
,
dwOSPlatformID
,
&
v
);
add_prop_ui4
(
pSubCont
,
dwOSMajorVersion
,
info
.
dwMajorVersion
);
add_prop_ui4
(
pSubCont
,
dwOSMinorVersion
,
info
.
dwMinorVersion
);
add_prop_ui4
(
pSubCont
,
dwOSBuildNumber
,
info
.
dwBuildNumber
);
add_prop_ui4
(
pSubCont
,
dwOSPlatformID
,
info
.
dwPlatformId
);
return
S_OK
;
}
...
...
@@ -643,18 +610,12 @@ static HRESULT DXDiag_InitDXDiagDirectShowFiltersContainer(IDxDiagContainer* pSu
LPBYTE
pData
=
NULL
;
LPBYTE
pCurrent
=
NULL
;
struct
REG_RF
*
prrf
=
NULL
;
VARIANT
v_data
;
DWORD
it
;
DWORD
dwNOutputs
=
0
;
DWORD
dwNInputs
=
0
;
V_VT
(
&
v
)
=
VT_BSTR
;
V_BSTR
(
&
v
)
=
SysAllocString
(
wszCatName
);
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
szCatName
,
&
v
);
VariantClear
(
&
v
);
V_VT
(
&
v
)
=
VT_BSTR
;
V_BSTR
(
&
v
)
=
SysAllocString
(
wszCatClsid
);
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
szClsidCat
,
&
v
);
VariantClear
(
&
v
);
add_prop_str
(
pSubCont
,
szCatName
,
wszCatName
);
add_prop_str
(
pSubCont
,
szClsidCat
,
wszCatClsid
);
hr
=
IPropertyBag_Read
(
pPropFilterBag
,
wszFriendlyName
,
&
v
,
0
);
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
szName
,
&
v
);
...
...
@@ -670,14 +631,9 @@ static HRESULT DXDiag_InitDXDiagDirectShowFiltersContainer(IDxDiagContainer* pSu
hr
=
SafeArrayAccessData
(
V_UNION
(
&
v
,
parray
),
(
LPVOID
*
)
&
pData
);
prrf
=
(
struct
REG_RF
*
)
pData
;
pCurrent
=
pData
;
VariantInit
(
&
v_data
);
V_VT
(
&
v_data
)
=
VT_UI4
;
V_UI4
(
&
v_data
)
=
prrf
->
dwVersion
;
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
szName
,
&
v_data
);
VariantClear
(
&
v_data
);
V_VT
(
&
v_data
)
=
VT_UI4
;
V_UI4
(
&
v_data
)
=
prrf
->
dwMerit
;
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
dwMerit
,
&
v_data
);
VariantClear
(
&
v_data
);
add_prop_ui4
(
pSubCont
,
szName
,
prrf
->
dwVersion
);
add_prop_ui4
(
pSubCont
,
dwMerit
,
prrf
->
dwMerit
);
pCurrent
+=
sizeof
(
struct
REG_RF
);
for
(
it
=
0
;
it
<
prrf
->
dwPins
;
++
it
)
{
...
...
@@ -701,12 +657,8 @@ static HRESULT DXDiag_InitDXDiagDirectShowFiltersContainer(IDxDiagContainer* pSu
}
}
V_VT
(
&
v_data
)
=
VT_UI4
;
V_UI4
(
&
v_data
)
=
dwNInputs
;
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
dwInputs
,
&
v_data
);
VariantClear
(
&
v_data
);
V_VT
(
&
v_data
)
=
VT_UI4
;
V_UI4
(
&
v_data
)
=
dwNOutputs
;
hr
=
IDxDiagContainerImpl_AddProp
(
pSubCont
,
dwOutputs
,
&
v_data
);
VariantClear
(
&
v_data
);
add_prop_ui4
(
pSubCont
,
dwInputs
,
dwNInputs
);
add_prop_ui4
(
pSubCont
,
dwOutputs
,
dwNOutputs
);
SafeArrayUnaccessData
(
V_UNION
(
&
v
,
parray
));
VariantClear
(
&
v
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment