最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

判斷本機office安裝版本的方法分享

 更新時間:2014年01月31日 01:22:33   作者:  
這篇文章主要介紹了判斷本機office安裝版本的方法分享,需要的朋友可以參考下

復(fù)制代碼 代碼如下:

#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 0x%08lx\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\"=%08lx) failed w/err 0x%08lx\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;
}

相關(guān)文章

  • 深入解讀C++中的右值引用

    深入解讀C++中的右值引用

    這里來帶大家深入解讀C++中的右值引用,右值引用是C++新標(biāo)準(zhǔn)中的重要特性,包括C++11中的引用折疊,首先還是先來看一下右值引用的概念:
    2016-05-05
  • C++中的偽隨機數(shù)

    C++中的偽隨機數(shù)

    這篇文章主要介紹了C++中的偽隨機數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • C語言實現(xiàn)日志備份守護進程的示例詳解

    C語言實現(xiàn)日志備份守護進程的示例詳解

    這篇文章主要為大家詳細介紹了如何使用C語言開發(fā)一個簡單的日志備份守護進程,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04
  • C++中的類成員函數(shù)當(dāng)線程函數(shù)

    C++中的類成員函數(shù)當(dāng)線程函數(shù)

    這篇文章主要介紹了C++中的類成員函數(shù)當(dāng)線程函數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C++?using?編譯指令與名稱沖突問題

    C++?using?編譯指令與名稱沖突問題

    using?編譯指令由名稱空間名和它前面的關(guān)鍵字?using?namespace?組成,它使名稱空間中的所有名稱都可用,而不需要使用作用域解析運算符,這篇文章主要介紹了C++?using?編譯指令與名稱沖突,需要的朋友可以參考下
    2022-11-11
  • C++實現(xiàn)郵件群發(fā)的方法

    C++實現(xiàn)郵件群發(fā)的方法

    這篇文章主要介紹了C++實現(xiàn)郵件群發(fā)的方法,較為詳細的分析了郵件發(fā)送的原理與C++相關(guān)實現(xiàn)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-07-07
  • C語言實現(xiàn)掃雷程序

    C語言實現(xiàn)掃雷程序

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)掃雷程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C語言利用system調(diào)用系統(tǒng)命令行詳情

    C語言利用system調(diào)用系統(tǒng)命令行詳情

    這篇文章主要介紹了C語言利用system調(diào)用系統(tǒng)命令行詳情,system就是調(diào)用系統(tǒng)命令行,輸入為字符串,然后把這個字符串輸出給命令行,讓命令行執(zhí)行。下文的具體內(nèi)容,需要的小伙伴可以參考一下
    2022-01-01
  • C語言實現(xiàn)猜數(shù)字小游戲的示例代碼

    C語言實現(xiàn)猜數(shù)字小游戲的示例代碼

    猜數(shù)字小游戲是我們小時候喜歡我們一個經(jīng)典小游戲。這篇文章將利用C語言中的循環(huán)語句、分支語句和函數(shù)實現(xiàn)這一游戲,需要的可以參考一下
    2022-10-10
  • 探究C++中指針與數(shù)組運算符優(yōu)先級

    探究C++中指針與數(shù)組運算符優(yōu)先級

    C++中與指針和數(shù)組相關(guān)的運算符優(yōu)先級,通過實際代碼示例解釋了運算符的左結(jié)合與右結(jié)合方式,以及如何使用圓括號()來改變默認的結(jié)合順序,文章還提供了一個優(yōu)先級表,列出了運算符的優(yōu)先級和結(jié)合性,幫助讀者更好地理解復(fù)雜表達式中運算符的調(diào)用順序
    2024-10-10

最新評論

通州区| 乌兰察布市| 全椒县| 库车县| 嘉义市| 外汇| 沙湾县| 蕲春县| 酒泉市| 依兰县| 筠连县| 桐梓县| 上蔡县| 洞口县| 清徐县| 三门县| 西贡区| 宣威市| 宁武县| 星子县| 江安县| 巩义市| 迁安市| 克什克腾旗| 林芝县| 辛集市| 千阳县| 永康市| 房山区| 荥阳市| 临清市| 河北区| 苏州市| 青田县| 武冈市| 大邑县| 西乌珠穆沁旗| 渭南市| 宝应县| 桦甸市| 涟水县|