提取TM2008接收到的表情(原创)
TM2008把接收到的自定义表情不是存放在一个文件夹中,而是放在一个文件里面。这个文件的位置在:我的文档\QQ Files\你的QQ号码\CustomFaceRecv.db,当然你自己的自定义表情就存在CustomFace.db里面。
我们的目的,就是把别人的变成我的,这个.db文件其实是一个复合文档。因此我写了个程序把里面的文件全部提取出来了。
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <Unknwn.h>
int wmain(int argc, wchar_t** argv)
{
HRESULT hr;
IStorage* piStorage = NULL;
IEnumSTATSTG* piEnumSTATSTG = NULL;
STATSTG statstg;
IStream* piStream = NULL;
BYTE bBuffer[512];
ULONG dwReaded;
WCHAR wszExtractDir[MAX_PATH];
WCHAR wszExtractPath[MAX_PATH];
FILE* pFile = NULL;
if (argc != 2)
return 1;
wcscpy(wszExtractDir, argv[1]);
*(wcsrchr(wszExtractDir, L'\\')) = 0L;
wcscat(wszExtractDir, L"\\Extracted");
CreateDirectoryW(wszExtractDir, NULL);
wcscat(wszExtractDir, L"\\");
CoInitialize(NULL);
hr = StgOpenStorageEx( argv[1],
STGM_READ | STGM_SHARE_DENY_WRITE,
STGFMT_ANY,
0,
NULL,
NULL,
IID_IStorage,
reinterpret_cast<void**>(&piStorage) );
if (FAILED(hr))
goto clean0;
hr = piStorage->EnumElements(0, NULL, 0, &piEnumSTATSTG);
if (FAILED(hr))
goto clean0;
hr = piEnumSTATSTG->Next(1, &statstg, NULL);
while (S_OK == hr)
{
wprintf(L"%s\n", statstg.pwcsName);
hr = piStorage->OpenStream( statstg.pwcsName,
NULL,
STGM_SHARE_EXCLUSIVE,
0,
&piStream );
if (FAILED(hr))
continue;
wcscpy(wszExtractPath, wszExtractDir);
wcscat(wszExtractPath, statstg.pwcsName);
pFile = _wfopen(wszExtractPath, L"wb");
if (pFile)
{
hr = piStream->Read(bBuffer, 512, &dwReaded);
while (S_OK == hr && dwReaded)
{
fwrite(bBuffer, 1, dwReaded, pFile);
hr = piStream->Read(bBuffer, 512, &dwReaded);
}
fclose(pFile);
pFile = NULL;
}
piStream->Release();
piStream = NULL;
hr = piEnumSTATSTG->Next(1, &statstg, NULL);
}
clean0:
if (piEnumSTATSTG)
{
piEnumSTATSTG->Release();
piEnumSTATSTG = NULL;
}
if (piStorage)
{
piStorage->Release();
piStorage = NULL;
}
CoUninitialize();
}
编译后的文件下载
下载文件
点击这里下载文件
使用方法qq_db2dir.exe "D:\MyDoc\QQ Files\116454607\CustomFaceRecv.db"
解压出来的位置:D:\MyDoc\QQ Files\116454607\Extracted\
原文地址:http://www.shamuma.net/read.php?18
TM2008把接收到的自定义表情不是存放在一个文件夹中,而是放在一个文件里面。这个文件的位置在:我的文档\QQ Files\你的QQ号码\CustomFaceRecv.db,当然你自己的自定义表情就存在CustomFace.db里面。
我们的目的,就是把别人的变成我的,这个.db文件其实是一个复合文档。因此我写了个程序把里面的文件全部提取出来了。
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <Unknwn.h>
int wmain(int argc, wchar_t** argv)
{
HRESULT hr;
IStorage* piStorage = NULL;
IEnumSTATSTG* piEnumSTATSTG = NULL;
STATSTG statstg;
IStream* piStream = NULL;
BYTE bBuffer[512];
ULONG dwReaded;
WCHAR wszExtractDir[MAX_PATH];
WCHAR wszExtractPath[MAX_PATH];
FILE* pFile = NULL;
if (argc != 2)
return 1;
wcscpy(wszExtractDir, argv[1]);
*(wcsrchr(wszExtractDir, L'\\')) = 0L;
wcscat(wszExtractDir, L"\\Extracted");
CreateDirectoryW(wszExtractDir, NULL);
wcscat(wszExtractDir, L"\\");
CoInitialize(NULL);
hr = StgOpenStorageEx( argv[1],
STGM_READ | STGM_SHARE_DENY_WRITE,
STGFMT_ANY,
0,
NULL,
NULL,
IID_IStorage,
reinterpret_cast<void**>(&piStorage) );
if (FAILED(hr))
goto clean0;
hr = piStorage->EnumElements(0, NULL, 0, &piEnumSTATSTG);
if (FAILED(hr))
goto clean0;
hr = piEnumSTATSTG->Next(1, &statstg, NULL);
while (S_OK == hr)
{
wprintf(L"%s\n", statstg.pwcsName);
hr = piStorage->OpenStream( statstg.pwcsName,
NULL,
STGM_SHARE_EXCLUSIVE,
0,
&piStream );
if (FAILED(hr))
continue;
wcscpy(wszExtractPath, wszExtractDir);
wcscat(wszExtractPath, statstg.pwcsName);
pFile = _wfopen(wszExtractPath, L"wb");
if (pFile)
{
hr = piStream->Read(bBuffer, 512, &dwReaded);
while (S_OK == hr && dwReaded)
{
fwrite(bBuffer, 1, dwReaded, pFile);
hr = piStream->Read(bBuffer, 512, &dwReaded);
}
fclose(pFile);
pFile = NULL;
}
piStream->Release();
piStream = NULL;
hr = piEnumSTATSTG->Next(1, &statstg, NULL);
}
clean0:
if (piEnumSTATSTG)
{
piEnumSTATSTG->Release();
piEnumSTATSTG = NULL;
}
if (piStorage)
{
piStorage->Release();
piStorage = NULL;
}
CoUninitialize();
}
编译后的文件下载
下载文件
点击这里下载文件
使用方法qq_db2dir.exe "D:\MyDoc\QQ Files\116454607\CustomFaceRecv.db"
解压出来的位置:D:\MyDoc\QQ Files\116454607\Extracted\
原文地址:http://www.shamuma.net/read.php?18
yoyo
2010/02/10 09:22
wow power leveling
机票
2009/04/02 02:42
友情链接:国际机票
asdf
2009/03/31 09:11
wow power leveling
机票
2009/03/28 03:52
哈哈!挺好机票
机票
2009/03/20 00:29
友情链接:国际机票
机票
2009/03/16 00:17
友情链接:国际机票
机票
2009/03/07 11:06
友情链接:国际机票
机票
2009/03/04 11:45
友情链接:国际机票
机票
2009/03/01 10:39
顶了,呵呵.打折机票
机票
2009/02/27 01:33
友情链接:国际机票
分页: 1/5
[1] [2] [3] [4] [5]
[1] [2] [3] [4] [5]
转载QQ聊天记录文件存储方式


2008/02/06 20:12 | by 