windows-nt/Source/XPSP1/NT/multimedia/directx/dxdiag/fileinfo.h
2020-09-26 16:20:57 +08:00

65 lines
2.2 KiB
C

/****************************************************************************
*
* File: fileinfo.h
* Project: DxDiag (DirectX Diagnostic Tool)
* Author: Mike Anderson (manders@microsoft.com)
* Purpose: Gather information about files on this machine
*
* (C) Copyright 1998 Microsoft Corp. All rights reserved.
*
****************************************************************************/
#ifndef FILEINFO_H
#define FILEINFO_H
struct FileInfo
{
TCHAR m_szName[60];
TCHAR m_szVersion[50];
TCHAR m_szLanguage[100];
TCHAR m_szLanguageLocal[100]; // Localized m_szLanguage
TCHAR m_szDatestamp[30];
TCHAR m_szDatestampLocal[30]; // Localized m_szDatestamp
TCHAR m_szAttributes[50];
FILETIME m_FileTime;
LONG m_numBytes;
BOOL m_bExists;
BOOL m_bSigned;
BOOL m_bInUse;
BOOL m_bBeta;
BOOL m_bDebug;
FLOAT m_fStartShipAt;
FLOAT m_fStopShipAt;
BOOL m_bOptional;
BOOL m_bOptionalOnNT;
BOOL m_bOptionalOnPreDX8;
BOOL m_bIgnoreVersionInfo;
BOOL m_bIgnoreDebug;
BOOL m_bIgnoreBeta;
BOOL m_bBDA;
BOOL m_bNotIA64;
BOOL m_bOptionalOnWOW64;
BOOL m_bProblem;
BOOL m_bObsolete; // Note: this is set by DiagnoseDxFiles, not anything in fileinfo
FileInfo* m_pFileInfoNext;
};
VOID InitFileInfo(VOID);
HRESULT GetComponentFiles(TCHAR* pszFolder, FileInfo** ppFileInfoFirst,
BOOL bSkipMissingFiles, LONG ids);
VOID DestroyFileList(FileInfo* pFileInfoFirst);
VOID ReleaseDigiSignData(VOID);
VOID FileIsSigned(LPTSTR lpszFile, BOOL* pbSigned, BOOL* pbIsValid);
WORD GetLanguageFromFile(const TCHAR* pszFileName, const TCHAR* pszPath);
HRESULT GetFileVersion(TCHAR* pszFile, TCHAR* pszVersion,
TCHAR* pszAttributes, TCHAR* pszLanguageLocal, TCHAR* pszLanguage,
BOOL* pbBeta = NULL, BOOL* pbDebug = NULL);
HRESULT GetRiffFileVersion(TCHAR* pszFile, TCHAR* pszVersion);
BOOL GetFileDateAndSize(TCHAR* pszFile, TCHAR* pszDateLocal, TCHAR* pszDateEnglish, LONG* pnumBytes);
BOOL GetProgramFilesFolder(TCHAR* pszPath);
BOOL GetDxSetupFolder(TCHAR* pszPath);
VOID DiagnoseDxFiles(SysInfo* pSysInfo, FileInfo* pDxComponentsFileInfoFirst, FileInfo* pDxWinComponentsFileInfoFirst );
#endif // FILEINFO_H