【熱聞】AMCAP程序詳解:AMCeGraphBuilder
AMCAP程序詳解
DirectShow提供了用應(yīng)用程序從適當(dāng)?shù)挠布胁蹲胶皖A(yù)覽音/視頻的能力。數(shù)據(jù)源包括:VCR,Camera,TVTuner,Microphone,或其他的數(shù)據(jù)源。一個(gè)應(yīng)用程序可以立刻顯示捕捉的數(shù)據(jù)(預(yù)覽),或是保存到一個(gè)文件中。
(資料圖)
在這個(gè)例子中,ICaptureGraphBuilder接口是處理捕捉工作的主要接口。你可以在你自己的捕捉程序中使用同樣的方法和接口。在這里主要討論ICaptureGraphBuilder如何執(zhí)行音/視頻的捕捉。我們假設(shè)你已經(jīng)熟悉了DirectShow的filtergraph的體系和一般的capturefiltergraph的結(jié)構(gòu)(可以參考DirectShow基礎(chǔ)指南)。
ICaptureGraphBuilder接口提供了一個(gè)filtergraph builder對(duì)象,讓你的應(yīng)用程序在建立capture filtergraph時(shí),省去處理很多單調(diào)乏味的工作,集中精力于捕捉中。它提供的方法滿足了基本的捕捉和預(yù)覽功能的要求。
FindInterface方法,在filtergraph中查找一個(gè)與捕捉有關(guān)的詳細(xì)的接口。使得你可以訪問一個(gè)詳細(xì)接口的功能,而不需要你去列舉filtergraph中的pins和filters。 RenderStream方法,連接源過濾器和渲染過濾器,選擇添加一些中間的過濾器。ControlStream方法,獨(dú)立地精確地控制graph的開始和結(jié)束幀。
既然是硬件捕捉,當(dāng)然要和硬件打交道,接著介紹設(shè)備列舉和捕捉接口。
通過ICreateDevEnum::CreateClassEnumerator方法列舉捕捉系統(tǒng)中的設(shè)備。之后,實(shí)例化一個(gè)DirectShow的filter去使用這個(gè)設(shè)備。用ICaptureGraphBuilder::FindInterface去獲得與捕捉相關(guān)的接口指針I(yè)AMDroppedFrames,IAMVideoCompression, IAMStreamConfig,以及 IAMVfwCaptureDialogs。因?yàn)樵O(shè)備列舉和捕捉接口比較長,放在這會(huì)打亂結(jié)構(gòu),所有專門寫了一篇(參考設(shè)備列舉和捕捉接口)。
NOTE: 這個(gè)示例是DirectShow自帶的例子。你可以在DirectShowSDK的目錄Sample\DS\Caputre看這個(gè)例子代碼(AMCap.cpp)。這里只是他的一些片斷代碼。可以說是他的中文模塊的說明。AMCap例子中,把所有的接口指針和一些成員變量保存在一個(gè)全局結(jié)構(gòu)gcap中了。
當(dāng)不在需要保存在gcap中的接口指針是,一定要釋放這些接口指針,一般是在程序的析構(gòu)函數(shù)中,或是在別的同等功能函數(shù)中。如下:
if (gcap.pBuilder) gcap.pBuilder->Release(); gcap.pBuilder = NULL; if (gcap.pSink) gcap.pSink->Release(); gcap.pSink = NULL; if (gcap.pConfigAviMux) gcap.pConfigAviMux->Release(); gcap.pConfigAviMux = NULL; if (gcap.pRender) gcap.pRender->Release(); gcap.pRender = NULL; if (gcap.pVW) gcap.pVW->Release(); gcap.pVW = NULL; if (gcap.pME) gcap.pME->Release(); gcap.pME = NULL; if (gcap.pFg) gcap.pFg->Release(); gcap.pFg = NULL;
設(shè)置文件名
使用普通的OpenFileDialog獲得捕捉文件的信息。通過調(diào)用AllocCaptureFile函數(shù)為捕捉文件分配空間。這一點(diǎn)是重要的,因?yàn)檫@是個(gè)巨大的空間。這樣可以提高捕捉操作的速度。ICaptureGraphBuilder::AllocCapFile執(zhí)行實(shí)際的文件分配,IFileSinkFilter::SetFileName指示file writerfilter使用用戶選擇的文件名保存數(shù)據(jù)。ICaptureGraphBuilder::SetOutputFileName把filewriter filter加入filter graph(后面會(huì)介紹,它是ICaptureGraphBuilderd自代的)。
SetCaptureFile 和 AllocCaptureFile 函數(shù)如下:
BOOL SetCaptureFile(HWND hWnd) {if(OpenFileDialog(hWnd, gcap.szCaptureFile, _MAX_PATH)) {OFSTRUCTos;//We have a capture file nameif(OpenFile(gcap.szCaptureFile, &os, OF_EXIST) ==HFILE_ERROR) {//Bring up dialog, and set new file size BOOLf = AllocCaptureFile(hWnd); if(!f) returnFALSE; } } else{returnFALSE; }SetAppCaption();// need a new app caption//Tell the file writer to use the new file name if(gcap.pSink) {WCHARwach[_MAX_PATH]; MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED, gcap.szCaptureFile, -1, wach, _MAX_PATH); gcap.pSink->SetFileName(wach,NULL); } return TRUE; }// Preallocate the capturefile // BOOL AllocCaptureFile(HWND hWnd) {// We"ll get into an infinite loop in the dlgproc setting a value if (gcap.szCaptureFile[0] == 0) returnFALSE;if (DoDialog(hWnd, IDD_AllocCapFileSpace, AllocCapFileProc, 0)){//Ensure repaint after dismissing dialog before //possibly lengthy operation UpdateWindow(ghwndApp);//User has hit OK. Alloc requested capture file space BOOLf = MakeBuilder(); if(!f) returnFALSE; WCHARwach[_MAX_PATH]; MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED, gcap.szCaptureFile, -1, wach, _MAX_PATH); if(gcap.pBuilder->AllocCapFile(wach,gcap.wCapFileSize* 1024L * 1024L) != NOERROR) {MessageBoxA(ghwndApp, "Error","Failed to pre-allocate capture filespace",MB_OK | MB_ICONEXCLAMATION); return FALSE; } returnTRUE; } else {returnFALSE; } }
建立GraphBuilder對(duì)象
AMCap的MakeBuilder函數(shù)建立了一個(gè)capturegraph builer對(duì)象,通過調(diào)用 CoCreateInstance獲得了ICaptureGraphBuilder接口指針。AMCap把他存儲(chǔ)到gcap結(jié)構(gòu)的pBuilder中。
// Make a graph builderobject we can use for capture graph building // BOOL MakeBuilder() {//We have one already if(gcap.pBuilder) returnTRUE;HRESULThr = CoCreateInstance((REFCLSID)CLSID_CaptureGraphBuilder, NULL,CLSCTX_INPROC, (REFIID)IID_ICaptureGraphBuilder,(void**)&gcap.pBuilder); return(hr == NOERROR) ? TRUE : FALSE; }
建立Graph的渲染部分,并告訴它寫文件(用先前決定的文件)
這包括一個(gè)multiplexerfilter 和 file writer。DirectShow 提供了一個(gè)AVIMUX(multiplexer)filter。在這里ICaptureGraphBuilder::SetOutputFileName是一個(gè)關(guān)鍵的方法。它把multiplexer 和 file writer添加到filtergraph中,連接他們,并設(shè)置文件的名字。第一個(gè)參數(shù)MEDIASUBTYPE_Avi,指出capture graph builder對(duì)象將插入一個(gè)AVI multiplexer filter,因此,filewriter將以AVI文件格式記錄捕捉的數(shù)據(jù)。第二個(gè)參數(shù)(wach)是文件名。最后的兩個(gè)參數(shù)指出multiplexer filter(gcap.pRender) 和file writer filter(gcap.pSink),這兩個(gè)是通過SetOutputFileName函數(shù)初始化的。AMCap存儲(chǔ)這些指針到全局結(jié)構(gòu)gcap中。capture graph builder 對(duì)象建立了一個(gè)filtergraph對(duì)象(IGraphBuilder),把這兩個(gè)filter加入到filter graph中去。他告訴filewriter使用指定的文件保存數(shù)據(jù)。下面的例子演示了如何調(diào)用SetOutputFileName。
// // We need a rendering section that will write the capture file outin AVI // file format //WCHAR wach[_MAX_PATH]; MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, gcap.szCaptureFile, -1,wach, _MAX_PATH); GUID guid = MEDIASUBTYPE_Avi; hr =gcap.pBuilder->SetOutputFileName(&guid,wach, &gcap.pRender,&gcap.pSink); if (hr != NOERROR) {ErrMsg("Error%x: Cannot set output file", hr); gotoSetupCaptureFail; }
獲得當(dāng)前的FilterGraph
因?yàn)樵谡{(diào)用SetOutputFileName中,capturegraph builder 對(duì)象建立了一個(gè)filter graph,所以你必須把需要的filter加入同一個(gè)filter graph中。通過ICaptureGraphBuilder::GetFiltergraph獲得新建立的filtergraph。返回的指針是參數(shù)gcap.pFg。
// // The graph builder created a filter graph to do that. Find outwhat it is, // and put the video capture filter in the graph too. //hr =gcap.pBuilder->GetFiltergraph(&gcap.pFg); if (hr != NOERROR) {ErrMsg("Error%x: Cannot get filtergraph", hr); gotoSetupCaptureFail; }
添加音/視頻過濾器到當(dāng)前的Filter Graph
hr =gcap.pFg->AddFilter(gcap.pVCap, NULL); if (hr != NOERROR) {ErrMsg("Error%x: Cannot add vidcap to filtergraph", hr); gotoSetupPreviewFail; }hr =gcap.pFg->AddFilter(gcap.pACap, NULL); if (hr != NOERROR) {ErrMsg("Error%x: Cannot add audcap to filtergraph", hr); gotoSetupCaptureFail; }
渲染視頻捕捉過濾器的CapturePin和音頻捕捉的Capture Pin
ICaptureGraphBuilder::RenderStream連接源過濾器的pin到渲染過濾器。pin的類別是可選的,capture pin (PIN_CATEGORY_CAPTURE) 或preview pin (PIN_CATEGORY_PREVIEW)。下面的例子演示了連接video capture filter(gcap.pVCap) 的capture pin到渲染gcap.pRender中。
// // Render the video capture and preview pins - we may not havepreview, so // don"t worry if it doesn"t work //hr =gcap.pBuilder->RenderStream(&PIN_CATEGORY_CAPTURE,NULL, gcap.pVCap, NULL, gcap.pRender); // Error checking// // Render the audio capture pin? //if (gcap.fCapAudio) {hr =gcap.pBuilder->RenderStream(&PIN_CATEGORY_CAPTURE,NULL, gcap.pACap, NULL, gcap.pRender); // Error checking
渲染Video CaptureFilter的 Preview Pin
再次調(diào)用ICaptureGraphBuilder::RenderStream,從capture filter的previewpin到video renderer。代碼如下:
hr =gcap.pBuilder->RenderStream(&PIN_CATEGORY_PREVIEW,NULL, gcap.pVCap, NULL, NULL);
獲得訪問Video PreviewWindow的接口指針
缺省的,videopreview window是一個(gè)獨(dú)立的窗口。如果你想改變默認(rèn)的行為,先調(diào)用ICaptureGraphBuilder::FindInterface獲得IVideoWindow接口。第二個(gè)參數(shù)通過gcap.pVCap指定,描述video capturefilter,第三個(gè)參數(shù)是想得到的接口(IVideoWindow),最后的是返回的接口。當(dāng)你得到IVideoWindow接口后,你可以調(diào)用IVideoWindow的方法象put_Owner,put_WindowStyle, or SetWindowPosition 去獲得video previewwindow的handle,設(shè)置窗口屬性,或把他放到想要的位置。
// This will go through apossible decoder, find the video renderer it"s // connected to, and get the IVideoWindow interface onit hr =gcap.pBuilder->FindInterface(&PIN_CATEGORY_PREVIEW,gcap.pVCap, IID_IVideoWindow, (void**)&gcap.pVW); if (hr != NOERROR) {ErrMsg("Thisgraph cannot preview"); } else {RECTrc; gcap.pVW->put_Owner((long)ghwndApp);// We own the window now gcap.pVW->put_WindowStyle(WS_CHILD);// you are now a child //give the preview window all our space but where the status baris GetClientRect(ghwndApp,&rc); cyBorder= GetSystemMetrics(SM_CYBORDER); cy= statusGetHeight() + cyBorder; rc.bottom-= cy; gcap.pVW->SetWindowPosition(0,0, rc.right, rc.bottom); // be thisbig gcap.pVW->put_Visible(OATRUE); }
現(xiàn)在你已經(jīng)建立完整的capture filtergraph了,你可以預(yù)覽音頻,視頻,或捕捉數(shù)據(jù)。
控制 Capture FilterGraph
因?yàn)橥ㄟ^ICaptureGraphBuilder接口構(gòu)造的capturefilter graph 只是一個(gè)簡單的專門用途的filter graph,所以,控制它就象控制其他類型的filtergraph一樣。你可以使用IMediaControl interface的 Run, Pause,和Stop方法,你也可以使用CBaseFilter::Pause的方法。另外ICaptureGraphBuilder 提供了ControlStream 方法去來控制 capture filter graph的流媒體的開始和結(jié)束時(shí)間。ControlStream調(diào)用IAMStreamControl::StartAt 和IAMStreamControl::StopAt控制filter graph的捕捉和預(yù)覽的開始和結(jié)束的位置。
注意:不是所有的capture filter都可以,因?yàn)椴皇敲恳粋€(gè)capturefilter都支持IAMStreamControl。
ICaptureGraphBuilder::ControlStream方法的第一個(gè)參數(shù)(pCategory)是一個(gè)輸出pin類的GUID。這個(gè)變量通常是PIN_CATEGORY_CAPTURE或 PIN_CATEGORY_PREVIEW。指定為NULL則控制所有的capture filter。第二個(gè)參數(shù)在(pFilter)指出那個(gè)filter控制。NULL說明為控制所有的filtergraph。如果只是預(yù)覽(防止捕捉)的話,可以調(diào)用ICaptureGraphBuilder::ControlStream,參數(shù)用capturepin類型,MAX_TIME作為開始時(shí)間(第三個(gè)參數(shù),pstart)。再次調(diào)用該方法,參數(shù)用previewpin類型,NULL作為開始時(shí)間則立即開始預(yù)覽。第四參數(shù)指出結(jié)束的時(shí)間(pstop),含義和第三個(gè)參數(shù)一樣(NULL意味著立刻)。MAX_TIME在DirectShow中定義為最大的參考時(shí)間。在這里意味著忽略或取消指定的操作。最后的參數(shù),wStartCookie和wStopCookie分別是開始和結(jié)束的cookies(不知道該怎么翻譯,因?yàn)槲乙膊焕斫膺@個(gè)參數(shù)的含義)。下面的代碼設(shè)置立刻開始預(yù)覽,但是忽略捕捉。
// Let the preview sectionrun, but not the capture section // (There might not be a capture section) REFERENCE_TIME start = MAX_TIME, stop = MAX_TIME; // show us a preview first? but don"t capturequite yet... hr =gcap.pBuilder->ControlStream(&PIN_CATEGORY_PREVIEW,NULL, gcap.fWantPreview ? NULL : &start, gcap.fWantPreview ? &stop : NULL, 0, 0); if (SUCCEEDED(hr)) hr=gcap.pBuilder->ControlStream(&PIN_CATEGORY_CAPTURE,NULL, &start, NULL, 0, 0);
同樣的,如果你只想要捕捉而不要預(yù)覽,設(shè)置捕捉的開始時(shí)間為NULL,設(shè)置捕捉的結(jié)束時(shí)間為MAX_TIME。設(shè)置預(yù)覽的開始時(shí)間為MAX_TIME,NULL為結(jié)束時(shí)間。下面的例子告訴filtergraph開始預(yù)覽(第三個(gè)參數(shù):開始時(shí)間為NULL)。結(jié)束時(shí)間指定為MAX_TIME意味著忽視停止時(shí)間(永遠(yuǎn)放下去)。 gcap.pBuilder->ControlStream(&PIN_CATEGORY_PREVIEW,NULL, NULL, MAX_TIME, 0, 0);
調(diào)用IMediaControl::Run 運(yùn)行 graph
// Run the graph IMediaControl *pMC = NULL; HRESULT hr =gcap.pFg->QueryInterface(IID_IMediaControl, (void**)&pMC); if (SUCCEEDED(hr)) {hr= pMC->Run(); if(FAILED(hr)) {//Stop parts that ran pMC->Stop(); } pMC->Release(); } if (FAILED(hr)) {ErrMsg("Error%x: Cannot run preview graph", hr); returnFALSE;
如果graph已經(jīng)運(yùn)行,通過調(diào)用ICaptureGraphBuilder::ControlStream立刻開始捕捉。例如下面的代碼,控制整個(gè)的filtergraph(第二個(gè)參數(shù)為NULL),立刻開始(第三個(gè)參數(shù)是NULL),并且永不停止(第四個(gè)參數(shù)是MAX_TIME)。
// NOW! gcap.pBuilder->ControlStream(&PIN_CATEGORY_CAPTURE,NULL, MAX_TIME, &stop, 0, 0);
停止預(yù)覽或捕捉操作,調(diào)用IMediaControl::Stop,就同你調(diào)用IMediaControl::Run一樣。
// Stop the graph IMediaControl *pMC = NULL; HRESULT hr =gcap.pFg->QueryInterface(IID_IMediaControl, (void**)&pMC); if (SUCCEEDED(hr)) {hr= pMC->Stop(); pMC->Release(); }
獲得捕捉的信息
通過IAMDroppedFrames接口獲得。測試丟失幀的數(shù)量(IAMDroppedFrames::GetNumDropped),捕捉的數(shù)量(IAMDroppedFrames::GetNumNotDropped)。IAMDroppedFrames::GetAverageFrameSize方法提供了捕捉幀的平均尺寸(單位:byte)。使用這些信息可以知道總的捕捉字節(jié)和每秒的幀數(shù)(速率)。
保存文件
最初分配的捕捉文件只是臨時(shí)的保存數(shù)據(jù),所有你可以盡可能快的捕捉。當(dāng)你想把捕捉的數(shù)據(jù)保存到硬盤中時(shí),調(diào)用ICaptureGraphBuilder::CopyCaptureFile。這個(gè)方法從先前得到的捕捉文件輸出數(shù)據(jù)到你選擇的另一個(gè)文件中。這個(gè)新的儲(chǔ)存文件的大小是和實(shí)際捕捉的數(shù)據(jù)匹配的,而不是和先前的文件大小匹配。ICaptureGraphBuilder::CopyCaptureFile方法的第一個(gè)參數(shù)是復(fù)制源,第二個(gè)是目標(biāo)文件。第三個(gè)參數(shù)設(shè)為TRUE指出用戶允許用ESC鍵中斷復(fù)制操作。最后參數(shù)是可選的。允許你提供一個(gè)進(jìn)程指示器。如果想要的化,通過執(zhí)行IAMCopyCaptureFileProgress 接口。下面示例了如何調(diào)用CopyCaptureFile。
hr =pBuilder->CopyCaptureFile(wachSrcFile,wachDstFile,TRUE,NULL);
通過普通的OpenFile Dialog得到新的文件名。用 MultiByteToWideChar函數(shù)把文件名轉(zhuǎn)成寬字符(widestring),使用ICaptureGraphBuilder::CopyCaptureFile把捕捉的數(shù)據(jù)保存到指定的文件中。
BOOL SaveCaptureFile(HWND hWnd) {HRESULT hr; char achDstFile[_MAX_PATH]; WCHAR wachDstFile[_MAX_PATH]; WCHAR wachSrcFile[_MAX_PATH];if (gcap.pBuilder == NULL) returnFALSE;if (OpenFileDialog(hWnd, achDstFile, _MAX_PATH)){// We have a capture filename MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, gcap.szCaptureFile, -1,wachSrcFile, _MAX_PATH); MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, achDstFile, -1,wachDstFile, _MAX_PATH); statusUpdateStatus(ghwndStatus, "Saving capture file - pleasewait...");// We need our own graphbuilder because the main one might not exist ICaptureGraphBuilder *pBuilder; hr = CoCreateInstance((REFCLSID)CLSID_CaptureGraphBuilder, NULL, CLSCTX_INPROC, (REFIID)IID_ICaptureGraphBuilder, (void **)&pBuilder); if (hr == NOERROR) {// Allow the user to press ESC to abort...don"t ask for progress hr = pBuilder->CopyCaptureFile(wachSrcFile,wachDstFile,TRUE,NULL); pBuilder->Release(); } if (hr == S_OK) statusUpdateStatus(ghwndStatus, "Capture file saved"); else if (hr == S_FALSE) statusUpdateStatus(ghwndStatus, "Capture file save aborted"); else statusUpdateStatus(ghwndStatus, "Capture file save ERROR"); return (hr == NOERROR ? TRUE : FALSE);} else {return TRUE; // They canceled orsomething } }
關(guān)于捕捉媒體文件和獲得捕捉信息的詳細(xì)內(nèi)容,可以參考AMCap例子的Amcap.cpp 和Status.cpp 。
標(biāo)簽:
相關(guān)推薦:
精彩放送:
- []每日觀察!UCB1策略和公式的理解 解決探索與利用平衡問題
- []天天日?qǐng)?bào)丨組態(tài)軟件是什么?組態(tài)軟件在工業(yè)控制領(lǐng)域的應(yīng)用
- []每日熱聞!財(cái)面兒丨遠(yuǎn)洋集團(tuán)1-2月累計(jì)協(xié)議銷售額約83.6億元 同比增長1.7%
- []全球最資訊丨消息指Uber正考慮分拆貨運(yùn)物流部門 或?qū)⑦M(jìn)行IPO
- []訊息:標(biāo)普:部分地區(qū)投資物業(yè)保持彈性 香港置地可平穩(wěn)度過低迷期
- []德力股份:公司沒有導(dǎo)電玻璃的生產(chǎn)產(chǎn)能
- []世界速看:上海寶山顧村華發(fā)四季河濱開啟首次認(rèn)購 總可售住宅9.8萬平米
- []今日觀點(diǎn)!萬泰生物:公司自2019年起將戊肝疫苗的投標(biāo)價(jià)格統(tǒng)一調(diào)整為裸價(jià)770元/支
- []全球動(dòng)態(tài):股民無眠!炒股群炸鍋了:連夜學(xué)習(xí)“室溫超導(dǎo)”!基礎(chǔ)物理學(xué)新突破?
- []世界要聞:2022端午節(jié)股市休市幾天,休市三天
- []每日熱聞!中央銀行三大法寶
- []焦點(diǎn)快報(bào)!威海到青島自駕車多長時(shí)間_威海到青島
- []環(huán)球熱點(diǎn)評(píng)!余額寶風(fēng)險(xiǎn)是什么,有以下兩點(diǎn)
- []【環(huán)球時(shí)快訊】2022年端午節(jié)股市放假嗎,當(dāng)然放
- []異地同行轉(zhuǎn)賬要不要手續(xù)費(fèi),不要
- []世界熱文:怎么炒股詳細(xì)步驟,有以下五步
- []降準(zhǔn)對(duì)股市影響,有以下三點(diǎn)
- []當(dāng)前看點(diǎn)!TD早報(bào) | 國泰航空2022年凈虧損擴(kuò)大近兩成;日本將放寬民宿業(yè)準(zhǔn)入條件
- []【當(dāng)前熱聞】怎么炒港股
- []環(huán)球今日訊!金融危機(jī)對(duì)百姓的影響
- []全球快看:農(nóng)行利率2020年利率
- []焦點(diǎn)關(guān)注:2021個(gè)人所得稅起征點(diǎn)
- []焦點(diǎn)要聞:修正藥業(yè)股票代碼,還未上市沒有股票代碼
- []興業(yè)銀行信用卡進(jìn)度查詢方法
- []買入價(jià)和賣出價(jià)怎么判斷
- []焦點(diǎn)日?qǐng)?bào):鼎湖門票_肇慶鼎湖山門票多少錢
- []【獨(dú)家】達(dá)美樂中國重啟上市?此前已通過港交所聆訊
- []當(dāng)前信息:平板電腦像素排行榜_7寸平板電腦排行榜情況
- []中國1元等于多少日元 人民幣的意義
- []5g的龍頭股有哪些
- []今日熱訊:大家千萬不要領(lǐng)失業(yè)金,主要以下4個(gè)原因
- []天天亮點(diǎn)!工商銀行抵押貸款條件及流程
- []環(huán)球通訊!北交所打新規(guī)則,有以下四點(diǎn)
- []每日看點(diǎn)!力高地產(chǎn)1-2月合約銷售約28.39億元 同比下滑37.19%
- []【全球熱聞】“00后”小伙連續(xù)盜竊五起,涉案金額23000元
- []東數(shù)西算概念股龍頭一覽表依米康,東數(shù)西算概念股一覽
- []【環(huán)球報(bào)資訊】元旦節(jié)股票休市和開市是什么時(shí)間,一般休市三天
- []急漲慢跌,意思是迅速上漲緩慢下跌
- []借貸記賬法的理論依據(jù)
- []閃酷卡是什么
- []踐行ESG理念,聚焦多元化優(yōu)勢,華林證券多舉措助力“她力量”綻放
- []大宏立:3月7日公司高管楊中民減持公司股份合計(jì)1.99萬股
- []環(huán)球快看點(diǎn)丨棲霞物業(yè)擬向參股公司提供150萬元借款?期限為24日
- []今日聚焦!中公教育:3月7日公司高管王振東減持公司股份合計(jì)1454萬股
- []森麒麟:3月7日公司高管秦龍、林文龍、秦靖博、金勝勇增持公司股份合計(jì)129.46萬股
- []視焦點(diǎn)訊!2022年銀行基準(zhǔn)利率是多少,各類型基準(zhǔn)利率一覽
- []每日消息!未來可能漲100倍的股票是哪個(gè),十大牛股盤點(diǎn)名單
- []余額寶10萬一天收益多少錢,5人民幣左右
- []獲利能力指標(biāo)
- []建行管理費(fèi)10元能不能取消,可以取消
- []簡訊:景津裝備:3月7日公司高管楊名杰減持公司股份合計(jì)10000股
- []【全球聚看點(diǎn)】新湖中寶注銷此前回購的9040萬股 注冊資本減少至85.09億
- []諾力股份:2月16日至2月27日公司高管張科減持公司股份合計(jì)113.99萬股
- []全球關(guān)注:遠(yuǎn)洋集團(tuán)前2月協(xié)議銷售額約84億元 多個(gè)精品項(xiàng)目將全新加推
- []全球快播:十五連板后終被停牌核查 *ST瑞德索賠案訴訟時(shí)效僅剩四個(gè)月
- []十一高速免費(fèi)嗎2022年,免費(fèi)
- []世界新資訊:威海旅游攻略自助游_威海旅游全攻略
- []動(dòng)態(tài):分期的車可以抵押貸款嗎?
- []全球熱點(diǎn)評(píng)!bcx是什么幣
- []證券公司手續(xù)費(fèi)
- []報(bào)道:建行轉(zhuǎn)賬手續(xù)費(fèi) 建行轉(zhuǎn)賬手續(xù)費(fèi)怎么算
- []全球觀熱點(diǎn):報(bào)告:近半數(shù)女性2年內(nèi)有購房計(jì)劃,八成傾向于買新房
- []廈門推出拆遷款房票補(bǔ)償政策
- []北京商務(wù)局:鼓勵(lì)商業(yè)品牌首店首發(fā)項(xiàng)目?最高給予500萬元支持
- []天天熱點(diǎn)!萬城控股預(yù)計(jì)2022年度稅后溢利減少約35%至50%
- []珠海2023年投資項(xiàng)目共198個(gè) 年內(nèi)計(jì)劃安排投資202.24億元
- []今日熱文:美格智能:目前6G技術(shù)尚處于早期研究階段,距離搭載6G技術(shù)的產(chǎn)品落地仍需時(shí)日
- []全球熱點(diǎn)評(píng)!男女有別嗎?30+有年齡焦慮嗎?她們說……
- []【天天聚看點(diǎn)】什么是折價(jià)率
- []天天資訊:注冊制次新股概念股票龍頭一覽表,2023注冊制次新股相關(guān)上市公司有哪些
- []今日熱文:貴賓卡是什么卡,代表貴賓身份
- []每日信息:信用卡的好處
- []【全球播資訊】58同城、安居客《2023年女性置業(yè)調(diào)查報(bào)告》:近半數(shù)女性2年內(nèi)有購房計(jì)劃
- []財(cái)信地產(chǎn)職工代表監(jiān)事李屹然辭職 殷杰繼任
- []每日簡訊:澳博控股2022年股東應(yīng)占虧損77.98億港元 同比擴(kuò)大88.2%
- []軟控股份:涂布機(jī)項(xiàng)目主要針對(duì)鋰電行業(yè),尚處在研發(fā)實(shí)驗(yàn)階段,暫未批量生產(chǎn)
- []【全球熱聞】匯景控股填補(bǔ)公司董事會(huì)成員空缺時(shí)限申請(qǐng)延長至4月30日
- []天天快消息!芒果超媒2022業(yè)績快報(bào):歸母凈利超18億元 期待2023年繼續(xù)“破浪”
- []迅捷興:公司產(chǎn)品可廣泛應(yīng)用于汽車電子、通訊、安防、人工智能等諸多領(lǐng)域
- []全球視訊!自如或在港IPO最早4月遞表 公司方回應(yīng)“不予置評(píng)”
- []世界看熱訊:中百集團(tuán):公司中百大廚房現(xiàn)有少量預(yù)制菜肴,目前銷售占比較低,不對(duì)公司經(jīng)營業(yè)績產(chǎn)生重大影響
- []當(dāng)前熱文:總投資50億元!億利潔能成功簽約10GW沙戈荒地區(qū)高效專用光伏組件項(xiàng)目
- []焦點(diǎn)快看:六折是百分之多少
- []今日熱聞!什么是物理儲(chǔ)能?物理儲(chǔ)能方式包括哪些
- []天天微動(dòng)態(tài)丨期貨交易軟件,有以下十個(gè)
- []即時(shí)看!余額寶有什么用 余額寶的作用是什么
- []天天快消息!銀行同期貸款利率 銀行的貸款同期利率
- []重磅!全球光伏龍頭A股IPO上市獲受理!
- []小鵬汽車新專利可實(shí)現(xiàn)光伏充電
- []天天快資訊丨交易密碼指的是什么密碼 支付密碼
- []焦點(diǎn)日?qǐng)?bào):越秀服務(wù)2022年總收入24.86億元 歸母凈利潤同增15.7%
- []中關(guān)村收關(guān)注函:要求說明控股股東所持股份凍結(jié)對(duì)公司控制權(quán)影響
- []滾動(dòng):長陽科技:公司目前產(chǎn)品尚未涉及固態(tài)電池,公司將高度關(guān)注相關(guān)技術(shù)的發(fā)展趨勢
- []熱文:上海能源:公司為實(shí)現(xiàn)可持續(xù)發(fā)展,將經(jīng)營積累主要用于煤炭資源獲取、基本建設(shè)投資等
- []【新視野】2023年女性置業(yè)調(diào)查報(bào)告:67.7%女性因職業(yè)發(fā)展選擇安居城市
- []上海九百:本公司持有的上市公司股份,請(qǐng)?jiān)斠姽九兜亩ㄆ趫?bào)告及相關(guān)公告
- []中國黃金交易時(shí)間是幾點(diǎn)
- []產(chǎn)品是企業(yè)發(fā)展的生命力 波司登創(chuàng)新世界羽絨服市場的發(fā)展邏輯
- []【全球報(bào)資訊】開板是什么意思股票
- []什么叫劣后資金,指收益不好但風(fēng)險(xiǎn)較大的資金
- 世界速訊:堆與棧有什么區(qū)別?堆與棧的區(qū)別詳細(xì)總結(jié)
- 天天實(shí)時(shí):數(shù)字解謎游戲——數(shù)獨(dú)直觀法解題技巧
- 世界聚焦:被喻為計(jì)算機(jī)界的諾貝爾獎(jiǎng)——TurinSAC
- (java8)遍歷JSONArray拼接字符串的兩種方法
- 世界熱頭條丨Mockplus:簡潔高效的原型設(shè)計(jì)工具 輕松入門
- 環(huán)球新消息丨Linux ora-12514多實(shí)例 ORA-12514: 錯(cuò)誤的解決
- 【熱聞】AMCAP程序詳解:AMCeGraphBuilder
- 每日播報(bào)!Glance詳解——后臺(tái)運(yùn)行的服務(wù)程序
- 世界短訊!抽象是什么?為什么學(xué)Java會(huì)遇到抽象?
- 即時(shí)看!從高層到底層所有人的戰(zhàn)略語言——BLD
- B站注冊資本增幅400%至5億 目前由陳睿全資持股
- 光源資本出任獨(dú)家財(cái)務(wù)顧問 沐曦集成電路10億元A輪融資宣告完成
- 巨輪智能2021年上半年?duì)I收11.24億元 期內(nèi)研發(fā)費(fèi)用投入增長19.05%
- 紅棗期貨尾盤拉升大漲近6% 目前紅棗市場總庫存約30萬噸
- 嘉銀金科發(fā)布2021年Q2財(cái)報(bào) 期內(nèi)凈利潤達(dá)1.27億元同比增長208%
- 成都銀行2021上半年凈利33.89億元 期內(nèi)實(shí)現(xiàn)營收同比增長17.27億元
- 汽車之家發(fā)布2021年第二季度業(yè)績 期內(nèi)新能源汽車品牌收入增長238%
- 中信銀行上半年實(shí)現(xiàn)凈利潤290.31億元 期末不良貸款余額706.82億元
- 光伏概念掀起漲停潮交易價(jià)格創(chuàng)新高 全天成交額達(dá)1.29億元
- 上半年生物藥大增45% 關(guān)鍵財(cái)務(wù)指標(biāo)好轉(zhuǎn)營收賬款持續(xù)下降
- 全球速讀:金鏟鏟之戰(zhàn):騎馬武器陣容如何搭配?
- 每日短訊:養(yǎng)鴿子新手養(yǎng)鴿子怎么養(yǎng)_鴿子怎么養(yǎng)
- 全球熱議:各銀行儲(chǔ)蓄利息表,各銀行存款利率一覽
- buk是什么數(shù)字貨幣
- 【世界報(bào)資訊】廈門象嶼金控5億元公司債利率詢價(jià)區(qū)間為3.50%-4.50%
- 焦點(diǎn)速看:金管局: 10年期15億港元政府債券投標(biāo)申請(qǐng)總額達(dá)43.11億港元
- 世界看熱訊:地產(chǎn)債漲跌不一 “H0陽城02”漲100%、“22旭輝01”跌超10%
- 天天快資訊丨3月8日南凌科技漲停分析:東數(shù)西算,云計(jì)算數(shù)據(jù)中心,信創(chuàng)概念熱股
- 世界今頭條!香港何文田St. George's Mansions四房大宅1.19億港元沽出
- 每日速訊:"21信地03"擬于3月13日起進(jìn)行回售并將會(huì)進(jìn)行轉(zhuǎn)售
- 天天微頭條丨3月8日三暉電氣漲停分析:儀器儀表概念熱股
- 3月8日金信諾漲停分析:6G,衛(wèi)星互聯(lián)網(wǎng),毫米波通信概念熱股
- 熱議:3月8日新城市漲停分析:智慧停車,新型城鎮(zhèn)化,深圳本地股概念熱股
- 【環(huán)球新要聞】it包括哪些服裝品牌?i.t經(jīng)營的服裝品牌介紹?
- 熱點(diǎn)評(píng)!紅糖和紅砂糖有什么不同?紅糖和紅砂糖的區(qū)別是什么?
- 每日看點(diǎn)!玻璃護(hù)欄玻璃鑲嵌怎么操作?玻璃護(hù)欄玻璃鑲嵌方法是什么?
- 今頭條!小鱷龜和巴西龜能一起養(yǎng)嗎?為什么?
- 股票紅色和綠色代表什么
- 現(xiàn)在銀行定期存款利率是多少2022,各行存款利率一覽表
- 焦點(diǎn)滾動(dòng):我國三大棉花產(chǎn)地在哪里?我國三大棉花產(chǎn)地資料介紹?
- 每日精選:千媚是哪部電視劇中的人物?講述了什么故事?
- 大學(xué)為什么說成是象牙塔?象牙塔指的是什么?
- 快看:隋唐十八好漢都有誰?隋唐十八好漢排行榜一覽?
- 環(huán)球微資訊!歐洲旅游趨勢報(bào)告:美國客源持續(xù)引領(lǐng)復(fù)蘇,中國旅客需求增長可期
- 【天天速看料】gdp排名世界2021,中國排名第二
- 【環(huán)球熱聞】瀏覽器ie是什么意思?IE全稱是指什么?
- 信息:7號(hào)房的禮物劇情介紹?7號(hào)房的禮物結(jié)局是什么?
- 亞太市場國際差旅需求復(fù)蘇超過歐美,預(yù)訂量恢復(fù)到疫情之前65%的水平
- 中簽是什么意思啊
- 每日消息!買空賣空是什么意思
- 中交房地產(chǎn)集團(tuán)12.1億公司債將付年息 利率3.49%
- 南京濱江投資公司5億元私募債更新至“已反饋”
- 【快播報(bào)】鷺燕醫(yī)藥:除個(gè)別新設(shè)門店因運(yùn)營時(shí)間短未達(dá)到申請(qǐng)要求之外,公司絕大多數(shù)門店都具有醫(yī)保定點(diǎn)資質(zhì)
- 天天即時(shí):日本擬放寬民宿業(yè)準(zhǔn)入條件 響應(yīng)赴日游客恢復(fù)
- 當(dāng)前快訊:上海浦東新區(qū)惠南鎮(zhèn)商業(yè)房產(chǎn)二拍成交 由北京詠旺物業(yè)1.62億元競得
- 天天微資訊!空調(diào)開年格局生變:從“雙寡頭”走向“三分天下”
- 常州金壇區(qū)潤澳花園大酒店流拍 起拍價(jià)約3.04億元
- CCTV健康大講堂專家:從連花清瘟解讀中藥治療甲流的優(yōu)勢
- 全球動(dòng)態(tài):信用卡申請(qǐng)進(jìn)度怎么查詢,有以下三種方法
- 天天看點(diǎn):銀行貸款利率2022最新表,各行貸款利率一覽
- 環(huán)球動(dòng)態(tài):慶余年全套書有幾冊_慶余年大東山之戰(zhàn)原書第幾章
- 數(shù)字貨幣真正龍頭股 數(shù)字貨幣龍頭股具體有哪些
- k寶密碼忘了怎么辦,有以下兩種方法
- 建設(shè)銀行手機(jī)銀行怎么開通,有以下四種方法開通
- 華潤置地子公司潤朝地產(chǎn)掛牌增資 對(duì)應(yīng)持股比例20%
- 女神節(jié)來臨,小吉內(nèi)褲洗烘一體機(jī),帶給您最溫柔的呵護(hù)
- 【全球速看料】致同: 亞太區(qū)女性高管比例超過30%關(guān)鍵水平
- 明陽智能:您問題中所描述的相關(guān)數(shù)據(jù)非公司對(duì)外披露之內(nèi)容,其數(shù)據(jù)之準(zhǔn)確性請(qǐng)您咨詢相關(guān)媒體
- 瑞信證券獲準(zhǔn)擴(kuò)大業(yè)務(wù)范圍 增加證券經(jīng)紀(jì)、證券投資咨詢、證券自營業(yè)務(wù)三項(xiàng)業(yè)務(wù)
- 每日播報(bào)!企業(yè)家看兩會(huì) :代表委員聚焦“白酒出海” “綠色轉(zhuǎn)型” 獻(xiàn)策酒業(yè)
- 全球要聞:中交地產(chǎn)旗下廈門宏佑地產(chǎn)擬增資3.8億元 對(duì)應(yīng)持股比例49%
- 今日熱文:又有大賣80億!這類產(chǎn)品徹底火了
- 【全球聚看點(diǎn)】南京公積金貸款額度2022,有以下兩種情況
- 環(huán)球最資訊丨中國銀行借記卡是什么意思
- 各大銀行存款利率排名,各行存款利率一覽
- 魚兒嘴巴一張一合是在干嘛
- 股票舉牌是什么意思
- 環(huán)球新動(dòng)態(tài):廣州越秀區(qū)產(chǎn)融對(duì)接項(xiàng)目簽約超1000億元 覆蓋科技、商貿(mào)等行業(yè)
- 熱點(diǎn)聚焦:“20美置02”回售金額9.84億元 將于3月27日兌付
- 快看點(diǎn)丨2023年2月中國物業(yè)服務(wù)企業(yè)新增合約面積TOP50
- 全球熱訊:“股神”巴菲特時(shí)隔半年再出手:大舉加倉西方石油!
- 傳莊士機(jī)構(gòu)香港山頂屋地獲8.8億港元洽購至尾聲
- 焦點(diǎn)資訊:余額寶利息多少 余額寶一天的利息有多少
- 信用卡該怎么辦,有以下三種辦理途徑
- 北京銀行營業(yè)時(shí)間
- 喜報(bào)!鎂鋁裝甲門品牌艾德曼被品味標(biāo)準(zhǔn)起草單位
- 建行的貸款利率是多少2022,有以下四種利率
- 焦點(diǎn)熱文:銀行買房貸款利率2022年一覽表,各行房貸利率一覽
- 環(huán)球快消息!香港影視概念股齊升 邵氏兄弟控股一度漲近160%
- 小米隨身wifi怎樣安裝_小米隨身wifi怎么安裝手機(jī)app
- 港股貝殼-W跌逾5% 股價(jià)暫現(xiàn)三連陰
- 綠通科技:公司會(huì)綜合考慮發(fā)展戰(zhàn)略和實(shí)際經(jīng)營需要,制定合理的利潤分配方案,具體情況請(qǐng)關(guān)注后續(xù)公告
- 全球新資訊:暴漲近200%!TVB也來帶貨,老牌藝人現(xiàn)身、直播間送簽名照!又一東方甄選?
- 世界視訊!中國鐵建房地產(chǎn)集團(tuán)27億公司債將付年息 利率3.25%
- 焦點(diǎn)日?qǐng)?bào):港旅游界立會(huì)議員預(yù)期香港未來經(jīng)高鐵入境旅客量會(huì)提升
- 天天觀察:香港置業(yè):港2月二手居屋723宗注冊 按月增逾1成
- 環(huán)球微速訊:活期存款利率 各銀行活期存款的利率
- 銀行下午幾點(diǎn)上班 銀行下午什么時(shí)候上班
- 各銀行三年定期存款利率2022最新,十大銀行利率一覽
- 快看點(diǎn)丨馬蜂窩大數(shù)據(jù):全國多地花季提前,“賞花”熱度大漲133%
- 攜程“她旅行”消費(fèi)洞察:今年出境游女性訂單超過男性,出境占比達(dá)53%
- 全球時(shí)訊:2022年中國城市GDP100強(qiáng)排名,全國gdp百強(qiáng)排名一覽表
- 滾動(dòng):抖音直播怎么賺錢 抖音直播如何變現(xiàn)
- 環(huán)球微動(dòng)態(tài)丨熵基科技:目前電子身份證正處于推行試點(diǎn)階段,國家尚未發(fā)布身份證電子化相關(guān)技術(shù)和應(yīng)用標(biāo)準(zhǔn)
- 廣州公布2023年供地計(jì)劃 住宅用地?cái)M供應(yīng)901公頃
- 快報(bào):科安達(dá):科安達(dá)計(jì)軸產(chǎn)品在全國200多條城市軌道交通線路中應(yīng)用,市場占有率60%以上
- 即時(shí)看!武漢推出"相約春天賞櫻"活動(dòng) 將送出30萬張旅游惠民券
- 全球快資訊:已有城市踩點(diǎn)“交作業(yè)”!兩會(huì)后樓市會(huì)等來“寬松大年”嗎?
- 黑石-湯森路透財(cái)團(tuán)將出售2300萬股倫交所股票 套現(xiàn)17億英鎊
- 環(huán)球速訊:福州將迎來第二家山姆會(huì)員店 將于5月18日開業(yè)
- 環(huán)球今日?qǐng)?bào)丨【BT金融分析師】Adobe股票出現(xiàn)暴跌,分析師稱其AI擴(kuò)張因監(jiān)管受阻
- 鴻銘股份:具體業(yè)績情況請(qǐng)?jiān)斠娢覀兗磳⑴兜?022年年度報(bào)告和2023年第一季度報(bào)告,謝謝您的關(guān)注
- 高通是哪個(gè)國家的,美國
- 要聞:老板員工都在“報(bào)復(fù)性出差”,商旅酒店集體漲價(jià)、部分城市客房爆滿
- 世界快資訊丨科創(chuàng)板的上市時(shí)間是多久
- 2008年股市大跌,原因有以下三點(diǎn)
- 快播:現(xiàn)在銀行存款利率是多少2022年,各銀行存款利率一覽
- 股票β系數(shù)計(jì)算公式
- 品牌的力量 “2023中國儲(chǔ)能行業(yè)十佳品牌”公益評(píng)選活動(dòng) 正式開啟
- 怎么才能提高自己的社交能力?提高自己的社交能力的方法?