一種方法:解決方法是在CDialog::PreTranslateMessage() 的重載函數(shù)中將ESC和回車按鍵的消息處理掉.
BOOL CYourDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN)
return TRUE;
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_ESCAPE)
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}
另一種方法:一開始的cancel按扭不要去掉,雙擊它進(jìn)入命令OnCancel(), 把OnCancel()去掉直接返回,這就沒問題了如果你已經(jīng)把按鈕刪掉,那就得手工加這個(gè)命令,但效果一樣
1. 首先介紹計(jì)算機(jī)定義的每個(gè)安全區(qū)域的項(xiàng):Zones 。默認(rèn)情況下,定義以下 5 個(gè)區(qū)域(編號(hào)從 0 到 4):
0 我的電腦
1 本地 Intranet 區(qū)域
2 受信任的站點(diǎn)區(qū)域
3 Internet 區(qū)域
4 受限制的站點(diǎn)區(qū)域
注意:默認(rèn)情況下,“我的電腦”不會(huì)出現(xiàn)在“安全”選項(xiàng)卡的“區(qū)域”框中。
其中的每項(xiàng)都包含以下 DWORD 值,用于表示自定義“安全”選項(xiàng)卡上的相應(yīng)設(shè)置。
注意:除非另外聲明,否則每個(gè) DWORD 值等于 0、1 或 3。通常,設(shè)置為 0 則將具體操作設(shè)置為允許;設(shè)置為 1 則導(dǎo)致出現(xiàn)提示;設(shè)置為 3 則禁止執(zhí)行具體操作。
-----------------------------------------------------------------------
1001 下載已簽名的 ActiveX 控件
1004 下載未簽名的 ActiveX 控件
1200 運(yùn)行 ActiveX 控件和插件
1201 對(duì)沒有標(biāo)記為安全的 ActiveX 控件進(jìn)行初始化和腳本運(yùn)行
1206 允許 Internet Explorer Webbrowser 控件的腳本
1400 活動(dòng)腳本
1402 Java 小程序腳本
1405 對(duì)標(biāo)記為可安全執(zhí)行腳本的 ActiveX 控件執(zhí)行腳本
1406 通過域訪問數(shù)據(jù)資源
1407 允許通過腳本進(jìn)行粘貼操作
1601 提交非加密表單數(shù)據(jù)
1604 字體下載
1605 運(yùn)行 Java
1606 持續(xù)使用用戶數(shù)據(jù)
1607 跨域?yàn)g覽子框架
1608 允許 META REFRESH *
1609 顯示混合內(nèi)容 *
1800 桌面項(xiàng)目的安裝
1802 拖放或復(fù)制和粘貼文件
1803 文件下載
1804 在 IFRAME 中加載程序和文件
1805 在 Web 視圖中加載程序和文件
1806 加載應(yīng)用程序和不安全文件
1807 保留 **
1808 保留 **
1809 使用彈出窗口阻止程序 **
1A00 登錄
1A02 允許持續(xù)使用存儲(chǔ)在計(jì)算機(jī)上的 Cookie
1A03 允許使用每個(gè)會(huì)話的 Cookie(未存儲(chǔ))
1A04 沒有證書或只有一個(gè)證書時(shí)不提示選擇客戶證書 *
1A05 允許持續(xù)使用第三方 Cookie *
1A06 允許使用第三方會(huì)話 Cookie *
1A10 隱私設(shè)置 *
1C00 Java 權(quán)限
1E05 軟件頻道權(quán)限
1F00 保留 **
2000 二進(jìn)制和腳本行為
2001 運(yùn)行已用 Authenticode 簽名的 .NET 組件
2004 運(yùn)行未用 Authenticode 簽名的 .NET 組件
2100 基于內(nèi)容打開文件,而不是基于文件擴(kuò)展名 **
2101 在低特權(quán) Web 內(nèi)容區(qū)域中的網(wǎng)站可以導(dǎo)航到此區(qū)域 **
2102 允許由腳本初始化的窗口,沒有大小和位置限制 **
2200 文件下載自動(dòng)提示 **
2201 ActiveX 控件自動(dòng)提示 **
2300 允許網(wǎng)頁(yè)為活動(dòng)內(nèi)容使用受限制的協(xié)議 **
-----------------------------------------------------------------------
以上介紹完了IE安全選項(xiàng)的基本概念,接下說明如何利用腳本修改。
假設(shè)我們要修改瀏覽器的跨域?yàn)g覽子框架(代號(hào)1607)為啟用,它默認(rèn)為禁用狀態(tài)。
1、VBS篇
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:" &"{impersonationLevel=impersonate}\\"&strComputer _&"\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Internet Settings\" & "Zones\3"
strEntryName = "1607"
dwvalue = 0
objReg.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strEntryName,dwValue
其中HKEY_CURRENT_USER指的是當(dāng)前登錄用戶,此設(shè)置不會(huì)影響到其它登錄的賬號(hào)。strKeyPath為關(guān)鍵字的路徑,根據(jù)之前關(guān)于Zones選項(xiàng)的解釋,此路徑不難看懂。strEntryName為需要設(shè)置的選項(xiàng)代號(hào)。dwvalue為需要設(shè)置的安全級(jí)別,此處0則代表允許。
2、BAT篇
REG add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3" /v "1607" /t reg_dword /d 0x00000003 /f
針對(duì)該問題,微軟有一個(gè)名為Certmgr.exe的證書管理器工具可以實(shí)現(xiàn)此目標(biāo),該工具主要用于管理證書、證書信任列表 (CTL) 和證書吊銷列表 (CRL),
具體參數(shù)的示例請(qǐng)參考:
http://msdn.microsoft.com/zh-cn/library/e78byta0(VS.80).aspx。
該工具是SDK Tool的一部分,您可以下載最新的Windows SDK發(fā)行版獲得此工具;若您安裝了visual studio,該工具也包含在安裝目錄中。
為了更好的幫助您解決這一問題,我們可以通過下列步驟實(shí)現(xiàn)在客戶端簡(jiǎn)易安裝信任證書。
首先,您可以將根證書導(dǎo)出,并把這個(gè)證書保存到一個(gè)share folder里。
Export 成功之后,在客戶端跑下面2個(gè)命令就可以把這個(gè)證書test.cer加到”trusted publishers”和”trusted root certification authorities”里了。
如果您的client端沒有certmgr.exe,您可以把certmgr.exe放到一個(gè)sharefolder里,比如這里我把它放到當(dāng)前目錄下
1 “.\certmgr.exe” -add “.\test.cer” -s -r localMachine trustedpublisher
2 “.\certmgr.exe” -add “.\test.cer” -s -r localMachine AuthRoot
您可以把上面兩行代碼拷貝到一個(gè)bat文件中,客戶只要雙擊這個(gè)bat文件即可完成安裝證書,或者通過組策略來強(qiáng)制在域內(nèi)的指定機(jī)器上運(yùn)行這個(gè)bat 文件。
靜默安裝
利用vbs文件實(shí)現(xiàn)靜默安裝,腳本示例如下:
1 set ws=wscript.createobject("wscript.shell")
2 ws.run "installcert.bat /start",0
我們打開淘寶等網(wǎng)站時(shí),IE瀏覽器會(huì)提示安裝空間,這個(gè)控件便是用于對(duì)用戶名密碼進(jìn)行加密的ActiveX控件。如何在我們的站點(diǎn)上安裝如此控件,讓用戶可以通過簡(jiǎn)單的點(diǎn)擊便可方便使用我們的空間呢?
下面是如何讓在你的站點(diǎn)上安裝控件的方法。
基礎(chǔ)知識(shí)
html語(yǔ)言中Object標(biāo)簽
定義和用法
定義一個(gè)嵌入的對(duì)象。請(qǐng)使用此元素向您的 XHTML 頁(yè)面添加多媒體。此元素允許您規(guī)定插入 HTML 文檔中的對(duì)象的數(shù)據(jù)和參數(shù),以及可用來顯示和操作數(shù)據(jù)的代碼。<object> 標(biāo)簽用于包含對(duì)象,比如圖像、音頻、視頻、Java applets、ActiveX、PDF 以及 Flash。object 的初衷是取代 img 和 applet 元素。不過由于漏洞以及缺乏瀏覽器支持,這一點(diǎn)并未實(shí)現(xiàn)。瀏覽器的對(duì)象支持有賴于對(duì)象類型。不幸的是,主流瀏覽器都使用不同的代碼來加載相同的對(duì)象類型。而幸運(yùn)的是,object 對(duì)象提供了解決方案。如果未顯示 object 元素,就會(huì)執(zhí)行位于 <object> 和 </object> 之間的代碼。通過這種方式,我們能夠嵌套多個(gè) object 元素(每個(gè)對(duì)應(yīng)一個(gè)瀏覽器)。
實(shí)例
向HTML中添加對(duì)象:
1 <object classid="clsid:F08DF954-8592-11D1-B16A-00C0F0283628" id="Slider1"
2 width="100" height="50">
3 <param name="BorderStyle" value="1" />
4 <param name="MousePointer" value="0" />
5 <param name="Enabled" value="1" />
6 <param name="Min" value="0" />
7 <param name="Max" value="10" />
8 </object>
參考
http://www.w3school.com.cn/tags/tag_object.asp
Windows中注冊(cè)類ID:clsid
“通用唯一標(biāo)識(shí)符”(UUID),用于標(biāo)識(shí) COM 組件。每個(gè) COM 組件在 Windows 注冊(cè)表中都有自己的 CLSID,以便讓其他應(yīng)用程序加載。
ActiveX控件CLSID的獲取
在編譯完成每一個(gè)ActiveX控件之后,系統(tǒng)會(huì)生成ocx.html文件,其中是調(diào)用該ActiveX控件的方法。該頁(yè)面中有一個(gè)標(biāo)簽即為Object,其中有一行則記錄著該ocx文件的CLSID,如下:
1 <object
2 ID="TopoSceneViewer"
3 WIDTH=800
4 HEIGHT=600
5 CLASSID="CLSID:321B84C8-3745-4AC9-BF04-55753F40CE63">
6 </object>
創(chuàng)建cab文件
cab文件中需要包含一系列文件,其中.inf文件會(huì)告訴IE如何去安裝這些文件。我們從.inf文件開始
怎么寫inf
INF文件的組成有節(jié)(Sections),鍵(Key)和值(value)三部分。
關(guān)鍵節(jié)有
1 [Version]版本描述信息,主要用于版本控制。
2 [Strings]字符串信息,用于常量定義。
3 [DestinationDirs]定義系統(tǒng)路徑信息。
4 [SourceDisksNames]指明源盤信息。
5 [SourceDisksNames]指明源盤文件名。
6 [DefaultInstall]開始執(zhí)行安裝。
其它的節(jié)可以自定義
最開始一般是[Version]區(qū):
1 [Version]
2 signature="$XXXX$"
3 AdvancedINF=2.0
"Signature"項(xiàng)定義了該INF文件需要運(yùn)行在何種操作系統(tǒng)版本中。有$Windows NT$, $Chicago$, or $Windows 95$三個(gè)值供選擇,一般選擇$Chicago$即可。
接下來就是最重要的[Add.Code]區(qū):
1 [Add.Code]
2 Ctrl1.dll=C1Section
3 Ctrl2.dll=Ctrl2.dll
前面是要下載的文件名,后面是對(duì)應(yīng)這個(gè)文件的區(qū)域名,可以是任何名字,不過一般都是和文件的名字相同,這樣方便維護(hù)。
還有需要注意是在[Add.Code]區(qū)出現(xiàn)的文件要根據(jù)依賴性進(jìn)行排序,例如前面說的ctrl1.dll要依賴于ctrl2.dll,則ctrl2.dll要出現(xiàn)在ctrl1.dll的前面。因?yàn)榘惭b時(shí)是按照相反的順序進(jìn)行的,也就是說先安裝ctrl2.dll,然后才是ctrl1.dll,哧哧,記清楚了,不要搞反了。
再接下來是各個(gè)文件的區(qū)域了
1 [Ctrl1.dll]
2 file-win32-x86=thiscab
3 RegisterServer=yes
4 clsid={..}
5 DestDir=
6 FileVersion=1,0,0,0
[Ctrl1.dll]區(qū)域中的第一個(gè)file值告訴ie到哪里去得到這個(gè)dll,file一共包括三個(gè)部分,第一部分是file,這個(gè)永遠(yuǎn)都是這樣的(至少目前來說);第二部分告訴聲明支持的OS,win32表示windows,mac就是蘋果MAC OX了;第三部分是CPU類型,比如說x86、 ppc (Power PC)、 mips或者alpha了。
file的值可以取三個(gè)一個(gè)URL、ignore和thiscab,如果是URL則說明到URL所在的位置去下;如果是ignore說明對(duì)于這種OS和CPU,不需要下載這個(gè)文件(ctrl1.dll);如果是thiscab很明顯就在當(dāng)前的cab文件中了。
接下來是RegisterServer,可以取兩個(gè)值yes和no,如果為yes則說明ie要注冊(cè)該dll,如果是no就不必了。+如果這里選yes,則需要指定clsid,否則clsid一行可以省略。+
再下來是DestDir,它的值是dll將要存到本地硬盤的位置,如果它的值是10,則將dll放到/Windows或者/WinNT下;如果是11,則放到/Windows/System或者/WinNT/System32下;如果是空(就是沒有值)則會(huì)放到/Windows或者/WinNT下的Downloaded Program Files目錄下;
最后是FileVersion,這個(gè)就比較明顯了,說明了ctrl1.dll的版本號(hào)。
其他部分詳見參考文獻(xiàn)。
創(chuàng)建cab文件
- 如果需要?jiǎng)?chuàng)建cab文件,首先需要Cabarc或者M(jìn)akecab,它們隨著Cabinet SDK的安裝就有了,Cabinet SDK的下載地址是http://msdn.microsoft.com/workshop/management/cab/cabdl.asp
- Cabarc可以創(chuàng)建、查看或者解出cab里面的文件,而Makecab則只可以用來創(chuàng)建cab文件。
- 制作cab文件時(shí)需要將所有的相關(guān)文件都包含進(jìn)去,可以通過Depends(VC自帶的)檢查需要的文件。使用inf文件將這些東西都寫進(jìn)去。
- inf搞法:inf文件描述cab中所有的ocx及dll文件,inf通過一些命名區(qū)域來提供需要的信息。
cabarc N ctrl1.cab ctrl1.inf ctrl1.dll
N表示要?jiǎng)?chuàng)建一個(gè)新的文件,ctrl1.cab是創(chuàng)建的文件名,ctrl1.inf是cab的inf,后而是需要加到cab里的文件,可以使用通配符。
然后就可以將cab文件放到網(wǎng)頁(yè)上了
參考
- 如何編寫INF:http://www.cnblogs.com/sbdx/archive/2006/12/14/whatisinffile.html
- 如何寫cab相關(guān)的INF:http://docs.google.com/Doc?docid=0Aehzv88zbfy_ZGdncGdqczZfMjIxZHNnZDhtYzg&hl=zh_CN
簽名
申請(qǐng)證書
要使用到makecert工具,在VS2005目錄下搜索可以搜索到。
在命令提示行中執(zhí)行
1 makecert -sk myNewKey -r -n "CN=發(fā)證機(jī)關(guān)的名字,OU=Certification,O=公司名字,E=name@email.com" -ss my myNew.cer
2 cert2spc myNew.cer myNew.spc
makecert具體使用幫助可參考創(chuàng)建證書的工具(makecert.exe)
簽名
要使用到signtool工具,也可以在VS2005目錄下找到。
signtool工具有多種使用模式,下面使用的是帶UI的向?qū)J健?br />在命令提示行中執(zhí)行
之后進(jìn)入signcodewizard:
1 step1.選擇要簽名的cab文件
2 step2.自定義
3 step3.從文件中選擇 myNew.spc
4 step4.csp中的私鑰/密鑰容器:myNewKey
5 step5.sha1
6 step6.next
7 step7.描述:插件名稱/web:www.yourcompany.com
8 step8.http://timestamp.verisign.com/scripts/timstamp.dll
signtool 的具體使用幫助可參考簽名工具 (SignTool.exe)
本文轉(zhuǎn)自:http://blog.csdn.net/wangjingfei/article/details/5417028
其他鏈接:http://www.cnblogs.com/rushoooooo/archive/2011/06/22/2087542.html
示例:
CRect rc = CRect(0,0,0,0);
m_staticTime.GetClientRect(&rc);
CDC* pDC = m_staticTime.GetDC();
TEXTMETRIC tm;
pDC->GetTextMetrics(&tm);
int nFontHeight = tm.tmHeight + tm.tmExternalLeading;
int nTopBottom = (rc.Height() - nFontHeight) / 2;
int nLeftRight = (rc.Width() - nFontHeight) / 2;
rc.DeflateRect(nLeftRight, nTopBottom);
m_staticTime.SetRectNP(&rc);
m_staticTime.SetWindowText("45");
ReleaseDC(pDC);
可以使用MUI函數(shù)里面的
MUI_FINISHPAGE_RUN_FUNCTION function
定義一個(gè)function,函數(shù)里面執(zhí)行 安裝完成后的exe
;定義安裝界面
!define MUI_FINISHPAGE_RUN
;安裝函數(shù)定義
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink"
!insertmacro MUI_PAGE_FINISH
;function要寫字section之后
Function LaunchLink
ExecShell "" "$INSTDIR\*.exe"
FunctionEnd
問題產(chǎn)生: 使用gsoap時(shí),如果WebService服務(wù)端及客戶調(diào)用端都使用 C++ , 再傳遞中文時(shí)不會(huì)存在亂碼問題, 當(dāng)客戶端為 C++ ,WebService服務(wù)端使用Java、domino,傳遞中文則會(huì)有亂碼問題。
產(chǎn)生原因:
寬字符的原因
解決辦法(一):
在程序中首先設(shè)置本地代碼頁(yè)
vista 操作系統(tǒng):
setlocal(LC_ALL,"Chinese");
soap_set_mode(soap,SOAP_C_MBSTRING);
windowsxp 操作系統(tǒng):
setlocal(LC_ALL,"chs");
soap_set_mode(soap,SOAP_C_MBSTRING);
解決方法(二)
1. 使用 wsdl2h.exe 通過wsdl描述文件創(chuàng)建C++頭文件(test.h);
2. 將頭文件(test.h)中 std:string* 使用wchar_t* 替換;
3. 使用 soapcpp2.exe -i test.h ,生成相關(guān)的cpp及h文件
4. 使用 C++ 時(shí),需要將接收的wchar_t類型數(shù)據(jù)轉(zhuǎn)換為char, 使用WideCharToMultiByte函數(shù)
后續(xù):
soap在對(duì)字符編碼轉(zhuǎn)換時(shí),調(diào)用 wctomb 函數(shù),該函數(shù)的調(diào)用在 stdcoap2.cpp 文件中,代碼調(diào)試跟蹤至此,查看 該函數(shù)的返回值是否正確,-1表示字符集設(shè)置不正確。
本文轉(zhuǎn)自:http://wenhaidongke.blog.163.com/blog/static/128070090200982313655668/
1.使用CTime類
CString str; //獲取系統(tǒng)時(shí)間
CTime tm; tm=CTime::GetCurrentTime();
str=tm.Format("現(xiàn)在時(shí)間是%Y年%m月%d日 %X");
MessageBox(str,NULL,MB_OK); 2: 得到系統(tǒng)時(shí)間日期(使用GetLocalTime)
SYSTEMTIME st;
CString strDate,strTime;
GetLocalTime(&st);
strDate.Format("%4d-%2d-%2d",st.wYear,st.wMonth,st.wDay);
strTime.Format("%2d:%2d:%2d",st.wHour,st.wMinute,st.wSecond);
3.使用GetTickCount//獲取程序運(yùn)行時(shí)間
long t1=GetTickCount();//程序段開始前取得系統(tǒng)運(yùn)行時(shí)間(ms)
Sleep(500); long t2=GetTickCount();//程序段結(jié)束后取得系統(tǒng)運(yùn)行時(shí)間(ms)
str.Format("time:%dms",t2-t1);//前后之差即 程序運(yùn)行時(shí)間
AfxMessageBox(str);//獲取系統(tǒng)運(yùn)行時(shí)間
long t=GetTickCount();
CString str,str1;
str1.Format("系統(tǒng)已運(yùn)行 %d時(shí)",t/3600000);
str=str1; t%=3600000;
str1.Format("%d分",t/60000);
str+=str1; t%=60000;
str1.Format("%d秒",t/1000);
str+=str1; AfxMessageBox(str);
本文轉(zhuǎn)自:http://www.cnblogs.com/bigbigtree/archive/2011/12/02/2272066.html
1、RichEdit文本轉(zhuǎn)RTF文件
static DWORD CALLBACK MyStreamOutCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
CFile* pFile = (CFile*) dwCookie;
pFile->Write(pbBuff, cb);
*pcb = cb;
return 0;
}
void CKTLXFunction::OnBnClickedIssuePaper()
{
// TODO: Add your control notification handler code here
CString sText;
m_richEdit.GetWindowText(sText);
if (sText.IsEmpty() && m_sImportPaperPath.IsEmpty())
{
AfxMessageBox("內(nèi)容為空");
return;
}
CString sImportRtfPath = CCommonFun::GetExecutablePath() + "temp.rtf";
if (CFileFind().FindFile(sImportRtfPath))
{
::DeleteFile(sImportRtfPath);
}
CFile cFile(TEXT(sImportRtfPath), CFile::modeCreate|CFile::modeWrite);
EDITSTREAM es;
es.dwCookie = (DWORD) &cFile; //設(shè)置用例參數(shù),以便回調(diào)函數(shù)調(diào)用
es.pfnCallback = MyStreamOutCallback;
m_richEdit.StreamOut(SF_RTF, es);
}
2、word文本轉(zhuǎn)RTF文件
CString m_sImportRtfPath = CCommonFun::GetExecutablePath() + "temp.rtf"; if (CFileFind().FindFile(m_sImportRtfPath)) { ::DeleteFile(m_sImportRtfPath); } _Application WordApp; CoInitialize(NULL); if(!WordApp.CreateDispatch("Word.Application",NULL)) { LOG("創(chuàng)建Word服務(wù)失敗!"); exit(1); return FALSE; } WordApp.SetVisible(FALSE); COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR); Documents docs=WordApp.GetDocuments(); docs.Open(COleVariant("word文件路徑"), vFalse, vFalse, vFalse, COleVariant(""), COleVariant(""), vFalse, COleVariant(""), COleVariant(""), COleVariant((short)0),COleVariant("UTF-8") ,vTrue, vFalse, COleVariant((short)0), vFalse, COleVariant("")); _Document active_doc; active_doc = WordApp.GetActiveDocument(); active_doc.SaveAs(COleVariant(m_sImportRtfPath), COleVariant((short)wdFormatRTF), vFalse, COleVariant(""),vFalse, COleVariant(""), vFalse, vTrue, vFalse, vFalse, vFalse,COleVariant("936"), vFalse, vFalse, COleVariant((short)0), vFalse); WordApp.Quit(vOpt, vOpt, vOpt); active_doc.ReleaseDispatch();
docs.ReleaseDispatch();
WordApp.ReleaseDispatch(); //釋放對(duì)象指針。切記,必須調(diào)用
3、RTF文件轉(zhuǎn)html文件 // 保存html文件 [8/12/2013 dell]
_Application WordApp;
CoInitialize(NULL);
if(!WordApp.CreateDispatch("Word.Application",NULL))
{
//AfxMessageBox("創(chuàng)建Word服務(wù)失敗!");
exit(1);
return FALSE;
}
WordApp.SetVisible(FALSE);
COleVariant vTrue((
short)TRUE),vFalse((
short)FALSE),vOpt((
long)DISP_E_PARAMNOTFOUND, VT_ERROR);
CString m_sImportRtfPath = CCommonFun::GetExecutablePath() + "temp.rtf";
if (!CFileFind().FindFile(m_sImportRtfPath))
{
LOG("轉(zhuǎn)換html文件失敗,沒有找到rtf文件 : %s", m_sImportRtfPath);
return FALSE;
}
Documents docs=WordApp.GetDocuments();
docs.Open(COleVariant(
m_sImportRtfPath),
vFalse,vFalse,vFalse,COleVariant(""),COleVariant(""),
vFalse,COleVariant(""),COleVariant(""),
COleVariant((
short)0),COleVariant("UTF-8")
,vTrue,vFalse,COleVariant((
short)0),vFalse,
COleVariant(""));
_Document active_doc;
active_doc = WordApp.GetActiveDocument();
active_doc.SaveAs(COleVariant(
"保存html文件路徑"),
COleVariant((
short)wdFormatHTML),
vFalse, COleVariant(""),vFalse, COleVariant(""),
vFalse,vTrue,vFalse,vFalse,vFalse,COleVariant("936"),
//COleVariant(L"UTF-8")
vFalse,vFalse,COleVariant((
short)0),vFalse);
WordApp.Quit(vOpt, vOpt, vOpt);
active_doc.ReleaseDispatch();
docs.ReleaseDispatch();
WordApp.ReleaseDispatch(); //釋放對(duì)象指針。切記,必須調(diào)用
摘要: 一.常見問題 a.可以編譯,不能執(zhí)行的 AfxInitRichEdit(); b.升級(jí)默認(rèn)的Riched版本(默認(rèn)的有一些bug),如 可在InitInstance中添加 LoadLibrary("RICHED20.DLL") 最后注意 FreeLibrary 如果是CRichEditView基類的可用 BOOL ...
閱讀全文