• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            面對現實,超越自己
            逆水行舟,不進則退
            posts - 269,comments - 32,trackbacks - 0
            一種方法:解決方法是在CDialog::PreTranslateMessage() 的重載函數中將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按扭不要去掉,雙擊它進入命令OnCancel(), 把OnCancel()去掉
            直接返回,這就沒問題了

            如果你已經把按鈕刪掉,那就得手工加這個命令,但效果一樣
            posted @ 2013-09-13 08:31 王海光 閱讀(674) | 評論 (0)編輯 收藏

            1. 首先介紹計算機定義的每個安全區域的項:Zones 。默認情況下,定義以下   5   個區域(編號從   0   到   4):

            0   我的電腦 
            1   本地   Intranet   區域 
            2   受信任的站點區域 
            3   Internet   區域 
            4   受限制的站點區域

            注意:默認情況下,“我的電腦”不會出現在“安全”選項卡的“區域”框中。

            其中的每項都包含以下   DWORD   值,用于表示自定義“安全”選項卡上的相應設置。

            注意:除非另外聲明,否則每個   DWORD   值等于   0、1   或   3。通常,設置為   0   則將具體操作設置為允許;設置為   1   則導致出現提示;設置為   3   則禁止執行具體操作。

            ----------------------------------------------------------------------- 

            1001           下載已簽名的   ActiveX   控件 
            1004           下載未簽名的   ActiveX   控件 
            1200           運行   ActiveX   控件和插件 
            1201           對沒有標記為安全的   ActiveX   控件進行初始化和腳本運行 
            1206           允許   Internet   Explorer   Webbrowser   控件的腳本 
            1400           活動腳本 
            1402           Java   小程序腳本 
            1405           對標記為可安全執行腳本的   ActiveX   控件執行腳本 
            1406           通過域訪問數據資源 
            1407           允許通過腳本進行粘貼操作 
            1601           提交非加密表單數據 
            1604           字體下載 
            1605           運行   Java 
            1606           持續使用用戶數據 
            1607           跨域瀏覽子框架 
            1608           允許   META   REFRESH   * 
            1609           顯示混合內容   * 
            1800           桌面項目的安裝 
            1802           拖放或復制和粘貼文件 
            1803           文件下載 
            1804           在   IFRAME   中加載程序和文件 
            1805           在   Web   視圖中加載程序和文件 
            1806           加載應用程序和不安全文件 
            1807                                   保留   ** 
            1808                                   保留   ** 
            1809           使用彈出窗口阻止程序   ** 
            1A00           登錄 
            1A02           允許持續使用存儲在計算機上的   Cookie 
            1A03           允許使用每個會話的   Cookie(未存儲) 
            1A04           沒有證書或只有一個證書時不提示選擇客戶證書   * 
            1A05           允許持續使用第三方   Cookie   * 
            1A06           允許使用第三方會話   Cookie   * 
            1A10           隱私設置   * 
            1C00           Java   權限 
            1E05           軟件頻道權限

            1F00           保留   **

            2000           二進制和腳本行為 
            2001           運行已用   Authenticode   簽名的   .NET   組件 
            2004           運行未用   Authenticode   簽名的   .NET   組件 
            2100           基于內容打開文件,而不是基于文件擴展名   ** 
            2101           在低特權   Web   內容區域中的網站可以導航到此區域   ** 
            2102           允許由腳本初始化的窗口,沒有大小和位置限制   ** 
            2200           文件下載自動提示   ** 
            2201           ActiveX   控件自動提示   ** 
            2300           允許網頁為活動內容使用受限制的協議   ** 

            ----------------------------------------------------------------------- 

            以上介紹完了IE安全選項的基本概念,接下說明如何利用腳本修改。

            假設我們要修改瀏覽器的跨域瀏覽子框架(代號1607)為啟用,它默認為禁用狀態。

            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指的是當前登錄用戶,此設置不會影響到其它登錄的賬號。strKeyPath為關鍵字的路徑,根據之前關于Zones選項的解釋,此路徑不難看懂。strEntryName為需要設置的選項代號。dwvalue為需要設置的安全級別,此處0則代表允許。

            2、BAT篇
            REG add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3" /v "1607" /t reg_dword /d 0x00000003 /f
            通過VBS的講解,此處就不在贅述,不過主要的是以上兩種方法的保存格式分別是以vbs和bat類型。例如bat方法,則可以在記事本中考本上一行代碼存為IE_modify.bat。

            本文轉自:http://blog.csdn.net/yingminxing/article/details/7250585
            posted @ 2013-09-06 16:09 王海光 閱讀(1186) | 評論 (0)編輯 收藏

            針對該問題,微軟有一個名為Certmgr.exe的證書管理器工具可以實現此目標,該工具主要用于管理證書、證書信任列表 (CTL) 和證書吊銷列表 (CRL)

            具體參數的示例請參考:
            http://msdn.microsoft.com/zh-cn/library/e78byta0(VS.80).aspx

            該工具是SDK Tool的一部分,您可以下載最新的Windows SDK發行版獲得此工具;若您安裝了visual studio,該工具也包含在安裝目錄中。

            為了更好的幫助您解決這一問題,我們可以通過下列步驟實現在客戶端簡易安裝信任證書。
            首先,您可以將根證書導出,并把這個證書保存到一個share folder里。
            Export 成功之后,在客戶端跑下面2個命令就可以把這個證書test.cer加到”trusted publishers””trusted root certification authorities”里了。
            如果您的client端沒有certmgr.exe,您可以把certmgr.exe放到一個sharefolder里,比如這里我把它放到當前目錄下

            1  “.\certmgr.exe” -add “.\test.cer” --r localMachine trustedpublisher
            2  “.\certmgr.exe” -add “.\test.cer” --r localMachine AuthRoot
            您可以把上面兩行代碼拷貝到一個bat文件中,客戶只要雙擊這個bat文件即可完成安裝證書,或者通過組策略來強制在域內的指定機器上運行這個bat 文件。

            靜默安裝
            利用vbs文件實現靜默安裝,腳本示例如下:
            1 set ws=wscript.createobject("wscript.shell")
            2 ws.run "installcert.bat /start",0

             

            posted @ 2013-09-06 15:56 王海光 閱讀(11701) | 評論 (1)編輯 收藏

            我們打開淘寶等網站時,IE瀏覽器會提示安裝空間,這個控件便是用于對用戶名密碼進行加密的ActiveX控件。如何在我們的站點上安裝如此控件,讓用戶可以通過簡單的點擊便可方便使用我們的空間呢?

            下面是如何讓在你的站點上安裝控件的方法。


             基礎知識

            html語言中Object標簽

            定義和用法

            定義一個嵌入的對象。請使用此元素向您的 XHTML 頁面添加多媒體。此元素允許您規定插入 HTML 文檔中的對象的數據和參數,以及可用來顯示和操作數據的代碼。<object> 標簽用于包含對象,比如圖像、音頻、視頻、Java applets、ActiveX、PDF 以及 Flash。object 的初衷是取代 img 和 applet 元素。不過由于漏洞以及缺乏瀏覽器支持,這一點并未實現。瀏覽器的對象支持有賴于對象類型。不幸的是,主流瀏覽器都使用不同的代碼來加載相同的對象類型。而幸運的是,object 對象提供了解決方案。如果未顯示 object 元素,就會執行位于 <object> 和 </object> 之間的代碼。通過這種方式,我們能夠嵌套多個 object 元素(每個對應一個瀏覽器)。

            實例

            向HTML中添加對象:

            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中注冊類ID:clsid

            “通用唯一標識符”(UUID),用于標識 COM 組件。每個 COM 組件在 Windows 注冊表中都有自己的 CLSID,以便讓其他應用程序加載。

            ActiveX控件CLSID的獲取

            在編譯完成每一個ActiveX控件之后,系統會生成ocx.html文件,其中是調用該ActiveX控件的方法。該頁面中有一個標簽即為Object,其中有一行則記錄著該ocx文件的CLSID,如下:

            1 <object  
            2  ID="TopoSceneViewer"    
            3  WIDTH=800  
            4  HEIGHT=600  
            5  CLASSID="CLSID:321B84C8-3745-4AC9-BF04-55753F40CE63">   
            6 </object> 

             


            創建cab文件

            cab文件中需要包含一系列文件,其中.inf文件會告訴IE如何去安裝這些文件。我們從.inf文件開始

            怎么寫inf

            INF文件的組成有節(Sections),鍵(Key)和值(value)三部分。 
            關鍵節有 
            1 [Version]版本描述信息,主要用于版本控制。   
            2 [Strings]字符串信息,用于常量定義。   
            3 [DestinationDirs]定義系統路徑信息。   
            4 [SourceDisksNames]指明源盤信息。   
            5 [SourceDisksNames]指明源盤文件名。   
            6 [DefaultInstall]開始執行安裝。

            其它的節可以自定義

            最開始一般是[Version]區: 

            1 [Version]    
            2 signature="$XXXX$"    
            3 AdvancedINF=2.0  

             

            "Signature"項定義了該INF文件需要運行在何種操作系統版本中。有$Windows NT$, $Chicago$, or $Windows 95$三個值供選擇,一般選擇$Chicago$即可。

            接下來就是最重要的[Add.Code]區: 

            1 [Add.Code]    
            2 Ctrl1.dll=C1Section    
            3 Ctrl2.dll=Ctrl2.dll  

            前面是要下載的文件名,后面是對應這個文件的區域名,可以是任何名字,不過一般都是和文件的名字相同,這樣方便維護。

            還有需要注意是在[Add.Code]區出現的文件要根據依賴性進行排序,例如前面說的ctrl1.dll要依賴于ctrl2.dll,則ctrl2.dll要出現在ctrl1.dll的前面。因為安裝時是按照相反的順序進行的,也就是說先安裝ctrl2.dll,然后才是ctrl1.dll,哧哧,記清楚了,不要搞反了。

            再接下來是各個文件的區域了 

            1 [Ctrl1.dll]    
            2 file-win32-x86=thiscab    
            3 RegisterServer=yes    
            4 clsid={..}    
            5 DestDir=      
            6 FileVersion=1,0,0,0   

            [Ctrl1.dll]區域中的第一個file值告訴ie到哪里去得到這個dll,file一共包括三個部分,第一部分是file,這個永遠都是這樣的(至少目前來說);第二部分告訴聲明支持的OS,win32表示windows,mac就是蘋果MAC OX了;第三部分是CPU類型,比如說x86、 ppc (Power PC)、 mips或者alpha了。

            file的值可以取三個一個URL、ignore和thiscab,如果是URL則說明到URL所在的位置去下;如果是ignore說明對于這種OS和CPU,不需要下載這個文件(ctrl1.dll);如果是thiscab很明顯就在當前的cab文件中了。

            接下來是RegisterServer,可以取兩個值yes和no,如果為yes則說明ie要注冊該dll,如果是no就不必了。+如果這里選yes,則需要指定clsid,否則clsid一行可以省略。+

            再下來是DestDir,它的值是dll將要存到本地硬盤的位置,如果它的值是10,則將dll放到/Windows或者/WinNT下;如果是11,則放到/Windows/System或者/WinNT/System32下;如果是空(就是沒有值)則會放到/Windows或者/WinNT下的Downloaded Program Files目錄下;

            最后是FileVersion,這個就比較明顯了,說明了ctrl1.dll的版本號。

            其他部分詳見參考文獻。

            創建cab文件

            1. 如果需要創建cab文件,首先需要Cabarc或者Makecab,它們隨著Cabinet SDK的安裝就有了,Cabinet SDK的下載地址是http://msdn.microsoft.com/workshop/management/cab/cabdl.asp
            2. Cabarc可以創建、查看或者解出cab里面的文件,而Makecab則只可以用來創建cab文件。
            3. 制作cab文件時需要將所有的相關文件都包含進去,可以通過Depends(VC自帶的)檢查需要的文件。使用inf文件將這些東西都寫進去。
            4. inf搞法:inf文件描述cab中所有的ocx及dll文件,inf通過一些命名區域來提供需要的信息。
              cabarc  N  ctrl1.cab  ctrl1.inf  ctrl1.dll  
              N表示要創建一個新的文件,ctrl1.cab是創建的文件名,ctrl1.inf是cab的inf,后而是需要加到cab里的文件,可以使用通配符。 
              然后就可以將cab文件放到網頁上了

            參考

            1. 如何編寫INF:http://www.cnblogs.com/sbdx/archive/2006/12/14/whatisinffile.html
            2. 如何寫cab相關的INF:http://docs.google.com/Doc?docid=0Aehzv88zbfy_ZGdncGdqczZfMjIxZHNnZDhtYzg&hl=zh_CN

            簽名

            申請證書

            要使用到makecert工具,在VS2005目錄下搜索可以搜索到。

            在命令提示行中執行

            1 makecert -sk myNewKey --"CN=發證機關的名字,OU=Certification,O=公司名字,E=name@email.com" -ss my myNew.cer  
            2 cert2spc myNew.cer myNew.spc  

            makecert具體使用幫助可參考創建證書的工具(makecert.exe)

            簽名

            要使用到signtool工具,也可以在VS2005目錄下找到。

            signtool工具有多種使用模式,下面使用的是帶UI的向導模式。
            在命令提示行中執行

            1 signtool  signwizard  

            之后進入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)

            本文轉自:http://blog.csdn.net/wangjingfei/article/details/5417028
            其他
            鏈接:http://www.cnblogs.com/rushoooooo/archive/2011/06/22/2087542.html

            posted @ 2013-09-05 10:05 王海光 閱讀(716) | 評論 (0)編輯 收藏
            示例:
                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);
            posted @ 2013-09-04 16:14 王海光 閱讀(2919) | 評論 (0)編輯 收藏

            可以使用MUI函數里面的

            MUI_FINISHPAGE_RUN_FUNCTION function 

            定義一個function,函數里面執行 安裝完成后的exe

            ;定義安裝界面
            !define MUI_FINISHPAGE_RUN
            ;安裝函數定義
            !define MUI_FINISHPAGE_RUN_FUNCTION "LaunchLink" 
            !insertmacro MUI_PAGE_FINISH

            ;function要寫字section之后
            Function LaunchLink
                ExecShell "" "$INSTDIR\*.exe"
            FunctionEnd

            posted @ 2013-09-02 14:39 王海光 閱讀(4671) | 評論 (0)編輯 收藏
            問題產生:
                   使用gsoap時,如果WebService服務端及客戶調用端都使用 C++ 再傳遞中文時不會存在亂碼問題,

                   當客戶端為 C++ WebService服務端使用Javadomino,傳遞中文則會有亂碼問題。

            產生原因:

                   寬字符的原因

            解決辦法()

                在程序中首先設置本地代碼頁

                vista 操作系統: 

                      setlocal(LC_ALL,"Chinese");

                      soap_set_mode(soap,SOAP_C_MBSTRING);

                windowsxp 操作系統:

                      setlocal(LC_ALL,"chs");

                      soap_set_mode(soap,SOAP_C_MBSTRING);

             

            解決方法(二)

                1. 使用 wsdl2h.exe 通過wsdl描述文件創建C++頭文件(test.h);

                2. 將頭文件(test.h) std:string* 使用wchar_t* 替換;

                3. 使用 soapcpp2.exe -i test.h ,生成相關的cpph文件

                4. 使用 C++ 時,需要將接收的wchar_t類型數據轉換為char 使用WideCharToMultiByte函數   

            后續:

                soap在對字符編碼轉換時,調用 wctomb 函數,該函數的調用在 stdcoap2.cpp 文件中,代碼調試跟蹤至此,查看 該函數的返回值是否正確,-1表示字符集設置不正確。

            本文轉自:http://wenhaidongke.blog.163.com/blog/static/128070090200982313655668/

            posted @ 2013-08-29 19:57 王海光 閱讀(2811) | 評論 (0)編輯 收藏

            1.使用CTime類   

            CString str; //獲取系統時間   

            CTime tm; tm=CTime::GetCurrentTime();   

            str=tm.Format("現在時間是%Y年%m月%d日 %X");

            MessageBox(str,NULL,MB_OK); 2: 得到系統時間日期(使用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//獲取程序運行時間   

            long t1=GetTickCount();//程序段開始前取得系統運行時間(ms)   

            Sleep(500); long t2=GetTickCount();//程序段結束后取得系統運行時間(ms)   

            str.Format("time:%dms",t2-t1);//前后之差即 程序運行時間   

            AfxMessageBox(str);//獲取系統運行時間   

            long t=GetTickCount();   

            CString str,str1;   

            str1.Format("系統已運行 %d時",t/3600000);   

            str=str1; t%=3600000;   

            str1.Format("%d分",t/60000);   

            str+=str1; t%=60000;   

            str1.Format("%d秒",t/1000);   

            str+=str1; AfxMessageBox(str);

            本文轉自:http://www.cnblogs.com/bigbigtree/archive/2011/12/02/2272066.html

            posted @ 2013-08-22 17:36 王海光 閱讀(1565) | 評論 (0)編輯 收藏
            1、RichEdit文本轉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("內容為空");
                    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; //設置用例參數,以便回調函數調用
                es.pfnCallback = MyStreamOutCallback;
                m_richEdit.StreamOut(SF_RTF, es);
            }

            2、word文本轉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("創建Word服務失敗!");
                    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(); //釋放對象指針。切記,必須調用

            3、RTF文件轉html文件

                // 保存html文件 [8/12/2013 dell]
                _Application WordApp;
                CoInitialize(NULL);
                if(!WordApp.CreateDispatch("Word.Application",NULL))
                {
                    //AfxMessageBox("創建Word服務失敗!");
                    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("轉換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(); //釋放對象指針。切記,必須調用
            posted @ 2013-08-21 08:53 王海光 閱讀(2456) | 評論 (1)編輯 收藏
                 摘要: 一.常見問題 a.可以編譯,不能執行的 AfxInitRichEdit(); b.升級默認的Riched版本(默認的有一些bug),如 可在InitInstance中添加 LoadLibrary("RICHED20.DLL") 最后注意 FreeLibrary 如果是CRichEditView基類的可用 BOOL ...  閱讀全文
            posted @ 2013-08-21 08:42 王海光 閱讀(14585) | 評論 (0)編輯 收藏
            僅列出標題
            共27頁: First 2 3 4 5 6 7 8 9 10 Last 
            国产成年无码久久久久毛片| 日韩久久无码免费毛片软件| 中文字幕久久亚洲一区| 久久亚洲国产欧洲精品一| 伊人色综合久久天天| 亚洲国产精品热久久| 国产视频久久| 青青热久久国产久精品 | 97久久精品人妻人人搡人人玩| 香港aa三级久久三级老师2021国产三级精品三级在 | 国产亚洲精午夜久久久久久 | 久久亚洲国产精品一区二区| 久久精品一区二区| 国产精品成人无码久久久久久| 国产一区二区三精品久久久无广告| 久久国产精品二国产精品| 香蕉99久久国产综合精品宅男自| 无码八A片人妻少妇久久| 久久AV高潮AV无码AV| 99久久99久久精品免费看蜜桃| 一级做a爰片久久毛片人呢| 久久精品这里只有精99品| 少妇熟女久久综合网色欲| 国产成人久久精品一区二区三区| 99久久亚洲综合精品成人| 日本精品一区二区久久久| 久久夜色精品国产欧美乱| Xx性欧美肥妇精品久久久久久| 中文字幕无码久久人妻| 久久久精品人妻一区二区三区四| 久久亚洲国产午夜精品理论片| 欧美精品九九99久久在观看| 久久99精品久久久久子伦| 久久人人爽人爽人人爽av| 日韩精品久久久久久久电影蜜臀| 久久综合欧美成人| 久久久久久精品免费看SSS| 国产精品无码久久四虎| 久久精品国产2020| 免费一级做a爰片久久毛片潮| 久久综合狠狠综合久久综合88|