当前位置:网站首页>获取文件版权信息
获取文件版权信息
2022-07-02 09:45:00 【如鹿渴慕泉水】
BOOL lsGetFileLegalCopyright(LPCTSTR lptstrFilename, CString& strData)
{
if (lptstrFilename == NULL)
return FALSE;
DWORD dwHandle;
UINT dwBytesNeeded = GetFileVersionInfoSize(lptstrFilename, &dwHandle);
if (dwBytesNeeded > 0)
{
BYTE* lpVersionBlock = new BYTE[dwBytesNeeded];
if (lpVersionBlock == NULL)
return FALSE;
if (GetFileVersionInfo(lptstrFilename, 0, dwBytesNeeded, lpVersionBlock))
{
BYTE* lpTranslate = NULL;
if (VerQueryValue(lpVersionBlock, TEXT("\\VarFileInfo\\Translation"), (LPVOID*)&lpTranslate, &dwBytesNeeded) &&
(lpTranslate != NULL))
{
CString strSubBlock = TEXT(""), strTranslate = TEXT(""), strTranslation = TEXT("");
strTranslate.Format(TEXT("000%x"), *((unsigned short int*)lpTranslate));
strTranslation = strTranslate.Right(4);
strTranslate.Format(TEXT("000%x"), *((unsigned short int*) & lpTranslate[2]));
strTranslation += strTranslate.Right(4);
strSubBlock.Format(TEXT("\\StringFileInfo\\%s\\LegalCopyright"), strTranslation.GetBuffer(0));
if (VerQueryValue(lpVersionBlock, strSubBlock.GetBuffer(0), (LPVOID*)&lpTranslate, &dwBytesNeeded) &&
(lpTranslate != NULL))
{
strData.Format(TEXT("%s"), lpTranslate);
//LPTSTR lpszData = new TCHAR [dwBytesNeeded + 1];//强制多添加几个
//memset(lpszData, 0, sizeof(TCHAR)*(dwBytesNeeded + 1));
//memcpy(lpszData, lpTranslate, dwBytesNeeded);
//lpszData[dwBytesNeeded] = '\0'; //强制结尾
//strData.Format(TEXT("%s"), lpszData);
//delete [] lpszData;
}
delete[] lpVersionBlock;
return TRUE;
}
}
delete[] lpVersionBlock;
}
return FALSE;
}
边栏推荐
- High performance erasure code coding
- Go学习笔记—多线程
- Writing method of then part in drools
- arcgis js 4. Add pictures to x map
- China traffic sign detection data set
- 通过反射执行任意类的任意方法
- Addition, deletion, modification and query of MySQL table (Advanced)
- 2.7 binary tree, post order traversal - [FBI tree]
- Use MySQL events to regularly perform post seven world line tasks
- NTMFS4C05NT1G N-CH 30V 11.9A MOS管,PDF
猜你喜欢

VLAN experiment

JS7day(事件对象,事件流,事件捕获和冒泡,阻止事件流动,事件委托,学生信息表案例)

spfa AcWing 852. spfa判断负环

NTMFS4C05NT1G N-CH 30V 11.9A MOS管,PDF

SparkContext: Error initializing SparkContext解决方法

Deep Copy Event bus

通过反射执行任意类的任意方法

JSON序列化 与 解析

ArrayList与LinkedList效率的对比

Anxiety of a 211 programmer: working for 3 years with a monthly salary of less than 30000, worried about being replaced by fresh students
随机推荐
About asp Net MVC project in local vs running response time is too long to access, the solution!
SparkContext: Error initializing SparkContext解决方法
线性DP AcWing 897. 最长公共子序列
String palindrome hash template question o (1) judge whether the string is palindrome
Wechat official account payment prompt MCH_ ID parameter format error
Typora+docsify quick start
Use sqoop to export ads layer data to MySQL
PR 2021 quick start tutorial, learn about the and functions of the timeline panel
Openssh remote enumeration username vulnerability (cve-2018-15473)
染色法判定二分图 AcWing 860. 染色法判定二分图
Deep copy event bus
哈希表 AcWing 840. 模拟散列表
Docker compose configuration mysql, redis, mongodb
drools执行指定的规则
Shutter encapsulated button
Sweetheart leader: Wang Xinling
IPhone 6 plus is listed in Apple's "retro products" list
Go学习笔记—基于Go的进程间通信
spfa AcWing 852. spfa判断负环
MySQL indexes and transactions