• <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>

            行勝于言

            于無聲處

            2006年11月14日 #

            解決CFrameWnd的邊框問題


            大家都做過基于MFC Dialog的應(yīng)用程序,我更喜歡用CFrameWnd派生類來實(shí)現(xiàn)應(yīng)用程序的主框架,我不太喜歡SDI模板,又是Document又是View的,MFC背著你干了很多事情!
            好了,說說問題,大家如果作過基于CFrameWnd的主窗口,可能會(huì)發(fā)現(xiàn)主窗口會(huì)有一個(gè)3D的邊框,一開始我用ModifyStyle發(fā)現(xiàn)不行,那就在PreCreateWindow里面吧!呵呵,也不管用,跟進(jìn)MFC的代碼,發(fā)現(xiàn)CFrameWnd::PreCreateWindow會(huì)重置dwExStyle,好了看代碼吧!

            BOOL?CMainFrame::PreCreateWindow(CREATESTRUCT & ?cs)?
            {
            ??BOOL?bRet
            = CFrameWnd::PreCreateWindow(cs);
            ??
            if (bRet)
            {
            ???cs.dwExStyle
            &=~ WS_EX_CLIENTEDGE;
            ???
            return ?TRUE;
            ?}

            ?
            return ?FALSE;
            }

            posted @ 2006-11-14 13:49 行勝于言 閱讀(1401) | 評(píng)論 (1)編輯 收藏

            2006年9月27日 #

            又要過10-1了

            好象還是有點(diǎn)不開心,大概搞TMD 軟件每天都有解決不完的問題,尤其象我這種不知道天高地厚的人更是如此!
            牢騷要發(fā),也得繼續(xù)搞,屏幕捕獲的算法終于優(yōu)化出來了,下一步是用ASF Container把數(shù)據(jù)包裝起來,效果應(yīng)該不錯(cuò),我有點(diǎn)搞不明白的是AVI的索引為什么那么慢,數(shù)據(jù)量大是一方面,關(guān)鍵還是數(shù)據(jù)組織上存在缺陷,不如MPEG4!
            如果順利,應(yīng)該在10月份就可以拿出一個(gè)象樣的版本的錄制軟件了,應(yīng)該可以斃掉一批垃圾錄屏軟件了,這是我希望看到的!
            下面的事情還很多,每個(gè)都?jí)蚩械模疫€得多些耐心,少些焦慮,也希望認(rèn)識(shí)一些朋友大家一塊合作!

            posted @ 2006-09-27 16:34 行勝于言 閱讀(236) | 評(píng)論 (0)編輯 收藏

            2006年9月18日 #

            征途

            我要開始征途了,也許前面是坦途或荊棘,這已經(jīng)都不重要了,更多在于我的機(jī)會(huì)也許只能在此征途體現(xiàn)了,如果失敗,也許就意味著我在IT行業(yè)的徹底顛覆,我認(rèn)了!
            我把自己blog定為行勝于言,意義就在這里,我的計(jì)劃開始了,從今天開始!

            posted @ 2006-09-18 13:55 行勝于言 閱讀(353) | 評(píng)論 (1)編輯 收藏

            2006年7月24日 #

            如何讓你的程序安全通過windows防火墻

            大家開發(fā)網(wǎng)絡(luò)程序,經(jīng)常要連接其他主機(jī),如果在xp上運(yùn)行,一定會(huì)提示你,只有選擇解除阻止才能實(shí)現(xiàn)正常的網(wǎng)絡(luò)連接.那么有沒有辦法在防火墻的例外列表里面通過編程的方式加入自己的程序呢?
            ?當(dāng)然有了,不然就不要介紹了
            xp的系統(tǒng)目錄下面有個(gè)hnetcfg.dll就是這個(gè)編程接口,頭文件是netfw.h,初始化代碼如下:
            INetFwProfile* m_pFireWallProfile=NULL;

            HRESULT?hr? = ?S_FALSE;
            ????INetFwMgr
            * ?fwMgr? = ?NULL;
            ????INetFwPolicy
            * ?fwPolicy? = ?NULL;

            ????FW_ERROR_CODE?ret?
            = ?FW_NOERROR;
            ????
            try
            ????
            {
            ????????
            if (?m_pFireWallProfile?)
            ????????????
            throw ?FW_ERR_INITIALIZED;

            ????????
            // ?Create?an?instance?of?the?firewall?settings?manager.
            ????????hr? = ?CoCreateInstance(?__uuidof(NetFwMgr),?NULL,?CLSCTX_INPROC_SERVER,?__uuidof(?INetFwMgr),?( void ** ) & fwMgr?);

            ????????
            if (?FAILED(?hr?))
            ????????????
            throw ?FW_ERR_CREATE_SETTING_MANAGER;

            ????????
            // ?Retrieve?the?local?firewall?policy.
            ????????hr? = ?fwMgr -> get_LocalPolicy(? & fwPolicy?);
            ????????
            if (?FAILED(?hr?))
            ????????????
            throw ?FW_ERR_LOCAL_POLICY;

            ????????
            // ?Retrieve?the?firewall?profile?currently?in?effect
            ????????hr? = ?fwPolicy -> get_CurrentProfile(? & m_pFireWallProfile?);
            ????????
            if (?FAILED(?hr?))
            ????????????
            throw ?FW_ERR_PROFILE;

            ????}

            ????
            catch (?FW_ERROR_CODE?nError)
            ????
            {
            ????????ret?
            = ?nError;
            ????}


            ????
            if (?fwPolicy?)
            ????????fwPolicy
            -> Release();
            ????
            if (?fwMgr?)
            ????????fwMgr
            -> Release();

            ????
            return ?ret;
            將程序名稱加入例外列表:
            WinXPSP2FireWall::AddApplication(?const?wchar_t*?lpszProcessImageFileName,?const?wchar_t*?lpszRegisterName?)
            {
            ????FW_ERROR_CODE?ret?
            =?FW_NOERROR;
            ????HRESULT?hr;
            ????BOOL?bAppEnable;
            ????BSTR?bstrProcessImageFileName?
            =?NULL;
            ????BSTR?bstrRegisterName?
            =?NULL;
            ????INetFwAuthorizedApplication
            *?pFWApp?=?NULL;
            ????INetFwAuthorizedApplications
            *?pFWApps?=?NULL;

            ????
            try
            ????
            {
            ????????
            if(?m_pFireWallProfile?==?NULL?)
            ????????????
            throw?FW_ERR_INITIALIZED;
            ????????
            if(?lpszProcessImageFileName?==?NULL?||?lpszRegisterName??==?NULL?)
            ????????????
            throw?FW_ERR_INVALID_ARG;

            ????????
            //?First?of?all,?check?the?application?is?already?authorized;
            ????????FW_ERROR_CODE??nError?=?this->IsAppEnabled(?lpszProcessImageFileName,?bAppEnable?);
            ????????
            if(?nError?!=?FW_NOERROR?)
            ????????????
            throw?nError;

            ????????
            //?Only?add?the?application?if?it?isn't?authorized
            ????????if(?bAppEnable?==?FALSE?)
            ????????
            {
            ????????????
            //?Retrieve?the?authorized?application?collection
            ????????????hr?=?m_pFireWallProfile->get_AuthorizedApplications(?&pFWApps?);
            ????????????
            if(?FAILED(?hr?))
            ????????????????
            throw?FW_ERR_AUTH_APPLICATIONS;

            ????????????
            //?Create?an?instance?of?an?authorized?application
            ????????????hr?=?CoCreateInstance(?__uuidof(NetFwAuthorizedApplication),?NULL,?CLSCTX_INPROC_SERVER,?__uuidof(INetFwAuthorizedApplication),?(void**)&pFWApp);
            ????????????
            if(?FAILED(?hr?))
            ????????????????
            throw?FW_ERR_CREATE_APP_INSTANCE;

            ????????????
            //?Allocate?a?BSTR?for?the?Process?Image?FileName
            ????????????bstrProcessImageFileName?=?SysAllocString(?lpszProcessImageFileName?);
            ????????????
            if(?SysStringLen(?bstrProcessImageFileName?)?==?0)
            ????????????????
            throw?FW_ERR_SYS_ALLOC_STRING;

            ????????????
            //?Set?the?process?image?file?name
            ????????????hr?=?pFWApp->put_ProcessImageFileName(?bstrProcessImageFileName?);
            ????????????
            if(?FAILED(?hr?)?)
            ????????????????
            throw?FW_ERR_PUT_PROCESS_IMAGE_NAME;

            ????????????
            //?Allocate?a?BSTR?for?register?name
            ????????????bstrRegisterName?=?SysAllocString(?lpszRegisterName?);
            ????????????
            if(?SysStringLen(?bstrRegisterName?)?==?0)
            ????????????????
            throw?FW_ERR_SYS_ALLOC_STRING;
            ????????????
            //?Set?a?registered?name?of?the?process
            ????????????hr?=?pFWApp->put_Name(?bstrRegisterName?);
            ????????????
            if(?FAILED(?hr?))
            ????????????????
            throw?FW_ERR_PUT_REGISTER_NAME;
            ????????????
            ????????????
            //?Add?the?application?to?the?collection
            ????????????hr?=?pFWApps->Add(?pFWApp?);
            ????????????
            if(?FAILED(?hr?))
            ????????????????
            throw?FW_ERR_ADD_TO_COLLECTION;
            ????????}

            ????}

            ????
            catch(?FW_ERROR_CODE?nError?)
            ????
            {
            ????????ret?
            =?nError;
            ????}


            ????SysFreeString(?bstrProcessImageFileName?);
            ????SysFreeString(?bstrRegisterName?);

            ????
            if(?pFWApp?)
            ????????pFWApp
            ->Release();
            ????
            if(?pFWApps?)
            ????????pFWApps
            ->Release();

            ????
            return?ret;
            }

            posted @ 2006-07-24 16:01 行勝于言 閱讀(2311) | 評(píng)論 (3)編輯 收藏

            2006年7月22日 #

            視頻壓縮技術(shù)在桌面錄制中的應(yīng)用

             現(xiàn)今的即時(shí)通信軟件都實(shí)現(xiàn)了音頻、視頻互通的功能,這得益于視頻編碼技術(shù)的應(yīng)用,目前市面上Microsoft 有MPEG4 v3,DIVX,XVID等等不一而足,但目前市場(chǎng)上好象對(duì)用戶桌面錄制技術(shù)關(guān)注不夠,因?yàn)榇蠹抑雷烂鎴D象和運(yùn)動(dòng)圖象是不一樣的,這也造成優(yōu)秀的桌面錄制軟件非常缺乏。
            為什么要討論桌面壓縮呢?因?yàn)槠饝?yīng)用領(lǐng)域非常廣泛,第一他用在課件制作技術(shù)方面,可以完整還原教師的培訓(xùn)過程,尤其是操作類培訓(xùn)的課程更有實(shí)際意義。第二桌面共享依賴于桌面壓縮技術(shù),更好的壓縮效率和質(zhì)量將使得低帶寬下的高質(zhì)量桌面共享成為可能?
            大家都知道桌面壓縮技術(shù)的實(shí)現(xiàn)可以基于RLE或HUFFMAN或其他更高級(jí)的算法進(jìn)行實(shí)現(xiàn),如何實(shí)現(xiàn)更為優(yōu)秀的回放效果和質(zhì)量,是目前這些方法所不能解決的。
            同時(shí),為了兼容應(yīng)用需求,錄制的輸出格式也有很多要求,比如實(shí)現(xiàn)網(wǎng)上點(diǎn)播、錄制成ASF格式等。
            在最近一段時(shí)間的開發(fā)過程和實(shí)現(xiàn)過程中,我嘗試了一些新的方法,取得了一些突破,但離自己最終的想法還有一定距離,如果大家感興趣的話,可以到我的網(wǎng)站下載:屏蹤幻影,由于目前軟件還不是非常完善,所以目前還無法公開代碼,在后續(xù)的時(shí)間里我會(huì)公開程序結(jié)構(gòu)和內(nèi)部代碼實(shí)現(xiàn)。
            希望大家對(duì)我的軟件實(shí)現(xiàn)提出建議和修改意見。

            posted @ 2006-07-22 14:02 行勝于言 閱讀(960) | 評(píng)論 (3)編輯 收藏

            2006年7月6日 #

            五行代碼搞定"音量調(diào)節(jié)向?qū)?

            ?音量調(diào)節(jié)是實(shí)現(xiàn)互聯(lián)網(wǎng)語音通信的重要環(huán)節(jié),很多公司自行實(shí)現(xiàn)了有關(guān)音量調(diào)節(jié)的向?qū)?無奈水平各異,千差萬別.微軟公司也給出了解決方案,不過是在RTC實(shí)現(xiàn),需要安裝RTC運(yùn)行時(shí).

            ?? 今天給大家介紹的使用DirectX中有關(guān)DirectVoice中的實(shí)現(xiàn)來解決我們的問題:

            //http://www.handytech.cn
            #include <dvoice.h>
            #pragma? comment(lib,"dxguid.lib")
            void CTestDlg::OnButton1()
            {
            ?// TODO: Add your control notification handler code here
            ?IDirectPlayVoiceTest* pTest;
            ?HRESULT hr=CoCreateInstance(CLSID_DirectPlayVoiceTest,NULL,CLSCTX_INPROC_SERVER,IID_IDirectPlayVoiceTest,(void**)&pTest);
            ?if(SUCCEEDED(hr))
            ?{
            ??pTest->CheckAudioSetup(&DSDEVID_DefaultVoicePlayback,&DSDEVID_DefaultCapture,NULL,DVFLAGS_ALLOWBACK);
            ??pTest->Release();
            ?}

            ? OK上面的代碼就調(diào)用了DirectVoice中的實(shí)現(xiàn),大家看看效果!?

            ?

            posted @ 2006-07-06 17:05 行勝于言 閱讀(9800) | 評(píng)論 (2)編輯 收藏

            僅列出標(biāo)題  
            亚洲国产精品久久久久婷婷老年| 中文字幕精品久久| 亚洲人成精品久久久久| 久久久噜噜噜久久中文字幕色伊伊| 久久久久亚洲av无码专区| 亚洲愉拍99热成人精品热久久| 亚洲精品tv久久久久久久久久| 久久久久久久综合日本| 久久久91人妻无码精品蜜桃HD| 国产精品无码久久四虎| 国产亚洲美女精品久久久| 久久无码国产| 久久精品国产男包| 香蕉久久av一区二区三区| 97视频久久久| 久久久久久无码Av成人影院| 国内精品久久久人妻中文字幕| 久久精品无码一区二区三区| 91精品国产综合久久四虎久久无码一级 | 精品久久久久国产免费| 久久久久亚洲AV无码专区网站| 久久久免费观成人影院| 久久青青草视频| 99精品久久精品| 久久久久久国产精品美女 | 亚洲嫩草影院久久精品| 久久人人爽人人爽AV片| 一本色道久久综合亚洲精品| jizzjizz国产精品久久| 久久久久久久综合日本| 色综合久久久久综合体桃花网| 国产欧美久久一区二区| 一个色综合久久| 99久久精品免费看国产免费| 国内精品久久久久影院亚洲| 久久最近最新中文字幕大全| 伊人伊成久久人综合网777| 久久这里只有精品久久| 久久久久久久久久久久久久| 99久久人人爽亚洲精品美女| 久久久久久国产精品美女|