长沙三甲医院大胸缩小:利用VC控制OFFICE文件(.doc、.xls、.ppt)的摘要属性(标题、作者、公司 和 备注)
来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 21:59:37
#define WIN32_LEAN_AND_MEAN
#define UNICODE
#define _UNICODE
#include <iostream>
#include <tchar.h>
#include <ole2.h>
int _tmain(int argc, _TCHAR* argv[])
{
TCHAR szFileName[MAX_PATH];
printf( "====================================================\n ");
printf( "Start Demo\n ");
if(argc != 2)
printf( "usage: summinfodemo filename\n ");
else
{
_tcscpy(szFileName,argv[1]);
_tprintf(_T( "%s\n "),szFileName);
printf( "====================================================\n ");
}
IStorage *pStorage = NULL;
IPropertySetStorage *pPropSetStg = NULL;
IPropertyStorage *pPropStg = NULL;
HRESULT hr;
hr = StgOpenStorageEx(szFileName,
STGM_READ | STGM_SHARE_DENY_WRITE,
STGFMT_ANY,
0,
NULL,
NULL,
IID_IPropertySetStorage,
reinterpret_cast <void**> (&pStorage));
if(FAILED(hr))
{
if(hr == STG_E_FILENOTFOUND)
printf( "File not found. ");
else if(hr == STG_E_FILEALREADYEXISTS)
printf( "Not a compound file. ");
else
printf( "StgOpenStorageEx() failed w/error %08lx\n ", hr);
return 0;
}
if(SUCCEEDED(hr))
{
hr = pStorage-> QueryInterface(IID_IPropertySetStorage, (void
**)&pPropSetStg);
if(FAILED(hr))
{
printf( "QI for IPropertySetStorage failed w/error %08lx\n ", hr);
pStorage-> Release();
return 0;
}
}
if(SUCCEEDED(hr))
{
hr = pPropSetStg-> Open(FMTID_SummaryInformation, STGM_READ |
STGM_SHARE_EXCLUSIVE, &pPropStg);
if(FAILED(hr))
{
printf( "No Summary-Information - w/error %08lx\n ",hr);
pPropSetStg-> Release();
pStorage-> Release();
return 0;
}
}
if (SUCCEEDED(hr))
{
struct pidsiStruct
{
char *name;
long pidsi;
}
pidsiArr[] =
{
{ "Title ", PIDSI_TITLE}, // VT_LPSTR
{ "Subject ", PIDSI_SUBJECT}, // ...
{ "Author ", PIDSI_AUTHOR},
{ "Keywords ", PIDSI_KEYWORDS},
{ "Comments ", PIDSI_COMMENTS},
{0, 0}
};
int nPidsi = 0;
for(nPidsi=0; pidsiArr[nPidsi].name; nPidsi++);
PROPSPEC *pPropSpec = new PROPSPEC [nPidsi];
PROPVARIANT *pPropVar = new PROPVARIANT [nPidsi];
for(int i=0; i <nPidsi; i++)
{
ZeroMemory(&pPropSpec, sizeof(PROPSPEC));
pPropSpec.ulKind = PRSPEC_PROPID;
pPropSpec.propid = pidsiArr.pidsi;
}
hr = pPropStg-> ReadMultiple(nPidsi, pPropSpec, pPropVar);
if (SUCCEEDED(hr))
{
for(int i=0; i <nPidsi; i++)
{
_TCHAR sValue[1024] = {0};
std::string strTemp = pPropVar-> pszVal;
printf( "\t%s\n ",strTemp.c_str());
pPropVar++;
}
}
}
pPropSetStg-> Release();
pPropStg-> Release();
pStorage-> Release();
printf( "===================================================\n ");
printf( "End Demo\n ");
return 0;
}
#define UNICODE
#define _UNICODE
#include <iostream>
#include <tchar.h>
#include <ole2.h>
int _tmain(int argc, _TCHAR* argv[])
{
TCHAR szFileName[MAX_PATH];
printf( "====================================================\n ");
printf( "Start Demo\n ");
if(argc != 2)
printf( "usage: summinfodemo filename\n ");
else
{
_tcscpy(szFileName,argv[1]);
_tprintf(_T( "%s\n "),szFileName);
printf( "====================================================\n ");
}
IStorage *pStorage = NULL;
IPropertySetStorage *pPropSetStg = NULL;
IPropertyStorage *pPropStg = NULL;
HRESULT hr;
hr = StgOpenStorageEx(szFileName,
STGM_READ | STGM_SHARE_DENY_WRITE,
STGFMT_ANY,
0,
NULL,
NULL,
IID_IPropertySetStorage,
reinterpret_cast <void**> (&pStorage));
if(FAILED(hr))
{
if(hr == STG_E_FILENOTFOUND)
printf( "File not found. ");
else if(hr == STG_E_FILEALREADYEXISTS)
printf( "Not a compound file. ");
else
printf( "StgOpenStorageEx() failed w/error %08lx\n ", hr);
return 0;
}
if(SUCCEEDED(hr))
{
hr = pStorage-> QueryInterface(IID_IPropertySetStorage, (void
**)&pPropSetStg);
if(FAILED(hr))
{
printf( "QI for IPropertySetStorage failed w/error %08lx\n ", hr);
pStorage-> Release();
return 0;
}
}
if(SUCCEEDED(hr))
{
hr = pPropSetStg-> Open(FMTID_SummaryInformation, STGM_READ |
STGM_SHARE_EXCLUSIVE, &pPropStg);
if(FAILED(hr))
{
printf( "No Summary-Information - w/error %08lx\n ",hr);
pPropSetStg-> Release();
pStorage-> Release();
return 0;
}
}
if (SUCCEEDED(hr))
{
struct pidsiStruct
{
char *name;
long pidsi;
}
pidsiArr[] =
{
{ "Title ", PIDSI_TITLE}, // VT_LPSTR
{ "Subject ", PIDSI_SUBJECT}, // ...
{ "Author ", PIDSI_AUTHOR},
{ "Keywords ", PIDSI_KEYWORDS},
{ "Comments ", PIDSI_COMMENTS},
{0, 0}
};
int nPidsi = 0;
for(nPidsi=0; pidsiArr[nPidsi].name; nPidsi++);
PROPSPEC *pPropSpec = new PROPSPEC [nPidsi];
PROPVARIANT *pPropVar = new PROPVARIANT [nPidsi];
for(int i=0; i <nPidsi; i++)
{
ZeroMemory(&pPropSpec, sizeof(PROPSPEC));
pPropSpec.ulKind = PRSPEC_PROPID;
pPropSpec.propid = pidsiArr.pidsi;
}
hr = pPropStg-> ReadMultiple(nPidsi, pPropSpec, pPropVar);
if (SUCCEEDED(hr))
{
for(int i=0; i <nPidsi; i++)
{
_TCHAR sValue[1024] = {0};
std::string strTemp = pPropVar-> pszVal;
printf( "\t%s\n ",strTemp.c_str());
pPropVar++;
}
}
}
pPropSetStg-> Release();
pPropStg-> Release();
pStorage-> Release();
printf( "===================================================\n ");
printf( "End Demo\n ");
return 0;
}
利用VC控制OFFICE文件(.doc、.xls、.ppt)的摘要属性(标题、作者、公司 和 备注)
PPT中备注的作用
PPT备注
DOC,PDF,PPT,XLS,TXT,分别是什么意思?一定要通俗易懂,并且要详细
利用word将PDF转换DOC文件的方法 --电脑高手
vc把文字内容存成word文件和把doc文件保存为txt格式 - lujianxin109...
xlsread读取xls文件数据
ppt演讲备注用法
利用word将PDF转换DOC文件的方法 --电脑高手 1
利用word将PDF转换DOC文件的方法 --电脑高手000
11利用word将PDF转换DOC文件的方法 --电脑高手
VC++中打开文件和保存文件对话框的调用1
怎么在PPT演示的时候看到自己的备注
ppt制作放映技巧——备注的应用
Office Word文件没保存就死机了怎么办?找回死机前没保存的doc文件_猫哥空间_百...
vc工程下的.ncb文件是什么?
学会正确利用office的谣言
电脑文件的属性小知识
Properties类,访问属性文件的方式
VC(风险投资公司)的运作方式
excel VBA打开word文件和ppt文件
《祈祷隐藏的生命》摘要---作者 麦尼析
能将PPT放映时投影仪看全屏而电脑上看备注的详细方法
能将PPT放映时投影仪看全屏而电脑上看备注的详细方法