全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3267
推到 Plurk!
推到 Facebook!

關於 CoCreateInstance( ) 函數呼叫的問題

尚未結案
jvory2k
一般會員


發表:2
回覆:5
積分:1
註冊:2003-12-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-08 10:02:50 IP:140.128.xxx.xxx 未訂閱
在下面的程式中, HRESULT hr =CoCreateInstance( ..... ); 而傳回的 hr 值為 -2147221008 ,這表示CoCreateInstance( ..... )失敗,所以在 if (SUCCEEDED(hr)) 這一行時判斷值為" 假 ",那接下來的程式便無法正常執行了,請問各位高手這到底是什麼原因?    //------------------------------------      IGraphBuilder *pGraph;   ICaptureGraphBuilder2 *pBuild;      // Create the Capture Graph Builder.   HRESULT hr = CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL, CLSCTX_INPROC_SERVER, IID_ICaptureGraphBuilder2, (void**)&pBuild);   if (SUCCEEDED(hr))   {     // Create the Filter Graph Manager.     Form1->Edit1->Text="Create Capture Graph Builder Seccess";     hr = CoCreateInstance(CLSID_FilterGraph, 0, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void**)&pGraph);     if (SUCCEEDED(hr))     {       Form1->Edit1->Text="Create Filter Graph Manager Success";       // Initialize the Capture Graph Builder.       pBuild->SetFiltergraph(pGraph);     }     else     {       Form1->Edit1->Text="Create Filter Graph Manager Failed";       pBuild->Release();     }     ICreateDevEnum *pDevEnum = NULL;     IEnumMoniker *pEnum = NULL;        // Create the System Device Enumerator.     hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC_SERVER, IID_ICreateDevEnum, reinterpret_cast(&pDevEnum)); if (SUCCEEDED(hr)) { Form1->Edit1->Text="Create System Device Enumerator Success"; // Create an enumerator for the video capture category. hr = pDevEnum->CreateClassEnumerator(CLSID_VideoInputDeviceCategory, &pEnum, 0); IMoniker *pMoniker; while (pEnum->Next(1, &pMoniker, NULL) == S_OK) { IPropertyBag *pPropBag; hr = pMoniker->BindToStorage(0, 0, IID_IPropertyBag, (void**)(&pPropBag)); if (FAILED(hr)) { pMoniker->Release(); continue; // Skip this one, maybe the next one will work. } // Find the description or friendly name. VARIANT varName; VariantInit(&varName); hr = pPropBag->Read(L"Description", &varName, 0); if (FAILED(hr)) { hr = pPropBag->Read(L"FriendlyName", &varName, 0); } if (SUCCEEDED(hr)) { } pPropBag->Release(); pMoniker->Release(); } } else { Form1->Edit1->Text="Create System Device Enumerator Failed"; } } else { Form1->Edit1->Text="Create Capture Graph Builder Failed"; Form1->Edit2->Text=AnsiString(hr); }
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-08 18:43:59 IP:61.231.xxx.xxx 未訂閱
jvory2k您好: PO程式碼請參考版規說明 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=43591 謝謝您的配合 順心
jvory2k
一般會員


發表:2
回覆:5
積分:1
註冊:2003-12-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-08 21:51:46 IP:203.67.xxx.xxx 未訂閱
引言: jvory2k您好: PO程式碼請參考版規說明 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=43591 謝謝您的配合 順心 < face="Verdana, Arial, Helvetica"> 謝謝,下次知道了。
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-08 22:07:10 IP:61.221.xxx.xxx 未訂閱
引言: 在下面的程式中, HRESULT hr =CoCreateInstance( ..... ); 而傳回的 hr 值為 -2147221008 ,這表示CoCreateInstance( ..... )失敗,所以在 if (SUCCEEDED(hr)) 這一行時判斷值為" 假 ",那接下來的程式便無法正常執行了,請問各位高手這到底是什麼原因?
jvory2k 你好: 這段程式碼的目的應該是呼叫某個 ActiveX,先試試看在前後加上這些程式碼, 看看可不可以呼叫 (不過你要先確定作業系統裡面有你要呼叫的 ActiveX) < class="code"> HRESULT hr=S_FALSE; hr=CoInitialize(0); if(SUCCEEDED(hr)) { //...Do something... //...CoCreateInstance... } CoUninitialize(); -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
jvory2k
一般會員


發表:2
回覆:5
積分:1
註冊:2003-12-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-02-08 22:43:18 IP:203.67.xxx.xxx 未訂閱
引言:
引言: 在下面的程式中, HRESULT hr =CoCreateInstance( ..... ); 而傳回的 hr 值為 -2147221008 ,這表示CoCreateInstance( ..... )失敗,所以在 if (SUCCEEDED(hr)) 這一行時判斷值為" 假 ",那接下來的程式便無法正常執行了,請問各位高手這到底是什麼原因?
jvory2k 你好: 這段程式碼的目的應該是呼叫某個 ActiveX,先試試看在前後加上這些程式碼, 看看可不可以呼叫 (不過你要先確定作業系統裡面有你要呼叫的 ActiveX) < class="code"> HRESULT hr=S_FALSE; hr=CoInitialize(0); if(SUCCEEDED(hr)) { //...Do something... //...CoCreateInstance... } CoUninitialize(); -- Enjoy Researching & Developing --
謝謝,可以用了
系統時間:2024-05-11 2:21:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!