源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

判断本机office安装版本的方法分享

  • 时间:2021-01-01 09:28 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:判断本机office安装版本的方法分享
[u]复制代码[/u] 代码如下:
#include "msword.h" HRESULT AutoWrap(int autoType, VARIANT *pvResult, IDispatch *pDisp,      LPOLESTR ptName, int cArgs...) {  // Begin variable-argument list  va_list marker;  va_start(marker, cArgs);  if (!pDisp)  {   _putws(L"NULL IDispatch passed to AutoWrap()");   _exit(0);   return E_INVALIDARG;  }  // Variables used  DISPPARAMS dp = { NULL, NULL, 0, 0 };  DISPID dispidNamed = DISPID_PROPERTYPUT;  DISPID dispID;  HRESULT hr;  // Get DISPID for name passed  hr = pDisp->GetIDsOfNames(IID_NULL, &ptName, 1, LOCALE_USER_DEFAULT, &dispID);  if (FAILED(hr))  {   wprintf(L"IDispatch::GetIDsOfNames(\"%s\") failed w/err 0xlx\n",    ptName, hr);   _exit(0);   return hr;  }  // Allocate memory for arguments  VARIANT *pArgs = new VARIANT[cArgs + 1];  // Extract arguments...  for(int i=0; i < cArgs; i++)  {   pArgs[i] = va_arg(marker, VARIANT);  }  // Build DISPPARAMS  dp.cArgs = cArgs;  dp.rgvarg = pArgs;  // Handle special-case for property-puts  if (autoType & DISPATCH_PROPERTYPUT)  {   dp.cNamedArgs = 1;   dp.rgdispidNamedArgs = &dispidNamed;  }  // Make the call  hr = pDisp->Invoke(dispID, IID_NULL, LOCALE_SYSTEM_DEFAULT,   autoType, &dp, pvResult, NULL, NULL);  if (FAILED(hr))  {   wprintf(L"IDispatch::Invoke(\"%s\"=lx) failed w/err 0xlx\n",    ptName, dispID, hr);   _exit(0);   return hr;  }  // End variable-argument section  va_end(marker);  delete[] pArgs;  return hr; } void Cwps_msword2013Dlg::OnBnClickedButton1() {  CString strAppName = OLESTR("word.application");  bool bResult = false;  IDispatch * wordApp;  CLSID appClsid;  if(S_OK == CLSIDFromProgID(strAppName, &appClsid))  {   if(S_OK == CoCreateInstance(appClsid, NULL, CLSCTX_LOCAL_SERVER, IID_IDispatch, (void **)&wordApp))   {    Word::_Application appWord;    if(S_OK == wordApp->QueryInterface(IID_IDispatch, (void**)&appWord))    {     CString strVersion = _T("");     strVersion = appWord.GetVersion();     if(_ttoi(strVersion) >= 15.0)     {      bResult = true;     }    }   }   AutoWrap(DISPATCH_METHOD, NULL, wordApp, L"Quit", 0);   wordApp->Release();  }  if(bResult)   MessageBox(_T("ok"), _T("tip"));  else   MessageBox(_T("no"), _T("tip"));  //return bResult; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部