例如桌面上已有了WORD的一个实例,那么如何通过编程,打开一个WORD文档.
看了一些关于ShellExecute资料,使用后发觉会产生新的实例.有谁碰到过这个问题吗?
看了一些关于ShellExecute资料,使用后发觉会产生新的实例.有谁碰到过这个问题吗?
解决方案 »
- vs2008 配置GDI+ 报错!
- 怎样防止键盘钩子
- 图片验证码的问题
- 菜鸟提问之“我的菜单出不来”。
- 急求一些编写FTP代理服务器软件的知识资料!!
- 为什么会这样:我给程序做成带有多个可以切换的VIEW的SDI程序的形式,可是我给程序作菜单的时候发现一旦选择了菜单的某一个选项,该选项
- 怎么创建一个与内存关联的IMoniker?急,再线等!
- 鼠标 气泡的问题,..
- 为什么我编的程序多次编译运行以后,就出现内存不够用的编译信息??
- 调用DLL怎么会出这样的错误呢?请你给我一个理由好不好?拜托! :-:出错误需要理由吗? :-:不需要吗?:-:需要吗?:-:不需要吗?:-:需要吗?:-:不需要吗?
- windowless ATL 组件多线程资源释放问题
- 多文档的菜单修改问提
2。象记事本等没这样的接口的,可以考虑drag drop模拟,不知行不
{
AfxMessageBox("faint");}
WordApp.SetVisible(true);
HRESULT hResult;
hResult = CoInitialize(NULL);//初始化COM库
if (FAILED(hResult))
{
printf("Initialize COM library failed!\n");
return -1;
}
ISldWorksPtr p;//定义智能指针
// IDispatch *pIDis;
CComPtr <IModelDoc2> pModel;
HRESULT hr; wchar_t progid[] = L"SldWorks.Application";
CLSID clsid;
::CLSIDFromProgID(progid,&clsid); hr = p.CreateInstance(L"SldWorks.Application");//查找组件
if( FAILED(hr) )
return 0; hr = p.GetActiveObject(clsid);//连接到一个实例
if( FAILED(hr) )
{
long i = ::GetLastError();
return 0;
}
hr = p->get_IActiveDoc2(&pModel);//调用接口函数
// if( pModel == NULL )
{
_variant_t file("E:\\Program Files\\SolidWorks\\data\\templates\\零件.prtdot");
p->INewDocument2(file.bstrVal,0,0,0,&pModel );
}
}