25 #define NONAMELESSUNION 26 #define NONAMELESSSTRUCT 41 #include "wine/fil_data.h" 55 static const WCHAR szDescription[] = {
's',
'z',
'D',
'e',
's',
'c',
'r',
'i',
'p',
't',
'i',
'o',
'n',0};
56 static const WCHAR szDeviceName[] = {
's',
'z',
'D',
'e',
'v',
'i',
'c',
'e',
'N',
'a',
'm',
'e',0};
57 static const WCHAR szKeyDeviceID[] = {
's',
'z',
'K',
'e',
'y',
'D',
'e',
'v',
'i',
'c',
'e',
'I',
'D',0};
58 static const WCHAR szKeyDeviceKey[] = {
's',
'z',
'K',
'e',
'y',
'D',
'e',
'v',
'i',
'c',
'e',
'K',
'e',
'y',0};
59 static const WCHAR szVendorId[] = {
's',
'z',
'V',
'e',
'n',
'd',
'o',
'r',
'I',
'd',0};
60 static const WCHAR szDeviceId[] = {
's',
'z',
'D',
'e',
'v',
'i',
'c',
'e',
'I',
'd',0};
61 static const WCHAR szDeviceIdentifier[] = {
's',
'z',
'D',
'e',
'v',
'i',
'c',
'e',
'I',
'd',
'e',
'n',
't',
'i',
'f',
'i',
'e',
'r',0};
65 static 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};
66 static 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};
67 static 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};
68 static const WCHAR szDisplayModeEnglish[] = {
's',
'z',
'D',
'i',
's',
'p',
'l',
'a',
'y',
'M',
'o',
'd',
'e',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
69 static const WCHAR szDriverName[] = {
's',
'z',
'D',
'r',
'i',
'v',
'e',
'r',
'N',
'a',
'm',
'e',0};
70 static const WCHAR szDriverVersion[] = {
's',
'z',
'D',
'r',
'i',
'v',
'e',
'r',
'V',
'e',
'r',
's',
'i',
'o',
'n',0};
71 static const WCHAR szSubSysId[] = {
's',
'z',
'S',
'u',
'b',
'S',
'y',
's',
'I',
'd',0};
72 static const WCHAR szRevisionId[] = {
's',
'z',
'R',
'e',
'v',
'i',
's',
'i',
'o',
'n',
'I',
'd',0};
73 static const WCHAR dwRefreshRate[] = {
'd',
'w',
'R',
'e',
'f',
'r',
'e',
's',
'h',
'R',
'a',
't',
'e',0};
74 static const WCHAR szManufacturer[] = {
's',
'z',
'M',
'a',
'n',
'u',
'f',
'a',
'c',
't',
'u',
'r',
'e',
'r',0};
75 static const WCHAR szChipType[] = {
's',
'z',
'C',
'h',
'i',
'p',
'T',
'y',
'p',
'e',0};
77 static const WCHAR szRevision[] = {
's',
'z',
'R',
'e',
'v',
'i',
's',
'i',
'o',
'n',0};
78 static const WCHAR szMonitorName[] = {
's',
'z',
'M',
'o',
'n',
'i',
't',
'o',
'r',
'N',
'a',
'm',
'e',0};
79 static const WCHAR szMonitorMaxRes[] = {
's',
'z',
'M',
'o',
'n',
'i',
't',
'o',
'r',
'M',
'a',
'x',
'R',
'e',
's',0};
80 static const WCHAR szDriverAttributes[] = {
's',
'z',
'D',
'r',
'i',
'v',
'e',
'r',
'A',
't',
't',
'r',
'i',
'b',
'u',
't',
'e',
's',0};
81 static 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};
82 static 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};
83 static const WCHAR szDriverDateEnglish[] = {
's',
'z',
'D',
'r',
'i',
'v',
'e',
'r',
'D',
'a',
't',
'e',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
84 static 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};
85 static const WCHAR lDriverSize[] = {
'l',
'D',
'r',
'i',
'v',
'e',
'r',
'S',
'i',
'z',
'e',0};
87 static 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};
88 static const WCHAR szMiniVddDateEnglish[] = {
's',
'z',
'M',
'i',
'n',
'i',
'V',
'd',
'd',
'D',
'a',
't',
'e',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
89 static const WCHAR lMiniVddSize[] = {
'l',
'M',
'i',
'n',
'i',
'V',
'd',
'd',
'S',
'i',
'z',
'e',0};
91 static const WCHAR bCanRenderWindow[] = {
'b',
'C',
'a',
'n',
'R',
'e',
'n',
'd',
'e',
'r',
'W',
'i',
'n',
'd',
'o',
'w',0};
92 static const WCHAR bDriverBeta[] = {
'b',
'D',
'r',
'i',
'v',
'e',
'r',
'B',
'e',
't',
'a',0};
93 static const WCHAR bDriverDebug[] = {
'b',
'D',
'r',
'i',
'v',
'e',
'r',
'D',
'e',
'b',
'u',
'g',0};
94 static const WCHAR bDriverSigned[] = {
'b',
'D',
'r',
'i',
'v',
'e',
'r',
'S',
'i',
'g',
'n',
'e',
'd',0};
95 static const WCHAR bDriverSignedValid[] = {
'b',
'D',
'r',
'i',
'v',
'e',
'r',
'S',
'i',
'g',
'n',
'e',
'd',
'V',
'a',
'l',
'i',
'd',0};
96 static const WCHAR szDriverSignDate[] = {
's',
'z',
'D',
'r',
'i',
'v',
'e',
'r',
'S',
'i',
'g',
'n',
'D',
'a',
't',
'e',0};
97 static const WCHAR dwDDIVersion[] = {
'd',
'w',
'D',
'D',
'I',
'V',
'e',
'r',
's',
'i',
'o',
'n',0};
98 static const WCHAR szDDIVersionEnglish[] = {
's',
'z',
'D',
'D',
'I',
'V',
'e',
'r',
's',
'i',
'o',
'n',
'E',
'n',
'g',
'l',
'i',
's',
'h',0};
99 static 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};
101 static 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;
static const WCHAR szGUIDFmt[]
struct _LARGE_INTEGER::@2253 u
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
static HRESULT build_systemdevices_tree(IDxDiagContainerImpl_Container *node)
static HRESULT WINAPI IDxDiagProviderImpl_GetRootContainer(IDxDiagProvider *iface, IDxDiagContainer **ppInstance)
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
static const WCHAR szName[]
HRESULT WINAPI DECLSPEC_HOTPATCH VariantChangeType(VARIANTARG *pvargDest, VARIANTARG *pvargSrc, USHORT wFlags, VARTYPE vt)
#define DXDIAG_DX9_SDK_VERSION
static HRESULT add_bool_property(IDxDiagContainerImpl_Container *node, const WCHAR *propName, BOOL data)
static const WCHAR wszFriendlyName[]
static WCHAR szFilePath[]
VOID WINAPI CoTaskMemFree(LPVOID ptr)
static static const char __ms_va_list
static const WCHAR lDriverSize[]
static HRESULT add_ull_as_bstr_property(IDxDiagContainerImpl_Container *node, const WCHAR *propName, ULONGLONG data)
#define LOCALE_SENGLANGUAGE
#define PROCESS_QUERY_INFORMATION
static const WCHAR szDeviceId[]
static HRESULT fill_filter_data_information(IDxDiagContainerImpl_Container *subcont, BYTE *pData, ULONG cb)
static HRESULT build_displaydevices_tree(IDxDiagContainerImpl_Container *node)
static const WCHAR szVdd[]
static HRESULT fill_language_information(IDxDiagContainerImpl_Container *node)
static const WCHAR dwRefreshRate[]
#define LOCALE_USER_DEFAULT
static void add_subcontainer(IDxDiagContainerImpl_Container *node, IDxDiagContainerImpl_Container *subCont)
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
GLuint GLuint GLsizei count
#define FORMAT_MESSAGE_ARGUMENT_ARRAY
#define FORMAT_MESSAGE_FROM_STRING
static IDxDiagContainerImpl_Container * allocate_information_node(const WCHAR *name)
static HRESULT add_ui4_property(IDxDiagContainerImpl_Container *node, const WCHAR *propName, DWORD data)
static const WCHAR dwWHQLLevel[]
const REGFILTERPINS2 * rgPins2
static HRESULT add_bstr_property(IDxDiagContainerImpl_Container *node, const WCHAR *propName, const WCHAR *str)
static BOOL get_process_name_from_pid(DWORD pid, WCHAR *buf, DWORD chars)
static IDxDiagContainerImpl_Property * allocate_property_information(const WCHAR *name)
static HRESULT fill_display_information_d3d(IDxDiagContainerImpl_Container *node)
static HRESULT build_logicaldisks_tree(IDxDiagContainerImpl_Container *node)
static HRESULT fill_filter_container(IDxDiagContainerImpl_Container *subcont, IMoniker *pMoniker)
static const WCHAR szDisplayMemoryLocalized[]
WINE_DEFAULT_DEBUG_CHANNEL(dxdiag)
static const WCHAR szDeviceIdentifier[]
char Description[MAX_DEVICE_IDENTIFIER_STRING]
static HRESULT build_directinput_tree(IDxDiagContainerImpl_Container *node)
static const WCHAR szDriverVersion[]
static const WCHAR szKeyDeviceID[]
LARGE_INTEGER DriverVersion
BOOL WINAPI GetComputerNameW(LPWSTR lpBuffer, LPDWORD lpnSize)
static HRESULT build_directsound_tree(IDxDiagContainerImpl_Container *node)
void WINAPI VariantInit(VARIANTARG *pVarg)
BOOL WINAPI GetVersionExW(IN LPOSVERSIONINFOW lpVersionInformation)
HRESULT WINAPI DirectDrawCreateEx(LPGUID lpGUID, LPVOID *lplpDD, REFIID id, LPUNKNOWN pUnkOuter)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
static HRESULT build_directshowfilters_tree(IDxDiagContainerImpl_Container *node)
IDirect3D9 *WINAPI Direct3DCreate9(UINT SDKVersion)
static HRESULT fill_processor_information(IDxDiagContainerImpl_Container *node)
#define IDirect3D9_GetAdapterCount(p)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
#define CO_E_NOTINITIALIZED
static void DXDIAGN_UnlockModule(void)
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
static const WCHAR DxDiag_SystemInfo[]
static void DXDIAGN_LockModule(void)
static const WCHAR DxDiag_SoundCaptureDevices[]
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
GLenum GLuint GLenum GLsizei const GLchar * buf
#define IDirect3D9_Release(p)
static const WCHAR szDACType[]
static const WCHAR szDDIVersionEnglish[]
static const WCHAR szMonitorMaxRes[]
static const WCHAR DxDiag_SoundDevices[]
static HRESULT fill_display_information_fallback(IDxDiagContainerImpl_Container *node)
static const WCHAR driverW[]
HRESULT WINAPI SafeArrayAccessData(SAFEARRAY *psa, void **ppvData)
__WINE_SERVER_LIST_INLINE unsigned int list_count(const struct list *list)
static const WCHAR desc[]
static struct _test_info info[]
static WCHAR computer_name[MAX_COMPUTERNAME_LENGTH+1]
HRESULT DXDiag_CreateDXDiagProvider(LPCLASSFACTORY iface, LPUNKNOWN punkOuter, REFIID riid, LPVOID *ppobj)
HRESULT WINAPI DirectSoundCaptureEnumerateW(LPDSENUMCALLBACKW lpDSEnumCallback, LPVOID lpContext)
DDPIXELFORMAT ddpfPixelFormat
static const WCHAR dwDDIVersion[]
static const WCHAR bCanRenderWindow[]
IDxDiagProvider IDxDiagProvider_iface
int _snwprintf(wchar_t *buffer, size_t count, const wchar_t *format,...)
const GUID IID_IPropertyBag
static HRESULT build_directxfiles_tree(IDxDiagContainerImpl_Container *node)
static ULONG WINAPI IDxDiagProviderImpl_AddRef(IDxDiagProvider *iface)
BSTR WINAPI SysAllocString(LPCOLESTR str)
static const WCHAR szDriverDateLocalized[]
static DWORD * enumerate_processes(DWORD *list_count)
const REGFILTERPINS * rgPins
BOOL WINAPI EnumDisplayDevicesW(LPCWSTR lpDevice, DWORD iDevNum, PDISPLAY_DEVICEW lpDisplayDevice, DWORD dwFlags)
VOID WINAPI GetLocalTime(OUT LPSYSTEMTIME lpSystemTime)
IDxDiagContainerImpl_Container * cont
enum _D3DFORMAT D3DFORMAT
static BOOL is_netmeeting_running(void)
static const WCHAR szDriverName[]
#define DDSCAPS_VIDEOMEMORY
DWORD WINAPI GetModuleBaseNameW(HANDLE hProcess, HMODULE hModule, LPWSTR lpBaseName, DWORD nSize)
static void free_information_tree(IDxDiagContainerImpl_Container *node)
static const WCHAR szRevision[]
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
static const WCHAR dwHeight[]
static const WCHAR szKeyDeviceKey[]
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
static const WCHAR nameW[]
static const WCHAR szDriverDateEnglish[]
static const WCHAR szEmpty[]
DXDIAG_INIT_PARAMS params
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
#define IDS_PAGE_FILE_FORMAT
static WCHAR no[MAX_STRING_RESOURCE_LEN]
BOOL WINAPI EnumProcessModules(HANDLE hProcess, HMODULE *lphModule, DWORD cb, LPDWORD lpcbNeeded)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
static const WCHAR bDriverSigned[]
static const WCHAR szMiniVddDateLocalized[]
static const WCHAR wszClsidName[]
static const WCHAR szMonitorName[]
static IDxDiagProviderImpl * impl_from_IDxDiagProvider(IDxDiagProvider *iface)
static const WCHAR dwBpp[]
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
#define LOCALE_SYSTEM_DEFAULT
static const WCHAR unknownW[]
static const WCHAR lMiniVddSize[]
static const WCHAR bDriverSignedValid[]
static HRESULT build_systeminfo_tree(IDxDiagContainerImpl_Container *node)
static const WCHAR * vendor_id_to_manufacturer_string(DWORD vendor_id)
HRESULT WINAPI DirectSoundEnumerateW(LPDSENUMCALLBACKW lpDSEnumCallback, LPVOID lpContext)
static HRESULT fill_os_string_information(IDxDiagContainerImpl_Container *node, OSVERSIONINFOW *info)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
DWORD dwDxDiagHeaderVersion
static HRESULT add_i4_property(IDxDiagContainerImpl_Container *node, const WCHAR *propName, LONG data)
_In_opt_ PVOID _In_ ULONG _In_ PVOID context
static HRESULT build_directplay_tree(IDxDiagContainerImpl_Container *node)
static const WCHAR szMiniVdd[]
static const WCHAR szDisplayModeEnglish[]
#define IDirect3D9_GetAdapterIdentifier(p, a, b, c)
static ULONG WINAPI IDxDiagProviderImpl_Release(IDxDiagProvider *iface)
static HRESULT build_information_tree(IDxDiagContainerImpl_Container **pinfo_root)
static const WCHAR szDisplayMemoryEnglish[]
static const WCHAR szDriverLanguageLocalized[]
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
#define DDSCAPS_LOCALVIDMEM
#define InterlockedDecrement
static const WCHAR szRevisionId[]
static HRESULT fill_file_description(IDxDiagContainerImpl_Container *node, const WCHAR *szFilePath, const WCHAR *szFileName)
HRESULT DXDiag_CreateDXDiagContainer(REFIID riid, IDxDiagContainerImpl_Container *cont, IDxDiagProvider *pProv, LPVOID *ppobj)
DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR filename, LPDWORD handle)
#define memcpy(s1, s2, n)
static BOOL get_texture_memory(GUID *adapter, DWORD *available_mem)
static HRESULT fill_datetime_information(IDxDiagContainerImpl_Container *node)
#define IDirect3D9_GetDeviceCaps(p, a, b, c)
static const WCHAR bDriverDebug[]
static const WCHAR szDeviceName[]
#define CLASS_E_NOAGGREGATION
int _cdecl swprintf(const WCHAR *,...)
#define LOCALE_SNATIVELANGNAME
static LPWSTR guid_to_string(LPWSTR lpwstr, REFGUID lpcguid)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
#define MAX_COMPUTERNAME_LENGTH
static const WCHAR szMiniVddDateEnglish[]
HANDLE WINAPI OpenProcess(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwProcessId)
static void free_property_information(IDxDiagContainerImpl_Property *prop)
#define IDS_REGIONAL_SETTING
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
#define InterlockedIncrement
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
BOOL WINAPI EnumProcesses(DWORD *lpidProcess, DWORD cb, LPDWORD lpcbNeeded)
static const WCHAR szDriverLanguageEnglish[]
static const WCHAR wszFilterDataName[]
static const WCHAR friendly_name[]
static const WCHAR szChipType[]
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
static const WCHAR szDriverAttributes[]
static HRESULT read_property_names(IPropertyBag *pPropBag, VARIANT *friendly_name, VARIANT *clsid_name)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
static const WCHAR szDDIVersionLocalized[]
#define MultiByteToWideChar
HINSTANCE dxdiagn_instance
BOOL WINAPI GetFileVersionInfoW(LPCWSTR filename, DWORD handle, DWORD datasize, LPVOID data)
BOOL CALLBACK dsound_enum(LPGUID guid, LPCWSTR desc, LPCWSTR module, LPVOID context)
char Driver[MAX_DEVICE_IDENTIFIER_STRING]
static const WCHAR descriptionW[]
static HMODULE MODULEINFO DWORD cb
static HRESULT build_directmusic_tree(IDxDiagContainerImpl_Container *node)
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id)
IDxDiagContainerImpl_Container * info_root
static HRESULT WINAPI IDxDiagProviderImpl_Initialize(IDxDiagProvider *iface, DXDIAG_INIT_PARAMS *pParams)
char * cleanup(char *str)
BOOL NTAPI GlobalMemoryStatusEx(LPMEMORYSTATUSEX lpBuffer)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
static const WCHAR DxDiag_DisplayDevices[]
static const WCHAR iAdapter[]
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
static const WCHAR szManufacturer[]
#define HeapFree(x, y, z)
static HRESULT WINAPI IDxDiagProviderImpl_QueryInterface(IDxDiagProvider *iface, REFIID riid, void **ppobj)
static const WCHAR szDriverSignDate[]
static const WCHAR dwWidth[]
static DWORD depth_for_pixelformat(D3DFORMAT format)
HRESULT WINAPI SafeArrayUnaccessData(SAFEARRAY *psa)
static const WCHAR szDisplayModeLocalized[]
static const WCHAR szVendorId[]
static const WCHAR bDriverBeta[]
static const WCHAR szDescription[]
BOOL WINAPI VerQueryValueW(LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen)
#define IDirect3D9_GetAdapterDisplayMode(p, a, b)
static const WCHAR szSubSysId[]
static const IDxDiagProviderVtbl DxDiagProvider_Vtbl
GLuint const GLchar * name