原创 兩種註冊COM組件的方法

一、問題的提出 現在很多同一類型的軟件功能類似,由此帶來自己軟件所涉及的功能實現被別的安裝的軟件搶佔,如某種類型文件的打開播放,這樣就影響了自己軟件的使用。   二、解決思路 COM組件註冊有兩種,一種是用regsvr32.exe,另外一

原创 多語言中的自定義快捷鍵實現

一、問題的提出 一般的商業性軟件的基本功能要求之一是實現自定義快捷鍵來提高易用性,這樣用戶可以根據自己習慣的更改快捷鍵,在長期使用中逐漸熟練並加快軟件的使用速度,提高使用效率。 但這種快捷鍵要求與菜單提示相一致,並隨快捷鍵的更換而菜單相應

原创 簡化MFC版amcap

一、問題的提出 開始學習並熟悉DirectShow,最好的範例就是AMCap,因爲它提供了兩套Dshow最基本的代碼模型:預覽與捕獲,並實現了顯示設備屬性頁和流控等一系列技術,並且很多硬件捕獲把它附加爲軟件,以便可以察看自己硬件的預覽效果

原创 編寫DirectShow Filters—概述

seeker (一) 介紹DirectShow Filter開發本章提供開發一個自定義DirectShow filter的簡單框架描述,也提供了鏈接到更詳細討論這些任務的主題。在閱讀本章之前,閱讀在About DirectShow主題,它

原创 用一個位圖平鋪到客戶端

代碼很簡單,不作說明 void CStretchDlg::OnPaint() {      CPaintDC dc(this);      CDC dcMem;      dcMem.CreateCompatibleDC(&dc);

原创 使用VMR9採集n個視頻的一幀到一張位圖

近來看DirectX 9.0文檔,越來越覺得它功能的強大。結合目前解決的一個問題: 即採集多個視頻源的一幀到一張位圖。它需要用到DirectX中的VMR。  VMR是新一代的video renderer,全稱爲Video Mixing R

原创 進程守護

進程守護   進程守護是指防止進程被結束掉,用一些編程技術把它保護起來,一般是病毒採用的技術手段,它們hook一些api,或者注入其它進程空間,比較多的是注入explorer.exe,這些技術應該屬於單進程守護,因爲我的程序中還不會用到

原创 編譯Meida Player Classic(MPC)

相關的工具與環境: OS:Windows XP2 CVS:Subversion+TortoiseSVN VS2005 Enterprise(vc8.0) SDK: Microsoft DirectX 9.0 SDK Update (Sum

原创 重新壓縮一個AVI文件

效果圖: directshow文檔中有一節關於重新壓縮一個AVI,按照文章的思路:1、選擇一個壓縮Filter2、設置視頻壓縮屬性3、生成重新壓縮graph4、寫文件 給出所有源代碼(文檔中已經給出了絕大部分代碼)#include "st

原创 dshow中playwnd的改寫

爲了熟悉代碼,把playwnd從win32改成mfc,代碼的複製與粘貼,沒什麼新功能添加,以後有機會再添加 效果圖  

原创 dshow中使用Sample Grabber filter抓取圖像

sample Grabber使用兩種模式抓取圖像:緩衝模式和回調模式,緩衝模式向下傳遞採樣時拷貝每個採樣,而回調模式對於每個採樣調用程序定義的回調函數。回調模式是動態加載filter,影響程序性能,甚至引起死鎖。其中的原因是如果採樣是mi

原创 實現多線程拷貝多級目錄

 一、問題的提出 Windows中文件夾的拷貝實現了單個文件到多級目錄的拷貝,一般在處理大量數據拷貝之類耗時的操作,都會另外創建新的線程來處理。現在要

原创 卡通小鬧鐘VC版

前言: 一直使用羅雲彬的卡通小鬧鐘V2.0,他的這個鬧鐘軟件是用100% Win32 彙編語言編寫的。覺得運行的很好,也體現了彙編語言的精減,才幾十K。 但作爲一個程序員,總想在自己上儘可能運行自己的程序。於是我自己在工作之餘帶着做出來了

原创 symbian 圖形界面轉命令界面更改點

常規->配置類型:更改爲:應用程序(.exe)   鏈接器->常規->輸出文件:更改爲:exe   鏈接器->輸入->強制符號引用:更改爲:?_E32Startup@@YGXXZ   鏈接器->高級->入口點:原:_E32Dll更改爲:_

原创 C++版_splitpath

今天寫程序時遇到給定文件全路徑求文件路徑,即去掉後面的文件名稱。用MFC比較容易實現,可以用如下的示例得到TCHAR szPath[MAX_PATH];if( !GetModuleFileName(NULL, szPath, MAX_PA