一、通過clsid
[cpp]view plain
copy
?
ibasefilter *pf = 0;
hresult
hr = cocreateinstance(clsid, 0, clsctx_inproc_server,
iid_ibasefilter, reinterpret_cast
<
void
**>(&pf));
二、通過系統列舉器
[cpp]view plain
copy
" style="text-decoration:none;background-image:none;border:none;font-size:9px;">?
" style="text-decoration:none;background-image:none;border:none;font-size:9px;">
" style="text-decoration:none;background-image:none;border:none;font-size:9px;">
icreatedevenum *psysdevenum = null;
hr = cocreateinstance(clsid_systemdeviceenum, null, clsctx_inproc_server,
iid_icreatedevenum, (void
**)&psysdevenum);
if(failed(hr))
ienummoniker *penumcat = null;
hr = psysdevenum->createclassenumerator(clsid_videocompressorcategory, &penumcat, 0);
if(hr == s_ok)
pmoniker->release();
} penumcat->release();
} psysdevenum->release();
[cpp]view plain
copy
" style="text-decoration:none;background-image:none;border:none;font-size:9px;">?
" style="text-decoration:none;background-image:none;border:none;font-size:9px;">
" style="text-decoration:none;background-image:none;border:none;font-size:9px;">
ienummoniker *penum = null;
(void
guid arrayintypes[2];
arrayintypes[0] = mediatype_video;
arrayintypes[1] = mediasubtype_dvsd;
&penum,
0, // reserved.
true, // use exact match?
merit_do_not_use+1, // minimum merit.
true, // at least one input pin?
1, // number of major type/subtype pairs for input.
arrayintypes, // array of major type/subtype pairs for input.
null, // input medium.
null, // input pin category.
false, // must be a renderer?
true, // at least one output pin?
0, // number of major type/subtype pairs for output.
null, // array of major type/subtype pairs for output.
null, // output medium.
null); // output pin category.
imoniker *pmoniker;
ulong
cfetched;
while
(penum->next(1, &pmoniker, &cfetched) == s_ok)
pmoniker->release();
} penum->release();
第一種方法是最直接的,也最簡單,只是當不清楚clsid的時候。就不得不用後面兩種方法。
另外一種方法和第三中方法都是使用列舉器列舉filter。通過匹配filter的屬性來得到filter,它們不同之處在於:另外一種通過確定的種類獲得列舉器,第三種通過**型別獲得列舉器。
獲得列舉器以後的步驟是同樣的。
這三種方法最經常使用的是另外一種。
增加程式設計經驗的三種途徑
1.無償工作 或幾乎免費 企業界通常可能並不想僱傭經驗少或沒有經驗的人,而非盈利界通常樂意 至少願意 僱傭這一類人。我在高中的時候,去我們當地發育性殘疾人家庭當志願者,我是這樣進入程式設計師這行的。我用excel 來為他們管理財務,幫他們把這些資訊整理到了乙個 上,等等。工作很吸引人嗎?完全不是那麼...
C 生成XML的三種途徑
為了全面,這裡都將xml儲存到檔案中,有三種生成xml的方式 1。我認為是最原始,最基本的一種 利用xmldocument向乙個xml檔案裡寫節點,然後再利用xmldocument儲存檔案。首先載入要寫入的xml檔案,但是如果沒有的,就要新建,在新建的過程中,要有寫入的 xmldocument do...
C 生成XML的三種途徑
為了全面,這裡都將xml儲存到檔案中,有三種生成xml的方式 1。我認為是最原始,最基本的一種 利用xmldocument向乙個xml檔案裡寫節點,然後再利用xmldocument儲存檔案。首先載入要寫入的xml檔案,但是如果沒有的,就要新建,在新建的過程中,要有寫入的 xmldocument do...