这篇教程C++ CoUninitialize函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中CoUninitialize函数的典型用法代码示例。如果您正苦于以下问题:C++ CoUninitialize函数的具体用法?C++ CoUninitialize怎么用?C++ CoUninitialize使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了CoUninitialize函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: main//.........这里部分代码省略......... //Allocate Memory categories = (long *)calloc (numberOfCategories , sizeof(long)); BAIL_ON_ALLOC_FAILURE(categories, calloc); //Take Firewall Category Ownership categories[0] = NET_FW_RULE_CATEGORY_FIREWALL; result = ArrayOfLongsToVariant(numberOfCategories, categories, &varCategories); displayName = SysAllocString(L"@RegisterFirewallSample.exe,-127"); BAIL_ON_ALLOC_FAILURE(displayName, SysAllocString); hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); if (FAILED(hr)) { //COM initialize failed wprintf(L"CoInitialize failed: 0x%08lx/n", result); goto CLEANUP; } comInit = TRUE; hr = CoCreateInstance(__uuidof(NetFwProduct),NULL,CLSCTX_INPROC_SERVER,__uuidof(INetFwProduct),(void**)&product ); if (FAILED(hr)) { //CoCreateInstance Failed wprintf(L"CoCreateInstance for INetFwProduct failed: 0x%08lx/n", hr); goto CLEANUP; } hr = product->put_DisplayName(displayName); if (FAILED(hr)) { //Put_displayName failed wprintf(L"put_DisplayName for INetFwProduct failed Error: 0x%08lx/n", hr); goto CLEANUP; } hr = product->put_RuleCategories(varCategories); if (FAILED(hr)) { //Put_rulecategories failed wprintf(L"put_RuleCategories failed for INetFwProduct Error: 0x%08lx/n", hr); goto CLEANUP; } hr = CoCreateInstance(__uuidof(NetFwProducts),NULL,CLSCTX_INPROC_SERVER,__uuidof(INetFwProducts),(void**)&products ); if (FAILED(hr)) { //CoCreateInstance Failed wprintf(L"CoCreateInstance for INetFwProducts failed: 0x%08lx/n", hr); goto CLEANUP; } hr = products->Register(product, ®istration); if (FAILED(hr)) { //Failed to Register Products wprintf(L"Register failed: 0x%08lx/n", hr); goto CLEANUP; } hr = products->get_Count( &count); if (FAILED(hr)) { //Failed to get Count of Products wprintf(L"Get count failed: 0x%08lx/n", hr); goto CLEANUP; } wprintf(L"INetFwProducts_Count returned %ld./n", count); wprintf(L"Hit any key to unregister./n"); _getch();CLEANUP: if (registration != NULL) { registration->Release(); } if (products != NULL) { products->Release(); } if (product != NULL) { product->Release(); } if (comInit) { CoUninitialize(); } free(categories); SysFreeString(displayName); VariantClear(&varCategories); return;}
开发者ID:Essjay1,项目名称:Windows-classic-samples,代码行数:101,
示例2: MOZ_ASSERTvoidWMFDecoderModule::OnDecodeThreadFinish(){ MOZ_ASSERT(!NS_IsMainThread(), "Must be on main thread."); CoUninitialize();}
开发者ID:Gozala,项目名称:gecko-dev,代码行数:6,
示例3: MCIQTZ_mciOpen//.........这里部分代码省略......... hr = IGraphBuilder_QueryInterface(wma->pgraph, &IID_IMediaSeeking, (void**)&wma->seek); if (FAILED(hr)) { TRACE("Cannot get IMediaSeeking interface (hr = %x)/n", hr); goto err; } hr = IGraphBuilder_QueryInterface(wma->pgraph, &IID_IMediaEvent, (void**)&wma->mevent); if (FAILED(hr)) { TRACE("Cannot get IMediaEvent interface (hr = %x)/n", hr); goto err; } hr = IGraphBuilder_QueryInterface(wma->pgraph, &IID_IVideoWindow, (void**)&wma->vidwin); if (FAILED(hr)) { TRACE("Cannot get IVideoWindow interface (hr = %x)/n", hr); goto err; } hr = IGraphBuilder_QueryInterface(wma->pgraph, &IID_IBasicVideo, (void**)&wma->vidbasic); if (FAILED(hr)) { TRACE("Cannot get IBasicVideo interface (hr = %x)/n", hr); goto err; } hr = IGraphBuilder_QueryInterface(wma->pgraph, &IID_IBasicAudio, (void**)&wma->audio); if (FAILED(hr)) { TRACE("Cannot get IBasicAudio interface (hr = %x)/n", hr); goto err; } if (!(dwFlags & MCI_OPEN_ELEMENT) || (dwFlags & MCI_OPEN_ELEMENT_ID)) { TRACE("Wrong dwFlags %x/n", dwFlags); goto err; } if (!lpOpenParms->lpstrElementName || !lpOpenParms->lpstrElementName[0]) { TRACE("Invalid filename specified/n"); goto err; } TRACE("Open file %s/n", debugstr_w(lpOpenParms->lpstrElementName)); hr = IGraphBuilder_RenderFile(wma->pgraph, lpOpenParms->lpstrElementName, NULL); if (FAILED(hr)) { TRACE("Cannot render file (hr = %x)/n", hr); goto err; } IVideoWindow_put_AutoShow(wma->vidwin, OAFALSE); IVideoWindow_put_Visible(wma->vidwin, OAFALSE); if (dwFlags & MCI_DGV_OPEN_WS) style = lpOpenParms->dwStyle; if (dwFlags & MCI_DGV_OPEN_PARENT) { IVideoWindow_put_MessageDrain(wma->vidwin, (OAHWND)lpOpenParms->hWndParent); IVideoWindow_put_WindowState(wma->vidwin, SW_HIDE); IVideoWindow_put_WindowStyle(wma->vidwin, style|WS_CHILD); IVideoWindow_put_Owner(wma->vidwin, (OAHWND)lpOpenParms->hWndParent); GetClientRect(lpOpenParms->hWndParent, &rc); IVideoWindow_SetWindowPosition(wma->vidwin, rc.left, rc.top, rc.right - rc.top, rc.bottom - rc.top); wma->parent = (HWND)lpOpenParms->hWndParent; } else if (style) IVideoWindow_put_WindowStyle(wma->vidwin, style); IBasicVideo_GetVideoSize(wma->vidbasic, &rc.right, &rc.bottom); wma->opened = TRUE; if (dwFlags & MCI_NOTIFY) mciDriverNotify(HWND_32(LOWORD(lpOpenParms->dwCallback)), wDevID, MCI_NOTIFY_SUCCESSFUL); return 0;err: if (wma->audio) IBasicAudio_Release(wma->audio); wma->audio = NULL; if (wma->vidbasic) IBasicVideo_Release(wma->vidbasic); wma->vidbasic = NULL; if (wma->seek) IMediaSeeking_Release(wma->seek); wma->seek = NULL; if (wma->vidwin) IVideoWindow_Release(wma->vidwin); wma->vidwin = NULL; if (wma->pgraph) IGraphBuilder_Release(wma->pgraph); wma->pgraph = NULL; if (wma->mevent) IMediaEvent_Release(wma->mevent); wma->mevent = NULL; if (wma->pmctrl) IMediaControl_Release(wma->pmctrl); wma->pmctrl = NULL; if (wma->uninit) CoUninitialize(); wma->uninit = FALSE; return MCIERR_INTERNAL;}
开发者ID:acourreges,项目名称:wine,代码行数:101,
示例4: UnCOMstatic void UnCOM (void){ CoUninitialize ();}
开发者ID:emileb,项目名称:gzdoom,代码行数:4,
示例5: mainint main(int argc, char* argv[]){ IGraphBuilder *pGraph = NULL; ICaptureGraphBuilder2 *pBuilder = NULL; IBaseFilter *pSrc = NULL; IBaseFilter *ppf = NULL; IFileSinkFilter *pSink = NULL; IMediaControl *pMC = NULL; HRESULT hr; CoInitialize (NULL); // Create the filter graph. CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (void **)&pGraph); // Create the capture graph builder. CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL, CLSCTX_INPROC, IID_ICaptureGraphBuilder2, (void **)&pBuilder); pBuilder->SetFiltergraph(pGraph); pSrc=GetAudioDevice (); // add the first audio filter in the list pGraph->AddFilter(pSrc, L"Video Capture");/* pBuilder->SetOutputFileName( &MEDIASUBTYPE_Avi, L"C://Example.avi", &ppf, &pSink);*/// pBuilder->AllocCapFile (L"C://temp.avi", _MAX_PATH); pBuilder->RenderStream( &PIN_CATEGORY_CAPTURE, // Pin category &MEDIATYPE_Audio, // Media type pSrc, // Capture filter NULL, // Compression filter (optional) ppf // Multiplexer or renderer filter ); REFERENCE_TIME rtStart = 20000000, rtStop = 50000000;/* pBuilder->ControlStream( &PIN_CATEGORY_CAPTURE, &MEDIATYPE_Audio, pSrc, // Source filter &rtStart, // Start time &rtStop, // Stop time 0, // Start cookie 0 // Stop cookie );*/ pGraph->QueryInterface (IID_IMediaControl, (void **) &pMC); pMC->Run (); MessageBox (NULL, "Stop Recording", NULL, NULL); pMC->Stop ();/* CProgress *pProg = new CProgress(TEXT(""), NULL, &hr); IAMCopyCaptureFileProgress *pIProg = NULL; hr = pProg->QueryInterface(IID_IAMCopyCaptureFileProgress, (void **)&pIProg); //pBuilder->CopyCaptureFile (L"C://temp.avi", L"C://final.avi", TRUE, pIProg);*/ CoUninitialize (); return 0;}
开发者ID:eaglezhao,项目名称:tracnghiemweb,代码行数:74,
示例6: main//.........这里部分代码省略......... if (!SUCCEEDED(hr) ) { return hr; } VARIANT var; // we omit checking result for brevity.. // First Name VariantInit(&var); V_BSTR(&var) = SysAllocString(L"Janet"); V_VT(&var) = VT_BSTR; hr = pADs->Put( L"givenName", var ); // Last Name VariantClear(&var); V_BSTR(&var) = SysAllocString(L"Johns"); V_VT(&var) = VT_BSTR; hr = pADs->Put( L"sn", var ); VariantClear(&var); // Other Telephones LPWSTR pszPhones[] = { L"425 844 1234", L"425 924 4321" }; DWORD dwNumber = sizeof( pszPhones ) /sizeof(LPWSTR); hr = ADsBuildVarArrayStr( pszPhones, dwNumber, &var ); hr = pADs->Put( L"otherTelephone", var ); VariantClear(&var); hr = pADs->SetInfo(); pADs->Release(); if (!SUCCEEDED(hr) ) { return hr; } ///////////////////////////////////////////////// // Alternatively, you can use IDirectoryObject ////////////////////////////////////////////////// IDirectoryObject *pDir=NULL; hr = ADsGetObject(pszADsPath, IID_IDirectoryObject, (void**) &pDir ); if ( !SUCCEEDED(hr) ) { return hr; } DWORD dwReturn; ADSVALUE snValue; ADSVALUE fNameValue; ADSVALUE phoneValue[2]; ADS_ATTR_INFO attrInfo[] = { {L"givenName",ADS_ATTR_UPDATE, ADSTYPE_CASE_IGNORE_STRING,&snValue,1}, {L"sn", ADS_ATTR_UPDATE, ADSTYPE_CASE_IGNORE_STRING,&fNameValue,1 }, {L"otherTelephone", ADS_ATTR_UPDATE, ADSTYPE_CASE_IGNORE_STRING, phoneValue,2 } }; DWORD dwAttrs = sizeof(attrInfo)/sizeof(ADS_ATTR_INFO); ///// First Name /////////// fNameValue.dwType=ADSTYPE_CASE_IGNORE_STRING; fNameValue.CaseIgnoreString = L"Janet"; ///// Last Name /////////// snValue.dwType= ADSTYPE_CASE_IGNORE_STRING; snValue.CaseIgnoreString = L"Johns"; ///// Other Telephone /////////// phoneValue[0].dwType = ADSTYPE_CASE_IGNORE_STRING; phoneValue[0].CaseIgnoreString = L"425 844 1234"; phoneValue[1].dwType = ADSTYPE_CASE_IGNORE_STRING; phoneValue[1].CaseIgnoreString = L"425 924 4321"; hr = pDir->SetObjectAttributes(attrInfo, dwAttrs, &dwReturn); pDir->Release(); if ( !SUCCEEDED(hr) ) { return hr; } CoUninitialize(); return 0;}
开发者ID:AbdoSalem95,项目名称:WindowsSDK7-Samples,代码行数:101,
示例7: PromptFileLocationbool PromptFileLocation(std::wstring& resultPath, std::wstring title=L"Open", fileType filterType=ft_exe){ HRESULT hr; hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE); if (!SUCCEEDED(hr)) { CoUninitialize(); return false; } IFileOpenDialog *pFileOpen; // Create the FileOpenDialog object. hr = CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_ALL, IID_IFileOpenDialog, reinterpret_cast<void**>(&pFileOpen)); if (!SUCCEEDED(hr)) { pFileOpen->Release(); CoUninitialize(); return false; } // Set the filter type switch (filterType) { case ft_exe: { COMDLG_FILTERSPEC filter; filter.pszName = L"Windows Executable"; filter.pszSpec = L"*.exe"; hr = pFileOpen->SetFileTypes(1, &filter); break; } default: { break; } } if (!SUCCEEDED(hr)) { pFileOpen->Release(); CoUninitialize(); return false; } // Set the title hr = pFileOpen->SetTitle(L"Please locate your Blender executable."); if (!SUCCEEDED(hr)) { pFileOpen->Release(); CoUninitialize(); return false; } // Show the Open dialog box. hr = pFileOpen->Show(NULL); if (!SUCCEEDED(hr)) { pFileOpen->Release(); CoUninitialize(); return false; } // Get the file name from the open dialog box. IShellItem *pItem; hr = pFileOpen->GetResult(&pItem); if (!SUCCEEDED(hr)) { pItem->Release(); pFileOpen->Release(); CoUninitialize(); return false; } PWSTR pszFilePath; hr = pItem->GetDisplayName(SIGDN_FILESYSPATH, &pszFilePath); if (!SUCCEEDED(hr)) { pItem->Release(); pFileOpen->Release(); CoUninitialize(); CoTaskMemFree(pszFilePath); return false; } resultPath = pszFilePath; CoTaskMemFree(pszFilePath); pItem->Release(); pFileOpen->Release(); CoUninitialize(); return true;}
开发者ID:BeigeAlert,项目名称:Blender_Compile_Utility,代码行数:92,
示例8: FX_WINOLEAPI_ FX_WINOLEAPI_(void) FX_CoUninitialize(void) { CoUninitialize(); }
开发者ID:boatgm,项目名称:urchin,代码行数:4,
示例9: ContentPartnerThreadProcDWORD WINAPI ContentPartnerThreadProc(LPVOID lpParameter){ CONTENT_PARTNER_THREAD_CONTEXT* pThreadCtx = NULL; CComPtr<IWMPContentPartnerCallback> spCallback; MSG msg = {0}; HRESULT hr = S_OK; BOOL comInitialized = FALSE; if(NULL == lpParameter) { hr = E_INVALIDARG; goto cleanup; } pThreadCtx = static_cast<CONTENT_PARTNER_THREAD_CONTEXT*>(lpParameter); if(NULL == pThreadCtx->pIStream) { hr = E_INVALIDARG; goto cleanup; } hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); if(FAILED(hr)) { ATLTRACE2("%x: ContentPartnerThreadProc(type %d): CoInitializeEx failed. %x/n", GetCurrentThreadId(), pThreadCtx->threadType, hr); goto cleanup; } comInitialized = TRUE; // Get a pointer to an IWMPContentPartnerCallback interface. hr = CoGetInterfaceAndReleaseStream( pThreadCtx->pIStream, __uuidof(IWMPContentPartnerCallback), reinterpret_cast<LPVOID*>(&spCallback) ); // The stream was released (even if CoGetInterfaceAndReleaseStream failed). // Set the stream pointer to NULL. pThreadCtx->pIStream = NULL; if(FAILED(hr)) { ATLTRACE2("%x: ContentPartnerThreadProc(type %d): Failed to get IWMPContentPartnerCallback interface. %x/n", GetCurrentThreadId(), pThreadCtx->threadType, hr); goto cleanup; } if(NULL == spCallback) { hr = E_UNEXPECTED; goto cleanup; } ATLTRACE2("%x: ContentPartnerThreadProc(type %d): Succeeded in getting IWMPContentPartnerCallback interface./n", GetCurrentThreadId(), pThreadCtx->threadType); // Make sure we have a message queue. PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE); // Tell the main thread that we are ready to receive messages. SetEvent(pThreadCtx->hInitialized); hr = ContentPartnerMessageLoop(pThreadCtx, spCallback);cleanup: if(NULL != pThreadCtx) { // Set this event here, just in case there was a "goto cleanup" // before the event was set. SetEvent(pThreadCtx->hInitialized); // The thread that started this thread allocated a // CONTENT_PARTNER_THREAD_CONTEXT structure. // We must free that memory here. if(NULL != pThreadCtx->pIStream) { // For some reason, CoGetInterfaceAndReleaseStream never got called. // So release the stream here. pThreadCtx->pIStream->Release(); pThreadCtx->pIStream = NULL; } ATLTRACE2("%x: ContentPartnerThreadProc(type %d): Returning %x/n", GetCurrentThreadId(), pThreadCtx->threadType, hr); delete pThreadCtx; pThreadCtx = NULL; } if(comInitialized) { CoUninitialize(); } return hr;}
开发者ID:AbdoSalem95,项目名称:WindowsSDK7-Samples,代码行数:99,
|