25#define NONAMELESSUNION
26#define NONAMELESSSTRUCT
41#include "wine/fil_data.h"
55static const WCHAR szDescription[] = {
's',
'z',
'D',
'e',
's',
'c',
'r',
'i',
'p',
't',
'i',
'o',
'n',0};
56static const WCHAR szDeviceName[] = {
's',
'z',
'D',
'e',
'v',
'i',
'c',
'e',
'N',
'a',
'm',
'e',0};
57static const WCHAR szKeyDeviceID[] = {
's',
'z',
'K',
'e',
'y',
'D',
'e',
'v',
'i',
'c',
'e',
'I',
'D',0};
58static const WCHAR szKeyDeviceKey[] = {
's',
'z',
'K',
'e',
'y',
'D',
'e',
'v',
'i',
'c',
'e',
'K',
'e',
'y',0};
59static const WCHAR szVendorId[] = {
's',
'z',
'V',
'e',
'n',
'd',
'o',
'r',
'I',
'd',0};
60static const WCHAR szDeviceId[] = {
's',
'z',
'D',
'e',
'v',
'i',
'c',
'e',
'I',
'd',0};
61static const WCHAR szDeviceIdentifier[] = {
's',
'z',
'D',
'e',
'v',
'i',
'c',
'e',
'I',
'd',
'e',
'n',
't',
'i',
'f',
'i',
'e',
'r',0};
65static const WCHAR szDisplayMemoryLocalized[] = {
's',
'z',
'D',
'i',
's',
'p',
'l',
'a',
'y',
'M',
'e',
'm',
'o',
'r',
'y',
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',0};
66static const WCHAR szDisplayMemoryEnglish[] = {
's',
'z',
'D',
'i',
's',
'p',
'l',
'a',
'y',
'M',
'e',
'm',
'o',
'r',
'y',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
67static const WCHAR szDisplayModeLocalized[] = {
's',
'z',
'D',
'i',
's',
'p',
'l',
'a',
'y',
'M',
'o',
'd',
'e',
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',0};
68static const WCHAR szDisplayModeEnglish[] = {
's',
'z',
'D',
'i',
's',
'p',
'l',
'a',
'y',
'M',
'o',
'd',
'e',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
69static const WCHAR szDriverName[] = {
's',
'z',
'D',
'r',
'i',
'v',
'e',
'r',
'N',
'a',
'm',
'e',0};
70static const WCHAR szDriverVersion[] = {
's',
'z',
'D',
'r',
'i',
'v',
'e',
'r',
'V',
'e',
'r',
's',
'i',
'o',
'n',0};
71static const WCHAR szSubSysId[] = {
's',
'z',
'S',
'u',
'b',
'S',
'y',
's',
'I',
'd',0};
72static const WCHAR szRevisionId[] = {
's',
'z',
'R',
'e',
'v',
'i',
's',
'i',
'o',
'n',
'I',
'd',0};
73static const WCHAR dwRefreshRate[] = {
'd',
'w',
'R',
'e',
'f',
'r',
'e',
's',
'h',
'R',
'a',
't',
'e',0};
74static const WCHAR szManufacturer[] = {
's',
'z',
'M',
'a',
'n',
'u',
'f',
'a',
'c',
't',
'u',
'r',
'e',
'r',0};
75static const WCHAR szChipType[] = {
's',
'z',
'C',
'h',
'i',
'p',
'T',
'y',
'p',
'e',0};
77static const WCHAR szRevision[] = {
's',
'z',
'R',
'e',
'v',
'i',
's',
'i',
'o',
'n',0};
78static const WCHAR szMonitorName[] = {
's',
'z',
'M',
'o',
'n',
'i',
't',
'o',
'r',
'N',
'a',
'm',
'e',0};
79static const WCHAR szMonitorMaxRes[] = {
's',
'z',
'M',
'o',
'n',
'i',
't',
'o',
'r',
'M',
'a',
'x',
'R',
'e',
's',0};
80static const WCHAR szDriverAttributes[] = {
's',
'z',
'D',
'r',
'i',
'v',
'e',
'r',
'A',
't',
't',
'r',
'i',
'b',
'u',
't',
'e',
's',0};
81static const WCHAR szDriverLanguageEnglish[] = {
's',
'z',
'D',
'r',
'i',
'v',
'e',
'r',
'L',
'a',
'n',
'g',
'u',
'a',
'g',
'e',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
82static const WCHAR szDriverLanguageLocalized[] = {
's',
'z',
'D',
'r',
'i',
'v',
'e',
'r',
'L',
'a',
'n',
'g',
'u',
'a',
'g',
'e',
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',0};
83static const WCHAR szDriverDateEnglish[] = {
's',
'z',
'D',
'r',
'i',
'v',
'e',
'r',
'D',
'a',
't',
'e',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
84static const WCHAR szDriverDateLocalized[] = {
's',
'z',
'D',
'r',
'i',
'v',
'e',
'r',
'D',
'a',
't',
'e',
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',0};
85static const WCHAR lDriverSize[] = {
'l',
'D',
'r',
'i',
'v',
'e',
'r',
'S',
'i',
'z',
'e',0};
87static const WCHAR szMiniVddDateLocalized[] = {
's',
'z',
'M',
'i',
'n',
'i',
'V',
'd',
'd',
'D',
'a',
't',
'e',
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',0};
88static const WCHAR szMiniVddDateEnglish[] = {
's',
'z',
'M',
'i',
'n',
'i',
'V',
'd',
'd',
'D',
'a',
't',
'e',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
89static const WCHAR lMiniVddSize[] = {
'l',
'M',
'i',
'n',
'i',
'V',
'd',
'd',
'S',
'i',
'z',
'e',0};
91static const WCHAR bCanRenderWindow[] = {
'b',
'C',
'a',
'n',
'R',
'e',
'n',
'd',
'e',
'r',
'W',
'i',
'n',
'd',
'o',
'w',0};
92static const WCHAR bDriverBeta[] = {
'b',
'D',
'r',
'i',
'v',
'e',
'r',
'B',
'e',
't',
'a',0};
93static const WCHAR bDriverDebug[] = {
'b',
'D',
'r',
'i',
'v',
'e',
'r',
'D',
'e',
'b',
'u',
'g',0};
94static const WCHAR bDriverSigned[] = {
'b',
'D',
'r',
'i',
'v',
'e',
'r',
'S',
'i',
'g',
'n',
'e',
'd',0};
95static const WCHAR bDriverSignedValid[] = {
'b',
'D',
'r',
'i',
'v',
'e',
'r',
'S',
'i',
'g',
'n',
'e',
'd',
'V',
'a',
'l',
'i',
'd',0};
96static const WCHAR szDriverSignDate[] = {
's',
'z',
'D',
'r',
'i',
'v',
'e',
'r',
'S',
'i',
'g',
'n',
'D',
'a',
't',
'e',0};
97static const WCHAR dwDDIVersion[] = {
'd',
'w',
'D',
'D',
'I',
'V',
'e',
'r',
's',
'i',
'o',
'n',0};
98static const WCHAR szDDIVersionEnglish[] = {
's',
'z',
'D',
'D',
'I',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
99static const WCHAR szDDIVersionLocalized[] = {
's',
'z',
'D',
'D',
'I',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',0};
101static const WCHAR dwWHQLLevel[] = {
'd',
'w',
'W',
'H',
'Q',
'L',
'L',
'e',
'v',
'e',
'l',0};
127 IUnknown_AddRef(iface);
142 TRACE(
"(%p)->(ref before=%u)\n",
This, refCount - 1);
154 TRACE(
"(%p)->(ref before=%u)\n",
This, refCount + 1);
173 TRACE(
"(%p,%p)\n", iface, pParams);
175 if (
NULL == pParams) {
183 if (!
This->info_root)
196 IDxDiagContainer **ppInstance)
200 TRACE(
"(%p,%p)\n", iface, ppInstance);
207 &
This->IDxDiagProvider_iface, (
void **)ppInstance);
314 ++
node->nSubContainers;
421 DWORD *pid_list, alloc_bytes = 1024 *
sizeof(*pid_list), needed_bytes;
442 if (alloc_bytes != needed_bytes)
452 pid_list = realloc_list;
455 *
list_count = needed_bytes /
sizeof(*pid_list);
489 static const WCHAR conf_exe[] = {
'c',
'o',
'n',
'f',
'.',
'e',
'x',
'e',0};
516 static const WCHAR regional_setting_engW[] = {
'R',
'e',
'g',
'i',
'o',
'n',
'a',
'l',
' ',
'S',
'e',
't',
't',
'i',
'n',
'g',0};
517 static const WCHAR languages_fmtW[] = {
'%',
's',
' ',
'(',
'%',
's',
':',
' ',
'%',
's',
')',0};
518 static const WCHAR szLanguagesLocalized[] = {
's',
'z',
'L',
'a',
'n',
'g',
'u',
'a',
'g',
'e',
's',
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',0};
519 static const WCHAR szLanguagesEnglish[] = {
's',
'z',
'L',
'a',
'n',
'g',
'u',
'a',
'g',
'e',
's',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
521 WCHAR system_lang[80], regional_setting[100], user_lang[80], language_str[300];
529 swprintf(language_str, languages_fmtW, system_lang, regional_setting,
540 swprintf(language_str, languages_fmtW, system_lang,
541 regional_setting_engW, user_lang);
552 static const WCHAR date_fmtW[] = {
'M',
'\'',
'/',
'\'',
'd',
'\'',
'/',
'\'',
'y',
'y',
'y',
'y',0};
553 static const WCHAR time_fmtW[] = {
'H',
'H',
'\'',
':',
'\'',
'm',
'm',
'\'',
':',
'\'',
's',
's',0};
554 static const WCHAR datetime_fmtW[] = {
'%',
's',
',',
' ',
'%',
's',0};
555 static const WCHAR szTimeLocalized[] = {
's',
'z',
'T',
'i',
'm',
'e',
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',0};
556 static const WCHAR szTimeEnglish[] = {
's',
'z',
'T',
'i',
'm',
'e',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
589 static const WCHAR winxpW[] = {
'W',
'i',
'n',
'd',
'o',
'w',
's',
' ',
'X',
'P',
' ',
'P',
'r',
'o',
'f',
'e',
's',
's',
'i',
'o',
'n',
'a',
'l',0};
590 static const WCHAR szOSLocalized[] = {
's',
'z',
'O',
'S',
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',0};
591 static const WCHAR szOSExLocalized[] = {
's',
'z',
'O',
'S',
'E',
'x',
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',0};
592 static const WCHAR szOSExLongLocalized[] = {
's',
'z',
'O',
'S',
'E',
'x',
'L',
'o',
'n',
'g',
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',0};
593 static const WCHAR szOSEnglish[] = {
's',
'z',
'O',
'S',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
594 static const WCHAR szOSExEnglish[] = {
's',
'z',
'O',
'S',
'E',
'x',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
595 static const WCHAR szOSExLongEnglish[] = {
's',
'z',
'O',
'S',
'E',
'x',
'L',
'o',
'n',
'g',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
597 static const WCHAR *prop_list[] = {szOSLocalized, szOSExLocalized, szOSExLongLocalized,
598 szOSEnglish, szOSExEnglish, szOSExLongEnglish};
617 static const WCHAR szProcessorEnglish[] = {
's',
'z',
'P',
'r',
'o',
'c',
'e',
's',
's',
'o',
'r',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
619 static const WCHAR cimv2W[] = {
'\\',
'\\',
'.',
'\\',
'r',
'o',
'o',
't',
'\\',
'c',
'i',
'm',
'v',
'2',0};
620 static const WCHAR proc_classW[] = {
'W',
'i',
'n',
'3',
'2',
'_',
'P',
'r',
'o',
'c',
'e',
's',
's',
'o',
'r',0};
621 static const WCHAR nameW[] = {
'N',
'a',
'm',
'e',0};
622 static const WCHAR max_clock_speedW[] = {
'M',
'a',
'x',
'C',
'l',
'o',
'c',
'k',
'S',
'p',
'e',
'e',
'd',0};
623 static const WCHAR cpu_noW[] = {
'N',
'u',
'm',
'b',
'e',
'r',
'O',
'f',
'L',
'o',
'g',
'i',
'c',
'a',
'l',
'P',
'r',
'o',
'c',
'e',
's',
's',
'o',
'r',
's',0};
625 static const WCHAR processor_fmtW[] = {
'%',
's',
'(',
'%',
'd',
' ',
'C',
'P',
'U',
's',
')',
',',
' ',
'~',
'%',
'd',
'M',
'H',
'z',0};
631 VARIANT cpu_name, cpu_no, clock_speed;
632 WCHAR print_buf[200];
654 IWbemServices_Release(wbem_service);
658 IWbemServices_Release(wbem_service);
663 hr = IEnumWbemClassObject_Next(wbem_enum, 1000, 1, &wbem_class, &
no);
664 IEnumWbemClassObject_Release(wbem_enum);
668 hr = IWbemClassObject_Get(wbem_class, cpu_noW, 0, &cpu_no,
NULL,
NULL);
670 IWbemClassObject_Release(wbem_class);
673 hr = IWbemClassObject_Get(wbem_class, max_clock_speedW, 0, &clock_speed,
NULL,
NULL);
675 IWbemClassObject_Release(wbem_class);
678 hr = IWbemClassObject_Get(wbem_class,
nameW, 0, &cpu_name,
NULL,
NULL);
679 IWbemClassObject_Release(wbem_class);
694 static const WCHAR dwDirectXVersionMajor[] = {
'd',
'w',
'D',
'i',
'r',
'e',
'c',
't',
'X',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'M',
'a',
'j',
'o',
'r',0};
695 static const WCHAR dwDirectXVersionMinor[] = {
'd',
'w',
'D',
'i',
'r',
'e',
'c',
't',
'X',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'M',
'i',
'n',
'o',
'r',0};
696 static const WCHAR szDirectXVersionLetter[] = {
's',
'z',
'D',
'i',
'r',
'e',
'c',
't',
'X',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'L',
'e',
't',
't',
'e',
'r',0};
697 static const WCHAR szDirectXVersionLetter_v[] = {
'c',0};
698 static const WCHAR bDebug[] = {
'b',
'D',
'e',
'b',
'u',
'g',0};
699 static const WCHAR bNECPC98[] = {
'b',
'N',
'E',
'C',
'P',
'C',
'9',
'8',0};
700 static const WCHAR szDirectXVersionEnglish[] = {
's',
'z',
'D',
'i',
'r',
'e',
'c',
't',
'X',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
701 static const WCHAR szDirectXVersionEnglish_v[] = {
'4',
'.',
'0',
'9',
'.',
'0',
'0',
'0',
'0',
'.',
'0',
'9',
'0',
'4',0};
702 static const WCHAR szDirectXVersionLongEnglish[] = {
's',
'z',
'D',
'i',
'r',
'e',
'c',
't',
'X',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'L',
'o',
'n',
'g',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
703 static const WCHAR szDirectXVersionLongEnglish_v[] = {
'=',
' ',
'"',
'D',
'i',
'r',
'e',
'c',
't',
'X',
' ',
'9',
'.',
'0',
'c',
' ',
'(',
'4',
'.',
'0',
'9',
'.',
'0',
'0',
'0',
'0',
'.',
'0',
'9',
'0',
'4',
')',0};
704 static const WCHAR ullPhysicalMemory[] = {
'u',
'l',
'l',
'P',
'h',
'y',
's',
'i',
'c',
'a',
'l',
'M',
'e',
'm',
'o',
'r',
'y',0};
705 static const WCHAR ullUsedPageFile[] = {
'u',
'l',
'l',
'U',
's',
'e',
'd',
'P',
'a',
'g',
'e',
'F',
'i',
'l',
'e',0};
706 static const WCHAR ullAvailPageFile[] = {
'u',
'l',
'l',
'A',
'v',
'a',
'i',
'l',
'P',
'a',
'g',
'e',
'F',
'i',
'l',
'e',0};
707 static const WCHAR bNetMeetingRunning[] = {
'b',
'N',
'e',
't',
'M',
'e',
'e',
't',
'i',
'n',
'g',
'R',
'u',
'n',
'n',
'i',
'n',
'g',0};
708 static const WCHAR szWindowsDir[] = {
's',
'z',
'W',
'i',
'n',
'd',
'o',
'w',
's',
'D',
'i',
'r',0};
709 static const WCHAR dwOSMajorVersion[] = {
'd',
'w',
'O',
'S',
'M',
'a',
'j',
'o',
'r',
'V',
'e',
'r',
's',
'i',
'o',
'n',0};
710 static const WCHAR dwOSMinorVersion[] = {
'd',
'w',
'O',
'S',
'M',
'i',
'n',
'o',
'r',
'V',
'e',
'r',
's',
'i',
'o',
'n',0};
711 static const WCHAR dwOSBuildNumber[] = {
'd',
'w',
'O',
'S',
'B',
'u',
'i',
'l',
'd',
'N',
'u',
'm',
'b',
'e',
'r',0};
712 static const WCHAR dwOSPlatformID[] = {
'd',
'w',
'O',
'S',
'P',
'l',
'a',
't',
'f',
'o',
'r',
'm',
'I',
'D',0};
713 static const WCHAR szCSDVersion[] = {
's',
'z',
'C',
'S',
'D',
'V',
'e',
'r',
's',
'i',
'o',
'n',0};
714 static const WCHAR szPhysicalMemoryEnglish[] = {
's',
'z',
'P',
'h',
'y',
's',
'i',
'c',
'a',
'l',
'M',
'e',
'm',
'o',
'r',
'y',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
715 static const WCHAR szPageFileLocalized[] = {
's',
'z',
'P',
'a',
'g',
'e',
'F',
'i',
'l',
'e',
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',0};
716 static const WCHAR szPageFileEnglish[] = {
's',
'z',
'P',
'a',
'g',
'e',
'F',
'i',
'l',
'e',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
717 static const WCHAR szMachineNameLocalized[] = {
's',
'z',
'M',
'a',
'c',
'h',
'i',
'n',
'e',
'N',
'a',
'm',
'e',
'L',
'o',
'c',
'a',
'l',
'i',
'z',
'e',
'd',0};
718 static const WCHAR szMachineNameEnglish[] = {
's',
'z',
'M',
'a',
'c',
'h',
'i',
'n',
'e',
'N',
'a',
'm',
'e',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
719 static const WCHAR szSystemManufacturerEnglish[] = {
's',
'z',
'S',
'y',
's',
't',
'e',
'm',
'M',
'a',
'n',
'u',
'f',
'a',
'c',
't',
'u',
'r',
'e',
'r',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
720 static const WCHAR szSystemModelEnglish[] = {
's',
'z',
'S',
'y',
's',
't',
'e',
'm',
'M',
'o',
'd',
'e',
'l',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
721 static const WCHAR szBIOSEnglish[] = {
's',
'z',
'B',
'I',
'O',
'S',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
722 static const WCHAR szSetupParamEnglish[] = {
's',
'z',
'S',
'e',
't',
'u',
'p',
'P',
'a',
'r',
'a',
'm',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
723 static const WCHAR szDxDiagVersion[] = {
's',
'z',
'D',
'x',
'D',
'i',
'a',
'g',
'V',
'e',
'r',
's',
'i',
'o',
'n',0};
725 static const WCHAR notpresentW[] = {
'N',
'o',
't',
' ',
'p',
'r',
'e',
's',
'e',
'n',
't',0};
727 static const WCHAR pagefile_fmtW[] = {
'%',
'u',
'M',
'B',
' ',
'u',
's',
'e',
'd',
',',
' ',
'%',
'u',
'M',
'B',
' ',
'a',
'v',
'a',
'i',
'l',
'a',
'b',
'l',
'e',0};
728 static const WCHAR physmem_fmtW[] = {
'%',
'u',
'M',
'B',
' ',
'R',
'A',
'M',0};
765 msex.dwLength =
sizeof(msex);
784 info.dwOSVersionInfoSize =
sizeof(
info);
809 (
DWORD)(msex.ullTotalPhys / (1024 * 1024)));
814 usedpage_mb = (
DWORD)((msex.ullTotalPageFile - msex.ullAvailPageFile) / (1024 * 1024));
815 availpage_mb = (
DWORD)(msex.ullAvailPageFile / (1024 * 1024));
818 args[0] = usedpage_mb;
819 args[1] = availpage_mb;
827 swprintf(print_buf, pagefile_fmtW, usedpage_mb, availpage_mb);
901 FIXME(
"Unknown D3DFORMAT %d, returning 32 bpp\n",
format);
917 hr = IDirectDraw7_GetAvailableVidMem(pDirectDraw, &dd_caps, available_mem,
NULL);
918 IDirectDraw7_Release(pDirectDraw);
930 static const WCHAR atiW[] = {
'A',
'T',
'I',
' ',
'T',
'e',
'c',
'h',
'n',
'o',
'l',
'o',
'g',
'i',
'e',
's',
' ',
'I',
'n',
'c',
'.',0};
931 static const WCHAR nvidiaW[] = {
'N',
'V',
'I',
'D',
'I',
'A',0};
932 static const WCHAR intelW[] = {
'I',
'n',
't',
'e',
'l',
' ',
'C',
'o',
'r',
'p',
'o',
'r',
'a',
't',
'i',
'o',
'n',0};
933 static const WCHAR vmwareW[] = {
'V',
'M',
'w',
'a',
'r',
'e',0};
934 static const WCHAR redhatW[] = {
'R',
'e',
'd',
' ',
'H',
'a',
't',0};
935 static const WCHAR unknownW[] = {
'U',
'n',
'k',
'n',
'o',
'w',
'n',0};
952 if (vendors[
i].
id == vendor_id)
953 return vendors[
i].
name;
956 FIXME(
"Unknown PCI vendor ID 0x%04x.\n", vendor_id);
965 IDirect3D9 *pDirect3D9;
976 static const WCHAR adapterid_fmtW[] = {
'%',
'u',0};
977 static const WCHAR driverversion_fmtW[] = {
'%',
'u',
'.',
'%',
'u',
'.',
'%',
'0',
'4',
'u',
'.',
'%',
'0',
'4',
'u',0};
978 static const WCHAR id_fmtW[] = {
'0',
'x',
'%',
'0',
'4',
'x',0};
979 static const WCHAR subsysid_fmtW[] = {
'0',
'x',
'%',
'0',
'8',
'x',0};
980 static const WCHAR mem_fmt[] = {
'%',
'.',
'1',
'f',
' ',
'M',
'B',0};
981 static const WCHAR b3DAccelerationExists[] = {
'b',
'3',
'D',
'A',
'c',
'c',
'e',
'l',
'e',
'r',
'a',
't',
'i',
'o',
'n',
'E',
'x',
'i',
's',
't',
's',0};
982 static const WCHAR b3DAccelerationEnabled[] = {
'b',
'3',
'D',
'A',
'c',
'c',
'e',
'l',
'e',
'r',
'a',
't',
'i',
'o',
'n',
'E',
'n',
'a',
'b',
'l',
'e',
'd',0};
983 static const WCHAR bDDAccelerationEnabled[] = {
'b',
'D',
'D',
'A',
'c',
'c',
'e',
'l',
'e',
'r',
'a',
't',
'i',
'o',
'n',
'E',
'n',
'a',
'b',
'l',
'e',
'd',0};
984 static const WCHAR bNoHardware[] = {
'b',
'N',
'o',
'H',
'a',
'r',
'd',
'w',
'a',
'r',
'e',0};
985 static const WCHAR mode_fmtW[] = {
'%',
'd',
' ',
'x',
' ',
'%',
'd',
' ',
'(',
'%',
'd',
' ',
'b',
'i',
't',
')',
' ',
'(',
'%',
'd',
'H',
'z',
')',0};
986 static const WCHAR gernericPNPMonitorW[] = {
'G',
'e',
'n',
'e',
'r',
'i',
'c',
' ',
'P',
'n',
'P',
' ',
'M',
'o',
'n',
'i',
't',
'o',
'r',0};
987 static const WCHAR failedToGetParameterW[] = {
'F',
'a',
'i',
'l',
'e',
'd',
' ',
't',
'o',
' ',
'g',
'e',
't',
' ',
'p',
'a',
'r',
'a',
'm',
'e',
't',
'e',
'r',0};
988 static const WCHAR driverAttributesW[] = {
'F',
'i',
'n',
'a',
'l',
' ',
'R',
'e',
't',
'a',
'i',
'l',0};
989 static const WCHAR englishW[] = {
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
990 static const WCHAR driverDateEnglishW[] = {
'1',
'/',
'1',
'/',
'2',
'0',
'1',
'6',
' ',
'1',
'0',
':',
'0',
'0',
':',
'0',
'0',0};
991 static const WCHAR driverDateLocalW[] = {
'1',
'/',
'1',
'/',
'2',
'0',
'1',
'6',
' ',
'1',
'0',
':',
'0',
'0',
':',
'0',
'0',
' ',
'A',
'M',0};
992 static const WCHAR naW[] = {
'n',
'/',
'a',0};
993 static const WCHAR ddi11W[] = {
'1',
'1',0};
998 DWORD available_mem = 0;
1003 if (!display_adapter)
1126 WARN(
"get_texture_memory helper failed\n");
1262 static const WCHAR szAdapterID[] = {
'0',0};
1278 if (!display_adapter)
1283 disp_dev.
cb =
sizeof(disp_dev);
1302 hr = IDirectDraw7_GetAvailableVidMem(pDirectDraw, &dd_caps, &tmp,
NULL);
1305 static const WCHAR mem_fmt[] = {
'%',
'.',
'1',
'f',
' ',
'M',
'B',0};
1318 surface_descr.
dwSize =
sizeof(surface_descr);
1319 hr = IDirectDraw7_GetDisplayMode(pDirectDraw, &surface_descr);
1348 for (tmp = 0; tmp <
ARRAY_SIZE(empty_properties); tmp++)
1357 IDirectDraw7_Release(pDirectDraw);
1382 '%',
'0',
'8',
'x',
'-',
'%',
'0',
'4',
'x',
'-',
'%',
'0',
'4',
'x',
'-',
'%',
'0',
1383 '2',
'x',
'%',
'0',
'2',
'x',
'-',
'%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
'%',
'0',
'2',
1384 'x',
'%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',
'%',
'0',
'2',
'x',0
1399 static const WCHAR deviceid_fmtW[] = {
'%',
'u',0};
1400 static const WCHAR szGuidDeviceID[] = {
's',
'z',
'G',
'u',
'i',
'd',
'D',
'e',
'v',
'i',
'c',
'e',
'I',
'D',0};
1401 static const WCHAR szDriverPath[] = {
's',
'z',
'D',
'r',
'i',
'v',
'e',
'r',
'P',
'a',
't',
'h',0};
1448 static const WCHAR DxDiag_SoundDevices[] = {
'D',
'x',
'D',
'i',
'a',
'g',
'_',
'S',
'o',
'u',
'n',
'd',
'D',
'e',
'v',
'i',
'c',
'e',
's',0};
1449 static const WCHAR DxDiag_SoundCaptureDevices[] = {
'D',
'x',
'D',
'i',
'a',
'g',
'_',
'S',
'o',
'u',
'n',
'd',
'C',
'a',
'p',
't',
'u',
'r',
'e',
'D',
'e',
'v',
'i',
'c',
'e',
's',0};
1507 static const WCHAR szSlashSep[] = {
'\\',0};
1508 static const WCHAR szPath[] = {
's',
'z',
'P',
'a',
't',
'h',0};
1509 static const WCHAR szName[] = {
's',
'z',
'N',
'a',
'm',
'e',0};
1510 static const WCHAR szVersion[] = {
's',
'z',
'V',
'e',
'r',
's',
'i',
'o',
'n',0};
1511 static const WCHAR szAttributes[] = {
's',
'z',
'A',
't',
't',
'r',
'i',
'b',
'u',
't',
'e',
's',0};
1512 static const WCHAR szLanguageEnglish[] = {
's',
'z',
'L',
'a',
'n',
'g',
'u',
'a',
'g',
'e',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
1513 static const WCHAR dwFileTimeHigh[] = {
'd',
'w',
'F',
'i',
'l',
'e',
'T',
'i',
'm',
'e',
'H',
'i',
'g',
'h',0};
1514 static const WCHAR dwFileTimeLow[] = {
'd',
'w',
'F',
'i',
'l',
'e',
'T',
'i',
'm',
'e',
'L',
'o',
'w',0};
1515 static const WCHAR bBeta[] = {
'b',
'B',
'e',
't',
'a',0};
1516 static const WCHAR bDebug[] = {
'b',
'D',
'e',
'b',
'u',
'g',0};
1517 static const WCHAR bExists[] = {
'b',
'E',
'x',
'i',
's',
't',
's',0};
1520 static const WCHAR szFinal_Retail_v[] = {
'F',
'i',
'n',
'a',
'l',
' ',
'R',
'e',
't',
'a',
'i',
'l',0};
1521 static const WCHAR szEnglish_v[] = {
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
1522 static const WCHAR szVersionFormat[] = {
'%',
'u',
'.',
'%',
'0',
'2',
'u',
'.',
'%',
'0',
'4',
'u',
'.',
'%',
'0',
'4',
'u',0};
1526 WCHAR szVersion_v[1024];
1528 void *pVersionInfo =
NULL;
1533 TRACE(
"Filling container %p for %s in %s\n",
node,
1556 VerQueryValueW(pVersionInfo, szSlashSep, (
void **)&pFileInfo, &uiLength))
1574 swprintf(szVersion_v, szVersionFormat,
1618 static const WCHAR dlls[][15] =
1620 {
'd',
'3',
'd',
'8',
'.',
'd',
'l',
'l',0},
1621 {
'd',
'3',
'd',
'9',
'.',
'd',
'l',
'l',0},
1622 {
'd',
'd',
'r',
'a',
'w',
'.',
'd',
'l',
'l',0},
1623 {
'd',
'e',
'v',
'e',
'n',
'u',
'm',
'.',
'd',
'l',
'l',0},
1624 {
'd',
'i',
'n',
'p',
'u',
't',
'8',
'.',
'd',
'l',
'l',0},
1625 {
'd',
'i',
'n',
'p',
'u',
't',
'.',
'd',
'l',
'l',0},
1626 {
'd',
'm',
'b',
'a',
'n',
'd',
'.',
'd',
'l',
'l',0},
1627 {
'd',
'm',
'c',
'o',
'm',
'p',
'o',
's',
'.',
'd',
'l',
'l',0},
1628 {
'd',
'm',
'i',
'm',
'e',
'.',
'd',
'l',
'l',0},
1629 {
'd',
'm',
'l',
'o',
'a',
'd',
'e',
'r',
'.',
'd',
'l',
'l',0},
1630 {
'd',
'm',
's',
'c',
'r',
'i',
'p',
't',
'.',
'd',
'l',
'l',0},
1631 {
'd',
'm',
's',
't',
'y',
'l',
'e',
'.',
'd',
'l',
'l',0},
1632 {
'd',
'm',
's',
'y',
'n',
't',
'h',
'.',
'd',
'l',
'l',0},
1633 {
'd',
'm',
'u',
's',
'i',
'c',
'.',
'd',
'l',
'l',0},
1634 {
'd',
'p',
'l',
'a',
'y',
'x',
'.',
'd',
'l',
'l',0},
1635 {
'd',
'p',
'n',
'e',
't',
'.',
'd',
'l',
'l',0},
1636 {
'd',
's',
'o',
'u',
'n',
'd',
'.',
'd',
'l',
'l',0},
1637 {
'd',
's',
'w',
'a',
'v',
'e',
'.',
'd',
'l',
'l',0},
1638 {
'd',
'x',
'd',
'i',
'a',
'g',
'n',
'.',
'd',
'l',
'l',0},
1639 {
'q',
'u',
'a',
'r',
't',
'z',
'.',
'd',
'l',
'l',0}
1650 static const WCHAR szFormat[] = {
'%',
'd',0};
1658 if (!file_container)
1676 static const WCHAR wszFriendlyName[] = {
'F',
'r',
'i',
'e',
'n',
'd',
'l',
'y',
'N',
'a',
'm',
'e',0};
1700 static const WCHAR szVersionW[] = {
's',
'z',
'V',
'e',
'r',
's',
'i',
'o',
'n',0};
1701 static const WCHAR dwInputs[] = {
'd',
'w',
'I',
'n',
'p',
'u',
't',
's',0};
1702 static const WCHAR dwOutputs[] = {
'd',
'w',
'O',
'u',
't',
'p',
'u',
't',
's',0};
1703 static const WCHAR dwMeritW[] = {
'd',
'w',
'M',
'e',
'r',
'i',
't',0};
1704 static const WCHAR szVersionFormat[] = {
'v',
'%',
'd',0};
1713 DWORD dwNOutputs = 0;
1714 DWORD dwNInputs = 0;
1717 (
void **)&pFileMapper);
1721 hr = IFilterMapper2_QueryInterface(pFileMapper, &IID_IAMFilterData, (
void **)&pFilterData);
1725 hr = IAMFilterData_ParseFilterData(pFilterData,
pData,
cb, &ppRF);
1737 for (
j = 0;
j < pRF->u.s1.
cPins;
j++)
1767 if (pFilterData) IAMFilterData_Release(pFilterData);
1768 if (pFileMapper) IFilterMapper2_Release(pFileMapper);
1775 static const WCHAR szName[] = {
's',
'z',
'N',
'a',
'm',
'e',0};
1776 static const WCHAR ClsidFilterW[] = {
'C',
'l',
's',
'i',
'd',
'F',
'i',
'l',
't',
'e',
'r',0};
1777 static const WCHAR wszFilterDataName[] = {
'F',
'i',
'l',
't',
'e',
'r',
'D',
'a',
't',
'a',0};
1827 if (pPropFilterBag) IPropertyBag_Release(pPropFilterBag);
1834 static const WCHAR szCatName[] = {
's',
'z',
'C',
'a',
't',
'N',
'a',
'm',
'e',0};
1835 static const WCHAR ClsidCatW[] = {
'C',
'l',
's',
'i',
'd',
'C',
'a',
't',0};
1836 static const WCHAR szIdFormat[] = {
'%',
'd',0};
1846 &IID_ICreateDevEnum, (
void **)&pCreateDevEnum);
1850 hr = ICreateDevEnum_CreateClassEnumerator(pCreateDevEnum, &CLSID_ActiveMovieCategories, &pEmCat, 0);
1854 while (IEnumMoniker_Next(pEmCat, 1, &pMCat,
NULL) ==
S_OK)
1865 IMoniker_Release(pMCat);
1870 IPropertyBag_Release(pPropBag);
1873 IMoniker_Release(pMCat);
1880 IMoniker_Release(pMCat);
1886 hr = ICreateDevEnum_CreateClassEnumerator(pCreateDevEnum, &clsidCat, &pEnum, 0);
1889 IMoniker_Release(pMCat);
1897 while (IEnumMoniker_Next(pEnum, 1, &pMoniker,
NULL) ==
S_OK)
1907 IMoniker_Release(pMoniker);
1915 IMoniker_Release(pMoniker);
1923 IMoniker_Release(pMoniker);
1928 IMoniker_Release(pMoniker);
1931 WARN(
"Skipping invalid filter\n");
1941 IEnumMoniker_Release(pEnum);
1942 IMoniker_Release(pMCat);
1951 if (pEmCat) IEnumMoniker_Release(pEmCat);
1952 ICreateDevEnum_Release(pCreateDevEnum);
1963 static const WCHAR DxDiag_SystemInfo[] = {
'D',
'x',
'D',
'i',
'a',
'g',
'_',
'S',
'y',
's',
't',
'e',
'm',
'I',
'n',
'f',
'o',0};
1964 static const WCHAR DxDiag_DisplayDevices[] = {
'D',
'x',
'D',
'i',
'a',
'g',
'_',
'D',
'i',
's',
'p',
'l',
'a',
'y',
'D',
'e',
'v',
'i',
'c',
'e',
's',0};
1965 static const WCHAR DxDiag_DirectSound[] = {
'D',
'x',
'D',
'i',
'a',
'g',
'_',
'D',
'i',
'r',
'e',
'c',
't',
'S',
'o',
'u',
'n',
'd',0};
1966 static const WCHAR DxDiag_DirectMusic[] = {
'D',
'x',
'D',
'i',
'a',
'g',
'_',
'D',
'i',
'r',
'e',
'c',
't',
'M',
'u',
's',
'i',
'c',0};
1967 static const WCHAR DxDiag_DirectInput[] = {
'D',
'x',
'D',
'i',
'a',
'g',
'_',
'D',
'i',
'r',
'e',
'c',
't',
'I',
'n',
'p',
'u',
't',0};
1968 static const WCHAR DxDiag_DirectPlay[] = {
'D',
'x',
'D',
'i',
'a',
'g',
'_',
'D',
'i',
'r',
'e',
'c',
't',
'P',
'l',
'a',
'y',0};
1969 static const WCHAR DxDiag_SystemDevices[] = {
'D',
'x',
'D',
'i',
'a',
'g',
'_',
'S',
'y',
's',
't',
'e',
'm',
'D',
'e',
'v',
'i',
'c',
'e',
's',0};
1970 static const WCHAR DxDiag_DirectXFiles[] = {
'D',
'x',
'D',
'i',
'a',
'g',
'_',
'D',
'i',
'r',
'e',
'c',
't',
'X',
'F',
'i',
'l',
'e',
's',0};
1971 static const WCHAR DxDiag_DirectShowFilters[] = {
'D',
'x',
'D',
'i',
'a',
'g',
'_',
'D',
'i',
'r',
'e',
'c',
't',
'S',
'h',
'o',
'w',
'F',
'i',
'l',
't',
'e',
'r',
's',0};
1972 static const WCHAR DxDiag_LogicalDisks[] = {
'D',
'x',
'D',
'i',
'a',
'g',
'_',
'L',
'o',
'g',
'i',
'c',
'a',
'l',
'D',
'i',
's',
'k',
's',0};
2022 *pinfo_root = info_root;
#define CO_E_NOTINITIALIZED
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static const WCHAR nameW[]
static void list_remove(struct list_entry *entry)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
BOOL WINAPI GetComputerNameW(LPWSTR lpBuffer, LPDWORD lpnSize)
static const WCHAR wszFriendlyName[]
enum _D3DFORMAT D3DFORMAT
IDirect3D9 *WINAPI Direct3DCreate9(UINT SDKVersion)
#define IDirect3D9_GetDeviceCaps(p, a, b, c)
#define IDirect3D9_GetAdapterDisplayMode(p, a, b)
#define IDirect3D9_GetAdapterIdentifier(p, a, b, c)
#define IDirect3D9_Release(p)
#define IDirect3D9_GetAdapterCount(p)
HRESULT WINAPI DirectDrawCreateEx(LPGUID lpGUID, LPVOID *lplpDD, REFIID id, LPUNKNOWN pUnkOuter)
HRESULT WINAPI DirectSoundEnumerateW(LPDSENUMCALLBACKW lpDSEnumCallback, LPVOID lpContext)
HRESULT WINAPI DirectSoundCaptureEnumerateW(LPDSENUMCALLBACKW lpDSEnumCallback, LPVOID lpContext)
HRESULT DXDiag_CreateDXDiagContainer(REFIID riid, IDxDiagContainerImpl_Container *cont, IDxDiagProvider *pProv, LPVOID *ppobj)
static HRESULT build_information_tree(IDxDiagContainerImpl_Container **pinfo_root)
static const WCHAR * vendor_id_to_manufacturer_string(DWORD vendor_id)
static const WCHAR szDriverLanguageEnglish[]
static ULONG WINAPI IDxDiagProviderImpl_AddRef(IDxDiagProvider *iface)
static const WCHAR szDACType[]
static HRESULT add_ui4_property(IDxDiagContainerImpl_Container *node, const WCHAR *propName, DWORD data)
static const WCHAR dwBpp[]
static const WCHAR szMiniVddDateEnglish[]
static const WCHAR dwDDIVersion[]
static const IDxDiagProviderVtbl DxDiagProvider_Vtbl
static HRESULT add_ull_as_bstr_property(IDxDiagContainerImpl_Container *node, const WCHAR *propName, ULONGLONG data)
static BOOL is_netmeeting_running(void)
static HRESULT build_systeminfo_tree(IDxDiagContainerImpl_Container *node)
static const WCHAR szMiniVddDateLocalized[]
static const WCHAR szDisplayMemoryLocalized[]
static HRESULT read_property_names(IPropertyBag *pPropBag, VARIANT *friendly_name, VARIANT *clsid_name)
static HRESULT add_bstr_property(IDxDiagContainerImpl_Container *node, const WCHAR *propName, const WCHAR *str)
static const WCHAR dwWidth[]
static const WCHAR szKeyDeviceID[]
static HRESULT build_directsound_tree(IDxDiagContainerImpl_Container *node)
static HRESULT build_directshowfilters_tree(IDxDiagContainerImpl_Container *node)
static const WCHAR szDDIVersionLocalized[]
static const WCHAR szRevisionId[]
static const WCHAR bDriverSignedValid[]
static HRESULT fill_file_description(IDxDiagContainerImpl_Container *node, const WCHAR *szFilePath, const WCHAR *szFileName)
static const WCHAR szDisplayModeEnglish[]
static const WCHAR szMonitorMaxRes[]
static const WCHAR lDriverSize[]
static const WCHAR dwHeight[]
static const WCHAR szMonitorName[]
static DWORD * enumerate_processes(DWORD *list_count)
static IDxDiagContainerImpl_Property * allocate_property_information(const WCHAR *name)
static IDxDiagProviderImpl * impl_from_IDxDiagProvider(IDxDiagProvider *iface)
static const WCHAR dwRefreshRate[]
static void add_subcontainer(IDxDiagContainerImpl_Container *node, IDxDiagContainerImpl_Container *subCont)
BOOL CALLBACK dsound_enum(LPGUID guid, LPCWSTR desc, LPCWSTR module, LPVOID context)
static const WCHAR szGUIDFmt[]
static const WCHAR szRevision[]
static IDxDiagContainerImpl_Container * allocate_information_node(const WCHAR *name)
static void free_property_information(IDxDiagContainerImpl_Property *prop)
static const WCHAR szDisplayMemoryEnglish[]
static HRESULT fill_processor_information(IDxDiagContainerImpl_Container *node)
static const WCHAR szDriverDateEnglish[]
static HRESULT fill_language_information(IDxDiagContainerImpl_Container *node)
static const WCHAR szDisplayModeLocalized[]
static const WCHAR szSubSysId[]
static const WCHAR szVdd[]
static const WCHAR szDDIVersionEnglish[]
static HRESULT fill_filter_container(IDxDiagContainerImpl_Container *subcont, IMoniker *pMoniker)
static const WCHAR szDriverVersion[]
static BOOL get_texture_memory(GUID *adapter, DWORD *available_mem)
static const WCHAR szKeyDeviceKey[]
static const WCHAR bDriverSigned[]
static ULONG WINAPI IDxDiagProviderImpl_Release(IDxDiagProvider *iface)
static HRESULT fill_display_information_d3d(IDxDiagContainerImpl_Container *node)
static HRESULT build_displaydevices_tree(IDxDiagContainerImpl_Container *node)
static HRESULT add_bool_property(IDxDiagContainerImpl_Container *node, const WCHAR *propName, BOOL data)
static DWORD depth_for_pixelformat(D3DFORMAT format)
static HRESULT fill_filter_data_information(IDxDiagContainerImpl_Container *subcont, BYTE *pData, ULONG cb)
static HRESULT build_systemdevices_tree(IDxDiagContainerImpl_Container *node)
static HRESULT build_logicaldisks_tree(IDxDiagContainerImpl_Container *node)
static const WCHAR szVendorId[]
static HRESULT build_directxfiles_tree(IDxDiagContainerImpl_Container *node)
static const WCHAR szDriverDateLocalized[]
static const WCHAR szMiniVdd[]
static const WCHAR bDriverDebug[]
static const WCHAR szDriverAttributes[]
static const WCHAR bCanRenderWindow[]
static HRESULT WINAPI IDxDiagProviderImpl_GetRootContainer(IDxDiagProvider *iface, IDxDiagContainer **ppInstance)
static const WCHAR bDriverBeta[]
static HRESULT fill_datetime_information(IDxDiagContainerImpl_Container *node)
static HRESULT WINAPI IDxDiagProviderImpl_Initialize(IDxDiagProvider *iface, DXDIAG_INIT_PARAMS *pParams)
static BOOL get_process_name_from_pid(DWORD pid, WCHAR *buf, DWORD chars)
static const WCHAR szDriverLanguageLocalized[]
static const WCHAR dwWHQLLevel[]
static const WCHAR szDeviceName[]
static const WCHAR szManufacturer[]
static const WCHAR lMiniVddSize[]
static const WCHAR szDescription[]
static const WCHAR szDeviceId[]
static HRESULT build_directinput_tree(IDxDiagContainerImpl_Container *node)
static const WCHAR iAdapter[]
static const WCHAR szChipType[]
HRESULT DXDiag_CreateDXDiagProvider(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, REFIID riid, LPVOID *ppobj)
static HRESULT fill_os_string_information(IDxDiagContainerImpl_Container *node, OSVERSIONINFOW *info)
static const WCHAR szDeviceIdentifier[]
static HRESULT build_directplay_tree(IDxDiagContainerImpl_Container *node)
static HRESULT build_directmusic_tree(IDxDiagContainerImpl_Container *node)
static HRESULT WINAPI IDxDiagProviderImpl_QueryInterface(IDxDiagProvider *iface, REFIID riid, void **ppobj)
static HRESULT add_i4_property(IDxDiagContainerImpl_Container *node, const WCHAR *propName, LONG data)
static void free_information_tree(IDxDiagContainerImpl_Container *node)
static LPWSTR guid_to_string(LPWSTR lpwstr, REFGUID lpcguid)
static const WCHAR szEmpty[]
static const WCHAR szDriverName[]
static const WCHAR szDriverSignDate[]
static HRESULT fill_display_information_fallback(IDxDiagContainerImpl_Container *node)
#define IDS_PAGE_FILE_FORMAT
#define IDS_REGIONAL_SETTING
static const WCHAR wszClsidName[]
static const WCHAR wszFilterDataName[]
static WCHAR no[MAX_STRING_RESOURCE_LEN]
#define HeapFree(x, y, z)
#define MultiByteToWideChar
static void cleanup(void)
static const WCHAR descriptionW[]
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
HANDLE WINAPI OpenProcess(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwProcessId)
VOID WINAPI GetLocalTime(OUT LPSYSTEMTIME lpSystemTime)
BOOL WINAPI GetVersionExW(IN LPOSVERSIONINFOW lpVersionInformation)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
HRESULT WINAPI SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
HRESULT WINAPI SafeArrayUnaccessData(SAFEARRAY *psa)
BOOL WINAPI EnumProcessModules(HANDLE hProcess, HMODULE *lphModule, DWORD cb, LPDWORD lpcbNeeded)
BOOL WINAPI EnumProcesses(DWORD *lpidProcess, DWORD cb, LPDWORD lpcbNeeded)
DWORD WINAPI GetModuleBaseNameW(HANDLE hProcess, HMODULE hModule, LPWSTR lpBaseName, DWORD nSize)
BOOL WINAPI GetFileVersionInfoW(LPCWSTR filename, DWORD handle, DWORD datasize, LPVOID data)
BOOL WINAPI VerQueryValueW(LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen)
DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR filename, LPDWORD handle)
HINSTANCE dxdiagn_instance
static void DXDIAGN_UnlockModule(void)
static void DXDIAGN_LockModule(void)
#define DXDIAG_DX9_SDK_VERSION
static const WCHAR unknownW[]
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLuint GLenum GLsizei const GLchar * buf
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
BOOL NTAPI GlobalMemoryStatusEx(LPMEMORYSTATUSEX lpBuffer)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
#define PROCESS_QUERY_INFORMATION
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
int _snwprintf(wchar_t *buffer, size_t count, const wchar_t *format,...)
static const WCHAR desc[]
static const WCHAR friendly_name[]
static const WCHAR DxDiag_SystemInfo[]
static const WCHAR DxDiag_SoundDevices[]
static const WCHAR DxDiag_DisplayDevices[]
static const WCHAR DxDiag_SoundCaptureDevices[]
static HMODULE MODULEINFO DWORD cb
static WCHAR computer_name[MAX_COMPUTERNAME_LENGTH+1]
#define LOCALE_USER_DEFAULT
#define LOCALE_SYSTEM_DEFAULT
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
const GUID IID_IPropertyBag
static const WCHAR szName[]
static const WCHAR driverW[]
#define IsEqualGUID(rguid1, rguid2)
static WCHAR szFilePath[]
#define DDSCAPS_VIDEOMEMORY
#define DDSCAPS_LOCALVIDMEM
__WINE_SERVER_LIST_INLINE unsigned int list_count(const struct list *list)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
IDxDiagContainerImpl_Container * info_root
IDxDiagProvider IDxDiagProvider_iface
DXDIAG_INIT_PARAMS params
const REGFILTERPINS * rgPins
const REGFILTERPINS2 * rgPins2
char Driver[MAX_DEVICE_IDENTIFIER_STRING]
char Description[MAX_DEVICE_IDENTIFIER_STRING]
LARGE_INTEGER DriverVersion
DDPIXELFORMAT ddpfPixelFormat
DWORD dwDxDiagHeaderVersion
IDxDiagContainerImpl_Container * cont
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
#define CONTAINING_RECORD(address, type, field)
struct _LARGE_INTEGER::@2299 u
HRESULT WINAPI DECLSPEC_HOTPATCH VariantChangeType(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, USHORT wFlags, VARTYPE vt)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
void WINAPI VariantInit(VARIANTARG *pVarg)
BOOL WINAPI EnumDisplayDevicesW(LPCWSTR lpDevice, DWORD iDevNum, PDISPLAY_DEVICEW lpDisplayDevice, DWORD dwFlags)
#define FORMAT_MESSAGE_FROM_STRING
#define FORMAT_MESSAGE_ARGUMENT_ARRAY
#define MAX_COMPUTERNAME_LENGTH
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
#define CLASS_E_NOAGGREGATION
#define LOCALE_SENGLANGUAGE
#define LOCALE_SNATIVELANGNAME
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)